From 05eff6ec1875368236fa701521273db8528c49a6 Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Fri, 8 Dec 2023 21:09:41 +0100 Subject: [PATCH] Upgrade to Compose 1.6.0-alpha01. Replace stdlib DOM/W3C bindings with a custom bindings in kilua-dom submodule to make project buildable. --- buildSrc/src/main/kotlin/Shared.kt | 52 +- examples/bootstrap-form/build.gradle.kts | 107 +- examples/hello-world/build.gradle.kts | 107 +- .../js-framework-benchmark/build.gradle.kts | 107 +- examples/playground/build.gradle.kts | 107 +- examples/playground/src/jsMain/kotlin/main.kt | 4 +- .../playground/src/wasmJsMain/kotlin/main.kt | 20 +- gradle.properties | 3 - gradle/libs.versions.toml | 4 +- kilua/build.gradle.kts | 21 +- .../softwork/routingcompose/BrowserRouter.kt | 4 +- .../app/softwork/routingcompose/HashRouter.kt | 2 +- .../kotlin/dev/kilua/Application.kt | 2 +- .../commonMain/kotlin/dev/kilua/CoreModule.kt | 1 + .../commonMain/kotlin/dev/kilua/Coroutines.kt | 8 + .../kotlin/dev/kilua/compose/Root.kt | 4 +- .../kotlin/dev/kilua/core/ComponentBase.kt | 10 +- .../kotlin/dev/kilua/core/SafeDomFactory.kt | 8 +- .../kotlin/dev/kilua/externals/Event.kt | 7 +- .../kotlin/dev/kilua/externals/NodeJsDom.kt | 6 +- .../kotlin/dev/kilua/externals/Object.kt | 35 +- .../kotlin/dev/kilua/externals/SplitJs.kt | 2 +- .../commonMain/kotlin/dev/kilua/form/Form.kt | 28 +- .../commonMain/kotlin/dev/kilua/form/Input.kt | 4 +- .../dev/kilua/form/check/AbstractCheck.kt | 4 +- .../dev/kilua/form/check/TriStateCheckBox.kt | 4 +- .../kotlin/dev/kilua/form/number/Numeric.kt | 2 +- .../kotlin/dev/kilua/form/select/Select.kt | 2 +- .../kotlin/dev/kilua/form/text/TextArea.kt | 2 +- .../kotlin/dev/kilua/form/upload/Upload.kt | 5 +- .../commonMain/kotlin/dev/kilua/html/Abbr.kt | 2 +- .../kotlin/dev/kilua/html/Address.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Area.kt | 2 +- .../kotlin/dev/kilua/html/Article.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Aside.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Audio.kt | 2 +- .../src/commonMain/kotlin/dev/kilua/html/B.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Base.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Bdi.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Bdo.kt | 2 +- .../kotlin/dev/kilua/html/Blockquote.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Body.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Br.kt | 2 +- .../kotlin/dev/kilua/html/Button.kt | 4 +- .../kotlin/dev/kilua/html/Canvas.kt | 4 +- .../kotlin/dev/kilua/html/Caption.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Cite.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Code.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Col.kt | 2 +- .../kotlin/dev/kilua/html/Colgroup.kt | 2 +- .../kotlin/dev/kilua/html/CommentNode.kt | 5 +- .../commonMain/kotlin/dev/kilua/html/Data.kt | 2 +- .../kotlin/dev/kilua/html/Datalist.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Dd.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Del.kt | 2 +- .../kotlin/dev/kilua/html/Details.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Dfn.kt | 2 +- .../kotlin/dev/kilua/html/Dialog.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Div.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Dl.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Dt.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Em.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Embed.kt | 2 +- .../kotlin/dev/kilua/html/Fieldset.kt | 2 +- .../kotlin/dev/kilua/html/Figcaption.kt | 2 +- .../kotlin/dev/kilua/html/Figure.kt | 2 +- .../kotlin/dev/kilua/html/Footer.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/H1.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/H2.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/H3.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/H4.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/H5.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/H6.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Head.kt | 2 +- .../kotlin/dev/kilua/html/Header.kt | 2 +- .../kotlin/dev/kilua/html/Hgroup.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Hr.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Html.kt | 2 +- .../src/commonMain/kotlin/dev/kilua/html/I.kt | 2 +- .../kotlin/dev/kilua/html/Iframe.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Img.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Ins.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Kbd.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Label.kt | 2 +- .../kotlin/dev/kilua/html/Legend.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Li.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Link.kt | 2 +- .../kotlin/dev/kilua/html/LinkTag.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Main.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Map.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Mark.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Menu.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Meta.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Meter.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Nav.kt | 2 +- .../kotlin/dev/kilua/html/Noscript.kt | 2 +- .../kotlin/dev/kilua/html/ObjectTag.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Ol.kt | 2 +- .../kotlin/dev/kilua/html/Optgroup.kt | 2 +- .../kotlin/dev/kilua/html/Option.kt | 2 +- .../kotlin/dev/kilua/html/Output.kt | 2 +- .../src/commonMain/kotlin/dev/kilua/html/P.kt | 2 +- .../kotlin/dev/kilua/html/Picture.kt | 2 +- .../kotlin/dev/kilua/html/Portal.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Pre.kt | 2 +- .../kotlin/dev/kilua/html/Progress.kt | 2 +- .../src/commonMain/kotlin/dev/kilua/html/Q.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Rp.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Rt.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Ruby.kt | 2 +- .../src/commonMain/kotlin/dev/kilua/html/S.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Samp.kt | 2 +- .../kotlin/dev/kilua/html/Script.kt | 2 +- .../kotlin/dev/kilua/html/Search.kt | 2 +- .../kotlin/dev/kilua/html/Section.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Slot.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Small.kt | 2 +- .../kotlin/dev/kilua/html/Source.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Span.kt | 2 +- .../kotlin/dev/kilua/html/Strong.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Sub.kt | 2 +- .../kotlin/dev/kilua/html/Summary.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Sup.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Table.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Tag.kt | 4 +- .../commonMain/kotlin/dev/kilua/html/Tbody.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Td.kt | 2 +- .../kotlin/dev/kilua/html/Template.kt | 2 +- .../kotlin/dev/kilua/html/TextNode.kt | 5 +- .../commonMain/kotlin/dev/kilua/html/Tfoot.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Th.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Thead.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Time.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Title.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Tr.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Track.kt | 2 +- .../src/commonMain/kotlin/dev/kilua/html/U.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Ul.kt | 2 +- .../kotlin/dev/kilua/html/VarTag.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Video.kt | 2 +- .../commonMain/kotlin/dev/kilua/html/Wbr.kt | 2 +- .../kotlin/dev/kilua/html/helpers/TagAttrs.kt | 2 +- .../kilua/html/helpers/TagAttrsDelegate.kt | 2 +- .../kotlin/dev/kilua/html/helpers/TagDnd.kt | 4 +- .../dev/kilua/html/helpers/TagDndDelegate.kt | 5 +- .../dev/kilua/html/helpers/TagEvents.kt | 12 +- .../kilua/html/helpers/TagEventsDelegate.kt | 12 +- .../kilua/html/helpers/TagEventsSuspending.kt | 8 +- .../kotlin/dev/kilua/html/helpers/TagStyle.kt | 2 +- .../kilua/html/helpers/TagStyleDelegate.kt | 2 +- .../kotlin/dev/kilua/html/style/CssStyle.kt | 2 +- .../kotlin/dev/kilua/html/style/Style.kt | 2 +- .../kotlin/dev/kilua/i18n/DefaultLocale.kt | 2 +- .../kotlin/dev/kilua/panel/SplitPanel.kt | 9 +- .../commonMain/kotlin/dev/kilua/utils/File.kt | 4 +- .../commonMain/kotlin/dev/kilua/utils/JSON.kt | 6 +- .../kotlin/dev/kilua/utils/JavaScript.kt | 18 +- .../kotlin/dev/kilua/utils/Serialization.kt | 6 +- .../dev/kilua/compose/ComponentApplierSpec.kt | 2 +- .../kotlin/dev/kilua/html/CanvasSpec.kt | 8 +- .../jsMain/kotlin/dev/kilua/Coroutines.js.kt | 32 + .../kotlin/dev/kilua/externals/Event.js.kt | 7 +- .../dev/kilua/externals/NodeJsDom.js.kt | 6 +- .../kotlin/dev/kilua/externals/Object.js.kt | 40 +- .../kotlin/dev/kilua/externals/SplitJs.js.kt | 2 +- .../kotlin/dev/kilua/externals/SplitJs.kt | 2 +- .../src/jsMain/kotlin/dev/kilua/utils/JSON.kt | 6 +- .../kotlin/dev/kilua/utils/JavaScript.js.kt | 10 +- .../kotlin/dev/kilua/Coroutines.wasmJs.kt | 33 + .../dev/kilua/externals/Event.wasmJs.kt | 7 +- .../dev/kilua/externals/NodeJsDom.wasmJs.kt | 6 +- .../dev/kilua/externals/Object.wasmJs.kt | 40 +- .../dev/kilua/externals/SplitJs.wasmJs.kt | 6 +- .../kotlin/dev/kilua/utils/JSON.wasmJs.kt | 6 +- .../dev/kilua/utils/JavaScript.wasmJs.kt | 12 +- .../kilua-bootstrap-icons/build.gradle.kts | 19 +- .../kotlin/dev/kilua/BootstrapIconsModule.kt | 1 + modules/kilua-bootstrap/build.gradle.kts | 19 +- .../kotlin/dev/kilua/BootstrapCssModule.kt | 1 + .../kotlin/dev/kilua/BootstrapModule.kt | 2 +- .../kotlin/dev/kilua/externals/Bootstrap.kt | 3 +- .../kotlin/dev/kilua/modal/Alert.kt | 2 +- .../kotlin/dev/kilua/modal/Confirm.kt | 2 +- .../kotlin/dev/kilua/modal/Modal.kt | 2 +- .../kotlin/dev/kilua/panel/TabPanel.kt | 14 +- .../kotlin/dev/kilua/modal/ModalSpec.kt | 7 +- modules/kilua-common-types/build.gradle.kts | 19 +- modules/kilua-dom/build.gradle.kts | 33 + .../commonMain/kotlin/web/ItemArrayLike.kt | 23 + .../src/commonMain/kotlin/web/JsAny.kt | 9 + .../src/commonMain/kotlin/web/JsArray.kt | 15 + .../src/commonMain/kotlin/web/JsBoolean.kt | 13 + .../src/commonMain/kotlin/web/JsNumber.kt | 17 + .../src/commonMain/kotlin/web/JsString.kt | 11 + .../src/commonMain/kotlin/web/Mutations.kt | 27 + .../src/commonMain/kotlin/web/Promise.kt | 26 + .../kotlin/web/org.khronos.webgl.kt | 1195 ++++ .../kotlin/web/org.w3c.css.masking.kt | 89 + .../kotlin/web/org.w3c.dom.clipboard.kt | 57 + .../commonMain/kotlin/web/org.w3c.dom.css.kt | 476 ++ .../kotlin/web/org.w3c.dom.encryptedmedia.kt | 160 + .../kotlin/web/org.w3c.dom.events.kt | 321 + .../src/commonMain/kotlin/web/org.w3c.dom.kt | 5956 +++++++++++++++++ .../kotlin/web/org.w3c.dom.mediacapture.kt | 387 ++ .../kotlin/web/org.w3c.dom.mediasource.kt | 95 + .../kotlin/web/org.w3c.dom.parsing.kt | 32 + .../kotlin/web/org.w3c.dom.pointerevents.kt | 65 + .../commonMain/kotlin/web/org.w3c.dom.svg.kt | 1779 +++++ .../commonMain/kotlin/web/org.w3c.dom.url.kt | 58 + .../commonMain/kotlin/web/org.w3c.fetch.kt | 176 + .../commonMain/kotlin/web/org.w3c.files.kt | 109 + .../kotlin/web/org.w3c.notifications.kt | 141 + .../kotlin/web/org.w3c.performance.kt | 73 + .../commonMain/kotlin/web/org.w3c.workers.kt | 385 ++ .../src/commonMain/kotlin/web/org.w3c.xhr.kt | 132 + .../src/commonMain/kotlin/web/web.kt | 16 + .../src/jsMain/kotlin/web/JsAny.js.kt | 25 + .../src/jsMain/kotlin/web/JsArray.js.kt | 42 + .../src/jsMain/kotlin/web/JsBoolean.js.kt | 34 + .../src/jsMain/kotlin/web/JsNumber.js.kt | 42 + .../src/jsMain/kotlin/web/JsString.js.kt | 30 + .../src/jsMain/kotlin/web/Promise.js.kt | 46 + .../src/wasmJsMain/kotlin/web/JsAny.wasmJs.kt | 25 + .../wasmJsMain/kotlin/web/JsArray.wasmJs.kt | 34 + .../wasmJsMain/kotlin/web/JsBoolean.wasmJs.kt | 32 + .../wasmJsMain/kotlin/web/JsNumber.wasmJs.kt | 34 + .../wasmJsMain/kotlin/web/JsString.wasmJs.kt | 29 + .../wasmJsMain/kotlin/web/Promise.wasmJs.kt | 46 + modules/kilua-fontawesome/build.gradle.kts | 19 +- .../kotlin/dev/kilua/FontAwesomeModule.kt | 1 + modules/kilua-testutils/build.gradle.kts | 19 +- .../kotlin/dev/kilua/test/HtmlDiffer.kt | 6 +- .../kotlin/dev/kilua/test/TestUtil.kt | 28 +- modules/kilua-trix/build.gradle.kts | 19 +- .../commonMain/kotlin/dev/kilua/TrixModule.kt | 1 + .../kotlin/dev/kilua/externals/Editor.kt | 2 +- .../kotlin/dev/kilua/form/text/RichText.kt | 25 +- .../kotlin/dev/kilua/externals/Editor.js.kt | 2 +- .../kotlin/dev/kilua/externals/Trix.js.kt | 4 +- .../dev/kilua/externals/Editor.wasmJs.kt | 2 +- .../kotlin/dev/kilua/externals/Trix.wasmJs.kt | 4 +- settings.gradle.kts | 6 +- 242 files changed, 12993 insertions(+), 760 deletions(-) create mode 100644 kilua/src/jsMain/kotlin/dev/kilua/Coroutines.js.kt create mode 100644 kilua/src/wasmJsMain/kotlin/dev/kilua/Coroutines.wasmJs.kt create mode 100644 modules/kilua-dom/build.gradle.kts create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/ItemArrayLike.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/JsAny.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/JsArray.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/JsBoolean.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/JsNumber.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/JsString.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/Mutations.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/Promise.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.khronos.webgl.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.css.masking.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.clipboard.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.css.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.encryptedmedia.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.events.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediacapture.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediasource.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.parsing.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.pointerevents.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.svg.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.url.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.fetch.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.files.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.notifications.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.performance.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.workers.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.xhr.kt create mode 100644 modules/kilua-dom/src/commonMain/kotlin/web/web.kt create mode 100644 modules/kilua-dom/src/jsMain/kotlin/web/JsAny.js.kt create mode 100644 modules/kilua-dom/src/jsMain/kotlin/web/JsArray.js.kt create mode 100644 modules/kilua-dom/src/jsMain/kotlin/web/JsBoolean.js.kt create mode 100644 modules/kilua-dom/src/jsMain/kotlin/web/JsNumber.js.kt create mode 100644 modules/kilua-dom/src/jsMain/kotlin/web/JsString.js.kt create mode 100644 modules/kilua-dom/src/jsMain/kotlin/web/Promise.js.kt create mode 100644 modules/kilua-dom/src/wasmJsMain/kotlin/web/JsAny.wasmJs.kt create mode 100644 modules/kilua-dom/src/wasmJsMain/kotlin/web/JsArray.wasmJs.kt create mode 100644 modules/kilua-dom/src/wasmJsMain/kotlin/web/JsBoolean.wasmJs.kt create mode 100644 modules/kilua-dom/src/wasmJsMain/kotlin/web/JsNumber.wasmJs.kt create mode 100644 modules/kilua-dom/src/wasmJsMain/kotlin/web/JsString.wasmJs.kt create mode 100644 modules/kilua-dom/src/wasmJsMain/kotlin/web/Promise.wasmJs.kt diff --git a/buildSrc/src/main/kotlin/Shared.kt b/buildSrc/src/main/kotlin/Shared.kt index 6e604e4381..d893e82236 100644 --- a/buildSrc/src/main/kotlin/Shared.kt +++ b/buildSrc/src/main/kotlin/Shared.kt @@ -12,22 +12,20 @@ fun KotlinMultiplatformExtension.compilerOptions() { } } -fun KotlinMultiplatformExtension.kotlinJsTargets(buildTarget: String, isInIdea: Boolean, withNode: Boolean = true) { - if (buildTarget == "js" || !isInIdea) { - js(IR) { - useEsModules() - browser { - testTask { - useKarma { - useChromeHeadless() - } +fun KotlinMultiplatformExtension.kotlinJsTargets(withNode: Boolean = true) { + js(IR) { + useEsModules() + browser { + testTask { + useKarma { + useChromeHeadless() } } - if (withNode) { - nodejs { - testTask { - useMocha() - } + } + if (withNode) { + nodejs { + testTask { + useMocha() } } } @@ -35,22 +33,20 @@ fun KotlinMultiplatformExtension.kotlinJsTargets(buildTarget: String, isInIdea: } @OptIn(ExperimentalWasmDsl::class) -fun KotlinMultiplatformExtension.kotlinWasmTargets(buildTarget: String, isInIdea: Boolean, withNode: Boolean = true) { - if (buildTarget == "wasm" || !isInIdea) { - wasmJs { - useEsModules() - browser { - testTask { - useKarma { - useChromeHeadlessWasmGc() - } +fun KotlinMultiplatformExtension.kotlinWasmTargets(withNode: Boolean = true) { + wasmJs { + useEsModules() + browser { + testTask { + useKarma { + useChromeHeadlessWasmGc() } } - if (withNode) { - nodejs { - testTask { - useMocha() - } + } + if (withNode) { + nodejs { + testTask { + useMocha() } } } diff --git a/examples/bootstrap-form/build.gradle.kts b/examples/bootstrap-form/build.gradle.kts index 4fd0ab344f..f777cd31ad 100644 --- a/examples/bootstrap-form/build.gradle.kts +++ b/examples/bootstrap-form/build.gradle.kts @@ -6,67 +6,60 @@ plugins { id("org.jetbrains.compose") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - @OptIn(ExperimentalWasmDsl::class) kotlin { - if (buildTarget == "js" || !isInIdea) { - js(IR) { - useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadless() - } + js(IR) { + useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" + } + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadless() } } - binaries.executable() } + binaries.executable() } - if (buildTarget == "wasm" || !isInIdea) { - wasmJs { - useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadlessWasmGc() - } - } + wasmJs { + useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" } - binaries.executable() - if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { - applyBinaryen { - binaryenArgs = mutableListOf( - "--enable-nontrapping-float-to-int", - "--enable-gc", - "--enable-reference-types", - "--enable-exception-handling", - "--enable-bulk-memory", - "--inline-functions-with-loops", - "--traps-never-happen", - "--fast-math", - "--closed-world", - "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - ) + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadlessWasmGc() } } } + binaries.executable() + if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { + applyBinaryen { + binaryenArgs = mutableListOf( + "--enable-nontrapping-float-to-int", + "--enable-gc", + "--enable-reference-types", + "--enable-exception-handling", + "--enable-bulk-memory", + "--inline-functions-with-loops", + "--traps-never-happen", + "--fast-math", + "--closed-world", + "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + ) + } + } } sourceSets { val commonMain by getting { @@ -75,16 +68,12 @@ kotlin { implementation(project(":modules:kilua-bootstrap")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/examples/hello-world/build.gradle.kts b/examples/hello-world/build.gradle.kts index dee18971a5..889f388c22 100644 --- a/examples/hello-world/build.gradle.kts +++ b/examples/hello-world/build.gradle.kts @@ -6,67 +6,60 @@ plugins { id("org.jetbrains.compose") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - @OptIn(ExperimentalWasmDsl::class) kotlin { - if (buildTarget == "js" || !isInIdea) { - js(IR) { - useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadless() - } + js(IR) { + useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" + } + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadless() } } - binaries.executable() } + binaries.executable() } - if (buildTarget == "wasm" || !isInIdea) { - wasmJs { - useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadlessWasmGc() - } - } + wasmJs { + useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" } - binaries.executable() - if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { - applyBinaryen { - binaryenArgs = mutableListOf( - "--enable-nontrapping-float-to-int", - "--enable-gc", - "--enable-reference-types", - "--enable-exception-handling", - "--enable-bulk-memory", - "--inline-functions-with-loops", - "--traps-never-happen", - "--fast-math", - "--closed-world", - "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - ) + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadlessWasmGc() } } } + binaries.executable() + if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { + applyBinaryen { + binaryenArgs = mutableListOf( + "--enable-nontrapping-float-to-int", + "--enable-gc", + "--enable-reference-types", + "--enable-exception-handling", + "--enable-bulk-memory", + "--inline-functions-with-loops", + "--traps-never-happen", + "--fast-math", + "--closed-world", + "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + ) + } + } } sourceSets { val commonMain by getting { @@ -74,16 +67,12 @@ kotlin { implementation(project(":kilua")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/examples/js-framework-benchmark/build.gradle.kts b/examples/js-framework-benchmark/build.gradle.kts index b43962f113..58a0c1cd3d 100644 --- a/examples/js-framework-benchmark/build.gradle.kts +++ b/examples/js-framework-benchmark/build.gradle.kts @@ -6,67 +6,60 @@ plugins { id("org.jetbrains.compose") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - @OptIn(ExperimentalWasmDsl::class) kotlin { - if (buildTarget == "js" || !isInIdea) { - js(IR) { - // useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadless() - } + js(IR) { + // useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" + } + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadless() } } - binaries.executable() } + binaries.executable() } - if (buildTarget == "wasm" || !isInIdea) { - wasmJs { - useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadlessWasmGc() - } - } + wasmJs { + useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" } - binaries.executable() - applyBinaryen { - if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { - binaryenArgs = mutableListOf( - "--enable-nontrapping-float-to-int", - "--enable-gc", - "--enable-reference-types", - "--enable-exception-handling", - "--enable-bulk-memory", - "--inline-functions-with-loops", - "--traps-never-happen", - "--fast-math", - "--closed-world", - "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - ) + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadlessWasmGc() } } } + binaries.executable() + applyBinaryen { + if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { + binaryenArgs = mutableListOf( + "--enable-nontrapping-float-to-int", + "--enable-gc", + "--enable-reference-types", + "--enable-exception-handling", + "--enable-bulk-memory", + "--inline-functions-with-loops", + "--traps-never-happen", + "--fast-math", + "--closed-world", + "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + ) + } + } } sourceSets { val commonMain by getting { @@ -74,16 +67,12 @@ kotlin { implementation(project(":kilua")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/examples/playground/build.gradle.kts b/examples/playground/build.gradle.kts index 06d9b89386..1a5dc27c2c 100644 --- a/examples/playground/build.gradle.kts +++ b/examples/playground/build.gradle.kts @@ -6,67 +6,60 @@ plugins { id("org.jetbrains.compose") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - @OptIn(ExperimentalWasmDsl::class) kotlin { - if (buildTarget == "js" || !isInIdea) { - js(IR) { - // useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadless() - } + js(IR) { + // useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" + } + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadless() } } - binaries.executable() } + binaries.executable() } - if (buildTarget == "wasm" || !isInIdea) { - wasmJs { - useEsModules() - browser { - commonWebpackConfig { - outputFileName = "main.bundle.js" - } - runTask { - sourceMaps = false - } - testTask { - useKarma { - useChromeHeadlessWasmGc() - } - } + wasmJs { + useEsModules() + browser { + commonWebpackConfig { + outputFileName = "main.bundle.js" } - binaries.executable() - if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { - applyBinaryen { - binaryenArgs = mutableListOf( - "--enable-nontrapping-float-to-int", - "--enable-gc", - "--enable-reference-types", - "--enable-exception-handling", - "--enable-bulk-memory", - "--inline-functions-with-loops", - "--traps-never-happen", - "--fast-math", - "--closed-world", - "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - "-O3", "--gufa", "--metrics", - ) + runTask { + sourceMaps = false + } + testTask { + useKarma { + useChromeHeadlessWasmGc() } } } + binaries.executable() + if (project.gradle.startParameter.taskNames.find { it.contains("wasmJsBrowserProductionWebpack") } != null) { + applyBinaryen { + binaryenArgs = mutableListOf( + "--enable-nontrapping-float-to-int", + "--enable-gc", + "--enable-reference-types", + "--enable-exception-handling", + "--enable-bulk-memory", + "--inline-functions-with-loops", + "--traps-never-happen", + "--fast-math", + "--closed-world", + "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + "-O3", "--gufa", "--metrics", + ) + } + } } sourceSets { val commonMain by getting { @@ -78,16 +71,12 @@ kotlin { implementation(project(":modules:kilua-trix")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/examples/playground/src/jsMain/kotlin/main.kt b/examples/playground/src/jsMain/kotlin/main.kt index 8062c0d0b6..fc29c31a08 100644 --- a/examples/playground/src/jsMain/kotlin/main.kt +++ b/examples/playground/src/jsMain/kotlin/main.kt @@ -71,7 +71,7 @@ import dev.kilua.utils.log import dev.kilua.utils.useModule import kotlinx.browser.window import org.w3c.dom.Text -import org.w3c.dom.events.Event +import web.dom.events.Event import kotlin.js.Date import kotlin.math.PI import kotlin.math.floor @@ -110,7 +110,7 @@ class App : Application() { button("show modal") { onClick { - modalCaption += "2" + modal?.show() } } button("modal class") { diff --git a/examples/playground/src/wasmJsMain/kotlin/main.kt b/examples/playground/src/wasmJsMain/kotlin/main.kt index e763dd711f..bc8271b125 100644 --- a/examples/playground/src/wasmJsMain/kotlin/main.kt +++ b/examples/playground/src/wasmJsMain/kotlin/main.kt @@ -56,15 +56,33 @@ import dev.kilua.startApplication import dev.kilua.state.collectAsState import dev.kilua.utils.console import dev.kilua.utils.listOfPairs +import dev.kilua.utils.log import dev.kilua.utils.rem -import org.w3c.dom.CustomEvent +import web.dom.CustomEvent +import web.toDouble +import web.toJsBoolean +import web.toJsNumber class App : Application() { override fun start() { root("root") { + val x = 5 + val y = x.toJsNumber().toDouble() + console.log((y == 5.0).toJsBoolean().toBoolean().toString()) + val text = textNode("Ala ma kota") + val comment = commentNode("Ala ma kota2") + + button("test text") { + onClick { + console.log(text.text) + console.log(comment.comment) + } + } + + hr() bsButton("Test", "fas fa-check", size = ButtonSize.BtnLg, style = ButtonStyle.BtnDanger) { onClick { console.log("test") diff --git a/gradle.properties b/gradle.properties index f71a07ca09..e24d96cdf0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,6 +8,3 @@ org.gradle.kotlin.dsl.precompiled.accessors.strict=true kotlin.mpp.stability.nowarn=true kotlin.code.style=official kotlin.experimental.tryK2=true - -#buildTarget=js -buildTarget=wasm diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 77fab61e12..d5d3db8db1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,10 @@ [versions] kotlin = "1.9.21" -compose = "1.5.10-dev-wasm03" +compose = "1.6.0-alpha01" compose-plugin = "1.5.4" npm-publish = "3.4.1" kilua = "0.0.1" +kotlinx-atomicfu = "0.23.1" kotlinx-coroutines = "1.8.0-RC" kotlinx-serialization = "1.6.2" kotlinx-datetime = "0.5.0" @@ -22,6 +23,7 @@ fontawesome = "6.4.2" trix = "2.0.8" [libraries] +kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "kotlinx-atomicfu" } kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } diff --git a/kilua/build.gradle.kts b/kilua/build.gradle.kts index 7bb77c13c1..1aa5b86580 100644 --- a/kilua/build.gradle.kts +++ b/kilua/build.gradle.kts @@ -9,9 +9,6 @@ plugins { id("signing") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - rootProject.plugins.withType { rootProject.the().apply { resolution("aaa-kilua-assets", libs.versions.npm.kilua.assets.get()) @@ -37,16 +34,18 @@ detekt { kotlin { explicitApi() compilerOptions() - kotlinJsTargets(buildTarget, isInIdea) - kotlinWasmTargets(buildTarget, isInIdea) + kotlinJsTargets() + kotlinWasmTargets() sourceSets { val commonMain by getting { dependencies { api(compose.runtime) + api(libs.kotlinx.atomicfu) api(libs.kotlinx.coroutines) api(libs.kotlinx.serialization.json) api(libs.kotlinx.datetime) api(project(":modules:kilua-common-types")) + api(project(":modules:kilua-dom")) // implementation(npm("aaa-kilua-assets", "http://localhost:8001/aaa-kilua-assets-0.0.1-SNAPSHOT.1.tgz")) implementation(npm("aaa-kilua-assets", libs.versions.npm.kilua.assets.get())) implementation(npm("css-loader", libs.versions.css.loader.get())) @@ -63,16 +62,12 @@ kotlin { implementation(project(":modules:kilua-testutils")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/kilua/src/commonMain/kotlin/app/softwork/routingcompose/BrowserRouter.kt b/kilua/src/commonMain/kotlin/app/softwork/routingcompose/BrowserRouter.kt index 97b38fddf7..40cf014843 100644 --- a/kilua/src/commonMain/kotlin/app/softwork/routingcompose/BrowserRouter.kt +++ b/kilua/src/commonMain/kotlin/app/softwork/routingcompose/BrowserRouter.kt @@ -21,8 +21,8 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.State import androidx.compose.runtime.mutableStateOf -import kotlinx.browser.window -import org.w3c.dom.Location +import web.window +import web.dom.Location /** * A router leveraging the History API (https://developer.mozilla.org/en-US/docs/Web/API/History). diff --git a/kilua/src/commonMain/kotlin/app/softwork/routingcompose/HashRouter.kt b/kilua/src/commonMain/kotlin/app/softwork/routingcompose/HashRouter.kt index 76b77fb51e..fa977d38d0 100644 --- a/kilua/src/commonMain/kotlin/app/softwork/routingcompose/HashRouter.kt +++ b/kilua/src/commonMain/kotlin/app/softwork/routingcompose/HashRouter.kt @@ -21,7 +21,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.State import androidx.compose.runtime.mutableStateOf -import kotlinx.browser.window +import web.window /** * This [Router] implementation uses `/#/path` to persistent the current route in [window.location.hash]. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/Application.kt b/kilua/src/commonMain/kotlin/dev/kilua/Application.kt index a78f039ecd..b030946a8d 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/Application.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/Application.kt @@ -23,7 +23,7 @@ package dev.kilua import dev.kilua.compose.Root import dev.kilua.utils.isDom -import kotlinx.browser.document +import web.document /** * Base class for Kilua applications. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/CoreModule.kt b/kilua/src/commonMain/kotlin/dev/kilua/CoreModule.kt index 3cbc1d7fca..81ff6a0bed 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/CoreModule.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/CoreModule.kt @@ -22,6 +22,7 @@ package dev.kilua +import dev.kilua.utils.JsModule import dev.kilua.utils.JsNonModule import dev.kilua.utils.useModule diff --git a/kilua/src/commonMain/kotlin/dev/kilua/Coroutines.kt b/kilua/src/commonMain/kotlin/dev/kilua/Coroutines.kt index 8c4c3d32b7..5c00cbab15 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/Coroutines.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/Coroutines.kt @@ -23,10 +23,18 @@ package dev.kilua import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob +import web.JsAny +import web.Promise /** * Kilua coroutine scope. */ public val KiluaScope: CoroutineScope = CoroutineScope(Dispatchers.Default + SupervisorJob()) + +/** + * Convert Deferred to a JS Promise. + */ +public expect fun Deferred.asPromise(): Promise \ No newline at end of file diff --git a/kilua/src/commonMain/kotlin/dev/kilua/compose/Root.kt b/kilua/src/commonMain/kotlin/dev/kilua/compose/Root.kt index 4a7a4c541f..a178d06fcd 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/compose/Root.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/compose/Root.kt @@ -37,8 +37,8 @@ import dev.kilua.html.style.style import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineStart import kotlinx.coroutines.launch -import kotlinx.dom.clear -import org.w3c.dom.Element +import web.clear +import web.dom.Element internal expect val defaultMonotonicFrameClock: MonotonicFrameClock diff --git a/kilua/src/commonMain/kotlin/dev/kilua/core/ComponentBase.kt b/kilua/src/commonMain/kotlin/dev/kilua/core/ComponentBase.kt index 170734b4b4..4665eb2d24 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/core/ComponentBase.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/core/ComponentBase.kt @@ -24,11 +24,11 @@ package dev.kilua.core import dev.kilua.utils.nativeListOf import dev.kilua.utils.nativeMapOf -import kotlinx.dom.clear -import org.w3c.dom.CustomEvent -import org.w3c.dom.CustomEventInit -import org.w3c.dom.Node -import org.w3c.dom.get +import web.clear +import web.dom.CustomEvent +import web.dom.CustomEventInit +import web.dom.Node +import web.dom.get /** * Base class for all components. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/core/SafeDomFactory.kt b/kilua/src/commonMain/kotlin/dev/kilua/core/SafeDomFactory.kt index 23ba4b515d..6d1930d1a1 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/core/SafeDomFactory.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/core/SafeDomFactory.kt @@ -26,10 +26,10 @@ import dev.kilua.externals.nodeJsCreateComment import dev.kilua.externals.nodeJsCreateElement import dev.kilua.externals.nodeJsCreateText import dev.kilua.utils.isDom -import kotlinx.browser.document -import org.w3c.dom.Comment -import org.w3c.dom.Element -import org.w3c.dom.Text +import web.document +import web.dom.Comment +import web.dom.Element +import web.dom.Text /** * Helper factory to safely call methods on the document object. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/externals/Event.kt b/kilua/src/commonMain/kotlin/dev/kilua/externals/Event.kt index 1c8d816223..25f40c8f18 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/externals/Event.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/externals/Event.kt @@ -22,8 +22,9 @@ package dev.kilua.externals -import org.w3c.dom.AddEventListenerOptions -import org.w3c.dom.CustomEventInit +import web.JsAny +import web.dom.AddEventListenerOptions +import web.dom.CustomEventInit /** * JavaScript AbortSignal class @@ -46,4 +47,4 @@ public expect fun buildAddEventListenerOptions(signal: AbortSignal): AddEventLis /** * Build CustomEventInit with a detail object. */ -public expect fun buildCustomEventInit(detail: Object?): CustomEventInit +public expect fun buildCustomEventInit(detail: JsAny?): CustomEventInit diff --git a/kilua/src/commonMain/kotlin/dev/kilua/externals/NodeJsDom.kt b/kilua/src/commonMain/kotlin/dev/kilua/externals/NodeJsDom.kt index 12e64e593c..cf137e4171 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/externals/NodeJsDom.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/externals/NodeJsDom.kt @@ -22,9 +22,9 @@ package dev.kilua.externals -import org.w3c.dom.Comment -import org.w3c.dom.Element -import org.w3c.dom.Text +import web.dom.Comment +import web.dom.Element +import web.dom.Text /** * Create a fake DOM Element on Node.js. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/externals/Object.kt b/kilua/src/commonMain/kotlin/dev/kilua/externals/Object.kt index a4284d3383..b74a05a0b1 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/externals/Object.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/externals/Object.kt @@ -22,53 +22,30 @@ package dev.kilua.externals -/** - * JavaScript Object class - */ -public expect class Object +import web.JsAny /** * Return empty JS Object */ -public expect fun obj(): Object +public expect fun obj(): JsAny /** * Operator to set property on JS Object */ -public expect operator fun Object.set(key: String, value: Object) +public expect operator fun JsAny.set(key: String, value: JsAny) /** * Operator to get property from JS Object */ -public expect operator fun Object.get(key: String): Object? +public expect operator fun JsAny.get(key: String): JsAny? /** * Get the list of keys from JS Object */ -public expect fun keys(o: Object): List +public expect fun keys(o: JsAny): List /** * Copies all properties from source object to target object */ -public expect fun assign(target: Object, source: Object) - -/** - * Convert String value to JS Object for JS/Wasm interop - */ -public expect fun String.toJsObject(): Object - -/** - * Convert Boolean value to JS Object for JS/Wasm interop - */ -public expect fun Boolean.toJsObject(): Object - -/** - * Convert Int value to JS Object for JS/Wasm interop - */ -public expect fun Int.toJsObject(): Object - -/** - * Convert Double value to JS Object for JS/Wasm interop - */ -public expect fun Double.toJsObject(): Object +public expect fun assign(target: JsAny, source: JsAny) diff --git a/kilua/src/commonMain/kotlin/dev/kilua/externals/SplitJs.kt b/kilua/src/commonMain/kotlin/dev/kilua/externals/SplitJs.kt index 97b47adf0a..ac4a7354c6 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/externals/SplitJs.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/externals/SplitJs.kt @@ -24,7 +24,7 @@ package dev.kilua.externals import dev.kilua.panel.Dir import dev.kilua.panel.GutterAlign -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * Split.js native instance. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/Form.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/Form.kt index 89676ab257..03c1d4b888 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/Form.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/Form.kt @@ -30,12 +30,10 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import dev.kilua.externals.Object import dev.kilua.externals.get import dev.kilua.externals.keys import dev.kilua.externals.obj import dev.kilua.externals.set -import dev.kilua.externals.toJsObject import dev.kilua.html.Tag import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.state.WithStateFlow @@ -61,7 +59,11 @@ import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.overwriteWith import kotlinx.serialization.serializer -import org.w3c.dom.HTMLFormElement +import web.JsAny +import web.dom.HTMLFormElement +import web.toJsBoolean +import web.toJsNumber +import web.toJsString import kotlin.reflect.KClass import kotlin.reflect.KProperty1 @@ -212,9 +214,9 @@ public open class Form( /** * Helper functions to convert data between the form and the model. */ - protected val mapToObjectConverter: ((Map) -> Object)? + protected val mapToObjectConverter: ((Map) -> JsAny)? protected val mapToClassConverter: ((Map) -> K)? - protected val classToObjectConverter: ((K) -> Object)? + protected val classToObjectConverter: ((K) -> JsAny)? /** * Keeps all form controls. @@ -308,23 +310,23 @@ public open class Form( map.forEach { (key, value) -> when (value) { is LocalDate, is LocalDateTime, is LocalTime -> { - json[key] = value.toString().toJsObject() + json[key] = value.toString().toJsString() } is String -> { - json[key] = value.toJsObject() + json[key] = value.toJsString() } is Boolean -> { - json[key] = value.toJsObject() + json[key] = value.toJsBoolean() } is Int -> { - json[key] = value.toJsObject() + json[key] = value.toJsNumber() } is Double -> { - json[key] = value.toJsObject() + json[key] = value.toJsNumber() } is List<*> -> { @@ -361,7 +363,7 @@ public open class Form( * Sets the values of all the controls from the single json Object. * @param json data model as Object */ - protected open fun setDataInternalFromSingleObject(json: Object, key: String) { + protected open fun setDataInternalFromSingleObject(json: JsAny, key: String) { val jsonValue = json[key] if (jsonValue != null) { when (val formField = fields[key]) { @@ -397,7 +399,7 @@ public open class Form( * Sets the values of all the controls from the json Object. * @param json data model as Object */ - protected open fun setDataInternalFromObject(json: Object) { + protected open fun setDataInternalFromObject(json: JsAny) { val keys = keys(json) for (key in keys) { setDataInternalFromSingleObject(json, key) @@ -492,7 +494,7 @@ public open class Form( * Returns current data model as JS object. * @return data model as JS object */ - public open fun getDataJson(): Object { + public open fun getDataJson(): JsAny { return if (serializer != null) { JSON.parse( jsonInstance!!.encodeToString( diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/Input.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/Input.kt index 79c2628d60..26b8f3241e 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/Input.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/Input.kt @@ -29,8 +29,8 @@ import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.state.WithStateFlow import dev.kilua.state.WithStateFlowDelegate import dev.kilua.state.WithStateFlowDelegateImpl -import org.w3c.dom.HTMLInputElement -import org.w3c.dom.events.Event +import web.dom.HTMLInputElement +import web.dom.events.Event /** * Base abstract class for HTML input components. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/check/AbstractCheck.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/check/AbstractCheck.kt index 1890ba242b..8828bb654a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/check/AbstractCheck.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/check/AbstractCheck.kt @@ -31,8 +31,8 @@ import dev.kilua.state.WithStateFlow import dev.kilua.state.WithStateFlowDelegate import dev.kilua.state.WithStateFlowDelegateImpl import dev.kilua.utils.toKebabCase -import org.w3c.dom.HTMLInputElement -import org.w3c.dom.events.Event +import web.dom.HTMLInputElement +import web.dom.events.Event /** * Type of the check input control (checkbox or radiobutton). diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/check/TriStateCheckBox.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/check/TriStateCheckBox.kt index 0d1245f5b6..0440e34996 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/check/TriStateCheckBox.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/check/TriStateCheckBox.kt @@ -35,8 +35,8 @@ import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.state.WithStateFlow import dev.kilua.state.WithStateFlowDelegate import dev.kilua.state.WithStateFlowDelegateImpl -import org.w3c.dom.HTMLInputElement -import org.w3c.dom.events.Event +import web.dom.HTMLInputElement +import web.dom.events.Event /** * Tri-state CheckBox input component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/number/Numeric.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/number/Numeric.kt index d2d84a31c4..302909cb32 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/number/Numeric.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/number/Numeric.kt @@ -35,7 +35,7 @@ import dev.kilua.i18n.DefaultLocale import dev.kilua.i18n.Locale import dev.kilua.utils.toFixedNoRound import dev.kilua.utils.toLocaleString -import org.w3c.dom.events.Event +import web.dom.events.Event internal const val NUMERIC_DEFAULT_DECIMALS = 2 internal const val NUMERIC_MAX_LENGTH = 14 diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/select/Select.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/select/Select.kt index b880451e53..7c5493e9ee 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/select/Select.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/select/Select.kt @@ -40,7 +40,7 @@ import dev.kilua.state.WithStateFlowDelegate import dev.kilua.state.WithStateFlowDelegateImpl import dev.kilua.utils.StringPair import dev.kilua.utils.nativeListOf -import org.w3c.dom.HTMLSelectElement +import web.dom.HTMLSelectElement /** * The special value for an empty option. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/text/TextArea.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/text/TextArea.kt index 53b2d4469d..163454c608 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/text/TextArea.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/text/TextArea.kt @@ -35,7 +35,7 @@ import dev.kilua.state.WithStateFlow import dev.kilua.state.WithStateFlowDelegate import dev.kilua.state.WithStateFlowDelegateImpl import dev.kilua.utils.toKebabCase -import org.w3c.dom.HTMLTextAreaElement +import web.dom.HTMLTextAreaElement /** * Textarea wrap types. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/form/upload/Upload.kt b/kilua/src/commonMain/kotlin/dev/kilua/form/upload/Upload.kt index 49c1d34845..bd8619fbf8 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/form/upload/Upload.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/form/upload/Upload.kt @@ -35,8 +35,9 @@ import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.types.KFile import dev.kilua.utils.getContent import dev.kilua.utils.toKebabCase -import org.w3c.dom.asList -import org.w3c.files.File +import web.dom.asList +import web.files.File +import web.toInt /** * File upload input capture mode values diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Abbr.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Abbr.kt index bcb70bcdad..4562373661 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Abbr.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Abbr.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Abbr component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Address.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Address.kt index 4502024d3f..02ca45d0b4 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Address.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Address.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Address component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Area.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Area.kt index e127da5f49..660c2d02cc 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Area.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Area.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLAreaElement +import web.dom.HTMLAreaElement /** * HTML Area component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Article.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Article.kt index 4d43ef6b59..0bb21cba9c 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Article.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Article.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Article component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Aside.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Aside.kt index 4cad1de36b..83138e8a09 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Aside.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Aside.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Aside component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Audio.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Audio.kt index c629a0f9b6..171e0fbd63 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Audio.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Audio.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLAudioElement +import web.dom.HTMLAudioElement /** * HTML Audio component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/B.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/B.kt index ecebe44155..84c4d3ed3f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/B.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/B.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML B component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Base.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Base.kt index 03698cf93a..538c0ff6e3 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Base.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Base.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLBaseElement +import web.dom.HTMLBaseElement /** * HTML Base component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Bdi.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Bdi.kt index 3cc86ec24b..89cf464af7 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Bdi.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Bdi.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Bdi component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Bdo.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Bdo.kt index 33fddbfd2f..5e594b70e2 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Bdo.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Bdo.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Bdo component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Blockquote.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Blockquote.kt index 9a350a4c45..c5e5642137 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Blockquote.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Blockquote.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLQuoteElement +import web.dom.HTMLQuoteElement /** * HTML Blockquote component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Body.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Body.kt index fbe423d015..55491c753a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Body.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Body.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLBodyElement +import web.dom.HTMLBodyElement /** * HTML Body component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Br.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Br.kt index 7110fa8241..dfa45e4649 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Br.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Br.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLBRElement +import web.dom.HTMLBRElement /** * HTML Br component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Button.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Button.kt index 6f4fb21663..7736910474 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Button.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Button.kt @@ -31,8 +31,8 @@ import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.utils.rem import dev.kilua.utils.toKebabCase -import org.w3c.dom.HTMLButtonElement -import org.w3c.dom.events.MouseEvent +import web.dom.HTMLButtonElement +import web.dom.events.MouseEvent /** * Button types. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Canvas.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Canvas.kt index 2cc9f53933..390911bf6c 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Canvas.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Canvas.kt @@ -30,8 +30,8 @@ import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.utils.cast -import org.w3c.dom.CanvasRenderingContext2D -import org.w3c.dom.HTMLCanvasElement +import web.dom.CanvasRenderingContext2D +import web.dom.HTMLCanvasElement /** * HTML Canvas component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Caption.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Caption.kt index dc6df1a16b..092a4b6aa4 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Caption.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Caption.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Caption component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Cite.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Cite.kt index 2a81e07834..41f349c493 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Cite.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Cite.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLQuoteElement +import web.dom.HTMLQuoteElement /** * HTML Cite component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Code.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Code.kt index 454e362bcf..53d66f27d5 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Code.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Code.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Code component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Col.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Col.kt index 12be4fee68..746ef3ca5a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Col.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Col.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Col component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Colgroup.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Colgroup.kt index 1e7e70d513..6850778796 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Colgroup.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Colgroup.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Colgroup component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/CommentNode.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/CommentNode.kt index 0467a3b034..829d2a1d2a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/CommentNode.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/CommentNode.kt @@ -29,7 +29,8 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.core.SafeDomFactory -import org.w3c.dom.Comment +import dev.kilua.utils.cast +import web.dom.Comment /** * HTML comment node component. @@ -43,7 +44,7 @@ public open class CommentNode( * The DOM comment node. */ public open val comment: Comment by lazy { - if (renderConfig.isDom) node.unsafeCast() else { + if (renderConfig.isDom) node.cast() else { error("Can't use DOM node with the current render configuration") } } diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Data.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Data.kt index 27b4de6a49..dfde6e91c7 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Data.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Data.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLDataElement +import web.dom.HTMLDataElement /** * HTML Data component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Datalist.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Datalist.kt index c0649bbb40..e82c774b7e 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Datalist.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Datalist.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLDataListElement +import web.dom.HTMLDataListElement /** * HTML Datalist component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Dd.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Dd.kt index f96ff162ad..23cbc95491 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Dd.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Dd.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Dd component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Del.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Del.kt index 0bca235ab6..0b1bb43622 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Del.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Del.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Del component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Details.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Details.kt index 6652444e2e..65d6f5099d 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Details.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Details.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLDetailsElement +import web.dom.HTMLDetailsElement /** * HTML Details component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Dfn.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Dfn.kt index 4f93b907c1..06615c7246 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Dfn.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Dfn.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Dfn component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Dialog.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Dialog.kt index 66b7f822bc..cd27ca15b1 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Dialog.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Dialog.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLDialogElement +import web.dom.HTMLDialogElement /** * HTML Dialog component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Div.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Div.kt index feb553ab4f..f2cc460ff0 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Div.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Div.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLDivElement +import web.dom.HTMLDivElement /** * HTML Div component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Dl.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Dl.kt index 27a35336a9..948ed7c77d 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Dl.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Dl.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLDListElement +import web.dom.HTMLDListElement /** * HTML Dl component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Dt.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Dt.kt index 8a9506d326..979101da25 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Dt.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Dt.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Dt component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Em.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Em.kt index 4cb760398b..2251cc0725 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Em.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Em.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Em component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Embed.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Embed.kt index b8deaf8090..d40816fc9f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Embed.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Embed.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLEmbedElement +import web.dom.HTMLEmbedElement /** * HTML Embed component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Fieldset.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Fieldset.kt index bd7c459858..7bd6743045 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Fieldset.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Fieldset.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLFieldSetElement +import web.dom.HTMLFieldSetElement /** * HTML Fieldset component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Figcaption.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Figcaption.kt index bfd7e469b1..8e1ba351c7 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Figcaption.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Figcaption.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Figcaption component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Figure.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Figure.kt index 2cc3617de2..717df1820a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Figure.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Figure.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Figure component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Footer.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Footer.kt index a87d8ac3b9..85903dd044 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Footer.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Footer.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Footer component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/H1.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/H1.kt index 6fba4ccd28..b34d076645 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/H1.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/H1.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHeadingElement +import web.dom.HTMLHeadingElement /** * HTML H1 component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/H2.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/H2.kt index 3681ecb1b6..6d7389c2d6 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/H2.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/H2.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHeadingElement +import web.dom.HTMLHeadingElement /** * HTML H2 component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/H3.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/H3.kt index cdccf43ed3..8f878bc51a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/H3.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/H3.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHeadingElement +import web.dom.HTMLHeadingElement /** * HTML H3 component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/H4.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/H4.kt index 7042bdbd20..78eb924128 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/H4.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/H4.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHeadingElement +import web.dom.HTMLHeadingElement /** * HTML H4 component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/H5.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/H5.kt index 8d8d7cd3ca..a4e18e7f4e 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/H5.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/H5.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHeadingElement +import web.dom.HTMLHeadingElement /** * HTML H5 component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/H6.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/H6.kt index 707feff142..f5adfaedb9 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/H6.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/H6.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHeadingElement +import web.dom.HTMLHeadingElement /** * HTML H6 component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Head.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Head.kt index 3b1e8e99a0..3dd31a1573 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Head.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Head.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHeadElement +import web.dom.HTMLHeadElement /** * HTML Head component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Header.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Header.kt index b8f06dc557..5695e28dba 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Header.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Header.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Header component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Hgroup.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Hgroup.kt index 75f2d29e9a..bf44e02037 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Hgroup.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Hgroup.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Hgroup component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Hr.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Hr.kt index 2889b00ced..255ca683c5 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Hr.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Hr.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHRElement +import web.dom.HTMLHRElement /** * HTML Hr component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Html.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Html.kt index caf0e427b6..711a63e484 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Html.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Html.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLHtmlElement +import web.dom.HTMLHtmlElement /** * HTML Html component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/I.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/I.kt index df35b3f694..65b61f1f43 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/I.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/I.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML I component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Iframe.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Iframe.kt index 765598a3bb..3d90a6790a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Iframe.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Iframe.kt @@ -30,7 +30,7 @@ import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.utils.toKebabCase -import org.w3c.dom.HTMLIFrameElement +import web.dom.HTMLIFrameElement /** * Iframe sandbox options. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Img.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Img.kt index 1122264a6f..ad15293d81 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Img.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Img.kt @@ -29,7 +29,7 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder -import org.w3c.dom.HTMLImageElement +import web.dom.HTMLImageElement /** * HTML Img component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Ins.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Ins.kt index c33737d228..50db356d8a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Ins.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Ins.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Ins component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Kbd.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Kbd.kt index 7540024e7b..ae8d8a9c5c 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Kbd.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Kbd.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Kbd component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Label.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Label.kt index fc77e79116..dba989e6d0 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Label.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Label.kt @@ -29,7 +29,7 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder -import org.w3c.dom.HTMLLabelElement +import web.dom.HTMLLabelElement /** * HTML Label component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Legend.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Legend.kt index 529e946440..9817851665 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Legend.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Legend.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLLegendElement +import web.dom.HTMLLegendElement /** * HTML Legend component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Li.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Li.kt index a8723489fe..afc493251e 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Li.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Li.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLLIElement +import web.dom.HTMLLIElement /** * HTML Li component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Link.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Link.kt index 40cf92818c..cf822b5e4b 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Link.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Link.kt @@ -31,7 +31,7 @@ import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.utils.rem -import org.w3c.dom.HTMLAnchorElement +import web.dom.HTMLAnchorElement /** * HTML A component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/LinkTag.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/LinkTag.kt index f28e091bf0..7018e9bb67 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/LinkTag.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/LinkTag.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLLinkElement +import web.dom.HTMLLinkElement /** * HTML Link component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Main.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Main.kt index 2e8f46ba60..5dca7caf7f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Main.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Main.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Main component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Map.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Map.kt index 64fe524de8..c42575c292 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Map.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Map.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLMapElement +import web.dom.HTMLMapElement /** * HTML Map component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Mark.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Mark.kt index b05435f322..d5200c88f7 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Mark.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Mark.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Mark component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Menu.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Menu.kt index f72741edef..c26a2a2742 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Menu.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Menu.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLMenuElement +import web.dom.HTMLMenuElement /** * HTML Menu component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Meta.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Meta.kt index a9a3e2cb78..9b60f6358c 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Meta.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Meta.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLMetaElement +import web.dom.HTMLMetaElement /** * HTML Meta component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Meter.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Meter.kt index 8d342f8c12..c9caa7370e 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Meter.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Meter.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLMeterElement +import web.dom.HTMLMeterElement /** * HTML Meter component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Nav.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Nav.kt index 3e46d93781..f98492244c 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Nav.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Nav.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Nav component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Noscript.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Noscript.kt index 92aadc283f..3511d38c17 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Noscript.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Noscript.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Noscript component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/ObjectTag.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/ObjectTag.kt index 4b19d7f58c..e06e6347db 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/ObjectTag.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/ObjectTag.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLObjectElement +import web.dom.HTMLObjectElement /** * Object tag component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Ol.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Ol.kt index 642578a3a1..9b37150989 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Ol.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Ol.kt @@ -29,7 +29,7 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder -import org.w3c.dom.HTMLOListElement +import web.dom.HTMLOListElement /** * Numbered list types. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Optgroup.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Optgroup.kt index 3f2649f696..9cf0f27911 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Optgroup.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Optgroup.kt @@ -29,7 +29,7 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder -import org.w3c.dom.HTMLOptGroupElement +import web.dom.HTMLOptGroupElement /** * HTML Optgroup component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Option.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Option.kt index 902e1d6318..7572e9bc5f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Option.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Option.kt @@ -29,7 +29,7 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder -import org.w3c.dom.HTMLOptionElement +import web.dom.HTMLOptionElement /** * HTML Option component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Output.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Output.kt index 79549473f2..2b31d2cb30 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Output.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Output.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLOutputElement +import web.dom.HTMLOutputElement /** * HTML Output component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/P.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/P.kt index fdde844c2b..c4cc3e9399 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/P.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/P.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLParagraphElement +import web.dom.HTMLParagraphElement /** * HTML P component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Picture.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Picture.kt index 0fc3018e85..12a9d14d19 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Picture.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Picture.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLPictureElement +import web.dom.HTMLPictureElement /** * HTML Picture component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Portal.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Portal.kt index e83f8942ab..1fac170efb 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Portal.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Portal.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Portal component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Pre.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Pre.kt index b58c0c6552..c1909bb86c 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Pre.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Pre.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLPreElement +import web.dom.HTMLPreElement /** * HTML Pre component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Progress.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Progress.kt index d066b78891..3f78eecdcc 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Progress.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Progress.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLProgressElement +import web.dom.HTMLProgressElement /** * HTML Progress component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Q.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Q.kt index 73bade38cb..61793cc654 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Q.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Q.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLQuoteElement +import web.dom.HTMLQuoteElement /** * HTML Q component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Rp.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Rp.kt index f0a904c320..9d7dbdeae7 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Rp.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Rp.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Rp component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Rt.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Rt.kt index 488d1fad38..89b0a880c5 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Rt.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Rt.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Rt component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Ruby.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Ruby.kt index 89f091d9dd..91f0d5c19d 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Ruby.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Ruby.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Ruby component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/S.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/S.kt index 2cc8f1e2a2..52e670303f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/S.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/S.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML S component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Samp.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Samp.kt index 3c8c90330b..4ddee64522 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Samp.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Samp.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Samp component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Script.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Script.kt index 9ebc2c6880..c920220ffa 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Script.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Script.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLScriptElement +import web.dom.HTMLScriptElement /** * HTML Script component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Search.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Search.kt index ad53f09767..4d789bfee1 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Search.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Search.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Search component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Section.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Section.kt index a822880b1c..b4693635d2 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Section.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Section.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Section component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Slot.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Slot.kt index 11f09e7617..78cababc33 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Slot.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Slot.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLSlotElement +import web.dom.HTMLSlotElement /** * HTML Slot component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Small.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Small.kt index 65a6f2f82e..488e5b4d98 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Small.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Small.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Small component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Source.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Source.kt index 3ce80e5f8f..4ad4aa2396 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Source.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Source.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLSourceElement +import web.dom.HTMLSourceElement /** * HTML Source component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Span.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Span.kt index 4ed623a749..3ff852e5f3 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Span.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Span.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLSpanElement +import web.dom.HTMLSpanElement /** * HTML Span component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Strong.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Strong.kt index f67d316bb3..91cba5f989 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Strong.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Strong.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Strong component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Sub.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Sub.kt index 7a038eaf94..3c280b7adb 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Sub.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Sub.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Sub component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Summary.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Summary.kt index aa880db2fa..eead8dc92d 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Summary.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Summary.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Summary component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Sup.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Sup.kt index f4832d1e6f..a67f361c80 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Sup.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Sup.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Sup component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Table.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Table.kt index 9b7717200d..e3f16f5d5b 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Table.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Table.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTableElement +import web.dom.HTMLTableElement /** * HTML Table component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Tag.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Tag.kt index 9d4d1f32ca..a4bdbba069 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Tag.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Tag.kt @@ -50,7 +50,7 @@ import dev.kilua.utils.isDom import dev.kilua.utils.nativeListOf import dev.kilua.utils.renderAsCssStyle import dev.kilua.utils.renderAsHtmlAttributes -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * Base class for all HTML tags components. @@ -86,7 +86,7 @@ public open class Tag( * The DOM element of the current component. */ public val element: E by lazy { - if (renderConfig.isDom) node.unsafeCast() else { + if (renderConfig.isDom) node.cast() else { error("Can't use DOM element with the current render configuration") } } diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Tbody.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Tbody.kt index 4ab5d31063..aa42a9d4a0 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Tbody.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Tbody.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTableSectionElement +import web.dom.HTMLTableSectionElement /** * HTML Tbody component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Td.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Td.kt index a083d9cb81..98f0f8faa1 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Td.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Td.kt @@ -29,7 +29,7 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder -import org.w3c.dom.HTMLTableCellElement +import web.dom.HTMLTableCellElement /** * HTML Td component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Template.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Template.kt index d33782e86e..a82e5481d0 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Template.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Template.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTemplateElement +import web.dom.HTMLTemplateElement /** * HTML Template component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/TextNode.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/TextNode.kt index 89a99321d7..11d59e63dd 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/TextNode.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/TextNode.kt @@ -29,7 +29,8 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.core.SafeDomFactory -import org.w3c.dom.Text +import dev.kilua.utils.cast +import web.dom.Text /** * HTML text node component. @@ -43,7 +44,7 @@ public open class TextNode( * The DOM text node. */ public open val text: Text by lazy { - if (renderConfig.isDom) node.unsafeCast() else { + if (renderConfig.isDom) node.cast() else { error("Can't use DOM node with the current render configuration") } } diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Tfoot.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Tfoot.kt index 4b4efa0006..10f3a32a44 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Tfoot.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Tfoot.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTableSectionElement +import web.dom.HTMLTableSectionElement /** * HTML Tfoot component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Th.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Th.kt index de332c2160..1830878c78 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Th.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Th.kt @@ -30,7 +30,7 @@ import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.helpers.PropertyListBuilder import dev.kilua.utils.toKebabCase -import org.w3c.dom.HTMLTableCellElement +import web.dom.HTMLTableCellElement /** * Table header scopes. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Thead.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Thead.kt index f3be160b6f..791bed769f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Thead.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Thead.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTableSectionElement +import web.dom.HTMLTableSectionElement /** * HTML Thead component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Time.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Time.kt index 73bc937cda..bcc8e6169b 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Time.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Time.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTimeElement +import web.dom.HTMLTimeElement /** * HTML Time component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Title.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Title.kt index 7fcf3e614f..93757cc728 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Title.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Title.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTitleElement +import web.dom.HTMLTitleElement /** * HTML Title component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Tr.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Tr.kt index 4c0c02b655..99d38e9eeb 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Tr.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Tr.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTableRowElement +import web.dom.HTMLTableRowElement /** * HTML Tr component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Track.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Track.kt index 903c328495..b12b852bd6 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Track.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Track.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLTrackElement +import web.dom.HTMLTrackElement /** * HTML Track component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/U.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/U.kt index 752f44cc2d..748a2a17e7 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/U.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/U.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML U component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Ul.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Ul.kt index c426154c80..2abd88c20b 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Ul.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Ul.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLUListElement +import web.dom.HTMLUListElement /** * HTML Ul component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/VarTag.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/VarTag.kt index 56c5caf2d0..a89c6020b7 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/VarTag.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/VarTag.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * Var tag component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Video.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Video.kt index e2cb7f9184..9286e3376d 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Video.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Video.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLVideoElement +import web.dom.HTMLVideoElement /** * HTML Video component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/Wbr.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/Wbr.kt index 362ef1037c..dcf9f3b8e0 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/Wbr.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/Wbr.kt @@ -28,7 +28,7 @@ import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * HTML Wbr component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrs.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrs.kt index 636dd60fd2..1845fe8c2f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrs.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrs.kt @@ -22,7 +22,7 @@ package dev.kilua.html.helpers -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * Common tag attributes. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrsDelegate.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrsDelegate.kt index 157f65e7de..7b74f98e74 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrsDelegate.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagAttrsDelegate.kt @@ -24,7 +24,7 @@ package dev.kilua.html.helpers import dev.kilua.core.PropertyDelegate import dev.kilua.utils.nativeMapOf -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement import kotlin.collections.set /** diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDnd.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDnd.kt index 512bfee705..87d75d6bf9 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDnd.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDnd.kt @@ -23,8 +23,8 @@ package dev.kilua.html.helpers import androidx.compose.runtime.Composable -import org.w3c.dom.DragEvent -import org.w3c.dom.HTMLElement +import web.dom.DragEvent +import web.dom.HTMLElement /** * Common drag and drop methods. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDndDelegate.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDndDelegate.kt index 733679598c..4dbe9595d1 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDndDelegate.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagDndDelegate.kt @@ -26,8 +26,9 @@ import androidx.compose.runtime.Composable import dev.kilua.html.Tag import dev.kilua.utils.cast import dev.kilua.utils.size -import org.w3c.dom.DragEvent -import org.w3c.dom.HTMLElement +import web.dom.DragEvent +import web.dom.HTMLElement +import web.get /** * Common drag and drop methods delegate. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEvents.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEvents.kt index 7a03ca767c..2141df9209 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEvents.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEvents.kt @@ -23,12 +23,12 @@ package dev.kilua.html.helpers import androidx.compose.runtime.Composable -import org.w3c.dom.HTMLElement -import org.w3c.dom.events.Event -import org.w3c.dom.events.FocusEvent -import org.w3c.dom.events.InputEvent -import org.w3c.dom.events.KeyboardEvent -import org.w3c.dom.events.MouseEvent +import web.dom.HTMLElement +import web.dom.events.Event +import web.dom.events.FocusEvent +import web.dom.events.InputEvent +import web.dom.events.KeyboardEvent +import web.dom.events.MouseEvent /** * Common tag events. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsDelegate.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsDelegate.kt index 3d4e25119f..38c046fb4a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsDelegate.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsDelegate.kt @@ -28,12 +28,12 @@ import dev.kilua.externals.AbortController import dev.kilua.externals.buildAddEventListenerOptions import dev.kilua.utils.cast import dev.kilua.utils.nativeMapOf -import org.w3c.dom.HTMLElement -import org.w3c.dom.events.Event -import org.w3c.dom.events.FocusEvent -import org.w3c.dom.events.InputEvent -import org.w3c.dom.events.KeyboardEvent -import org.w3c.dom.events.MouseEvent +import web.dom.HTMLElement +import web.dom.events.Event +import web.dom.events.FocusEvent +import web.dom.events.InputEvent +import web.dom.events.KeyboardEvent +import web.dom.events.MouseEvent import kotlin.collections.component1 import kotlin.collections.component2 import kotlin.collections.set diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsSuspending.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsSuspending.kt index 660590b713..10faf157bd 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsSuspending.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagEventsSuspending.kt @@ -26,10 +26,10 @@ import androidx.compose.runtime.Composable import dev.kilua.KiluaScope import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch -import org.w3c.dom.HTMLElement -import org.w3c.dom.events.Event -import org.w3c.dom.events.InputEvent -import org.w3c.dom.events.MouseEvent +import web.dom.HTMLElement +import web.dom.events.Event +import web.dom.events.InputEvent +import web.dom.events.MouseEvent /** * An extension function for defining on click suspending event handlers (composable). diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyle.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyle.kt index 5b3b9e0eca..77e38cc156 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyle.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyle.kt @@ -24,7 +24,7 @@ package dev.kilua.html.helpers import dev.kilua.html.* -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement /** * Common tag CSS styles. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyleDelegate.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyleDelegate.kt index 960804723c..2f5b933f5f 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyleDelegate.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/helpers/TagStyleDelegate.kt @@ -27,7 +27,7 @@ import dev.kilua.core.PropertyDelegate import dev.kilua.html.* import dev.kilua.utils.cast import dev.kilua.utils.nativeMapOf -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement import kotlin.collections.Map public interface TagStyleDelegate : TagStyle { diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/style/CssStyle.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/style/CssStyle.kt index c639c2f823..5299227581 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/style/CssStyle.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/style/CssStyle.kt @@ -27,7 +27,7 @@ import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.remember import dev.kilua.html.helpers.TagStyle import dev.kilua.html.helpers.TagStyleDelegateImpl -import org.w3c.dom.HTMLStyleElement +import web.dom.HTMLStyleElement /** * An object with CSS properties. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/html/style/Style.kt b/kilua/src/commonMain/kotlin/dev/kilua/html/style/Style.kt index b102cc23dc..d824e9292a 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/html/style/Style.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/html/style/Style.kt @@ -29,7 +29,7 @@ import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig import dev.kilua.core.RenderConfig import dev.kilua.html.Tag -import org.w3c.dom.HTMLStyleElement +import web.dom.HTMLStyleElement /** * Internal HTML Style component. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/i18n/DefaultLocale.kt b/kilua/src/commonMain/kotlin/dev/kilua/i18n/DefaultLocale.kt index 08ba7d4665..a74f999926 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/i18n/DefaultLocale.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/i18n/DefaultLocale.kt @@ -24,7 +24,7 @@ package dev.kilua.i18n import dev.kilua.externals.Intl import dev.kilua.utils.isDom -import kotlinx.browser.window +import web.window /** * Auto-detected default locale. diff --git a/kilua/src/commonMain/kotlin/dev/kilua/panel/SplitPanel.kt b/kilua/src/commonMain/kotlin/dev/kilua/panel/SplitPanel.kt index ca220d37ab..2dfecf4e46 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/panel/SplitPanel.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/panel/SplitPanel.kt @@ -24,7 +24,10 @@ package dev.kilua.panel import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import dev.kilua.compose.ComponentNode import dev.kilua.core.ComponentBase import dev.kilua.core.DefaultRenderConfig @@ -38,7 +41,7 @@ import dev.kilua.html.Tag import dev.kilua.html.div import dev.kilua.utils.cast import dev.kilua.utils.toKebabCase -import org.w3c.dom.HTMLDivElement +import web.dom.HTMLDivElement import kotlin.math.ceil internal const val SPLIT_PANEL_DEFAULT_GUTTER_SIZE = 10 @@ -141,8 +144,8 @@ public open class SplitPanel( */ public var splitJsInstance: SplitJsInstance? = null - internal var first: @Composable (Div.() -> Unit)? = null - internal var second: @Composable (Div.() -> Unit)? = null + internal var first by mutableStateOf<@Composable (Div.() -> Unit)?>(null) + internal var second by mutableStateOf<@Composable (Div.() -> Unit)?>(null) init { internalCssClasses.add("splitpanel-$dir") diff --git a/kilua/src/commonMain/kotlin/dev/kilua/utils/File.kt b/kilua/src/commonMain/kotlin/dev/kilua/utils/File.kt index 354b2a369f..32f193bad4 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/utils/File.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/utils/File.kt @@ -23,8 +23,8 @@ package dev.kilua.utils import kotlinx.coroutines.suspendCancellableCoroutine -import org.w3c.files.File -import org.w3c.files.FileReader +import web.files.File +import web.files.FileReader import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException diff --git a/kilua/src/commonMain/kotlin/dev/kilua/utils/JSON.kt b/kilua/src/commonMain/kotlin/dev/kilua/utils/JSON.kt index 851f196929..4ac369bc6e 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/utils/JSON.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/utils/JSON.kt @@ -22,7 +22,7 @@ package dev.kilua.utils -import dev.kilua.externals.Object +import web.JsAny /** * JavaScript JSON object wrapper for JS/Wasm interop. @@ -31,10 +31,10 @@ public expect object JSON { /** * Convert a given object to a JSON string. */ - public fun stringify(o: Object?): String + public fun stringify(o: JsAny?): String /** * Parse JSON string to an object. */ - public fun parse(text: String): T + public fun parse(text: String): T } diff --git a/kilua/src/commonMain/kotlin/dev/kilua/utils/JavaScript.kt b/kilua/src/commonMain/kotlin/dev/kilua/utils/JavaScript.kt index f9a335a632..9418aba3f9 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/utils/JavaScript.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/utils/JavaScript.kt @@ -22,7 +22,7 @@ package dev.kilua.utils -import dev.kilua.externals.Object +import web.JsAny /** * Utility extension function for casting. Uses unsafeCast() on JS. @@ -32,6 +32,15 @@ public expect inline fun Any?.cast(): T /** * Helper annotation for JS/Wasm compatibility. */ +@Retention(AnnotationRetention.BINARY) +@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE) +public expect annotation class JsModule(val import: String) + +/** + * Helper annotation for JS/Wasm compatibility. + */ +@Retention(AnnotationRetention.BINARY) +@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE) public expect annotation class JsNonModule() /** @@ -45,9 +54,4 @@ public inline fun useModule(@Suppress("UNUSED_PARAMETER") module: T) { /** * Helper function for JS/Wasm compatibility. */ -public expect fun size(array: Object): Int - -/** - * Helper function for JS/Wasm compatibility. - */ -public expect fun jsString(value: String): Object +public expect fun size(array: JsAny): Int diff --git a/kilua/src/commonMain/kotlin/dev/kilua/utils/Serialization.kt b/kilua/src/commonMain/kotlin/dev/kilua/utils/Serialization.kt index fd79d64088..0fa1acf776 100644 --- a/kilua/src/commonMain/kotlin/dev/kilua/utils/Serialization.kt +++ b/kilua/src/commonMain/kotlin/dev/kilua/utils/Serialization.kt @@ -21,10 +21,10 @@ */ package dev.kilua.utils -import dev.kilua.externals.Object import kotlinx.serialization.SerializationStrategy import kotlinx.serialization.json.Json import kotlinx.serialization.serializer +import web.JsAny /** * JSON serialization utility functions @@ -39,7 +39,7 @@ public object Serialization { /** * An extension function to convert Serializable object to JS object */ - public inline fun T.toObj(): Object { + public inline fun T.toObj(): JsAny { return this.toObj(serializer()) } @@ -47,7 +47,7 @@ public object Serialization { * An extension function to convert Serializable object to JS object * @param serializer a serializer for T */ - public fun T.toObj(serializer: SerializationStrategy): Object { + public fun T.toObj(serializer: SerializationStrategy): JsAny { return JSON.parse((customConfiguration ?: Json).encodeToString(serializer, this)) } } diff --git a/kilua/src/commonTest/kotlin/dev/kilua/compose/ComponentApplierSpec.kt b/kilua/src/commonTest/kotlin/dev/kilua/compose/ComponentApplierSpec.kt index 653fcd3d95..be753309df 100644 --- a/kilua/src/commonTest/kotlin/dev/kilua/compose/ComponentApplierSpec.kt +++ b/kilua/src/commonTest/kotlin/dev/kilua/compose/ComponentApplierSpec.kt @@ -31,7 +31,7 @@ import dev.kilua.core.Component import dev.kilua.core.StringRenderConfig import dev.kilua.core.SafeDomFactory import dev.kilua.html.Tag -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement import kotlin.test.Test import kotlin.test.assertEquals diff --git a/kilua/src/commonTest/kotlin/dev/kilua/html/CanvasSpec.kt b/kilua/src/commonTest/kotlin/dev/kilua/html/CanvasSpec.kt index fb81216943..589ad8bbb9 100644 --- a/kilua/src/commonTest/kotlin/dev/kilua/html/CanvasSpec.kt +++ b/kilua/src/commonTest/kotlin/dev/kilua/html/CanvasSpec.kt @@ -22,11 +22,11 @@ package dev.kilua.html -import dev.kilua.test.DomSpec import dev.kilua.compose.root +import dev.kilua.test.DomSpec import dev.kilua.test.normalizeHtml -import dev.kilua.utils.jsString -import org.w3c.dom.ImageData +import web.dom.ImageData +import web.toJsString import kotlin.test.Test import kotlin.test.assertEquals @@ -56,7 +56,7 @@ class CanvasSpec : DomSpec { canvas(300, 200) { context2D?.let { it.beginPath() - it.strokeStyle = jsString("black") + it.strokeStyle = "black".toJsString() it.moveTo(0.0, 0.0) it.lineTo(100.0, 100.0) it.stroke() diff --git a/kilua/src/jsMain/kotlin/dev/kilua/Coroutines.js.kt b/kilua/src/jsMain/kotlin/dev/kilua/Coroutines.js.kt new file mode 100644 index 0000000000..ab8680b3ad --- /dev/null +++ b/kilua/src/jsMain/kotlin/dev/kilua/Coroutines.js.kt @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.kilua + +import kotlinx.coroutines.Deferred +import web.JsAny +import web.Promise +import kotlinx.coroutines.asPromise as asPromiseCrt + +public actual fun Deferred.asPromise(): Promise { + return this.asPromiseCrt().unsafeCast>() +} diff --git a/kilua/src/jsMain/kotlin/dev/kilua/externals/Event.js.kt b/kilua/src/jsMain/kotlin/dev/kilua/externals/Event.js.kt index 05924170e7..a68865f7f4 100644 --- a/kilua/src/jsMain/kotlin/dev/kilua/externals/Event.js.kt +++ b/kilua/src/jsMain/kotlin/dev/kilua/externals/Event.js.kt @@ -22,8 +22,9 @@ package dev.kilua.externals -import org.w3c.dom.AddEventListenerOptions -import org.w3c.dom.CustomEventInit +import web.JsAny +import web.dom.AddEventListenerOptions +import web.dom.CustomEventInit public actual fun buildAddEventListenerOptions(signal: AbortSignal): AddEventListenerOptions { return obj { @@ -31,7 +32,7 @@ public actual fun buildAddEventListenerOptions(signal: AbortSignal): AddEventLis } } -public actual fun buildCustomEventInit(detail: Object?): CustomEventInit { +public actual fun buildCustomEventInit(detail: JsAny?): CustomEventInit { return obj { if (detail != null) this.detail = detail } diff --git a/kilua/src/jsMain/kotlin/dev/kilua/externals/NodeJsDom.js.kt b/kilua/src/jsMain/kotlin/dev/kilua/externals/NodeJsDom.js.kt index 8c2471833f..91e7395027 100644 --- a/kilua/src/jsMain/kotlin/dev/kilua/externals/NodeJsDom.js.kt +++ b/kilua/src/jsMain/kotlin/dev/kilua/externals/NodeJsDom.js.kt @@ -23,9 +23,9 @@ package dev.kilua.externals -import org.w3c.dom.Comment -import org.w3c.dom.Element -import org.w3c.dom.Text +import web.dom.Comment +import web.dom.Element +import web.dom.Text internal actual external fun nodeJsCreateElement(): Element internal actual external fun nodeJsCreateText(): Text diff --git a/kilua/src/jsMain/kotlin/dev/kilua/externals/Object.js.kt b/kilua/src/jsMain/kotlin/dev/kilua/externals/Object.js.kt index 0856df0cba..15de8ee36d 100644 --- a/kilua/src/jsMain/kotlin/dev/kilua/externals/Object.js.kt +++ b/kilua/src/jsMain/kotlin/dev/kilua/externals/Object.js.kt @@ -23,10 +23,10 @@ package dev.kilua.externals -public actual external class Object +import web.JsAny @Suppress("NOTHING_TO_INLINE", "UnsafeCastFromDynamic") -public actual inline fun obj(): Object { +public actual inline fun obj(): JsAny { return js("{}") } @@ -48,7 +48,7 @@ public inline fun obj(noinline init: dynamic.() -> Unit): dynamic { /** * Operator to set property on JS Object */ -public actual operator fun Object.set(key: String, value: Object) { +public actual operator fun JsAny.set(key: String, value: JsAny) { this.asDynamic()[key] = value } @@ -56,21 +56,21 @@ public actual operator fun Object.set(key: String, value: Object) { * Operator to get property from JS Object */ @Suppress("UnsafeCastFromDynamic") -public actual operator fun Object.get(key: String): Object? { +public actual operator fun JsAny.get(key: String): JsAny? { return this.asDynamic()[key] } /** * Get the list of keys from JS Object */ -public actual fun keys(o: Object): List { +public actual fun keys(o: JsAny): List { return js("Object").keys(o).unsafeCast>().toList() } /** * Copies all properties from source object to the target object */ -public actual fun assign(target: Object, source: Object) { +public actual fun assign(target: JsAny, source: JsAny) { js("Object").assign(target, source) } @@ -85,31 +85,3 @@ public external fun delete(p: dynamic): Boolean public fun delete(thing: dynamic, key: String) { delete(thing[key]) } - -/** - * Convert String value to JS Object for JS/Wasm interop - */ -public actual fun String.toJsObject(): Object { - return this.unsafeCast() -} - -/** - * Convert Boolean value to JS Object for JS/Wasm interop - */ -public actual fun Boolean.toJsObject(): Object { - return this.unsafeCast() -} - -/** - * Convert Int value to JS Object for JS/Wasm interop - */ -public actual fun Int.toJsObject(): Object { - return this.unsafeCast() -} - -/** - * Convert Double value to JS Object for JS/Wasm interop - */ -public actual fun Double.toJsObject(): Object { - return this.unsafeCast() -} diff --git a/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.js.kt b/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.js.kt index 8617ce009c..014f65ff21 100644 --- a/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.js.kt +++ b/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.js.kt @@ -24,7 +24,7 @@ package dev.kilua.externals -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement internal external class SplitJsOptionsExt { var sizes: Array diff --git a/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.kt b/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.kt index 2444275ffa..7e70428ff6 100644 --- a/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.kt +++ b/kilua/src/jsMain/kotlin/dev/kilua/externals/SplitJs.kt @@ -23,7 +23,7 @@ package dev.kilua.externals import dev.kilua.panel.Dir -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement internal actual fun splitJs(elements: List, options: SplitJsOptions): SplitJsInstance { val splitJsDirection = if (options.direction == Dir.Horizontal) "vertical" else "horizontal" diff --git a/kilua/src/jsMain/kotlin/dev/kilua/utils/JSON.kt b/kilua/src/jsMain/kotlin/dev/kilua/utils/JSON.kt index e3cd309d2b..7036d0d447 100644 --- a/kilua/src/jsMain/kotlin/dev/kilua/utils/JSON.kt +++ b/kilua/src/jsMain/kotlin/dev/kilua/utils/JSON.kt @@ -22,14 +22,14 @@ package dev.kilua.utils -import dev.kilua.externals.Object +import web.JsAny public actual object JSON { - public actual fun stringify(o: Object?): String { + public actual fun stringify(o: JsAny?): String { return kotlin.js.JSON.stringify(o) } - public actual fun parse(text: String): T { + public actual fun parse(text: String): T { return kotlin.js.JSON.parse(text) } } diff --git a/kilua/src/jsMain/kotlin/dev/kilua/utils/JavaScript.js.kt b/kilua/src/jsMain/kotlin/dev/kilua/utils/JavaScript.js.kt index 20c7538cf9..f6682400b1 100644 --- a/kilua/src/jsMain/kotlin/dev/kilua/utils/JavaScript.js.kt +++ b/kilua/src/jsMain/kotlin/dev/kilua/utils/JavaScript.js.kt @@ -22,12 +22,10 @@ package dev.kilua.utils -import dev.kilua.externals.Object +import web.JsAny -public actual typealias JsNonModule = kotlin.js.JsNonModule +public actual typealias JsModule = kotlin.js.JsModule -public actual fun size(array: Object): Int = array.cast>().size +public actual typealias JsNonModule = kotlin.js.JsNonModule -public actual fun jsString(value: String): Object { - return value.unsafeCast() -} +public actual fun size(array: JsAny): Int = array.unsafeCast>().size diff --git a/kilua/src/wasmJsMain/kotlin/dev/kilua/Coroutines.wasmJs.kt b/kilua/src/wasmJsMain/kotlin/dev/kilua/Coroutines.wasmJs.kt new file mode 100644 index 0000000000..4c414e2ae6 --- /dev/null +++ b/kilua/src/wasmJsMain/kotlin/dev/kilua/Coroutines.wasmJs.kt @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.kilua + +import dev.kilua.utils.cast +import kotlinx.coroutines.Deferred +import web.JsAny +import web.Promise +import kotlinx.coroutines.asPromise as asPromiseCrt + +public actual fun Deferred.asPromise(): Promise { + return this.asPromiseCrt().cast() +} diff --git a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Event.wasmJs.kt b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Event.wasmJs.kt index 57435f7cc5..e21a37a954 100644 --- a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Event.wasmJs.kt +++ b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Event.wasmJs.kt @@ -22,8 +22,9 @@ package dev.kilua.externals -import org.w3c.dom.AddEventListenerOptions -import org.w3c.dom.CustomEventInit +import web.JsAny +import web.dom.AddEventListenerOptions +import web.dom.CustomEventInit public actual fun buildAddEventListenerOptions(signal: AbortSignal): AddEventListenerOptions { return buildAddEventListenerOptionsInternal(signal) @@ -32,7 +33,7 @@ public actual fun buildAddEventListenerOptions(signal: AbortSignal): AddEventLis @JsFun("(signal) => ({ 'signal': signal })") internal external fun buildAddEventListenerOptionsInternal(signal: AbortSignal): AddEventListenerOptions -public actual fun buildCustomEventInit(detail: Object?): CustomEventInit { +public actual fun buildCustomEventInit(detail: JsAny?): CustomEventInit { return obj { if (detail != null) this.detail = detail } diff --git a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/NodeJsDom.wasmJs.kt b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/NodeJsDom.wasmJs.kt index 65b83abad1..c453798cbd 100644 --- a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/NodeJsDom.wasmJs.kt +++ b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/NodeJsDom.wasmJs.kt @@ -24,9 +24,9 @@ package dev.kilua.externals -import org.w3c.dom.Comment -import org.w3c.dom.Element -import org.w3c.dom.Text +import web.dom.Comment +import web.dom.Element +import web.dom.Text internal actual external fun nodeJsCreateElement(): Element diff --git a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Object.wasmJs.kt b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Object.wasmJs.kt index f8e34efbd8..95db410d61 100644 --- a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Object.wasmJs.kt +++ b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/Object.wasmJs.kt @@ -25,10 +25,8 @@ package dev.kilua.externals import dev.kilua.utils.toArray -public actual open external class Object : JsAny - @JsFun("() => ( {} )") -public actual external fun obj(): Object +public actual external fun obj(): JsAny /** * Helper function for creating JavaScript objects with given type. @@ -46,14 +44,14 @@ private external fun objGet(obj: JsAny, key: String): JsAny? /** * Operator to set property on JS Object */ -public actual operator fun Object.set(key: String, value: Object) { +public actual operator fun JsAny.set(key: String, value: JsAny) { objSet(this, key, value) } /** * Operator to get property from JS Object */ -public actual operator fun Object.get(key: String): Object? { +public actual operator fun JsAny.get(key: String): JsAny? { return objGet(this, key)?.unsafeCast() } @@ -63,7 +61,7 @@ private external fun jsKeys(obj: JsAny): JsArray /** * Get the list of keys from JS Object */ -public actual fun keys(o: Object): List { +public actual fun keys(o: JsAny): List { return jsKeys(o).toArray().asList().map { it.toString() } } @@ -73,34 +71,6 @@ private external fun jsAssign(target: JsAny, source: JsAny) /** * Copies all properties from source object to the target object */ -public actual fun assign(target: Object, source: Object) { +public actual fun assign(target: JsAny, source: JsAny) { jsAssign(target, source) } - -/** - * Convert String value to JS Object for JS/Wasm interop - */ -public actual fun String.toJsObject(): Object { - return this.toJsString().unsafeCast() -} - -/** - * Convert Boolean value to JS Object for JS/Wasm interop - */ -public actual fun Boolean.toJsObject(): Object { - return this.toJsBoolean().unsafeCast() -} - -/** - * Convert Int value to JS Object for JS/Wasm interop - */ -public actual fun Int.toJsObject(): Object { - return this.toJsNumber().unsafeCast() -} - -/** - * Convert Double value to JS Object for JS/Wasm interop - */ -public actual fun Double.toJsObject(): Object { - return this.toJsNumber().unsafeCast() -} diff --git a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/SplitJs.wasmJs.kt b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/SplitJs.wasmJs.kt index 5e3ef3a8b6..0e2a3df837 100644 --- a/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/SplitJs.wasmJs.kt +++ b/kilua/src/wasmJsMain/kotlin/dev/kilua/externals/SplitJs.wasmJs.kt @@ -24,7 +24,7 @@ package dev.kilua.externals import dev.kilua.panel.Dir import dev.kilua.utils.toList -import org.w3c.dom.HTMLElement +import web.dom.HTMLElement internal external class SplitJsOptionsExt : JsAny { var sizes: JsArray @@ -43,12 +43,12 @@ internal external class SplitJsOptionsExt : JsAny { } @JsModule("split.js") -internal external fun splitJsExt(elements: JsArray, options: SplitJsOptionsExt): SplitJsInstance +internal external fun splitJsExt(elements: JsArray, options: SplitJsOptionsExt): SplitJsInstance @Suppress("SpreadOperator") internal actual fun splitJs(elements: List, options: SplitJsOptions): SplitJsInstance { val splitJsDirection = if (options.direction == Dir.Horizontal) "vertical" else "horizontal" - return splitJsExt(jsArrayOf(*elements.toTypedArray()), obj { + return splitJsExt(jsArrayOf(*elements.toTypedArray()), obj { sizes = jsArrayOf(*options.sizes.toTypedArray().toIntArray()) direction = splitJsDirection gutterSize = options.gutterSize diff --git a/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JSON.wasmJs.kt b/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JSON.wasmJs.kt index 94afc918d0..1fe9ea0983 100644 --- a/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JSON.wasmJs.kt +++ b/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JSON.wasmJs.kt @@ -22,14 +22,14 @@ package dev.kilua.utils -import dev.kilua.externals.Object +import web.JsAny public actual object JSON { - public actual fun stringify(o: Object?): String { + public actual fun stringify(o: JsAny?): String { return dev.kilua.externals.JSON.stringify(o) } - public actual fun parse(text: String): T { + public actual fun parse(text: String): T { return dev.kilua.externals.JSON.parse(text) } } diff --git a/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JavaScript.wasmJs.kt b/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JavaScript.wasmJs.kt index d4d02f5f1e..2ecd2f1b85 100644 --- a/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JavaScript.wasmJs.kt +++ b/kilua/src/wasmJsMain/kotlin/dev/kilua/utils/JavaScript.wasmJs.kt @@ -22,15 +22,15 @@ package dev.kilua.utils -import dev.kilua.externals.Object +import web.JsAny -public actual annotation class JsNonModule actual constructor() +public actual typealias JsModule = kotlin.js.JsModule -public actual fun size(array: Object): Int = array.cast>().length +@Retention(AnnotationRetention.BINARY) +@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE) +public actual annotation class JsNonModule actual constructor() -public actual fun jsString(value: String): Object { - return value.toJsString().unsafeCast() -} +public actual fun size(array: JsAny): Int = array.unsafeCast>().length /** * Convert JsArray to Kotlin Array. diff --git a/modules/kilua-bootstrap-icons/build.gradle.kts b/modules/kilua-bootstrap-icons/build.gradle.kts index 54f1b96efc..795b0d30e5 100644 --- a/modules/kilua-bootstrap-icons/build.gradle.kts +++ b/modules/kilua-bootstrap-icons/build.gradle.kts @@ -5,9 +5,6 @@ plugins { id("signing") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - detekt { toolVersion = libs.versions.detekt.get() config.setFrom("../../detekt-config.yml") @@ -17,8 +14,8 @@ detekt { kotlin { explicitApi() compilerOptions() - kotlinJsTargets(buildTarget, isInIdea) - kotlinWasmTargets(buildTarget, isInIdea) + kotlinJsTargets() + kotlinWasmTargets() sourceSets { val commonMain by getting { dependencies { @@ -34,16 +31,12 @@ kotlin { implementation(project(":modules:kilua-testutils")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/modules/kilua-bootstrap-icons/src/commonMain/kotlin/dev/kilua/BootstrapIconsModule.kt b/modules/kilua-bootstrap-icons/src/commonMain/kotlin/dev/kilua/BootstrapIconsModule.kt index 2d08a15b41..a57d52a309 100644 --- a/modules/kilua-bootstrap-icons/src/commonMain/kotlin/dev/kilua/BootstrapIconsModule.kt +++ b/modules/kilua-bootstrap-icons/src/commonMain/kotlin/dev/kilua/BootstrapIconsModule.kt @@ -22,6 +22,7 @@ package dev.kilua +import dev.kilua.utils.JsModule import dev.kilua.utils.JsNonModule import dev.kilua.utils.useModule diff --git a/modules/kilua-bootstrap/build.gradle.kts b/modules/kilua-bootstrap/build.gradle.kts index 95ffa1f318..7358594684 100644 --- a/modules/kilua-bootstrap/build.gradle.kts +++ b/modules/kilua-bootstrap/build.gradle.kts @@ -7,9 +7,6 @@ plugins { id("signing") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - detekt { toolVersion = libs.versions.detekt.get() config.setFrom("../../detekt-config.yml") @@ -19,8 +16,8 @@ detekt { kotlin { explicitApi() compilerOptions() - kotlinJsTargets(buildTarget, isInIdea) - kotlinWasmTargets(buildTarget, isInIdea) + kotlinJsTargets() + kotlinWasmTargets() sourceSets { val commonMain by getting { dependencies { @@ -37,16 +34,12 @@ kotlin { implementation(project(":modules:kilua-testutils")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapCssModule.kt b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapCssModule.kt index 0be90172d1..3d40fbdda0 100644 --- a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapCssModule.kt +++ b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapCssModule.kt @@ -22,6 +22,7 @@ package dev.kilua +import dev.kilua.utils.JsModule import dev.kilua.utils.JsNonModule import dev.kilua.utils.useModule diff --git a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapModule.kt b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapModule.kt index 627f2abe00..d05eca5daa 100644 --- a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapModule.kt +++ b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/BootstrapModule.kt @@ -25,7 +25,7 @@ package dev.kilua import dev.kilua.compose.Root import dev.kilua.modal.Modal import dev.kilua.utils.isDom -import kotlinx.browser.document +import web.document /** * Initializes Bootstrap module. diff --git a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/externals/Bootstrap.kt b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/externals/Bootstrap.kt index 9a0b90d084..2d501d5589 100644 --- a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/externals/Bootstrap.kt +++ b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/externals/Bootstrap.kt @@ -22,7 +22,8 @@ package dev.kilua.externals -import org.w3c.dom.HTMLElement +import dev.kilua.utils.JsModule +import web.dom.HTMLElement /** * External Bootstrap object. diff --git a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Alert.kt b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Alert.kt index dab6d1585c..7f8455743d 100644 --- a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Alert.kt +++ b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Alert.kt @@ -28,7 +28,7 @@ import dev.kilua.html.Button import dev.kilua.html.button import dev.kilua.html.div import dev.kilua.html.unaryPlus -import org.w3c.dom.events.Event +import web.dom.events.Event /** diff --git a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Confirm.kt b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Confirm.kt index da9568dec2..183f3a8578 100644 --- a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Confirm.kt +++ b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Confirm.kt @@ -28,7 +28,7 @@ import dev.kilua.html.Button import dev.kilua.html.button import dev.kilua.html.div import dev.kilua.html.unaryPlus -import org.w3c.dom.events.Event +import web.dom.events.Event /** diff --git a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Modal.kt b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Modal.kt index c57c1471df..2d67d632c4 100644 --- a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Modal.kt +++ b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/modal/Modal.kt @@ -39,7 +39,7 @@ import dev.kilua.html.div import dev.kilua.html.h5t import dev.kilua.utils.rem import dev.kilua.utils.toKebabCase -import org.w3c.dom.HTMLDivElement +import web.dom.HTMLDivElement /** * Modal window sizes. diff --git a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/panel/TabPanel.kt b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/panel/TabPanel.kt index 2695b6ff5d..26af66361e 100644 --- a/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/panel/TabPanel.kt +++ b/modules/kilua-bootstrap/src/commonMain/kotlin/dev/kilua/panel/TabPanel.kt @@ -42,9 +42,9 @@ import dev.kilua.html.commentNode import dev.kilua.html.div import dev.kilua.html.li import dev.kilua.html.ul -import dev.kilua.utils.jsString import dev.kilua.utils.rem -import org.w3c.dom.HTMLDivElement +import web.dom.HTMLDivElement +import web.toJsString /** * Tab position. @@ -99,11 +99,11 @@ public open class TabPanel( val tabId = remember { idCounter++ } commentNode("tid=$tabId") val tab = Tab(label, icon, closable, content) + if (tabs[tabId] != tab) { + tabs[tabId] = tab + } DisposableEffect(tabId) { refreshTabsOrderList() - if (tabs[tabId] != tab) { - tabs[tabId] = tab - } if (activeIndex == -1) { updateProperty(::activeIndex, 0) } @@ -184,7 +184,7 @@ public fun ComponentBase.tabPanel( onClick { e -> component.dispatchEvent( "closeTab", - buildCustomEventInit(jsString("$index")) + buildCustomEventInit("$index".toJsString()) ) e.stopPropagation() } @@ -202,7 +202,7 @@ public fun ComponentBase.tabPanel( if (fromIndex != index) { component.dispatchEvent( "moveTab", - buildCustomEventInit(jsString("{ \"from\": $fromIndex, \"to\": $index }")) + buildCustomEventInit("{ \"from\": $fromIndex, \"to\": $index }".toJsString()) ) } } diff --git a/modules/kilua-bootstrap/src/commonTest/kotlin/dev/kilua/modal/ModalSpec.kt b/modules/kilua-bootstrap/src/commonTest/kotlin/dev/kilua/modal/ModalSpec.kt index 8f2545ea68..e696e66402 100644 --- a/modules/kilua-bootstrap/src/commonTest/kotlin/dev/kilua/modal/ModalSpec.kt +++ b/modules/kilua-bootstrap/src/commonTest/kotlin/dev/kilua/modal/ModalSpec.kt @@ -23,20 +23,15 @@ package dev.kilua.modal import dev.kilua.compose.root -import dev.kilua.externals.nodeJsInit import dev.kilua.html.button import dev.kilua.html.pt import dev.kilua.test.DomSpec -import kotlinx.browser.document import kotlinx.coroutines.delay +import web.document import kotlin.test.Test class ModalSpec : DomSpec { - init { - nodeJsInit() - } - @Test fun render() = runWhenDomAvailableAsync { root("test") { diff --git a/modules/kilua-common-types/build.gradle.kts b/modules/kilua-common-types/build.gradle.kts index 8899a2cacd..62a2a736d3 100644 --- a/modules/kilua-common-types/build.gradle.kts +++ b/modules/kilua-common-types/build.gradle.kts @@ -6,9 +6,6 @@ plugins { id("signing") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - detekt { toolVersion = libs.versions.detekt.get() config.setFrom("../../detekt-config.yml") @@ -18,8 +15,8 @@ detekt { kotlin { explicitApi() compilerOptions() - kotlinJsTargets(buildTarget, isInIdea) - kotlinWasmTargets(buildTarget, isInIdea) + kotlinJsTargets() + kotlinWasmTargets() kotlinJvmTargets() sourceSets { val commonMain by getting { @@ -27,16 +24,12 @@ kotlin { implementation(libs.kotlinx.serialization.json) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } val jvmMain by getting { diff --git a/modules/kilua-dom/build.gradle.kts b/modules/kilua-dom/build.gradle.kts new file mode 100644 index 0000000000..8233965e3a --- /dev/null +++ b/modules/kilua-dom/build.gradle.kts @@ -0,0 +1,33 @@ +plugins { + kotlin("multiplatform") + alias(libs.plugins.detekt) + id("maven-publish") + id("signing") +} + +detekt { + toolVersion = libs.versions.detekt.get() + config.setFrom("../../detekt-config.yml") + buildUponDefaultConfig = true +} + +kotlin { + explicitApi() + compilerOptions() + kotlinJsTargets() + kotlinWasmTargets() + sourceSets { + val commonMain by getting { + dependencies { + } + } + val jsMain by getting { + dependencies { + } + } + val wasmJsMain by getting { + dependencies { + } + } + } +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/ItemArrayLike.kt b/modules/kilua-dom/src/commonMain/kotlin/web/ItemArrayLike.kt new file mode 100644 index 0000000000..bbff3dd82a --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/ItemArrayLike.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web.dom + +import web.JsAny + +public external interface ItemArrayLike : JsAny { + public val length: Int + public fun item(index: Int): T? +} + +public fun ItemArrayLike.asList(): List = object : AbstractList() { + override val size: Int get() = this@asList.length + + @Suppress("UNCHECKED_CAST") + override fun get(index: Int): T = when (index) { + in 0..lastIndex -> this@asList.item(index) as T + else -> throw IndexOutOfBoundsException("index $index is not in range [0..$lastIndex]") + } +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/JsAny.kt b/modules/kilua-dom/src/commonMain/kotlin/web/JsAny.kt new file mode 100644 index 0000000000..8d325e480b --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/JsAny.kt @@ -0,0 +1,9 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +@Suppress("EXPECTED_EXTERNAL_DECLARATION") +public expect external interface JsAny diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/JsArray.kt b/modules/kilua-dom/src/commonMain/kotlin/web/JsArray.kt new file mode 100644 index 0000000000..bcaf7ca057 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/JsArray.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +@Suppress("EXPECTED_EXTERNAL_DECLARATION") +public expect external class JsArray : JsAny { + public val length: Int +} + +public expect operator fun JsArray.get(index: Int): T? + +public expect operator fun JsArray.set(index: Int, value: T) diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/JsBoolean.kt b/modules/kilua-dom/src/commonMain/kotlin/web/JsBoolean.kt new file mode 100644 index 0000000000..b836bed49d --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/JsBoolean.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +@Suppress("EXPECTED_EXTERNAL_DECLARATION") +public expect external class JsBoolean : JsAny + +public expect fun JsBoolean.toBoolean(): Boolean + +public expect fun Boolean.toJsBoolean(): JsBoolean diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/JsNumber.kt b/modules/kilua-dom/src/commonMain/kotlin/web/JsNumber.kt new file mode 100644 index 0000000000..d068372a0e --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/JsNumber.kt @@ -0,0 +1,17 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +@Suppress("EXPECTED_EXTERNAL_DECLARATION") +public expect external class JsNumber: JsAny + +public expect fun JsNumber.toDouble(): Double + +public expect fun Double.toJsNumber(): JsNumber + +public expect fun JsNumber.toInt(): Int + +public expect fun Int.toJsNumber(): JsNumber diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/JsString.kt b/modules/kilua-dom/src/commonMain/kotlin/web/JsString.kt new file mode 100644 index 0000000000..d93946d5a8 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/JsString.kt @@ -0,0 +1,11 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +@Suppress("EXPECTED_EXTERNAL_DECLARATION") +public expect external class JsString : JsAny + +public expect fun String.toJsString(): JsString diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/Mutations.kt b/modules/kilua-dom/src/commonMain/kotlin/web/Mutations.kt new file mode 100644 index 0000000000..c7fe6c6aaa --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/Mutations.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +import web.dom.Element +import web.dom.Node + + +/** Removes all the children from this node. */ +public fun Node.clear() { + while (hasChildNodes()) { + removeChild(firstChild!!) + } +} + +/** + * Creates text node and append it to the element. + * + * @return this element + */ +public fun Element.appendText(text: String): Element { + appendChild(ownerDocument!!.createTextNode(text)) + return this +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/Promise.kt b/modules/kilua-dom/src/commonMain/kotlin/web/Promise.kt new file mode 100644 index 0000000000..2d6c2a03d0 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/Promise.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +@Suppress("EXPECTED_EXTERNAL_DECLARATION") +public expect external class Promise(executor: (resolve: (T) -> Unit, reject: (JsAny) -> Unit) -> Unit) : + JsAny { + public fun then(onFulfilled: ((T) -> S)?): Promise + + public fun then(onFulfilled: ((T) -> S)?, onRejected: ((JsAny) -> S)?): Promise + + public fun catch(onRejected: (JsAny) -> S): Promise + public fun finally(onFinally: () -> Unit): Promise + + public companion object { + public fun all(promise: JsArray>): Promise> + public fun race(promise: JsArray>): Promise + public fun reject(e: JsAny): Promise + public fun resolve(e: S): Promise + public fun resolve(e: Promise): Promise + } + +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.khronos.webgl.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.khronos.webgl.kt new file mode 100644 index 0000000000..f602ebcac7 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.khronos.webgl.kt @@ -0,0 +1,1195 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.webgl + +import web.JsAny +import web.JsArray +import web.JsNumber +import web.JsString +import web.dom.EventInit +import web.dom.HTMLCanvasElement +import web.dom.RenderingContext +import web.dom.events.Event + +public external interface WebGLContextAttributes : JsAny { + var alpha: Boolean? /* = true */ + + var depth: Boolean? /* = true */ + + var stencil: Boolean? /* = false */ + + var antialias: Boolean? /* = true */ + + var premultipliedAlpha: Boolean? /* = true */ + + var preserveDrawingBuffer: Boolean? /* = false */ + + var preferLowPowerToHighPerformance: Boolean? /* = false */ + + var failIfMajorPerformanceCaveat: Boolean? /* = false */ + +} + +public external abstract class WebGLObject : JsAny + +/** + * Exposes the JavaScript [WebGLBuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLBuffer) to Kotlin + */ +public external abstract class WebGLBuffer : WebGLObject, JsAny + +/** + * Exposes the JavaScript [WebGLFramebuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLFramebuffer) to Kotlin + */ +public external abstract class WebGLFramebuffer : WebGLObject, JsAny + +/** + * Exposes the JavaScript [WebGLProgram](https://developer.mozilla.org/en/docs/Web/API/WebGLProgram) to Kotlin + */ +public external abstract class WebGLProgram : WebGLObject, JsAny + +/** + * Exposes the JavaScript [WebGLRenderbuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderbuffer) to Kotlin + */ +public external abstract class WebGLRenderbuffer : WebGLObject, JsAny + +/** + * Exposes the JavaScript [WebGLShader](https://developer.mozilla.org/en/docs/Web/API/WebGLShader) to Kotlin + */ +public external abstract class WebGLShader : WebGLObject, JsAny + +/** + * Exposes the JavaScript [WebGLTexture](https://developer.mozilla.org/en/docs/Web/API/WebGLTexture) to Kotlin + */ +public external abstract class WebGLTexture : WebGLObject, JsAny + +/** + * Exposes the JavaScript [WebGLUniformLocation](https://developer.mozilla.org/en/docs/Web/API/WebGLUniformLocation) to Kotlin + */ +public external abstract class WebGLUniformLocation : JsAny + +/** + * Exposes the JavaScript [WebGLActiveInfo](https://developer.mozilla.org/en/docs/Web/API/WebGLActiveInfo) to Kotlin + */ +public external abstract class WebGLActiveInfo : JsAny { + open val size: Int + open val type: Int + open val name: String +} + +/** + * Exposes the JavaScript [WebGLShaderPrecisionFormat](https://developer.mozilla.org/en/docs/Web/API/WebGLShaderPrecisionFormat) to Kotlin + */ +public external abstract class WebGLShaderPrecisionFormat : JsAny { + open val rangeMin: Int + open val rangeMax: Int + open val precision: Int +} + +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface WebGLRenderingContextBase : JsAny { + val canvas: HTMLCanvasElement + val drawingBufferWidth: Int + val drawingBufferHeight: Int + fun getContextAttributes(): WebGLContextAttributes? + fun isContextLost(): Boolean + fun getSupportedExtensions(): JsArray? + fun getExtension(name: String): JsAny? + fun activeTexture(texture: Int) + fun attachShader(program: WebGLProgram?, shader: WebGLShader?) + fun bindAttribLocation(program: WebGLProgram?, index: Int, name: String) + fun bindBuffer(target: Int, buffer: WebGLBuffer?) + fun bindFramebuffer(target: Int, framebuffer: WebGLFramebuffer?) + fun bindRenderbuffer(target: Int, renderbuffer: WebGLRenderbuffer?) + fun bindTexture(target: Int, texture: WebGLTexture?) + fun blendColor(red: Float, green: Float, blue: Float, alpha: Float) + fun blendEquation(mode: Int) + fun blendEquationSeparate(modeRGB: Int, modeAlpha: Int) + fun blendFunc(sfactor: Int, dfactor: Int) + fun blendFuncSeparate(srcRGB: Int, dstRGB: Int, srcAlpha: Int, dstAlpha: Int) + fun bufferData(target: Int, size: Int, usage: Int) + fun bufferData(target: Int, data: BufferDataSource?, usage: Int) + fun bufferSubData(target: Int, offset: Int, data: BufferDataSource?) + fun checkFramebufferStatus(target: Int): Int + fun clear(mask: Int) + fun clearColor(red: Float, green: Float, blue: Float, alpha: Float) + fun clearDepth(depth: Float) + fun clearStencil(s: Int) + fun colorMask(red: Boolean, green: Boolean, blue: Boolean, alpha: Boolean) + fun compileShader(shader: WebGLShader?) + fun compressedTexImage2D( + target: Int, + level: Int, + internalformat: Int, + width: Int, + height: Int, + border: Int, + data: ArrayBufferView + ) + + fun compressedTexSubImage2D( + target: Int, + level: Int, + xoffset: Int, + yoffset: Int, + width: Int, + height: Int, + format: Int, + data: ArrayBufferView + ) + + fun copyTexImage2D( + target: Int, + level: Int, + internalformat: Int, + x: Int, + y: Int, + width: Int, + height: Int, + border: Int + ) + + fun copyTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, x: Int, y: Int, width: Int, height: Int) + fun createBuffer(): WebGLBuffer? + fun createFramebuffer(): WebGLFramebuffer? + fun createProgram(): WebGLProgram? + fun createRenderbuffer(): WebGLRenderbuffer? + fun createShader(type: Int): WebGLShader? + fun createTexture(): WebGLTexture? + fun cullFace(mode: Int) + fun deleteBuffer(buffer: WebGLBuffer?) + fun deleteFramebuffer(framebuffer: WebGLFramebuffer?) + fun deleteProgram(program: WebGLProgram?) + fun deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?) + fun deleteShader(shader: WebGLShader?) + fun deleteTexture(texture: WebGLTexture?) + fun depthFunc(func: Int) + fun depthMask(flag: Boolean) + fun depthRange(zNear: Float, zFar: Float) + fun detachShader(program: WebGLProgram?, shader: WebGLShader?) + fun disable(cap: Int) + fun disableVertexAttribArray(index: Int) + fun drawArrays(mode: Int, first: Int, count: Int) + fun drawElements(mode: Int, count: Int, type: Int, offset: Int) + fun enable(cap: Int) + fun enableVertexAttribArray(index: Int) + fun finish() + fun flush() + fun framebufferRenderbuffer(target: Int, attachment: Int, renderbuffertarget: Int, renderbuffer: WebGLRenderbuffer?) + fun framebufferTexture2D(target: Int, attachment: Int, textarget: Int, texture: WebGLTexture?, level: Int) + fun frontFace(mode: Int) + fun generateMipmap(target: Int) + fun getActiveAttrib(program: WebGLProgram?, index: Int): WebGLActiveInfo? + fun getActiveUniform(program: WebGLProgram?, index: Int): WebGLActiveInfo? + fun getAttachedShaders(program: WebGLProgram?): JsArray? + fun getAttribLocation(program: WebGLProgram?, name: String): Int + fun getBufferParameter(target: Int, pname: Int): JsAny? + fun getParameter(pname: Int): JsAny? + fun getError(): Int + fun getFramebufferAttachmentParameter(target: Int, attachment: Int, pname: Int): JsAny? + fun getProgramParameter(program: WebGLProgram?, pname: Int): JsAny? + fun getProgramInfoLog(program: WebGLProgram?): String? + fun getRenderbufferParameter(target: Int, pname: Int): JsAny? + fun getShaderParameter(shader: WebGLShader?, pname: Int): JsAny? + fun getShaderPrecisionFormat(shadertype: Int, precisiontype: Int): WebGLShaderPrecisionFormat? + fun getShaderInfoLog(shader: WebGLShader?): String? + fun getShaderSource(shader: WebGLShader?): String? + fun getTexParameter(target: Int, pname: Int): JsAny? + fun getUniform(program: WebGLProgram?, location: WebGLUniformLocation?): JsAny? + fun getUniformLocation(program: WebGLProgram?, name: String): WebGLUniformLocation? + fun getVertexAttrib(index: Int, pname: Int): JsAny? + fun getVertexAttribOffset(index: Int, pname: Int): Int + fun hint(target: Int, mode: Int) + fun isBuffer(buffer: WebGLBuffer?): Boolean + fun isEnabled(cap: Int): Boolean + fun isFramebuffer(framebuffer: WebGLFramebuffer?): Boolean + fun isProgram(program: WebGLProgram?): Boolean + fun isRenderbuffer(renderbuffer: WebGLRenderbuffer?): Boolean + fun isShader(shader: WebGLShader?): Boolean + fun isTexture(texture: WebGLTexture?): Boolean + fun lineWidth(width: Float) + fun linkProgram(program: WebGLProgram?) + fun pixelStorei(pname: Int, param: Int) + fun polygonOffset(factor: Float, units: Float) + fun readPixels(x: Int, y: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?) + fun renderbufferStorage(target: Int, internalformat: Int, width: Int, height: Int) + fun sampleCoverage(value: Float, invert: Boolean) + fun scissor(x: Int, y: Int, width: Int, height: Int) + fun shaderSource(shader: WebGLShader?, source: String) + fun stencilFunc(func: Int, ref: Int, mask: Int) + fun stencilFuncSeparate(face: Int, func: Int, ref: Int, mask: Int) + fun stencilMask(mask: Int) + fun stencilMaskSeparate(face: Int, mask: Int) + fun stencilOp(fail: Int, zfail: Int, zpass: Int) + fun stencilOpSeparate(face: Int, fail: Int, zfail: Int, zpass: Int) + fun texImage2D( + target: Int, + level: Int, + internalformat: Int, + width: Int, + height: Int, + border: Int, + format: Int, + type: Int, + pixels: ArrayBufferView? + ) + + fun texImage2D(target: Int, level: Int, internalformat: Int, format: Int, type: Int, source: TexImageSource?) + fun texParameterf(target: Int, pname: Int, param: Float) + fun texParameteri(target: Int, pname: Int, param: Int) + fun texSubImage2D( + target: Int, + level: Int, + xoffset: Int, + yoffset: Int, + width: Int, + height: Int, + format: Int, + type: Int, + pixels: ArrayBufferView? + ) + + fun texSubImage2D( + target: Int, + level: Int, + xoffset: Int, + yoffset: Int, + format: Int, + type: Int, + source: TexImageSource? + ) + + fun uniform1f(location: WebGLUniformLocation?, x: Float) + fun uniform1fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform1fv(location: WebGLUniformLocation?, v: JsArray) + fun uniform1i(location: WebGLUniformLocation?, x: Int) + fun uniform1iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform1iv(location: WebGLUniformLocation?, v: JsArray) + fun uniform2f(location: WebGLUniformLocation?, x: Float, y: Float) + fun uniform2fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform2fv(location: WebGLUniformLocation?, v: JsArray) + fun uniform2i(location: WebGLUniformLocation?, x: Int, y: Int) + fun uniform2iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform2iv(location: WebGLUniformLocation?, v: JsArray) + fun uniform3f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float) + fun uniform3fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform3fv(location: WebGLUniformLocation?, v: JsArray) + fun uniform3i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int) + fun uniform3iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform3iv(location: WebGLUniformLocation?, v: JsArray) + fun uniform4f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float, w: Float) + fun uniform4fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform4fv(location: WebGLUniformLocation?, v: JsArray) + fun uniform4i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int, w: Int) + fun uniform4iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform4iv(location: WebGLUniformLocation?, v: JsArray) + fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) + fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: JsArray) + fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) + fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: JsArray) + fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) + fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: JsArray) + fun useProgram(program: WebGLProgram?) + fun validateProgram(program: WebGLProgram?) + fun vertexAttrib1f(index: Int, x: Float) + fun vertexAttrib1fv(index: Int, values: Float32Array) + fun vertexAttrib1fv(index: Int, values: JsArray) + fun vertexAttrib2f(index: Int, x: Float, y: Float) + fun vertexAttrib2fv(index: Int, values: Float32Array) + fun vertexAttrib2fv(index: Int, values: JsArray) + fun vertexAttrib3f(index: Int, x: Float, y: Float, z: Float) + fun vertexAttrib3fv(index: Int, values: Float32Array) + fun vertexAttrib3fv(index: Int, values: JsArray) + fun vertexAttrib4f(index: Int, x: Float, y: Float, z: Float, w: Float) + fun vertexAttrib4fv(index: Int, values: Float32Array) + fun vertexAttrib4fv(index: Int, values: JsArray) + fun vertexAttribPointer(index: Int, size: Int, type: Int, normalized: Boolean, stride: Int, offset: Int) + fun viewport(x: Int, y: Int, width: Int, height: Int) + + companion object { + val DEPTH_BUFFER_BIT: Int + val STENCIL_BUFFER_BIT: Int + val COLOR_BUFFER_BIT: Int + val POINTS: Int + val LINES: Int + val LINE_LOOP: Int + val LINE_STRIP: Int + val TRIANGLES: Int + val TRIANGLE_STRIP: Int + val TRIANGLE_FAN: Int + val ZERO: Int + val ONE: Int + val SRC_COLOR: Int + val ONE_MINUS_SRC_COLOR: Int + val SRC_ALPHA: Int + val ONE_MINUS_SRC_ALPHA: Int + val DST_ALPHA: Int + val ONE_MINUS_DST_ALPHA: Int + val DST_COLOR: Int + val ONE_MINUS_DST_COLOR: Int + val SRC_ALPHA_SATURATE: Int + val FUNC_ADD: Int + val BLEND_EQUATION: Int + val BLEND_EQUATION_RGB: Int + val BLEND_EQUATION_ALPHA: Int + val FUNC_SUBTRACT: Int + val FUNC_REVERSE_SUBTRACT: Int + val BLEND_DST_RGB: Int + val BLEND_SRC_RGB: Int + val BLEND_DST_ALPHA: Int + val BLEND_SRC_ALPHA: Int + val CONSTANT_COLOR: Int + val ONE_MINUS_CONSTANT_COLOR: Int + val CONSTANT_ALPHA: Int + val ONE_MINUS_CONSTANT_ALPHA: Int + val BLEND_COLOR: Int + val ARRAY_BUFFER: Int + val ELEMENT_ARRAY_BUFFER: Int + val ARRAY_BUFFER_BINDING: Int + val ELEMENT_ARRAY_BUFFER_BINDING: Int + val STREAM_DRAW: Int + val STATIC_DRAW: Int + val DYNAMIC_DRAW: Int + val BUFFER_SIZE: Int + val BUFFER_USAGE: Int + val CURRENT_VERTEX_ATTRIB: Int + val FRONT: Int + val BACK: Int + val FRONT_AND_BACK: Int + val CULL_FACE: Int + val BLEND: Int + val DITHER: Int + val STENCIL_TEST: Int + val DEPTH_TEST: Int + val SCISSOR_TEST: Int + val POLYGON_OFFSET_FILL: Int + val SAMPLE_ALPHA_TO_COVERAGE: Int + val SAMPLE_COVERAGE: Int + val NO_ERROR: Int + val INVALID_ENUM: Int + val INVALID_VALUE: Int + val INVALID_OPERATION: Int + val OUT_OF_MEMORY: Int + val CW: Int + val CCW: Int + val LINE_WIDTH: Int + val ALIASED_POINT_SIZE_RANGE: Int + val ALIASED_LINE_WIDTH_RANGE: Int + val CULL_FACE_MODE: Int + val FRONT_FACE: Int + val DEPTH_RANGE: Int + val DEPTH_WRITEMASK: Int + val DEPTH_CLEAR_VALUE: Int + val DEPTH_FUNC: Int + val STENCIL_CLEAR_VALUE: Int + val STENCIL_FUNC: Int + val STENCIL_FAIL: Int + val STENCIL_PASS_DEPTH_FAIL: Int + val STENCIL_PASS_DEPTH_PASS: Int + val STENCIL_REF: Int + val STENCIL_VALUE_MASK: Int + val STENCIL_WRITEMASK: Int + val STENCIL_BACK_FUNC: Int + val STENCIL_BACK_FAIL: Int + val STENCIL_BACK_PASS_DEPTH_FAIL: Int + val STENCIL_BACK_PASS_DEPTH_PASS: Int + val STENCIL_BACK_REF: Int + val STENCIL_BACK_VALUE_MASK: Int + val STENCIL_BACK_WRITEMASK: Int + val VIEWPORT: Int + val SCISSOR_BOX: Int + val COLOR_CLEAR_VALUE: Int + val COLOR_WRITEMASK: Int + val UNPACK_ALIGNMENT: Int + val PACK_ALIGNMENT: Int + val MAX_TEXTURE_SIZE: Int + val MAX_VIEWPORT_DIMS: Int + val SUBPIXEL_BITS: Int + val RED_BITS: Int + val GREEN_BITS: Int + val BLUE_BITS: Int + val ALPHA_BITS: Int + val DEPTH_BITS: Int + val STENCIL_BITS: Int + val POLYGON_OFFSET_UNITS: Int + val POLYGON_OFFSET_FACTOR: Int + val TEXTURE_BINDING_2D: Int + val SAMPLE_BUFFERS: Int + val SAMPLES: Int + val SAMPLE_COVERAGE_VALUE: Int + val SAMPLE_COVERAGE_INVERT: Int + val COMPRESSED_TEXTURE_FORMATS: Int + val DONT_CARE: Int + val FASTEST: Int + val NICEST: Int + val GENERATE_MIPMAP_HINT: Int + val BYTE: Int + val UNSIGNED_BYTE: Int + val SHORT: Int + val UNSIGNED_SHORT: Int + val INT: Int + val UNSIGNED_INT: Int + val FLOAT: Int + val DEPTH_COMPONENT: Int + val ALPHA: Int + val RGB: Int + val RGBA: Int + val LUMINANCE: Int + val LUMINANCE_ALPHA: Int + val UNSIGNED_SHORT_4_4_4_4: Int + val UNSIGNED_SHORT_5_5_5_1: Int + val UNSIGNED_SHORT_5_6_5: Int + val FRAGMENT_SHADER: Int + val VERTEX_SHADER: Int + val MAX_VERTEX_ATTRIBS: Int + val MAX_VERTEX_UNIFORM_VECTORS: Int + val MAX_VARYING_VECTORS: Int + val MAX_COMBINED_TEXTURE_IMAGE_UNITS: Int + val MAX_VERTEX_TEXTURE_IMAGE_UNITS: Int + val MAX_TEXTURE_IMAGE_UNITS: Int + val MAX_FRAGMENT_UNIFORM_VECTORS: Int + val SHADER_TYPE: Int + val DELETE_STATUS: Int + val LINK_STATUS: Int + val VALIDATE_STATUS: Int + val ATTACHED_SHADERS: Int + val ACTIVE_UNIFORMS: Int + val ACTIVE_ATTRIBUTES: Int + val SHADING_LANGUAGE_VERSION: Int + val CURRENT_PROGRAM: Int + val NEVER: Int + val LESS: Int + val EQUAL: Int + val LEQUAL: Int + val GREATER: Int + val NOTEQUAL: Int + val GEQUAL: Int + val ALWAYS: Int + val KEEP: Int + val REPLACE: Int + val INCR: Int + val DECR: Int + val INVERT: Int + val INCR_WRAP: Int + val DECR_WRAP: Int + val VENDOR: Int + val RENDERER: Int + val VERSION: Int + val NEAREST: Int + val LINEAR: Int + val NEAREST_MIPMAP_NEAREST: Int + val LINEAR_MIPMAP_NEAREST: Int + val NEAREST_MIPMAP_LINEAR: Int + val LINEAR_MIPMAP_LINEAR: Int + val TEXTURE_MAG_FILTER: Int + val TEXTURE_MIN_FILTER: Int + val TEXTURE_WRAP_S: Int + val TEXTURE_WRAP_T: Int + val TEXTURE_2D: Int + val TEXTURE: Int + val TEXTURE_CUBE_MAP: Int + val TEXTURE_BINDING_CUBE_MAP: Int + val TEXTURE_CUBE_MAP_POSITIVE_X: Int + val TEXTURE_CUBE_MAP_NEGATIVE_X: Int + val TEXTURE_CUBE_MAP_POSITIVE_Y: Int + val TEXTURE_CUBE_MAP_NEGATIVE_Y: Int + val TEXTURE_CUBE_MAP_POSITIVE_Z: Int + val TEXTURE_CUBE_MAP_NEGATIVE_Z: Int + val MAX_CUBE_MAP_TEXTURE_SIZE: Int + val TEXTURE0: Int + val TEXTURE1: Int + val TEXTURE2: Int + val TEXTURE3: Int + val TEXTURE4: Int + val TEXTURE5: Int + val TEXTURE6: Int + val TEXTURE7: Int + val TEXTURE8: Int + val TEXTURE9: Int + val TEXTURE10: Int + val TEXTURE11: Int + val TEXTURE12: Int + val TEXTURE13: Int + val TEXTURE14: Int + val TEXTURE15: Int + val TEXTURE16: Int + val TEXTURE17: Int + val TEXTURE18: Int + val TEXTURE19: Int + val TEXTURE20: Int + val TEXTURE21: Int + val TEXTURE22: Int + val TEXTURE23: Int + val TEXTURE24: Int + val TEXTURE25: Int + val TEXTURE26: Int + val TEXTURE27: Int + val TEXTURE28: Int + val TEXTURE29: Int + val TEXTURE30: Int + val TEXTURE31: Int + val ACTIVE_TEXTURE: Int + val REPEAT: Int + val CLAMP_TO_EDGE: Int + val MIRRORED_REPEAT: Int + val FLOAT_VEC2: Int + val FLOAT_VEC3: Int + val FLOAT_VEC4: Int + val INT_VEC2: Int + val INT_VEC3: Int + val INT_VEC4: Int + val BOOL: Int + val BOOL_VEC2: Int + val BOOL_VEC3: Int + val BOOL_VEC4: Int + val FLOAT_MAT2: Int + val FLOAT_MAT3: Int + val FLOAT_MAT4: Int + val SAMPLER_2D: Int + val SAMPLER_CUBE: Int + val VERTEX_ATTRIB_ARRAY_ENABLED: Int + val VERTEX_ATTRIB_ARRAY_SIZE: Int + val VERTEX_ATTRIB_ARRAY_STRIDE: Int + val VERTEX_ATTRIB_ARRAY_TYPE: Int + val VERTEX_ATTRIB_ARRAY_NORMALIZED: Int + val VERTEX_ATTRIB_ARRAY_POINTER: Int + val VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: Int + val IMPLEMENTATION_COLOR_READ_TYPE: Int + val IMPLEMENTATION_COLOR_READ_FORMAT: Int + val COMPILE_STATUS: Int + val LOW_FLOAT: Int + val MEDIUM_FLOAT: Int + val HIGH_FLOAT: Int + val LOW_INT: Int + val MEDIUM_INT: Int + val HIGH_INT: Int + val FRAMEBUFFER: Int + val RENDERBUFFER: Int + val RGBA4: Int + val RGB5_A1: Int + val RGB565: Int + val DEPTH_COMPONENT16: Int + val STENCIL_INDEX: Int + val STENCIL_INDEX8: Int + val DEPTH_STENCIL: Int + val RENDERBUFFER_WIDTH: Int + val RENDERBUFFER_HEIGHT: Int + val RENDERBUFFER_INTERNAL_FORMAT: Int + val RENDERBUFFER_RED_SIZE: Int + val RENDERBUFFER_GREEN_SIZE: Int + val RENDERBUFFER_BLUE_SIZE: Int + val RENDERBUFFER_ALPHA_SIZE: Int + val RENDERBUFFER_DEPTH_SIZE: Int + val RENDERBUFFER_STENCIL_SIZE: Int + val FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: Int + val FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: Int + val FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: Int + val FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: Int + val COLOR_ATTACHMENT0: Int + val DEPTH_ATTACHMENT: Int + val STENCIL_ATTACHMENT: Int + val DEPTH_STENCIL_ATTACHMENT: Int + val NONE: Int + val FRAMEBUFFER_COMPLETE: Int + val FRAMEBUFFER_INCOMPLETE_ATTACHMENT: Int + val FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: Int + val FRAMEBUFFER_INCOMPLETE_DIMENSIONS: Int + val FRAMEBUFFER_UNSUPPORTED: Int + val FRAMEBUFFER_BINDING: Int + val RENDERBUFFER_BINDING: Int + val MAX_RENDERBUFFER_SIZE: Int + val INVALID_FRAMEBUFFER_OPERATION: Int + val UNPACK_FLIP_Y_WEBGL: Int + val UNPACK_PREMULTIPLY_ALPHA_WEBGL: Int + val CONTEXT_LOST_WEBGL: Int + val UNPACK_COLORSPACE_CONVERSION_WEBGL: Int + val BROWSER_DEFAULT_WEBGL: Int + } +} + +/** + * Exposes the JavaScript [WebGLRenderingContext](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext) to Kotlin + */ +public external abstract class WebGLRenderingContext : WebGLRenderingContextBase, RenderingContext, JsAny { + companion object { + val DEPTH_BUFFER_BIT: Int + val STENCIL_BUFFER_BIT: Int + val COLOR_BUFFER_BIT: Int + val POINTS: Int + val LINES: Int + val LINE_LOOP: Int + val LINE_STRIP: Int + val TRIANGLES: Int + val TRIANGLE_STRIP: Int + val TRIANGLE_FAN: Int + val ZERO: Int + val ONE: Int + val SRC_COLOR: Int + val ONE_MINUS_SRC_COLOR: Int + val SRC_ALPHA: Int + val ONE_MINUS_SRC_ALPHA: Int + val DST_ALPHA: Int + val ONE_MINUS_DST_ALPHA: Int + val DST_COLOR: Int + val ONE_MINUS_DST_COLOR: Int + val SRC_ALPHA_SATURATE: Int + val FUNC_ADD: Int + val BLEND_EQUATION: Int + val BLEND_EQUATION_RGB: Int + val BLEND_EQUATION_ALPHA: Int + val FUNC_SUBTRACT: Int + val FUNC_REVERSE_SUBTRACT: Int + val BLEND_DST_RGB: Int + val BLEND_SRC_RGB: Int + val BLEND_DST_ALPHA: Int + val BLEND_SRC_ALPHA: Int + val CONSTANT_COLOR: Int + val ONE_MINUS_CONSTANT_COLOR: Int + val CONSTANT_ALPHA: Int + val ONE_MINUS_CONSTANT_ALPHA: Int + val BLEND_COLOR: Int + val ARRAY_BUFFER: Int + val ELEMENT_ARRAY_BUFFER: Int + val ARRAY_BUFFER_BINDING: Int + val ELEMENT_ARRAY_BUFFER_BINDING: Int + val STREAM_DRAW: Int + val STATIC_DRAW: Int + val DYNAMIC_DRAW: Int + val BUFFER_SIZE: Int + val BUFFER_USAGE: Int + val CURRENT_VERTEX_ATTRIB: Int + val FRONT: Int + val BACK: Int + val FRONT_AND_BACK: Int + val CULL_FACE: Int + val BLEND: Int + val DITHER: Int + val STENCIL_TEST: Int + val DEPTH_TEST: Int + val SCISSOR_TEST: Int + val POLYGON_OFFSET_FILL: Int + val SAMPLE_ALPHA_TO_COVERAGE: Int + val SAMPLE_COVERAGE: Int + val NO_ERROR: Int + val INVALID_ENUM: Int + val INVALID_VALUE: Int + val INVALID_OPERATION: Int + val OUT_OF_MEMORY: Int + val CW: Int + val CCW: Int + val LINE_WIDTH: Int + val ALIASED_POINT_SIZE_RANGE: Int + val ALIASED_LINE_WIDTH_RANGE: Int + val CULL_FACE_MODE: Int + val FRONT_FACE: Int + val DEPTH_RANGE: Int + val DEPTH_WRITEMASK: Int + val DEPTH_CLEAR_VALUE: Int + val DEPTH_FUNC: Int + val STENCIL_CLEAR_VALUE: Int + val STENCIL_FUNC: Int + val STENCIL_FAIL: Int + val STENCIL_PASS_DEPTH_FAIL: Int + val STENCIL_PASS_DEPTH_PASS: Int + val STENCIL_REF: Int + val STENCIL_VALUE_MASK: Int + val STENCIL_WRITEMASK: Int + val STENCIL_BACK_FUNC: Int + val STENCIL_BACK_FAIL: Int + val STENCIL_BACK_PASS_DEPTH_FAIL: Int + val STENCIL_BACK_PASS_DEPTH_PASS: Int + val STENCIL_BACK_REF: Int + val STENCIL_BACK_VALUE_MASK: Int + val STENCIL_BACK_WRITEMASK: Int + val VIEWPORT: Int + val SCISSOR_BOX: Int + val COLOR_CLEAR_VALUE: Int + val COLOR_WRITEMASK: Int + val UNPACK_ALIGNMENT: Int + val PACK_ALIGNMENT: Int + val MAX_TEXTURE_SIZE: Int + val MAX_VIEWPORT_DIMS: Int + val SUBPIXEL_BITS: Int + val RED_BITS: Int + val GREEN_BITS: Int + val BLUE_BITS: Int + val ALPHA_BITS: Int + val DEPTH_BITS: Int + val STENCIL_BITS: Int + val POLYGON_OFFSET_UNITS: Int + val POLYGON_OFFSET_FACTOR: Int + val TEXTURE_BINDING_2D: Int + val SAMPLE_BUFFERS: Int + val SAMPLES: Int + val SAMPLE_COVERAGE_VALUE: Int + val SAMPLE_COVERAGE_INVERT: Int + val COMPRESSED_TEXTURE_FORMATS: Int + val DONT_CARE: Int + val FASTEST: Int + val NICEST: Int + val GENERATE_MIPMAP_HINT: Int + val BYTE: Int + val UNSIGNED_BYTE: Int + val SHORT: Int + val UNSIGNED_SHORT: Int + val INT: Int + val UNSIGNED_INT: Int + val FLOAT: Int + val DEPTH_COMPONENT: Int + val ALPHA: Int + val RGB: Int + val RGBA: Int + val LUMINANCE: Int + val LUMINANCE_ALPHA: Int + val UNSIGNED_SHORT_4_4_4_4: Int + val UNSIGNED_SHORT_5_5_5_1: Int + val UNSIGNED_SHORT_5_6_5: Int + val FRAGMENT_SHADER: Int + val VERTEX_SHADER: Int + val MAX_VERTEX_ATTRIBS: Int + val MAX_VERTEX_UNIFORM_VECTORS: Int + val MAX_VARYING_VECTORS: Int + val MAX_COMBINED_TEXTURE_IMAGE_UNITS: Int + val MAX_VERTEX_TEXTURE_IMAGE_UNITS: Int + val MAX_TEXTURE_IMAGE_UNITS: Int + val MAX_FRAGMENT_UNIFORM_VECTORS: Int + val SHADER_TYPE: Int + val DELETE_STATUS: Int + val LINK_STATUS: Int + val VALIDATE_STATUS: Int + val ATTACHED_SHADERS: Int + val ACTIVE_UNIFORMS: Int + val ACTIVE_ATTRIBUTES: Int + val SHADING_LANGUAGE_VERSION: Int + val CURRENT_PROGRAM: Int + val NEVER: Int + val LESS: Int + val EQUAL: Int + val LEQUAL: Int + val GREATER: Int + val NOTEQUAL: Int + val GEQUAL: Int + val ALWAYS: Int + val KEEP: Int + val REPLACE: Int + val INCR: Int + val DECR: Int + val INVERT: Int + val INCR_WRAP: Int + val DECR_WRAP: Int + val VENDOR: Int + val RENDERER: Int + val VERSION: Int + val NEAREST: Int + val LINEAR: Int + val NEAREST_MIPMAP_NEAREST: Int + val LINEAR_MIPMAP_NEAREST: Int + val NEAREST_MIPMAP_LINEAR: Int + val LINEAR_MIPMAP_LINEAR: Int + val TEXTURE_MAG_FILTER: Int + val TEXTURE_MIN_FILTER: Int + val TEXTURE_WRAP_S: Int + val TEXTURE_WRAP_T: Int + val TEXTURE_2D: Int + val TEXTURE: Int + val TEXTURE_CUBE_MAP: Int + val TEXTURE_BINDING_CUBE_MAP: Int + val TEXTURE_CUBE_MAP_POSITIVE_X: Int + val TEXTURE_CUBE_MAP_NEGATIVE_X: Int + val TEXTURE_CUBE_MAP_POSITIVE_Y: Int + val TEXTURE_CUBE_MAP_NEGATIVE_Y: Int + val TEXTURE_CUBE_MAP_POSITIVE_Z: Int + val TEXTURE_CUBE_MAP_NEGATIVE_Z: Int + val MAX_CUBE_MAP_TEXTURE_SIZE: Int + val TEXTURE0: Int + val TEXTURE1: Int + val TEXTURE2: Int + val TEXTURE3: Int + val TEXTURE4: Int + val TEXTURE5: Int + val TEXTURE6: Int + val TEXTURE7: Int + val TEXTURE8: Int + val TEXTURE9: Int + val TEXTURE10: Int + val TEXTURE11: Int + val TEXTURE12: Int + val TEXTURE13: Int + val TEXTURE14: Int + val TEXTURE15: Int + val TEXTURE16: Int + val TEXTURE17: Int + val TEXTURE18: Int + val TEXTURE19: Int + val TEXTURE20: Int + val TEXTURE21: Int + val TEXTURE22: Int + val TEXTURE23: Int + val TEXTURE24: Int + val TEXTURE25: Int + val TEXTURE26: Int + val TEXTURE27: Int + val TEXTURE28: Int + val TEXTURE29: Int + val TEXTURE30: Int + val TEXTURE31: Int + val ACTIVE_TEXTURE: Int + val REPEAT: Int + val CLAMP_TO_EDGE: Int + val MIRRORED_REPEAT: Int + val FLOAT_VEC2: Int + val FLOAT_VEC3: Int + val FLOAT_VEC4: Int + val INT_VEC2: Int + val INT_VEC3: Int + val INT_VEC4: Int + val BOOL: Int + val BOOL_VEC2: Int + val BOOL_VEC3: Int + val BOOL_VEC4: Int + val FLOAT_MAT2: Int + val FLOAT_MAT3: Int + val FLOAT_MAT4: Int + val SAMPLER_2D: Int + val SAMPLER_CUBE: Int + val VERTEX_ATTRIB_ARRAY_ENABLED: Int + val VERTEX_ATTRIB_ARRAY_SIZE: Int + val VERTEX_ATTRIB_ARRAY_STRIDE: Int + val VERTEX_ATTRIB_ARRAY_TYPE: Int + val VERTEX_ATTRIB_ARRAY_NORMALIZED: Int + val VERTEX_ATTRIB_ARRAY_POINTER: Int + val VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: Int + val IMPLEMENTATION_COLOR_READ_TYPE: Int + val IMPLEMENTATION_COLOR_READ_FORMAT: Int + val COMPILE_STATUS: Int + val LOW_FLOAT: Int + val MEDIUM_FLOAT: Int + val HIGH_FLOAT: Int + val LOW_INT: Int + val MEDIUM_INT: Int + val HIGH_INT: Int + val FRAMEBUFFER: Int + val RENDERBUFFER: Int + val RGBA4: Int + val RGB5_A1: Int + val RGB565: Int + val DEPTH_COMPONENT16: Int + val STENCIL_INDEX: Int + val STENCIL_INDEX8: Int + val DEPTH_STENCIL: Int + val RENDERBUFFER_WIDTH: Int + val RENDERBUFFER_HEIGHT: Int + val RENDERBUFFER_INTERNAL_FORMAT: Int + val RENDERBUFFER_RED_SIZE: Int + val RENDERBUFFER_GREEN_SIZE: Int + val RENDERBUFFER_BLUE_SIZE: Int + val RENDERBUFFER_ALPHA_SIZE: Int + val RENDERBUFFER_DEPTH_SIZE: Int + val RENDERBUFFER_STENCIL_SIZE: Int + val FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: Int + val FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: Int + val FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: Int + val FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: Int + val COLOR_ATTACHMENT0: Int + val DEPTH_ATTACHMENT: Int + val STENCIL_ATTACHMENT: Int + val DEPTH_STENCIL_ATTACHMENT: Int + val NONE: Int + val FRAMEBUFFER_COMPLETE: Int + val FRAMEBUFFER_INCOMPLETE_ATTACHMENT: Int + val FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: Int + val FRAMEBUFFER_INCOMPLETE_DIMENSIONS: Int + val FRAMEBUFFER_UNSUPPORTED: Int + val FRAMEBUFFER_BINDING: Int + val RENDERBUFFER_BINDING: Int + val MAX_RENDERBUFFER_SIZE: Int + val INVALID_FRAMEBUFFER_OPERATION: Int + val UNPACK_FLIP_Y_WEBGL: Int + val UNPACK_PREMULTIPLY_ALPHA_WEBGL: Int + val CONTEXT_LOST_WEBGL: Int + val UNPACK_COLORSPACE_CONVERSION_WEBGL: Int + val BROWSER_DEFAULT_WEBGL: Int + } +} + +/** + * Exposes the JavaScript [WebGLContextEvent](https://developer.mozilla.org/en/docs/Web/API/WebGLContextEvent) to Kotlin + */ +public external open class WebGLContextEvent(type: String, eventInit: WebGLContextEventInit) : + Event, JsAny { + open val statusMessage: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface WebGLContextEventInit : EventInit, JsAny { + var statusMessage: String? /* = "" */ + +} + +/** + * Exposes the JavaScript [ArrayBuffer](https://developer.mozilla.org/en/docs/Web/API/ArrayBuffer) to Kotlin + */ +public external open class ArrayBuffer(length: Int) : BufferDataSource, JsAny { + open val byteLength: Int + fun slice(begin: Int, end: Int): ArrayBuffer + + companion object { + fun isView(value: JsAny?): Boolean + } +} + +/** + * Exposes the JavaScript [ArrayBufferView](https://developer.mozilla.org/en/docs/Web/API/ArrayBufferView) to Kotlin + */ +public external interface ArrayBufferView : BufferDataSource, JsAny { + val buffer: ArrayBuffer + val byteOffset: Int + val byteLength: Int +} + +/** + * Exposes the JavaScript [Int8Array](https://developer.mozilla.org/en/docs/Web/API/Int8Array) to Kotlin + */ +public external open class Int8Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Int8Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Int8Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Int8Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Uint8Array](https://developer.mozilla.org/en/docs/Web/API/Uint8Array) to Kotlin + */ +public external open class Uint8Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Uint8Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Uint8Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Uint8Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Uint8ClampedArray](https://developer.mozilla.org/en/docs/Web/API/Uint8ClampedArray) to Kotlin + */ +public external open class Uint8ClampedArray : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Uint8ClampedArray) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Uint8ClampedArray, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Uint8ClampedArray + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Int16Array](https://developer.mozilla.org/en/docs/Web/API/Int16Array) to Kotlin + */ +public external open class Int16Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Int16Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Int16Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Int16Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Uint16Array](https://developer.mozilla.org/en/docs/Web/API/Uint16Array) to Kotlin + */ +public external open class Uint16Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Uint16Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Uint16Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Uint16Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Int32Array](https://developer.mozilla.org/en/docs/Web/API/Int32Array) to Kotlin + */ +public external open class Int32Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Int32Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Int32Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Int32Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Uint32Array](https://developer.mozilla.org/en/docs/Web/API/Uint32Array) to Kotlin + */ +public external open class Uint32Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Uint32Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Uint32Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Uint32Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Float32Array](https://developer.mozilla.org/en/docs/Web/API/Float32Array) to Kotlin + */ +public external open class Float32Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Float32Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Float32Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Float32Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [Float64Array](https://developer.mozilla.org/en/docs/Web/API/Float64Array) to Kotlin + */ +public external open class Float64Array : ArrayBufferView, JsAny { + constructor(length: Int) + constructor(array: Float64Array) + constructor(array: JsArray) + constructor(buffer: ArrayBuffer, byteOffset: Int, length: Int) + + open val length: Int + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun set(array: Float64Array, offset: Int) + fun set(array: JsArray, offset: Int) + fun subarray(start: Int, end: Int): Float64Array + + companion object { + val BYTES_PER_ELEMENT: Int + } +} + +/** + * Exposes the JavaScript [DataView](https://developer.mozilla.org/en/docs/Web/API/DataView) to Kotlin + */ +public external open class DataView( + buffer: ArrayBuffer, + byteOffset: Int, + byteLength: Int +) : ArrayBufferView, JsAny { + override val buffer: ArrayBuffer + override val byteOffset: Int + override val byteLength: Int + fun getInt8(byteOffset: Int): Byte + fun getUint8(byteOffset: Int): Byte + fun getInt16(byteOffset: Int, littleEndian: Boolean): Short + fun getUint16(byteOffset: Int, littleEndian: Boolean): Short + fun getInt32(byteOffset: Int, littleEndian: Boolean): Int + fun getUint32(byteOffset: Int, littleEndian: Boolean): Int + fun getFloat32(byteOffset: Int, littleEndian: Boolean): Float + fun getFloat64(byteOffset: Int, littleEndian: Boolean): Double + fun setInt8(byteOffset: Int, value: Byte) + fun setUint8(byteOffset: Int, value: Byte) + fun setInt16(byteOffset: Int, value: Short, littleEndian: Boolean) + fun setUint16(byteOffset: Int, value: Short, littleEndian: Boolean) + fun setInt32(byteOffset: Int, value: Int, littleEndian: Boolean) + fun setUint32(byteOffset: Int, value: Int, littleEndian: Boolean) + fun setFloat32(byteOffset: Int, value: Float, littleEndian: Boolean) + fun setFloat64(byteOffset: Int, value: Double, littleEndian: Boolean) +} + +public external interface BufferDataSource + +public external interface TexImageSource \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.css.masking.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.css.masking.kt new file mode 100644 index 0000000000..7a352170c5 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.css.masking.kt @@ -0,0 +1,89 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.css.masking + +import web.JsAny +import web.dom.svg.SVGAnimatedEnumeration +import web.dom.svg.SVGAnimatedLength +import web.dom.svg.SVGAnimatedTransformList +import web.dom.svg.SVGElement +import web.dom.svg.SVGUnitTypes + +/** + * Exposes the JavaScript [SVGClipPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGClipPathElement) to Kotlin + */ +public external abstract class SVGClipPathElement : SVGElement, SVGUnitTypes, JsAny { + open val clipPathUnits: SVGAnimatedEnumeration + open val transform: SVGAnimatedTransformList + + companion object { + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGMaskElement](https://developer.mozilla.org/en/docs/Web/API/SVGMaskElement) to Kotlin + */ +public external abstract class SVGMaskElement : SVGElement, SVGUnitTypes, JsAny { + open val maskUnits: SVGAnimatedEnumeration + open val maskContentUnits: SVGAnimatedEnumeration + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + open val width: SVGAnimatedLength + open val height: SVGAnimatedLength + + companion object { + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.clipboard.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.clipboard.kt new file mode 100644 index 0000000000..c821d76b58 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.clipboard.kt @@ -0,0 +1,57 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.clipboard + +import web.JsAny +import web.JsString +import web.dom.DataTransfer +import web.dom.EventInit +import web.dom.events.Event +import web.dom.events.EventTarget +import web.Promise + +public external interface ClipboardEventInit : EventInit, JsAny { + var clipboardData: DataTransfer? /* = null */ + +} + +/** + * Exposes the JavaScript [ClipboardEvent](https://developer.mozilla.org/en/docs/Web/API/ClipboardEvent) to Kotlin + */ +public external open class ClipboardEvent(type: String, eventInitDict: ClipboardEventInit) : Event, + JsAny { + open val clipboardData: DataTransfer? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +/** + * Exposes the JavaScript [Clipboard](https://developer.mozilla.org/en/docs/Web/API/Clipboard) to Kotlin + */ +public external abstract class Clipboard : EventTarget, JsAny { + fun read(): Promise<*> + fun readText(): Promise<*> + fun write(data: DataTransfer): Promise + fun writeText(data: String): Promise +} + +public external interface ClipboardPermissionDescriptor : JsAny { + var allowWithoutGesture: Boolean? /* = false */ + +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.css.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.css.kt new file mode 100644 index 0000000000..9056ace431 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.css.kt @@ -0,0 +1,476 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.css + +import web.JsAny +import web.JsString +import web.dom.ItemArrayLike + +public external abstract class MediaList : ItemArrayLike, JsAny { + open var mediaText: String + fun appendMedium(medium: String) + fun deleteMedium(medium: String) + override fun item(index: Int): JsString? +} + +/** + * Exposes the JavaScript [StyleSheet](https://developer.mozilla.org/en/docs/Web/API/StyleSheet) to Kotlin + */ +public external abstract class StyleSheet : JsAny { + open val type: String + open val href: String? + open val ownerNode: UnionElementOrProcessingInstruction? + open val parentStyleSheet: StyleSheet? + open val title: String? + open val media: MediaList + open var disabled: Boolean +} + +/** + * Exposes the JavaScript [CSSStyleSheet](https://developer.mozilla.org/en/docs/Web/API/CSSStyleSheet) to Kotlin + */ +public external abstract class CSSStyleSheet : StyleSheet, JsAny { + open val ownerRule: CSSRule? + open val cssRules: CSSRuleList + fun insertRule(rule: String, index: Int): Int + fun deleteRule(index: Int) +} + +/** + * Exposes the JavaScript [StyleSheetList](https://developer.mozilla.org/en/docs/Web/API/StyleSheetList) to Kotlin + */ +public external abstract class StyleSheetList : ItemArrayLike, JsAny { + override fun item(index: Int): StyleSheet? +} + +/** + * Exposes the JavaScript [LinkStyle](https://developer.mozilla.org/en/docs/Web/API/LinkStyle) to Kotlin + */ +public external interface LinkStyle : JsAny { + val sheet: StyleSheet? +} + +/** + * Exposes the JavaScript [CSSRuleList](https://developer.mozilla.org/en/docs/Web/API/CSSRuleList) to Kotlin + */ +public external abstract class CSSRuleList : ItemArrayLike, JsAny { + override fun item(index: Int): CSSRule? +} + +/** + * Exposes the JavaScript [CSSRule](https://developer.mozilla.org/en/docs/Web/API/CSSRule) to Kotlin + */ +public external abstract class CSSRule : JsAny { + open val type: Short + open var cssText: String + open val parentRule: CSSRule? + open val parentStyleSheet: CSSStyleSheet? + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSStyleRule](https://developer.mozilla.org/en/docs/Web/API/CSSStyleRule) to Kotlin + */ +public external abstract class CSSStyleRule : CSSRule, JsAny { + open var selectorText: String + open val style: CSSStyleDeclaration + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +public external abstract class CSSImportRule : CSSRule, JsAny { + open val href: String + open val media: MediaList + open val styleSheet: CSSStyleSheet + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSGroupingRule](https://developer.mozilla.org/en/docs/Web/API/CSSGroupingRule) to Kotlin + */ +public external abstract class CSSGroupingRule : CSSRule, JsAny { + open val cssRules: CSSRuleList + fun insertRule(rule: String, index: Int): Int + fun deleteRule(index: Int) + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSMediaRule](https://developer.mozilla.org/en/docs/Web/API/CSSMediaRule) to Kotlin + */ +public external abstract class CSSMediaRule : CSSGroupingRule, JsAny { + open val media: MediaList + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSPageRule](https://developer.mozilla.org/en/docs/Web/API/CSSPageRule) to Kotlin + */ +public external abstract class CSSPageRule : CSSGroupingRule, JsAny { + open var selectorText: String + open val style: CSSStyleDeclaration + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +public external abstract class CSSMarginRule : CSSRule, JsAny { + open val name: String + open val style: CSSStyleDeclaration + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSNamespaceRule](https://developer.mozilla.org/en/docs/Web/API/CSSNamespaceRule) to Kotlin + */ +public external abstract class CSSNamespaceRule : CSSRule, JsAny { + open val namespaceURI: String + open val prefix: String + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSStyleDeclaration](https://developer.mozilla.org/en/docs/Web/API/CSSStyleDeclaration) to Kotlin + */ +public external abstract class CSSStyleDeclaration : ItemArrayLike, JsAny { + open var cssText: String + open val parentRule: CSSRule? + open var cssFloat: String + open var alignContent: String + open var alignItems: String + open var alignSelf: String + open var animation: String + open var animationDelay: String + open var animationDirection: String + open var animationDuration: String + open var animationFillMode: String + open var animationIterationCount: String + open var animationName: String + open var animationPlayState: String + open var animationTimingFunction: String + open var backfaceVisibility: String + open var background: String + open var backgroundAttachment: String + open var backgroundClip: String + open var backgroundColor: String + open var backgroundImage: String + open var backgroundOrigin: String + open var backgroundPosition: String + open var backgroundRepeat: String + open var backgroundSize: String + open var border: String + open var borderBottom: String + open var borderBottomColor: String + open var borderBottomLeftRadius: String + open var borderBottomRightRadius: String + open var borderBottomStyle: String + open var borderBottomWidth: String + open var borderCollapse: String + open var borderColor: String + open var borderImage: String + open var borderImageOutset: String + open var borderImageRepeat: String + open var borderImageSlice: String + open var borderImageSource: String + open var borderImageWidth: String + open var borderLeft: String + open var borderLeftColor: String + open var borderLeftStyle: String + open var borderLeftWidth: String + open var borderRadius: String + open var borderRight: String + open var borderRightColor: String + open var borderRightStyle: String + open var borderRightWidth: String + open var borderSpacing: String + open var borderStyle: String + open var borderTop: String + open var borderTopColor: String + open var borderTopLeftRadius: String + open var borderTopRightRadius: String + open var borderTopStyle: String + open var borderTopWidth: String + open var borderWidth: String + open var bottom: String + open var boxDecorationBreak: String + open var boxShadow: String + open var boxSizing: String + open var breakAfter: String + open var breakBefore: String + open var breakInside: String + open var captionSide: String + open var clear: String + open var clip: String + open var color: String + open var columnCount: String + open var columnFill: String + open var columnGap: String + open var columnRule: String + open var columnRuleColor: String + open var columnRuleStyle: String + open var columnRuleWidth: String + open var columnSpan: String + open var columnWidth: String + open var columns: String + open var content: String + open var counterIncrement: String + open var counterReset: String + open var cursor: String + open var direction: String + open var display: String + open var emptyCells: String + open var filter: String + open var flex: String + open var flexBasis: String + open var flexDirection: String + open var flexFlow: String + open var flexGrow: String + open var flexShrink: String + open var flexWrap: String + open var font: String + open var fontFamily: String + open var fontFeatureSettings: String + open var fontKerning: String + open var fontLanguageOverride: String + open var fontSize: String + open var fontSizeAdjust: String + open var fontStretch: String + open var fontStyle: String + open var fontSynthesis: String + open var fontVariant: String + open var fontVariantAlternates: String + open var fontVariantCaps: String + open var fontVariantEastAsian: String + open var fontVariantLigatures: String + open var fontVariantNumeric: String + open var fontVariantPosition: String + open var fontWeight: String + open var hangingPunctuation: String + open var height: String + open var hyphens: String + open var imageOrientation: String + open var imageRendering: String + open var imageResolution: String + open var imeMode: String + open var justifyContent: String + open var left: String + open var letterSpacing: String + open var lineBreak: String + open var lineHeight: String + open var listStyle: String + open var listStyleImage: String + open var listStylePosition: String + open var listStyleType: String + open var margin: String + open var marginBottom: String + open var marginLeft: String + open var marginRight: String + open var marginTop: String + open var mark: String + open var markAfter: String + open var markBefore: String + open var marks: String + open var marqueeDirection: String + open var marqueePlayCount: String + open var marqueeSpeed: String + open var marqueeStyle: String + open var mask: String + open var maskType: String + open var maxHeight: String + open var maxWidth: String + open var minHeight: String + open var minWidth: String + open var navDown: String + open var navIndex: String + open var navLeft: String + open var navRight: String + open var navUp: String + open var objectFit: String + open var objectPosition: String + open var opacity: String + open var order: String + open var orphans: String + open var outline: String + open var outlineColor: String + open var outlineOffset: String + open var outlineStyle: String + open var outlineWidth: String + open var overflowWrap: String + open var overflowX: String + open var overflowY: String + open var padding: String + open var paddingBottom: String + open var paddingLeft: String + open var paddingRight: String + open var paddingTop: String + open var pageBreakAfter: String + open var pageBreakBefore: String + open var pageBreakInside: String + open var perspective: String + open var perspectiveOrigin: String + open var phonemes: String + open var position: String + open var quotes: String + open var resize: String + open var rest: String + open var restAfter: String + open var restBefore: String + open var right: String + open var tabSize: String + open var tableLayout: String + open var textAlign: String + open var textAlignLast: String + open var textCombineUpright: String + open var textDecoration: String + open var textDecorationColor: String + open var textDecorationLine: String + open var textDecorationStyle: String + open var textIndent: String + open var textJustify: String + open var textOrientation: String + open var textOverflow: String + open var textShadow: String + open var textTransform: String + open var textUnderlinePosition: String + open var top: String + open var transform: String + open var transformOrigin: String + open var transformStyle: String + open var transition: String + open var transitionDelay: String + open var transitionDuration: String + open var transitionProperty: String + open var transitionTimingFunction: String + open var unicodeBidi: String + open var verticalAlign: String + open var visibility: String + open var voiceBalance: String + open var voiceDuration: String + open var voicePitch: String + open var voicePitchRange: String + open var voiceRate: String + open var voiceStress: String + open var voiceVolume: String + open var whiteSpace: String + open var widows: String + open var width: String + open var wordBreak: String + open var wordSpacing: String + open var wordWrap: String + open var writingMode: String + open var zIndex: String + open var _dashed_attribute: String + open var _camel_cased_attribute: String + open var _webkit_cased_attribute: String + fun getPropertyValue(property: String): String + fun getPropertyPriority(property: String): String + fun setProperty(property: String, value: String) + fun setProperty(property: String, value: String, priority: String) + fun setPropertyValue(property: String, value: String) + fun setPropertyPriority(property: String, priority: String) + fun removeProperty(property: String): String + override fun item(index: Int): JsString +} + +public external interface ElementCSSInlineStyle : JsAny { + val style: CSSStyleDeclaration +} + +/** + * Exposes the JavaScript [CSS](https://developer.mozilla.org/en/docs/Web/API/CSS) to Kotlin + */ +public external abstract class CSS : JsAny { + companion object { + fun escape(ident: String): String + } +} + +public external interface UnionElementOrProcessingInstruction \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.encryptedmedia.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.encryptedmedia.kt new file mode 100644 index 0000000000..bf976bdc10 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.encryptedmedia.kt @@ -0,0 +1,160 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.encryptedmedia + +import web.JsAny +import web.JsArray +import web.JsString +import web.Promise +import web.dom.EventInit +import web.dom.MessageEvent +import web.dom.events.Event +import web.dom.events.EventTarget +import web.webgl.ArrayBuffer + +/** + * Exposes the JavaScript [MediaKeySystemConfiguration](https://developer.mozilla.org/en/docs/Web/API/MediaKeySystemConfiguration) to Kotlin + */ +public external interface MediaKeySystemConfiguration : JsAny { + var label: String? /* = "" */ + + var initDataTypes: JsArray? /* = arrayOf() */ + + var audioCapabilities: JsArray? /* = arrayOf() */ + + var videoCapabilities: JsArray? /* = arrayOf() */ + + var distinctiveIdentifier: MediaKeysRequirement? /* = MediaKeysRequirement.OPTIONAL */ + + var persistentState: MediaKeysRequirement? /* = MediaKeysRequirement.OPTIONAL */ + + var sessionTypes: JsArray? + +} + +public external interface MediaKeySystemMediaCapability : JsAny { + var contentType: String? /* = "" */ + + var robustness: String? /* = "" */ + +} + +/** + * Exposes the JavaScript [MediaKeySystemAccess](https://developer.mozilla.org/en/docs/Web/API/MediaKeySystemAccess) to Kotlin + */ +public external abstract class MediaKeySystemAccess : JsAny { + open val keySystem: String + fun getConfiguration(): MediaKeySystemConfiguration + fun createMediaKeys(): Promise<*> +} + +/** + * Exposes the JavaScript [MediaKeys](https://developer.mozilla.org/en/docs/Web/API/MediaKeys) to Kotlin + */ +public external abstract class MediaKeys : JsAny { + fun createSession(sessionType: MediaKeySessionType): MediaKeySession + fun setServerCertificate(serverCertificate: JsAny?): Promise<*> +} + +/** + * Exposes the JavaScript [MediaKeySession](https://developer.mozilla.org/en/docs/Web/API/MediaKeySession) to Kotlin + */ +public external abstract class MediaKeySession : EventTarget, JsAny { + open val sessionId: String + open val expiration: Double + open val closed: Promise + open val keyStatuses: MediaKeyStatusMap + open var onkeystatuseschange: ((Event) -> Unit)? + open var onmessage: ((MessageEvent) -> Unit)? + fun generateRequest(initDataType: String, initData: JsAny?): Promise + fun load(sessionId: String): Promise<*> + fun update(response: JsAny?): Promise + fun close(): Promise + fun remove(): Promise +} + +/** + * Exposes the JavaScript [MediaKeyStatusMap](https://developer.mozilla.org/en/docs/Web/API/MediaKeyStatusMap) to Kotlin + */ +public external abstract class MediaKeyStatusMap : JsAny { + open val size: Int + fun has(keyId: JsAny?): Boolean + fun get(keyId: JsAny?): JsAny? +} + +/** + * Exposes the JavaScript [MediaKeyMessageEvent](https://developer.mozilla.org/en/docs/Web/API/MediaKeyMessageEvent) to Kotlin + */ +public external open class MediaKeyMessageEvent(type: String, eventInitDict: MediaKeyMessageEventInit) : Event, JsAny { + open val messageType: MediaKeyMessageType + open val message: ArrayBuffer + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface MediaKeyMessageEventInit : EventInit, JsAny { + var messageType: MediaKeyMessageType? + var message: ArrayBuffer? +} + +public external open class MediaEncryptedEvent( + type: String, + eventInitDict: MediaEncryptedEventInit +) : Event, JsAny { + open val initDataType: String + open val initData: ArrayBuffer? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface MediaEncryptedEventInit : EventInit, JsAny { + var initDataType: String? /* = "" */ + + var initData: ArrayBuffer? /* = null */ + +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface MediaKeysRequirement : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface MediaKeySessionType : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface MediaKeyStatus : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface MediaKeyMessageType : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.events.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.events.kt new file mode 100644 index 0000000000..3b72aceb25 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.events.kt @@ -0,0 +1,321 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.events + +import web.JsAny +import web.JsArray +import web.JsNumber +import web.dom.* +import web.webgl.* +import kotlin.js.* + +/** + * Exposes the JavaScript [UIEvent](https://developer.mozilla.org/en/docs/Web/API/UIEvent) to Kotlin + */ +public external open class UIEvent(type: String, eventInitDict: UIEventInit) : Event, JsAny { + open val view: Window? + open val detail: Int + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface UIEventInit : EventInit, JsAny { + var view: Window? /* = null */ + + var detail: Int? /* = 0 */ + +} + +/** + * Exposes the JavaScript [FocusEvent](https://developer.mozilla.org/en/docs/Web/API/FocusEvent) to Kotlin + */ +public external open class FocusEvent(type: String, eventInitDict: FocusEventInit) : UIEvent, + JsAny { + open val relatedTarget: EventTarget? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface FocusEventInit : UIEventInit, JsAny { + var relatedTarget: EventTarget? /* = null */ + +} + +/** + * Exposes the JavaScript [MouseEvent](https://developer.mozilla.org/en/docs/Web/API/MouseEvent) to Kotlin + */ +public external open class MouseEvent(type: String, eventInitDict: MouseEventInit) : UIEvent, + UnionElementOrMouseEvent, JsAny { + constructor(type: String) + + open val screenX: Int + open val screenY: Int + open val clientX: Int + open val clientY: Int + open val ctrlKey: Boolean + open val shiftKey: Boolean + open val altKey: Boolean + open val metaKey: Boolean + open val button: Short + open val buttons: Short + open val relatedTarget: EventTarget? + open val region: String? + open val pageX: Double + open val pageY: Double + open val x: Double + open val y: Double + open val offsetX: Double + open val offsetY: Double + fun getModifierState(keyArg: String): Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface MouseEventInit : EventModifierInit, JsAny { + var screenX: Int? /* = 0 */ + + var screenY: Int? /* = 0 */ + + var clientX: Int? /* = 0 */ + + var clientY: Int? /* = 0 */ + + var button: Short? /* = 0 */ + + var buttons: Short? /* = 0 */ + + var relatedTarget: EventTarget? /* = null */ + + var region: String? /* = null */ + +} + +public external interface EventModifierInit : UIEventInit, JsAny { + var ctrlKey: Boolean? /* = false */ + + var shiftKey: Boolean? /* = false */ + + var altKey: Boolean? /* = false */ + + var metaKey: Boolean? /* = false */ + + var modifierAltGraph: Boolean? /* = false */ + + var modifierCapsLock: Boolean? /* = false */ + + var modifierFn: Boolean? /* = false */ + + var modifierFnLock: Boolean? /* = false */ + + var modifierHyper: Boolean? /* = false */ + + var modifierNumLock: Boolean? /* = false */ + + var modifierScrollLock: Boolean? /* = false */ + + var modifierSuper: Boolean? /* = false */ + + var modifierSymbol: Boolean? /* = false */ + + var modifierSymbolLock: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [WheelEvent](https://developer.mozilla.org/en/docs/Web/API/WheelEvent) to Kotlin + */ +public external open class WheelEvent(type: String, eventInitDict: WheelEventInit) : MouseEvent, + JsAny { + open val deltaX: Double + open val deltaY: Double + open val deltaZ: Double + open val deltaMode: Int + + companion object { + val DOM_DELTA_PIXEL: Int + val DOM_DELTA_LINE: Int + val DOM_DELTA_PAGE: Int + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface WheelEventInit : MouseEventInit, JsAny { + var deltaX: Double? /* = 0.0 */ + + var deltaY: Double? /* = 0.0 */ + + var deltaZ: Double? /* = 0.0 */ + + var deltaMode: Int? /* = 0 */ + +} + +/** + * Exposes the JavaScript [InputEvent](https://developer.mozilla.org/en/docs/Web/API/InputEvent) to Kotlin + */ +public external open class InputEvent(type: String, eventInitDict: InputEventInit) : UIEvent, + JsAny { + open val data: String + open val isComposing: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface InputEventInit : UIEventInit, JsAny { + var data: String? /* = "" */ + + var isComposing: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [KeyboardEvent](https://developer.mozilla.org/en/docs/Web/API/KeyboardEvent) to Kotlin + */ +public external open class KeyboardEvent(type: String, eventInitDict: KeyboardEventInit) : UIEvent, + JsAny { + open val key: String + open val code: String + open val location: Int + open val ctrlKey: Boolean + open val shiftKey: Boolean + open val altKey: Boolean + open val metaKey: Boolean + open val repeat: Boolean + open val isComposing: Boolean + open val charCode: Int + open val keyCode: Int + open val which: Int + fun getModifierState(keyArg: String): Boolean + + companion object { + val DOM_KEY_LOCATION_STANDARD: Int + val DOM_KEY_LOCATION_LEFT: Int + val DOM_KEY_LOCATION_RIGHT: Int + val DOM_KEY_LOCATION_NUMPAD: Int + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface KeyboardEventInit : EventModifierInit, JsAny { + var key: String? /* = "" */ + + var code: String? /* = "" */ + + var location: Int? /* = 0 */ + + var repeat: Boolean? /* = false */ + + var isComposing: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [CompositionEvent](https://developer.mozilla.org/en/docs/Web/API/CompositionEvent) to Kotlin + */ +public external open class CompositionEvent(type: String, eventInitDict: CompositionEventInit) : + UIEvent, JsAny { + open val data: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface CompositionEventInit : UIEventInit, JsAny { + var data: String? /* = "" */ + +} + +/** + * Exposes the JavaScript [Event](https://developer.mozilla.org/en/docs/Web/API/Event) to Kotlin + */ +public external open class Event(type: String, eventInitDict: EventInit) : JsAny { + open val type: String + open val target: EventTarget? + open val currentTarget: EventTarget? + open val eventPhase: Short + open val bubbles: Boolean + open val cancelable: Boolean + open val defaultPrevented: Boolean + open val composed: Boolean + open val isTrusted: Boolean + open val timeStamp: JsNumber + fun composedPath(): JsArray + fun stopPropagation() + fun stopImmediatePropagation() + fun preventDefault() + fun initEvent(type: String, bubbles: Boolean, cancelable: Boolean) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +/** + * Exposes the JavaScript [EventTarget](https://developer.mozilla.org/en/docs/Web/API/EventTarget) to Kotlin + */ +public external abstract class EventTarget : JsAny { + fun addEventListener(type: String, callback: EventListener?, options: AddEventListenerOptions) + fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: AddEventListenerOptions) + fun addEventListener(type: String, callback: EventListener?, options: Boolean) + fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: Boolean) + fun addEventListener(type: String, callback: EventListener?) + fun addEventListener(type: String, callback: ((Event) -> Unit)?) + fun removeEventListener(type: String, callback: EventListener?, options: EventListenerOptions) + fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: EventListenerOptions) + fun removeEventListener(type: String, callback: EventListener?, options: Boolean) + fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: Boolean) + fun removeEventListener(type: String, callback: EventListener?) + fun removeEventListener(type: String, callback: ((Event) -> Unit)?) + fun dispatchEvent(event: Event): Boolean +} + +/** + * Exposes the JavaScript [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener) to Kotlin + */ +public external interface EventListener : JsAny { + fun handleEvent(event: Event) +} \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.kt new file mode 100644 index 0000000000..b25a622779 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.kt @@ -0,0 +1,5956 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress("NO_EXPLICIT_VISIBILITY_IN_API_MODE", "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE") // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom + +import web.JsAny +import web.JsArray +import web.JsNumber +import web.JsString +import kotlin.js.* +import web.webgl.* +import web.dom.clipboard.* +import web.dom.css.* +import web.dom.encryptedmedia.* +import web.dom.events.* +import web.dom.mediacapture.* +import web.dom.mediasource.* +import web.dom.pointerevents.* +import web.dom.svg.* +import web.fetch.* +import web.files.* +import web.performance.* +import web.workers.* +import web.xhr.* +import web.Promise + +public external abstract class HTMLAllCollection : JsAny { + open val length: Int + fun item(nameOrIndex: String): UnionElementOrHTMLCollection? + fun namedItem(name: String): UnionElementOrHTMLCollection? +} + +/** + * Exposes the JavaScript [HTMLFormControlsCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLFormControlsCollection) to Kotlin + */ +public external abstract class HTMLFormControlsCollection : HTMLCollection, JsAny + +/** + * Exposes the JavaScript [RadioNodeList](https://developer.mozilla.org/en/docs/Web/API/RadioNodeList) to Kotlin + */ +public external abstract class RadioNodeList : NodeList, UnionElementOrRadioNodeList, JsAny { + open var value: String +} + +/** + * Exposes the JavaScript [HTMLOptionsCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLOptionsCollection) to Kotlin + */ +public external abstract class HTMLOptionsCollection : HTMLCollection, JsAny { + override var length: Int + open var selectedIndex: Int + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: HTMLElement) + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: Int) + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement) + fun remove(index: Int) +} + +/** + * Exposes the JavaScript [HTMLElement](https://developer.mozilla.org/en/docs/Web/API/HTMLElement) to Kotlin + */ +public external abstract class HTMLElement : Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, ElementCSSInlineStyle, JsAny { + open var title: String + open var lang: String + open var translate: Boolean + open var dir: String + open val dataset: DOMStringMap + open var hidden: Boolean + open var tabIndex: Int + open var accessKey: String + open val accessKeyLabel: String + open var draggable: Boolean + open val dropzone: DOMTokenList + open var contextMenu: HTMLMenuElement? + open var spellcheck: Boolean + open var innerText: String + open val offsetParent: Element? + open val offsetTop: Int + open val offsetLeft: Int + open val offsetWidth: Int + open val offsetHeight: Int + fun click() + fun focus() + fun blur() + fun forceSpellCheck() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLUnknownElement](https://developer.mozilla.org/en/docs/Web/API/HTMLUnknownElement) to Kotlin + */ +public external abstract class HTMLUnknownElement : HTMLElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [DOMStringMap](https://developer.mozilla.org/en/docs/Web/API/DOMStringMap) to Kotlin + */ +public external abstract class DOMStringMap : JsAny + +/** + * Exposes the JavaScript [HTMLHtmlElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHtmlElement) to Kotlin + */ +public external abstract class HTMLHtmlElement : HTMLElement, JsAny { + open var version: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLHeadElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHeadElement) to Kotlin + */ +public external abstract class HTMLHeadElement : HTMLElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTitleElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTitleElement) to Kotlin + */ +public external abstract class HTMLTitleElement : HTMLElement, JsAny { + open var text: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLBaseElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBaseElement) to Kotlin + */ +public external abstract class HTMLBaseElement : HTMLElement, JsAny { + open var href: String + open var target: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLLinkElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLinkElement) to Kotlin + */ +public external abstract class HTMLLinkElement : HTMLElement, LinkStyle, JsAny { + open var href: String + open var crossOrigin: String? + open var rel: String + open var `as`: RequestDestination + open val relList: DOMTokenList + open var media: String + open var nonce: String + open var hreflang: String + open var type: String + open val sizes: DOMTokenList + open var referrerPolicy: String + open var charset: String + open var rev: String + open var target: String + open var scope: String + open var workerType: WorkerType + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLMetaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMetaElement) to Kotlin + */ +public external abstract class HTMLMetaElement : HTMLElement, JsAny { + open var name: String + open var httpEquiv: String + open var content: String + open var scheme: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLStyleElement](https://developer.mozilla.org/en/docs/Web/API/HTMLStyleElement) to Kotlin + */ +public external abstract class HTMLStyleElement : HTMLElement, LinkStyle, JsAny { + open var media: String + open var nonce: String + open var type: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLBodyElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBodyElement) to Kotlin + */ +public external abstract class HTMLBodyElement : HTMLElement, WindowEventHandlers, JsAny { + open var text: String + open var link: String + open var vLink: String + open var aLink: String + open var bgColor: String + open var background: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLHeadingElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHeadingElement) to Kotlin + */ +public external abstract class HTMLHeadingElement : HTMLElement, JsAny { + open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLParagraphElement](https://developer.mozilla.org/en/docs/Web/API/HTMLParagraphElement) to Kotlin + */ +public external abstract class HTMLParagraphElement : HTMLElement, JsAny { + open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLHRElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHRElement) to Kotlin + */ +public external abstract class HTMLHRElement : HTMLElement, JsAny { + open var align: String + open var color: String + open var noShade: Boolean + open var size: String + open var width: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLPreElement](https://developer.mozilla.org/en/docs/Web/API/HTMLPreElement) to Kotlin + */ +public external abstract class HTMLPreElement : HTMLElement, JsAny { + open var width: Int + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLQuoteElement](https://developer.mozilla.org/en/docs/Web/API/HTMLQuoteElement) to Kotlin + */ +public external abstract class HTMLQuoteElement : HTMLElement, JsAny { + open var cite: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLOListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOListElement) to Kotlin + */ +public external abstract class HTMLOListElement : HTMLElement, JsAny { + open var reversed: Boolean + open var start: Int + open var type: String + open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLUListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLUListElement) to Kotlin + */ +public external abstract class HTMLUListElement : HTMLElement, JsAny { + open var compact: Boolean + open var type: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLLIElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLIElement) to Kotlin + */ +public external abstract class HTMLLIElement : HTMLElement, JsAny { + open var value: Int + open var type: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLDListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDListElement) to Kotlin + */ +public external abstract class HTMLDListElement : HTMLElement, JsAny { + open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLDivElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDivElement) to Kotlin + */ +public external abstract class HTMLDivElement : HTMLElement, JsAny { + open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLAnchorElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAnchorElement) to Kotlin + */ +public external abstract class HTMLAnchorElement : HTMLElement, HTMLHyperlinkElementUtils, JsAny { + open var target: String + open var download: String + open var ping: String + open var rel: String + open val relList: DOMTokenList + open var hreflang: String + open var type: String + open var text: String + open var referrerPolicy: String + open var coords: String + open var charset: String + open var name: String + open var rev: String + open var shape: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLDataElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDataElement) to Kotlin + */ +public external abstract class HTMLDataElement : HTMLElement, JsAny { + open var value: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTimeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTimeElement) to Kotlin + */ +public external abstract class HTMLTimeElement : HTMLElement, JsAny { + open var dateTime: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLSpanElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSpanElement) to Kotlin + */ +public external abstract class HTMLSpanElement : HTMLElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLBRElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBRElement) to Kotlin + */ +public external abstract class HTMLBRElement : HTMLElement, JsAny { + open var clear: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLHyperlinkElementUtils](https://developer.mozilla.org/en/docs/Web/API/HTMLHyperlinkElementUtils) to Kotlin + */ +public external interface HTMLHyperlinkElementUtils : JsAny { + var href: String + val origin: String + var protocol: String + var username: String + var password: String + var host: String + var hostname: String + var port: String + var pathname: String + var search: String + var hash: String +} + +/** + * Exposes the JavaScript [HTMLModElement](https://developer.mozilla.org/en/docs/Web/API/HTMLModElement) to Kotlin + */ +public external abstract class HTMLModElement : HTMLElement, JsAny { + open var cite: String + open var dateTime: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLPictureElement](https://developer.mozilla.org/en/docs/Web/API/HTMLPictureElement) to Kotlin + */ +public external abstract class HTMLPictureElement : HTMLElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLSourceElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSourceElement) to Kotlin + */ +public external abstract class HTMLSourceElement : HTMLElement, JsAny { + open var src: String + open var type: String + open var srcset: String + open var sizes: String + open var media: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLImageElement](https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement) to Kotlin + */ +public external abstract class HTMLImageElement : HTMLElement, HTMLOrSVGImageElement, TexImageSource, JsAny { + open var alt: String + open var src: String + open var srcset: String + open var sizes: String + open var crossOrigin: String? + open var useMap: String + open var isMap: Boolean + open var width: Int + open var height: Int + open val naturalWidth: Int + open val naturalHeight: Int + open val complete: Boolean + open val currentSrc: String + open var referrerPolicy: String + open var name: String + open var lowsrc: String + open var align: String + open var hspace: Int + open var vspace: Int + open var longDesc: String + open var border: String + open val x: Int + open val y: Int + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLIFrameElement](https://developer.mozilla.org/en/docs/Web/API/HTMLIFrameElement) to Kotlin + */ +public external abstract class HTMLIFrameElement : HTMLElement, JsAny { + open var src: String + open var srcdoc: String + open var name: String + open val sandbox: DOMTokenList + open var allowFullscreen: Boolean + open var allowUserMedia: Boolean + open var width: String + open var height: String + open var referrerPolicy: String + open val contentDocument: Document? + open val contentWindow: Window? + open var align: String + open var scrolling: String + open var frameBorder: String + open var longDesc: String + open var marginHeight: String + open var marginWidth: String + fun getSVGDocument(): Document? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLEmbedElement](https://developer.mozilla.org/en/docs/Web/API/HTMLEmbedElement) to Kotlin + */ +public external abstract class HTMLEmbedElement : HTMLElement, JsAny { + open var src: String + open var type: String + open var width: String + open var height: String + open var align: String + open var name: String + fun getSVGDocument(): Document? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLObjectElement](https://developer.mozilla.org/en/docs/Web/API/HTMLObjectElement) to Kotlin + */ +public external abstract class HTMLObjectElement : HTMLElement, JsAny { + open var data: String + open var type: String + open var typeMustMatch: Boolean + open var name: String + open var useMap: String + open val form: HTMLFormElement? + open var width: String + open var height: String + open val contentDocument: Document? + open val contentWindow: Window? + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open var align: String + open var archive: String + open var code: String + open var declare: Boolean + open var hspace: Int + open var standby: String + open var vspace: Int + open var codeBase: String + open var codeType: String + open var border: String + fun getSVGDocument(): Document? + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLParamElement](https://developer.mozilla.org/en/docs/Web/API/HTMLParamElement) to Kotlin + */ +public external abstract class HTMLParamElement : HTMLElement, JsAny { + open var name: String + open var value: String + open var type: String + open var valueType: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLVideoElement](https://developer.mozilla.org/en/docs/Web/API/HTMLVideoElement) to Kotlin + */ +public external abstract class HTMLVideoElement : HTMLMediaElement, CanvasImageSource, TexImageSource, JsAny { + open var width: Int + open var height: Int + open val videoWidth: Int + open val videoHeight: Int + open var poster: String + open var playsInline: Boolean + + companion object { + val NETWORK_EMPTY: Short + val NETWORK_IDLE: Short + val NETWORK_LOADING: Short + val NETWORK_NO_SOURCE: Short + val HAVE_NOTHING: Short + val HAVE_METADATA: Short + val HAVE_CURRENT_DATA: Short + val HAVE_FUTURE_DATA: Short + val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLAudioElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAudioElement) to Kotlin + */ +public external abstract class HTMLAudioElement : HTMLMediaElement, JsAny { + companion object { + val NETWORK_EMPTY: Short + val NETWORK_IDLE: Short + val NETWORK_LOADING: Short + val NETWORK_NO_SOURCE: Short + val HAVE_NOTHING: Short + val HAVE_METADATA: Short + val HAVE_CURRENT_DATA: Short + val HAVE_FUTURE_DATA: Short + val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTrackElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTrackElement) to Kotlin + */ +public external abstract class HTMLTrackElement : HTMLElement, JsAny { + open var kind: String + open var src: String + open var srclang: String + open var label: String + open var default: Boolean + open val readyState: Short + open val track: TextTrack + + companion object { + val NONE: Short + val LOADING: Short + val LOADED: Short + val ERROR: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLMediaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMediaElement) to Kotlin + */ +public external abstract class HTMLMediaElement : HTMLElement, JsAny { + open val error: MediaError? + open var src: String + open var srcObject: MediaProvider? + open val currentSrc: String + open var crossOrigin: String? + open val networkState: Short + open var preload: String + open val buffered: TimeRanges + open val readyState: Short + open val seeking: Boolean + open var currentTime: Double + open val duration: Double + open val paused: Boolean + open var defaultPlaybackRate: Double + open var playbackRate: Double + open val played: TimeRanges + open val seekable: TimeRanges + open val ended: Boolean + open var autoplay: Boolean + open var loop: Boolean + open var controls: Boolean + open var volume: Double + open var muted: Boolean + open var defaultMuted: Boolean + open val audioTracks: AudioTrackList + open val videoTracks: VideoTrackList + open val textTracks: TextTrackList + open val mediaKeys: MediaKeys? + open var onencrypted: ((Event) -> Unit)? + open var onwaitingforkey: ((Event) -> Unit)? + fun load() + fun canPlayType(type: String): CanPlayTypeResult + fun fastSeek(time: Double) + fun getStartDate(): JsAny + fun play(): Promise + fun pause() + fun addTextTrack(kind: TextTrackKind, label: String, language: String): TextTrack + fun setMediaKeys(mediaKeys: MediaKeys?): Promise + + companion object { + val NETWORK_EMPTY: Short + val NETWORK_IDLE: Short + val NETWORK_LOADING: Short + val NETWORK_NO_SOURCE: Short + val HAVE_NOTHING: Short + val HAVE_METADATA: Short + val HAVE_CURRENT_DATA: Short + val HAVE_FUTURE_DATA: Short + val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [MediaError](https://developer.mozilla.org/en/docs/Web/API/MediaError) to Kotlin + */ +public external abstract class MediaError : JsAny { + open val code: Short + + companion object { + val MEDIA_ERR_ABORTED: Short + val MEDIA_ERR_NETWORK: Short + val MEDIA_ERR_DECODE: Short + val MEDIA_ERR_SRC_NOT_SUPPORTED: Short + } +} + +/** + * Exposes the JavaScript [AudioTrackList](https://developer.mozilla.org/en/docs/Web/API/AudioTrackList) to Kotlin + */ +public external abstract class AudioTrackList : EventTarget, JsAny { + open val length: Int + open var onchange: ((Event) -> Unit)? + open var onaddtrack: ((TrackEvent) -> Unit)? + open var onremovetrack: ((TrackEvent) -> Unit)? + fun getTrackById(id: String): AudioTrack? +} + +/** + * Exposes the JavaScript [AudioTrack](https://developer.mozilla.org/en/docs/Web/API/AudioTrack) to Kotlin + */ +public external abstract class AudioTrack : UnionAudioTrackOrTextTrackOrVideoTrack, JsAny { + open val id: String + open val kind: String + open val label: String + open val language: String + open var enabled: Boolean + open val sourceBuffer: SourceBuffer? +} + +/** + * Exposes the JavaScript [VideoTrackList](https://developer.mozilla.org/en/docs/Web/API/VideoTrackList) to Kotlin + */ +public external abstract class VideoTrackList : EventTarget, JsAny { + open val length: Int + open val selectedIndex: Int + open var onchange: ((Event) -> Unit)? + open var onaddtrack: ((TrackEvent) -> Unit)? + open var onremovetrack: ((TrackEvent) -> Unit)? + fun getTrackById(id: String): VideoTrack? +} + +/** + * Exposes the JavaScript [VideoTrack](https://developer.mozilla.org/en/docs/Web/API/VideoTrack) to Kotlin + */ +public external abstract class VideoTrack : UnionAudioTrackOrTextTrackOrVideoTrack, JsAny { + open val id: String + open val kind: String + open val label: String + open val language: String + open var selected: Boolean + open val sourceBuffer: SourceBuffer? +} + +public external abstract class TextTrackList : EventTarget, JsAny { + open val length: Int + open var onchange: ((Event) -> Unit)? + open var onaddtrack: ((TrackEvent) -> Unit)? + open var onremovetrack: ((TrackEvent) -> Unit)? + fun getTrackById(id: String): TextTrack? +} + +/** + * Exposes the JavaScript [TextTrack](https://developer.mozilla.org/en/docs/Web/API/TextTrack) to Kotlin + */ +public external abstract class TextTrack : EventTarget, UnionAudioTrackOrTextTrackOrVideoTrack, JsAny { + open val kind: TextTrackKind + open val label: String + open val language: String + open val id: String + open val inBandMetadataTrackDispatchType: String + open var mode: TextTrackMode + open val cues: TextTrackCueList? + open val activeCues: TextTrackCueList? + open var oncuechange: ((Event) -> Unit)? + open val sourceBuffer: SourceBuffer? + fun addCue(cue: TextTrackCue) + fun removeCue(cue: TextTrackCue) +} + +public external abstract class TextTrackCueList : JsAny { + open val length: Int + fun getCueById(id: String): TextTrackCue? +} + +/** + * Exposes the JavaScript [TextTrackCue](https://developer.mozilla.org/en/docs/Web/API/TextTrackCue) to Kotlin + */ +public external abstract class TextTrackCue : EventTarget, JsAny { + open val track: TextTrack? + open var id: String + open var startTime: Double + open var endTime: Double + open var pauseOnExit: Boolean + open var onenter: ((Event) -> Unit)? + open var onexit: ((Event) -> Unit)? +} + +/** + * Exposes the JavaScript [TimeRanges](https://developer.mozilla.org/en/docs/Web/API/TimeRanges) to Kotlin + */ +public external abstract class TimeRanges : JsAny { + open val length: Int + fun start(index: Int): Double + fun end(index: Int): Double +} + +/** + * Exposes the JavaScript [TrackEvent](https://developer.mozilla.org/en/docs/Web/API/TrackEvent) to Kotlin + */ +public external open class TrackEvent(type: String, eventInitDict: TrackEventInit) : Event, JsAny { + open val track: UnionAudioTrackOrTextTrackOrVideoTrack? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface TrackEventInit : EventInit, JsAny { + var track: UnionAudioTrackOrTextTrackOrVideoTrack? /* = null */ + +} + +/** + * Exposes the JavaScript [HTMLMapElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMapElement) to Kotlin + */ +public external abstract class HTMLMapElement : HTMLElement, JsAny { + open var name: String + open val areas: HTMLCollection + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLAreaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAreaElement) to Kotlin + */ +public external abstract class HTMLAreaElement : HTMLElement, HTMLHyperlinkElementUtils, JsAny { + open var alt: String + open var coords: String + open var shape: String + open var target: String + open var download: String + open var ping: String + open var rel: String + open val relList: DOMTokenList + open var referrerPolicy: String + open var noHref: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTableElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableElement) to Kotlin + */ +public external abstract class HTMLTableElement : HTMLElement, JsAny { + open var caption: HTMLTableCaptionElement? + open var tHead: HTMLTableSectionElement? + open var tFoot: HTMLTableSectionElement? + open val tBodies: HTMLCollection + open val rows: HTMLCollection + open var align: String + open var border: String + open var frame: String + open var rules: String + open var summary: String + open var width: String + open var bgColor: String + open var cellPadding: String + open var cellSpacing: String + fun createCaption(): HTMLTableCaptionElement + fun deleteCaption() + fun createTHead(): HTMLTableSectionElement + fun deleteTHead() + fun createTFoot(): HTMLTableSectionElement + fun deleteTFoot() + fun createTBody(): HTMLTableSectionElement + fun insertRow(index: Int): HTMLTableRowElement + fun deleteRow(index: Int) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTableCaptionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableCaptionElement) to Kotlin + */ +public external abstract class HTMLTableCaptionElement : HTMLElement, JsAny { + open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTableColElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableColElement) to Kotlin + */ +public external abstract class HTMLTableColElement : HTMLElement, JsAny { + open var span: Int + open var align: String + open var ch: String + open var chOff: String + open var vAlign: String + open var width: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTableSectionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableSectionElement) to Kotlin + */ +public external abstract class HTMLTableSectionElement : HTMLElement, JsAny { + open val rows: HTMLCollection + open var align: String + open var ch: String + open var chOff: String + open var vAlign: String + fun insertRow(index: Int): HTMLElement + fun deleteRow(index: Int) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTableRowElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableRowElement) to Kotlin + */ +public external abstract class HTMLTableRowElement : HTMLElement, JsAny { + open val rowIndex: Int + open val sectionRowIndex: Int + open val cells: HTMLCollection + open var align: String + open var ch: String + open var chOff: String + open var vAlign: String + open var bgColor: String + fun insertCell(index: Int): HTMLElement + fun deleteCell(index: Int) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTableCellElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableCellElement) to Kotlin + */ +public external abstract class HTMLTableCellElement : HTMLElement, JsAny { + open var colSpan: Int + open var rowSpan: Int + open var headers: String + open val cellIndex: Int + open var scope: String + open var abbr: String + open var align: String + open var axis: String + open var height: String + open var width: String + open var ch: String + open var chOff: String + open var noWrap: Boolean + open var vAlign: String + open var bgColor: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLFormElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFormElement) to Kotlin + */ +public external abstract class HTMLFormElement : HTMLElement, JsAny { + open var acceptCharset: String + open var action: String + open var autocomplete: String + open var enctype: String + open var encoding: String + open var method: String + open var name: String + open var noValidate: Boolean + open var target: String + open val elements: HTMLFormControlsCollection + open val length: Int + fun submit() + fun reset() + fun checkValidity(): Boolean + fun reportValidity(): Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLLabelElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLabelElement) to Kotlin + */ +public external abstract class HTMLLabelElement : HTMLElement, JsAny { + open val form: HTMLFormElement? + open var htmlFor: String + open val control: HTMLElement? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLInputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement) to Kotlin + */ +public external abstract class HTMLInputElement : HTMLElement, JsAny { + open var accept: String + open var alt: String + open var autocomplete: String + open var autofocus: Boolean + open var defaultChecked: Boolean + open var checked: Boolean + open var dirName: String + open var disabled: Boolean + open val form: HTMLFormElement? + open val files: FileList? + open var formAction: String + open var formEnctype: String + open var formMethod: String + open var formNoValidate: Boolean + open var formTarget: String + open var height: Int + open var indeterminate: Boolean + open var inputMode: String + open val list: HTMLElement? + open var max: String + open var maxLength: Int + open var min: String + open var minLength: Int + open var multiple: Boolean + open var name: String + open var pattern: String + open var placeholder: String + open var readOnly: Boolean + open var required: Boolean + open var size: Int + open var src: String + open var step: String + open var type: String + open var defaultValue: String + open var value: String + open var valueAsDate: JsAny? + open var valueAsNumber: Double + open var width: Int + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + open var selectionStart: Int? + open var selectionEnd: Int? + open var selectionDirection: String? + open var align: String + open var useMap: String + fun stepUp() + fun stepDown() + fun stepUp(n: Int) + fun stepDown(n: Int) + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + fun select() + fun setRangeText(replacement: String) + fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode) + fun setSelectionRange(start: Int, end: Int, direction: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLButtonElement](https://developer.mozilla.org/en/docs/Web/API/HTMLButtonElement) to Kotlin + */ +public external abstract class HTMLButtonElement : HTMLElement, JsAny { + open var autofocus: Boolean + open var disabled: Boolean + open val form: HTMLFormElement? + open var formAction: String + open var formEnctype: String + open var formMethod: String + open var formNoValidate: Boolean + open var formTarget: String + open var name: String + open var type: String + open var value: String + open var menu: HTMLMenuElement? + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLSelectElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSelectElement) to Kotlin + */ +public external abstract class HTMLSelectElement : HTMLElement, ItemArrayLike, JsAny { + open var autocomplete: String + open var autofocus: Boolean + open var disabled: Boolean + open val form: HTMLFormElement? + open var multiple: Boolean + open var name: String + open var required: Boolean + open var size: Int + open val type: String + open val options: HTMLOptionsCollection + override var length: Int + open val selectedOptions: HTMLCollection + open var selectedIndex: Int + open var value: String + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + fun namedItem(name: String): HTMLOptionElement? + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: HTMLElement) + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: Int) + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement) + fun remove(index: Int) + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + override fun item(index: Int): Element? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLDataListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDataListElement) to Kotlin + */ +public external abstract class HTMLDataListElement : HTMLElement, JsAny { + open val options: HTMLCollection + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLOptGroupElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOptGroupElement) to Kotlin + */ +public external abstract class HTMLOptGroupElement : HTMLElement, UnionHTMLOptGroupElementOrHTMLOptionElement, JsAny { + open var disabled: Boolean + open var label: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLOptionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOptionElement) to Kotlin + */ +public external abstract class HTMLOptionElement : HTMLElement, UnionHTMLOptGroupElementOrHTMLOptionElement, JsAny { + open var disabled: Boolean + open val form: HTMLFormElement? + open var label: String + open var defaultSelected: Boolean + open var selected: Boolean + open var value: String + open var text: String + open val index: Int + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTextAreaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTextAreaElement) to Kotlin + */ +public external abstract class HTMLTextAreaElement : HTMLElement, JsAny { + open var autocomplete: String + open var autofocus: Boolean + open var cols: Int + open var dirName: String + open var disabled: Boolean + open val form: HTMLFormElement? + open var inputMode: String + open var maxLength: Int + open var minLength: Int + open var name: String + open var placeholder: String + open var readOnly: Boolean + open var required: Boolean + open var rows: Int + open var wrap: String + open val type: String + open var defaultValue: String + open var value: String + open val textLength: Int + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + open var selectionStart: Int? + open var selectionEnd: Int? + open var selectionDirection: String? + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + fun select() + fun setRangeText(replacement: String) + fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode) + fun setSelectionRange(start: Int, end: Int, direction: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLKeygenElement](https://developer.mozilla.org/en/docs/Web/API/HTMLKeygenElement) to Kotlin + */ +public external abstract class HTMLKeygenElement : HTMLElement, JsAny { + open var autofocus: Boolean + open var challenge: String + open var disabled: Boolean + open val form: HTMLFormElement? + open var keytype: String + open var name: String + open val type: String + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLOutputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOutputElement) to Kotlin + */ +public external abstract class HTMLOutputElement : HTMLElement, JsAny { + open val htmlFor: DOMTokenList + open val form: HTMLFormElement? + open var name: String + open val type: String + open var defaultValue: String + open var value: String + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLProgressElement](https://developer.mozilla.org/en/docs/Web/API/HTMLProgressElement) to Kotlin + */ +public external abstract class HTMLProgressElement : HTMLElement, JsAny { + open var value: Double + open var max: Double + open val position: Double + open val labels: NodeList + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLMeterElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMeterElement) to Kotlin + */ +public external abstract class HTMLMeterElement : HTMLElement, JsAny { + open var value: Double + open var min: Double + open var max: Double + open var low: Double + open var high: Double + open var optimum: Double + open val labels: NodeList + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLFieldSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFieldSetElement) to Kotlin + */ +public external abstract class HTMLFieldSetElement : HTMLElement, JsAny { + open var disabled: Boolean + open val form: HTMLFormElement? + open var name: String + open val type: String + open val elements: HTMLCollection + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLLegendElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLegendElement) to Kotlin + */ +public external abstract class HTMLLegendElement : HTMLElement, JsAny { + open val form: HTMLFormElement? + open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [ValidityState](https://developer.mozilla.org/en/docs/Web/API/ValidityState) to Kotlin + */ +public external abstract class ValidityState : JsAny { + open val valueMissing: Boolean + open val typeMismatch: Boolean + open val patternMismatch: Boolean + open val tooLong: Boolean + open val tooShort: Boolean + open val rangeUnderflow: Boolean + open val rangeOverflow: Boolean + open val stepMismatch: Boolean + open val badInput: Boolean + open val customError: Boolean + open val valid: Boolean +} + +/** + * Exposes the JavaScript [HTMLDetailsElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDetailsElement) to Kotlin + */ +public external abstract class HTMLDetailsElement : HTMLElement, JsAny { + open var open: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLMenuElement : HTMLElement, JsAny { + open var type: String + open var label: String + open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLMenuItemElement : HTMLElement, JsAny { + open var type: String + open var label: String + open var icon: String + open var disabled: Boolean + open var checked: Boolean + open var radiogroup: String + open var default: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external open class RelatedEvent(type: String, eventInitDict: RelatedEventInit) : Event, JsAny { + open val relatedTarget: EventTarget? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface RelatedEventInit : EventInit, JsAny { + var relatedTarget: EventTarget? /* = null */ + +} + +/** + * Exposes the JavaScript [HTMLDialogElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDialogElement) to Kotlin + */ +public external abstract class HTMLDialogElement : HTMLElement, JsAny { + open var open: Boolean + open var returnValue: String + fun show(anchor: UnionElementOrMouseEvent) + fun showModal(anchor: UnionElementOrMouseEvent) + fun close(returnValue: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLScriptElement](https://developer.mozilla.org/en/docs/Web/API/HTMLScriptElement) to Kotlin + */ +public external abstract class HTMLScriptElement : HTMLElement, HTMLOrSVGScriptElement, JsAny { + open var src: String + open var type: String + open var charset: String + open var async: Boolean + open var defer: Boolean + open var crossOrigin: String? + open var text: String + open var nonce: String + open var event: String + open var htmlFor: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTemplateElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTemplateElement) to Kotlin + */ +public external abstract class HTMLTemplateElement : HTMLElement, JsAny { + open val content: DocumentFragment + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLSlotElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSlotElement) to Kotlin + */ +public external abstract class HTMLSlotElement : HTMLElement, JsAny { + open var name: String + fun assignedNodes(options: AssignedNodesOptions): JsArray + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface AssignedNodesOptions : JsAny { + var flatten: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [HTMLCanvasElement](https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement) to Kotlin + */ +public external abstract class HTMLCanvasElement : HTMLElement, CanvasImageSource, TexImageSource, JsAny { + open var width: Int + open var height: Int + fun getContext(contextId: String, vararg arguments: JsAny?): RenderingContext? + fun toDataURL(type: String, quality: JsAny?): String + fun toBlob(_callback: (Blob?) -> Unit, type: String, quality: JsAny?) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface CanvasRenderingContext2DSettings : JsAny { + var alpha: Boolean? /* = true */ + +} + +/** + * Exposes the JavaScript [CanvasRenderingContext2D](https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D) to Kotlin + */ +public external abstract class CanvasRenderingContext2D : CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasHitRegion, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath, RenderingContext, JsAny { + open val canvas: HTMLCanvasElement +} + +public external interface CanvasState : JsAny { + fun save() + fun restore() +} + +public external interface CanvasTransform : JsAny { + fun scale(x: Double, y: Double) + fun rotate(angle: Double) + fun translate(x: Double, y: Double) + fun transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) + fun getTransform(): DOMMatrix + fun setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) + fun setTransform(transform: JsAny?) + fun resetTransform() +} + +public external interface CanvasCompositing : JsAny { + var globalAlpha: Double + var globalCompositeOperation: String +} + +public external interface CanvasImageSmoothing : JsAny { + var imageSmoothingEnabled: Boolean + var imageSmoothingQuality: ImageSmoothingQuality +} + +public external interface CanvasFillStrokeStyles : JsAny { + var strokeStyle: JsAny? /* String|CanvasGradient|CanvasPattern */ + var fillStyle: JsAny? /* String|CanvasGradient|CanvasPattern */ + fun createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double): CanvasGradient + fun createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double): CanvasGradient + fun createPattern(image: CanvasImageSource, repetition: String): CanvasPattern? +} + +public external interface CanvasShadowStyles : JsAny { + var shadowOffsetX: Double + var shadowOffsetY: Double + var shadowBlur: Double + var shadowColor: String +} + +public external interface CanvasFilters : JsAny { + var filter: String +} + +public external interface CanvasRect : JsAny { + fun clearRect(x: Double, y: Double, w: Double, h: Double) + fun fillRect(x: Double, y: Double, w: Double, h: Double) + fun strokeRect(x: Double, y: Double, w: Double, h: Double) +} + +public external interface CanvasDrawPath : JsAny { + fun beginPath() + fun fill(fillRule: CanvasFillRule) + fun fill(path: Path2D, fillRule: CanvasFillRule) + fun stroke() + fun stroke(path: Path2D) + fun clip(fillRule: CanvasFillRule) + fun clip(path: Path2D, fillRule: CanvasFillRule) + fun resetClip() + fun isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule): Boolean + fun isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule): Boolean + fun isPointInStroke(x: Double, y: Double): Boolean + fun isPointInStroke(path: Path2D, x: Double, y: Double): Boolean +} + +public external interface CanvasUserInterface : JsAny { + fun drawFocusIfNeeded(element: Element) + fun drawFocusIfNeeded(path: Path2D, element: Element) + fun scrollPathIntoView() + fun scrollPathIntoView(path: Path2D) +} + +public external interface CanvasText : JsAny { + fun fillText(text: String, x: Double, y: Double, maxWidth: Double) + fun strokeText(text: String, x: Double, y: Double, maxWidth: Double) + fun measureText(text: String): TextMetrics +} + +public external interface CanvasDrawImage : JsAny { + fun drawImage(image: CanvasImageSource, dx: Double, dy: Double) + fun drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) + fun drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) +} + +public external interface CanvasHitRegion : JsAny { + fun addHitRegion(options: HitRegionOptions) + fun removeHitRegion(id: String) + fun clearHitRegions() +} + +public external interface CanvasImageData : JsAny { + fun createImageData(sw: Double, sh: Double): ImageData + fun createImageData(imagedata: ImageData): ImageData + fun getImageData(sx: Double, sy: Double, sw: Double, sh: Double): ImageData + fun putImageData(imagedata: ImageData, dx: Double, dy: Double) + fun putImageData(imagedata: ImageData, dx: Double, dy: Double, dirtyX: Double, dirtyY: Double, dirtyWidth: Double, dirtyHeight: Double) +} + +public external interface CanvasPathDrawingStyles : JsAny { + var lineWidth: Double + var lineCap: CanvasLineCap + var lineJoin: CanvasLineJoin + var miterLimit: Double + var lineDashOffset: Double + fun setLineDash(segments: JsArray) + fun getLineDash(): JsArray +} + +public external interface CanvasTextDrawingStyles : JsAny { + var font: String + var textAlign: CanvasTextAlign + var textBaseline: CanvasTextBaseline + var direction: CanvasDirection +} + +public external interface CanvasPath : JsAny { + fun closePath() + fun moveTo(x: Double, y: Double) + fun lineTo(x: Double, y: Double) + fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) + fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) + fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) + fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double) + fun rect(x: Double, y: Double, w: Double, h: Double) + fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean) + fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean) +} + +/** + * Exposes the JavaScript [CanvasGradient](https://developer.mozilla.org/en/docs/Web/API/CanvasGradient) to Kotlin + */ +public external abstract class CanvasGradient : JsAny { + fun addColorStop(offset: Double, color: String) +} + +/** + * Exposes the JavaScript [CanvasPattern](https://developer.mozilla.org/en/docs/Web/API/CanvasPattern) to Kotlin + */ +public external abstract class CanvasPattern : JsAny { + fun setTransform(transform: JsAny?) +} + +/** + * Exposes the JavaScript [TextMetrics](https://developer.mozilla.org/en/docs/Web/API/TextMetrics) to Kotlin + */ +public external abstract class TextMetrics : JsAny { + open val width: Double + open val actualBoundingBoxLeft: Double + open val actualBoundingBoxRight: Double + open val fontBoundingBoxAscent: Double + open val fontBoundingBoxDescent: Double + open val actualBoundingBoxAscent: Double + open val actualBoundingBoxDescent: Double + open val emHeightAscent: Double + open val emHeightDescent: Double + open val hangingBaseline: Double + open val alphabeticBaseline: Double + open val ideographicBaseline: Double +} + +public external interface HitRegionOptions : JsAny { + var path: Path2D? /* = null */ + + var fillRule: CanvasFillRule? /* = CanvasFillRule.NONZERO */ + + var id: String? /* = "" */ + + var parentID: String? /* = null */ + + var cursor: String? /* = "inherit" */ + + var control: Element? /* = null */ + + var label: String? /* = null */ + + var role: String? /* = null */ + +} + +/** + * Exposes the JavaScript [ImageData](https://developer.mozilla.org/en/docs/Web/API/ImageData) to Kotlin + */ +public external open class ImageData : ImageBitmapSource, TexImageSource, JsAny { + constructor(sw: Int, sh: Int) + constructor(data: Uint8ClampedArray, sw: Int, sh: Int) + open val width: Int + open val height: Int + open val data: Uint8ClampedArray +} + +/** + * Exposes the JavaScript [Path2D](https://developer.mozilla.org/en/docs/Web/API/Path2D) to Kotlin + */ +public external open class Path2D() : CanvasPath, JsAny { + constructor(path: Path2D) + constructor(paths: JsArray, fillRule: CanvasFillRule) + constructor(d: String) + fun addPath(path: Path2D, transform: JsAny?) + override fun closePath() + override fun moveTo(x: Double, y: Double) + override fun lineTo(x: Double, y: Double) + override fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) + override fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) + override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) + override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double) + override fun rect(x: Double, y: Double, w: Double, h: Double) + override fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* */) + override fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* */) +} + +/** + * Exposes the JavaScript [ImageBitmapRenderingContext](https://developer.mozilla.org/en/docs/Web/API/ImageBitmapRenderingContext) to Kotlin + */ +public external abstract class ImageBitmapRenderingContext : JsAny { + open val canvas: HTMLCanvasElement + fun transferFromImageBitmap(bitmap: ImageBitmap?) +} + +public external interface ImageBitmapRenderingContextSettings : JsAny { + var alpha: Boolean? /* = true */ + +} + +/** + * Exposes the JavaScript [CustomElementRegistry](https://developer.mozilla.org/en/docs/Web/API/CustomElementRegistry) to Kotlin + */ +public external abstract class CustomElementRegistry : JsAny { + fun define(name: String, constructor: () -> JsAny?, options: ElementDefinitionOptions) + fun get(name: String): JsAny? + fun whenDefined(name: String): Promise +} + +public external interface ElementDefinitionOptions : JsAny { + var extends: String? + +} + +public external interface ElementContentEditable : JsAny { + var contentEditable: String + val isContentEditable: Boolean +} + +/** + * Exposes the JavaScript [DataTransfer](https://developer.mozilla.org/en/docs/Web/API/DataTransfer) to Kotlin + */ +public external abstract class DataTransfer : JsAny { + open var dropEffect: String + open var effectAllowed: String + open val items: DataTransferItemList + open val types: JsArray + open val files: FileList + fun setDragImage(image: Element, x: Int, y: Int) + fun getData(format: String): String + fun setData(format: String, data: String) + fun clearData(format: String) +} + +/** + * Exposes the JavaScript [DataTransferItemList](https://developer.mozilla.org/en/docs/Web/API/DataTransferItemList) to Kotlin + */ +public external abstract class DataTransferItemList : JsAny { + open val length: Int + fun add(data: String, type: String): DataTransferItem? + fun add(data: File): DataTransferItem? + fun remove(index: Int) + fun clear() +} + +/** + * Exposes the JavaScript [DataTransferItem](https://developer.mozilla.org/en/docs/Web/API/DataTransferItem) to Kotlin + */ +public external abstract class DataTransferItem : JsAny { + open val kind: String + open val type: String + fun getAsString(_callback: ((String) -> Unit)?) + fun getAsFile(): File? +} + +/** + * Exposes the JavaScript [DragEvent](https://developer.mozilla.org/en/docs/Web/API/DragEvent) to Kotlin + */ +public external open class DragEvent(type: String, eventInitDict: DragEventInit) : MouseEvent, JsAny { + open val dataTransfer: DataTransfer? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface DragEventInit : MouseEventInit, JsAny { + var dataTransfer: DataTransfer? /* = null */ + +} + +/** + * Exposes the JavaScript [Window](https://developer.mozilla.org/en/docs/Web/API/Window) to Kotlin + */ +public external abstract class Window : EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowLocalStorage, GlobalPerformance, UnionMessagePortOrWindowProxy, JsAny { + open val window: Window + open val self: Window + open val document: Document + open var name: String + open val location: Location + open val history: History + open val customElements: CustomElementRegistry + open val locationbar: BarProp + open val menubar: BarProp + open val personalbar: BarProp + open val scrollbars: BarProp + open val statusbar: BarProp + open val toolbar: BarProp + open var status: String + open val closed: Boolean + open val frames: Window + open val length: Int + open val top: Window + open var opener: JsAny? + open val parent: Window + open val frameElement: Element? + open val navigator: Navigator + open val applicationCache: ApplicationCache + open val external: External + open val screen: Screen + open val innerWidth: Int + open val innerHeight: Int + open val scrollX: Double + open val pageXOffset: Double + open val scrollY: Double + open val pageYOffset: Double + open val screenX: Int + open val screenY: Int + open val outerWidth: Int + open val outerHeight: Int + open val devicePixelRatio: Double + fun close() + fun stop() + fun focus() + fun blur() + fun open(url: String, target: String, features: String): Window? + fun alert() + fun alert(message: String) + fun confirm(message: String): Boolean + fun prompt(message: String, default: String): String? + fun print() + fun requestAnimationFrame(callback: (Double) -> Unit): Int + fun cancelAnimationFrame(handle: Int) + fun postMessage(message: JsAny?, targetOrigin: String, transfer: JsArray) + fun captureEvents() + fun releaseEvents() + fun matchMedia(query: String): MediaQueryList + fun moveTo(x: Int, y: Int) + fun moveBy(x: Int, y: Int) + fun resizeTo(x: Int, y: Int) + fun resizeBy(x: Int, y: Int) + fun scroll(options: ScrollToOptions) + fun scroll(x: Double, y: Double) + fun scrollTo(options: ScrollToOptions) + fun scrollTo(x: Double, y: Double) + fun scrollBy(options: ScrollToOptions) + fun scrollBy(x: Double, y: Double) + fun getComputedStyle(elt: Element, pseudoElt: String?): CSSStyleDeclaration +} + +public external abstract class BarProp : JsAny { + open val visible: Boolean +} + +/** + * Exposes the JavaScript [History](https://developer.mozilla.org/en/docs/Web/API/History) to Kotlin + */ +public external abstract class History : JsAny { + open val length: Int + open var scrollRestoration: ScrollRestoration + open val state: JsAny? + fun go(delta: Int) + fun back() + fun forward() + fun pushState(data: JsAny?, title: String, url: String?) + fun replaceState(data: JsAny?, title: String, url: String?) +} + +/** + * Exposes the JavaScript [Location](https://developer.mozilla.org/en/docs/Web/API/Location) to Kotlin + */ +public external abstract class Location : JsAny { + open var href: String + open val origin: String + open var protocol: String + open var host: String + open var hostname: String + open var port: String + open var pathname: String + open var search: String + open var hash: String + open val ancestorOrigins: JsArray + fun assign(url: String) + fun replace(url: String) + fun reload() +} + +/** + * Exposes the JavaScript [PopStateEvent](https://developer.mozilla.org/en/docs/Web/API/PopStateEvent) to Kotlin + */ +public external open class PopStateEvent(type: String, eventInitDict: PopStateEventInit) : Event, JsAny { + open val state: JsAny? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface PopStateEventInit : EventInit, JsAny { + var state: JsAny? /* = null */ + +} + +/** + * Exposes the JavaScript [HashChangeEvent](https://developer.mozilla.org/en/docs/Web/API/HashChangeEvent) to Kotlin + */ +public external open class HashChangeEvent(type: String, eventInitDict: HashChangeEventInit) : Event, JsAny { + open val oldURL: String + open val newURL: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface HashChangeEventInit : EventInit, JsAny { + var oldURL: String? /* = "" */ + + var newURL: String? /* = "" */ + +} + +/** + * Exposes the JavaScript [PageTransitionEvent](https://developer.mozilla.org/en/docs/Web/API/PageTransitionEvent) to Kotlin + */ +public external open class PageTransitionEvent(type: String, eventInitDict: PageTransitionEventInit) : Event, JsAny { + open val persisted: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface PageTransitionEventInit : EventInit, JsAny { + var persisted: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [BeforeUnloadEvent](https://developer.mozilla.org/en/docs/Web/API/BeforeUnloadEvent) to Kotlin + */ +public external open class BeforeUnloadEvent : Event, JsAny { + var returnValue: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external abstract class ApplicationCache : EventTarget, JsAny { + open val status: Short + open var onchecking: ((Event) -> Unit)? + open var onerror: ((Event) -> Unit)? + open var onnoupdate: ((Event) -> Unit)? + open var ondownloading: ((Event) -> Unit)? + open var onprogress: ((ProgressEvent) -> Unit)? + open var onupdateready: ((Event) -> Unit)? + open var oncached: ((Event) -> Unit)? + open var onobsolete: ((Event) -> Unit)? + fun update() + fun abort() + fun swapCache() + + companion object { + val UNCACHED: Short + val IDLE: Short + val CHECKING: Short + val DOWNLOADING: Short + val UPDATEREADY: Short + val OBSOLETE: Short + } +} + +/** + * Exposes the JavaScript [NavigatorOnLine](https://developer.mozilla.org/en/docs/Web/API/NavigatorOnLine) to Kotlin + */ +public external interface NavigatorOnLine : JsAny { + val onLine: Boolean +} + +/** + * Exposes the JavaScript [ErrorEvent](https://developer.mozilla.org/en/docs/Web/API/ErrorEvent) to Kotlin + */ +public external open class ErrorEvent(type: String, eventInitDict: ErrorEventInit) : Event, JsAny { + open val message: String + open val filename: String + open val lineno: Int + open val colno: Int + open val error: JsAny? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ErrorEventInit : EventInit, JsAny { + var message: String? /* = "" */ + + var filename: String? /* = "" */ + + var lineno: Int? /* = 0 */ + + var colno: Int? /* = 0 */ + + var error: JsAny? /* = null */ + +} + +/** + * Exposes the JavaScript [PromiseRejectionEvent](https://developer.mozilla.org/en/docs/Web/API/PromiseRejectionEvent) to Kotlin + */ +public external open class PromiseRejectionEvent(type: String, eventInitDict: PromiseRejectionEventInit) : Event, JsAny { + open val promise: Promise<*> + open val reason: JsAny? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface PromiseRejectionEventInit : EventInit, JsAny { + var promise: Promise<*>? + var reason: JsAny? + +} + +/** + * Exposes the JavaScript [GlobalEventHandlers](https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers) to Kotlin + */ +public external interface GlobalEventHandlers : JsAny { + var onabort: ((Event) -> Unit)? + + var onblur: ((FocusEvent) -> Unit)? + + var oncancel: ((Event) -> Unit)? + + var oncanplay: ((Event) -> Unit)? + + var oncanplaythrough: ((Event) -> Unit)? + + var onchange: ((Event) -> Unit)? + + var onclick: ((MouseEvent) -> Unit)? + + var onclose: ((Event) -> Unit)? + + var oncontextmenu: ((MouseEvent) -> Unit)? + + var oncuechange: ((Event) -> Unit)? + + var ondblclick: ((MouseEvent) -> Unit)? + + var ondrag: ((DragEvent) -> Unit)? + + var ondragend: ((DragEvent) -> Unit)? + + var ondragenter: ((DragEvent) -> Unit)? + + var ondragexit: ((DragEvent) -> Unit)? + + var ondragleave: ((DragEvent) -> Unit)? + + var ondragover: ((DragEvent) -> Unit)? + + var ondragstart: ((DragEvent) -> Unit)? + + var ondrop: ((DragEvent) -> Unit)? + + var ondurationchange: ((Event) -> Unit)? + + var onemptied: ((Event) -> Unit)? + + var onended: ((Event) -> Unit)? + + var onerror: ((JsAny? /* Event|String */, String, Int, Int, JsAny?) -> JsAny?)? + + var onfocus: ((FocusEvent) -> Unit)? + + var oninput: ((InputEvent) -> Unit)? + + var oninvalid: ((Event) -> Unit)? + + var onkeydown: ((KeyboardEvent) -> Unit)? + + var onkeypress: ((KeyboardEvent) -> Unit)? + + var onkeyup: ((KeyboardEvent) -> Unit)? + + var onload: ((Event) -> Unit)? + + var onloadeddata: ((Event) -> Unit)? + + var onloadedmetadata: ((Event) -> Unit)? + + var onloadend: ((Event) -> Unit)? + + var onloadstart: ((ProgressEvent) -> Unit)? + + var onmousedown: ((MouseEvent) -> Unit)? + + var onmouseenter: ((MouseEvent) -> Unit)? + + var onmouseleave: ((MouseEvent) -> Unit)? + + var onmousemove: ((MouseEvent) -> Unit)? + + var onmouseout: ((MouseEvent) -> Unit)? + + var onmouseover: ((MouseEvent) -> Unit)? + + var onmouseup: ((MouseEvent) -> Unit)? + + var onwheel: ((WheelEvent) -> Unit)? + + var onpause: ((Event) -> Unit)? + + var onplay: ((Event) -> Unit)? + + var onplaying: ((Event) -> Unit)? + + var onprogress: ((ProgressEvent) -> Unit)? + + var onratechange: ((Event) -> Unit)? + + var onreset: ((Event) -> Unit)? + + var onresize: ((Event) -> Unit)? + + var onscroll: ((Event) -> Unit)? + + var onseeked: ((Event) -> Unit)? + + var onseeking: ((Event) -> Unit)? + + var onselect: ((Event) -> Unit)? + + var onshow: ((Event) -> Unit)? + + var onstalled: ((Event) -> Unit)? + + var onsubmit: ((Event) -> Unit)? + + var onsuspend: ((Event) -> Unit)? + + var ontimeupdate: ((Event) -> Unit)? + + var ontoggle: ((Event) -> Unit)? + + var onvolumechange: ((Event) -> Unit)? + + var onwaiting: ((Event) -> Unit)? + + var ongotpointercapture: ((PointerEvent) -> Unit)? + + var onlostpointercapture: ((PointerEvent) -> Unit)? + + var onpointerdown: ((PointerEvent) -> Unit)? + + var onpointermove: ((PointerEvent) -> Unit)? + + var onpointerup: ((PointerEvent) -> Unit)? + + var onpointercancel: ((PointerEvent) -> Unit)? + + var onpointerover: ((PointerEvent) -> Unit)? + + var onpointerout: ((PointerEvent) -> Unit)? + + var onpointerenter: ((PointerEvent) -> Unit)? + + var onpointerleave: ((PointerEvent) -> Unit)? + +} + +/** + * Exposes the JavaScript [WindowEventHandlers](https://developer.mozilla.org/en/docs/Web/API/WindowEventHandlers) to Kotlin + */ +public external interface WindowEventHandlers : JsAny { + var onafterprint: ((Event) -> Unit)? + + var onbeforeprint: ((Event) -> Unit)? + + var onbeforeunload: ((BeforeUnloadEvent) -> String?)? + + var onhashchange: ((HashChangeEvent) -> Unit)? + + var onlanguagechange: ((Event) -> Unit)? + + var onmessage: ((MessageEvent) -> Unit)? + + var onoffline: ((Event) -> Unit)? + + var ononline: ((Event) -> Unit)? + + var onpagehide: ((PageTransitionEvent) -> Unit)? + + var onpageshow: ((PageTransitionEvent) -> Unit)? + + var onpopstate: ((PopStateEvent) -> Unit)? + + var onrejectionhandled: ((Event) -> Unit)? + + var onstorage: ((StorageEvent) -> Unit)? + + var onunhandledrejection: ((PromiseRejectionEvent) -> Unit)? + + var onunload: ((Event) -> Unit)? + +} + +public external interface DocumentAndElementEventHandlers : JsAny { + var oncopy: ((ClipboardEvent) -> Unit)? + + var oncut: ((ClipboardEvent) -> Unit)? + + var onpaste: ((ClipboardEvent) -> Unit)? + +} + +/** + * Exposes the JavaScript [WindowOrWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WindowOrWorkerGlobalScope) to Kotlin + */ +public external interface WindowOrWorkerGlobalScope : JsAny { + val origin: String + val caches: CacheStorage + fun btoa(data: String): String + fun atob(data: String): String + fun setTimeout(handler: String, timeout: Int, vararg arguments: JsAny?): Int + fun setTimeout(handler: () -> JsAny?, timeout: Int, vararg arguments: JsAny?): Int + fun clearTimeout(handle: Int) + fun setInterval(handler: String, timeout: Int, vararg arguments: JsAny?): Int + fun setInterval(handler: () -> JsAny?, timeout: Int, vararg arguments: JsAny?): Int + fun clearInterval(handle: Int) + fun createImageBitmap(image: ImageBitmapSource, options: ImageBitmapOptions): Promise<*> + fun createImageBitmap(image: ImageBitmapSource, sx: Int, sy: Int, sw: Int, sh: Int, options: ImageBitmapOptions): Promise<*> + fun fetch(input: Request, init: RequestInit): Promise<*> + fun fetch(input: String, init: RequestInit): Promise<*> +} + +/** + * Exposes the JavaScript [Navigator](https://developer.mozilla.org/en/docs/Web/API/Navigator) to Kotlin + */ +public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware, JsAny { + open val clipboard: Clipboard + open val mediaDevices: MediaDevices + open val maxTouchPoints: Int + open val serviceWorker: ServiceWorkerContainer + fun requestMediaKeySystemAccess(keySystem: String, supportedConfigurations: JsArray): Promise<*> + fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (JsAny) -> Unit) + fun vibrate(pattern: Int): Boolean + fun vibrate(pattern: JsArray): Boolean +} + +/** + * Exposes the JavaScript [NavigatorID](https://developer.mozilla.org/en/docs/Web/API/NavigatorID) to Kotlin + */ +public external interface NavigatorID : JsAny { + val appCodeName: String + val appName: String + val appVersion: String + val platform: String + val product: String + val productSub: String + val userAgent: String + val vendor: String + val vendorSub: String + val oscpu: String + fun taintEnabled(): Boolean +} + +/** + * Exposes the JavaScript [NavigatorLanguage](https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage) to Kotlin + */ +public external interface NavigatorLanguage : JsAny { + val language: String + val languages: JsArray +} + +public external interface NavigatorContentUtils : JsAny { + fun registerProtocolHandler(scheme: String, url: String, title: String) + fun registerContentHandler(mimeType: String, url: String, title: String) + fun isProtocolHandlerRegistered(scheme: String, url: String): String + fun isContentHandlerRegistered(mimeType: String, url: String): String + fun unregisterProtocolHandler(scheme: String, url: String) + fun unregisterContentHandler(mimeType: String, url: String) +} + +public external interface NavigatorCookies : JsAny { + val cookieEnabled: Boolean +} + +/** + * Exposes the JavaScript [NavigatorPlugins](https://developer.mozilla.org/en/docs/Web/API/NavigatorPlugins) to Kotlin + */ +public external interface NavigatorPlugins : JsAny { + val plugins: PluginArray + val mimeTypes: MimeTypeArray + fun javaEnabled(): Boolean +} + +/** + * Exposes the JavaScript [PluginArray](https://developer.mozilla.org/en/docs/Web/API/PluginArray) to Kotlin + */ +public external abstract class PluginArray : ItemArrayLike, JsAny { + fun refresh(reload: Boolean) + override fun item(index: Int): Plugin? + fun namedItem(name: String): Plugin? +} + +/** + * Exposes the JavaScript [MimeTypeArray](https://developer.mozilla.org/en/docs/Web/API/MimeTypeArray) to Kotlin + */ +public external abstract class MimeTypeArray : ItemArrayLike, JsAny { + override fun item(index: Int): MimeType? + fun namedItem(name: String): MimeType? +} + +/** + * Exposes the JavaScript [Plugin](https://developer.mozilla.org/en/docs/Web/API/Plugin) to Kotlin + */ +public external abstract class Plugin : ItemArrayLike, JsAny { + open val name: String + open val description: String + open val filename: String + override fun item(index: Int): MimeType? + fun namedItem(name: String): MimeType? +} + +/** + * Exposes the JavaScript [MimeType](https://developer.mozilla.org/en/docs/Web/API/MimeType) to Kotlin + */ +public external abstract class MimeType : JsAny { + open val type: String + open val description: String + open val suffixes: String + open val enabledPlugin: Plugin +} + +/** + * Exposes the JavaScript [ImageBitmap](https://developer.mozilla.org/en/docs/Web/API/ImageBitmap) to Kotlin + */ +public external abstract class ImageBitmap : CanvasImageSource, TexImageSource, JsAny { + open val width: Int + open val height: Int + fun close() +} + +public external interface ImageBitmapOptions : JsAny { + var imageOrientation: ImageOrientation? /* = ImageOrientation.NONE */ + + var premultiplyAlpha: PremultiplyAlpha? /* = PremultiplyAlpha.DEFAULT */ + + var colorSpaceConversion: ColorSpaceConversion? /* = ColorSpaceConversion.DEFAULT */ + + var resizeWidth: Int? + + var resizeHeight: Int? + + var resizeQuality: ResizeQuality? /* = ResizeQuality.LOW */ + +} + +/** + * Exposes the JavaScript [MessageEvent](https://developer.mozilla.org/en/docs/Web/API/MessageEvent) to Kotlin + */ +public external open class MessageEvent(type: String, eventInitDict: MessageEventInit) : Event, JsAny { + open val data: JsAny? + open val origin: String + open val lastEventId: String + open val source: UnionMessagePortOrWindowProxy? + open val ports: JsArray + fun initMessageEvent(type: String, bubbles: Boolean, cancelable: Boolean, data: JsAny?, origin: String, lastEventId: String, source: UnionMessagePortOrWindowProxy?, ports: JsArray) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface MessageEventInit : EventInit, JsAny { + var data: JsAny? /* = null */ + + var origin: String? /* = "" */ + + var lastEventId: String? /* = "" */ + + var source: UnionMessagePortOrWindowProxy? /* = null */ + + var ports: JsArray? /* = arrayOf() */ + +} + +/** + * Exposes the JavaScript [EventSource](https://developer.mozilla.org/en/docs/Web/API/EventSource) to Kotlin + */ +public external open class EventSource(url: String, eventSourceInitDict: EventSourceInit) : EventTarget, JsAny { + open val url: String + open val withCredentials: Boolean + open val readyState: Short + var onopen: ((Event) -> Unit)? + var onmessage: ((MessageEvent) -> Unit)? + var onerror: ((Event) -> Unit)? + fun close() + + companion object { + val CONNECTING: Short + val OPEN: Short + val CLOSED: Short + } +} + +public external interface EventSourceInit : JsAny { + var withCredentials: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [WebSocket](https://developer.mozilla.org/en/docs/Web/API/WebSocket) to Kotlin + */ +public external open class WebSocket(url: String, protocols: JsAny? /* String|JsArray */) : EventTarget, JsAny { + open val url: String + open val readyState: Short + open val bufferedAmount: JsNumber + var onopen: ((Event) -> Unit)? + var onerror: ((Event) -> Unit)? + var onclose: ((Event) -> Unit)? + open val extensions: String + open val protocol: String + var onmessage: ((MessageEvent) -> Unit)? + var binaryType: BinaryType + fun close(code: Short, reason: String) + fun send(data: String) + fun send(data: Blob) + fun send(data: ArrayBuffer) + fun send(data: ArrayBufferView) + + companion object { + val CONNECTING: Short + val OPEN: Short + val CLOSING: Short + val CLOSED: Short + } +} + +/** + * Exposes the JavaScript [CloseEvent](https://developer.mozilla.org/en/docs/Web/API/CloseEvent) to Kotlin + */ +public external open class CloseEvent(type: String, eventInitDict: CloseEventInit) : Event, JsAny { + open val wasClean: Boolean + open val code: Short + open val reason: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface CloseEventInit : EventInit, JsAny { + var wasClean: Boolean? /* = false */ + + var code: Short? /* = 0 */ + + var reason: String? /* = "" */ + +} + +/** + * Exposes the JavaScript [MessageChannel](https://developer.mozilla.org/en/docs/Web/API/MessageChannel) to Kotlin + */ +public external open class MessageChannel : JsAny { + open val port1: MessagePort + open val port2: MessagePort +} + +/** + * Exposes the JavaScript [MessagePort](https://developer.mozilla.org/en/docs/Web/API/MessagePort) to Kotlin + */ +public external abstract class MessagePort : EventTarget, UnionMessagePortOrWindowProxy, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker, JsAny { + open var onmessage: ((MessageEvent) -> Unit)? + fun postMessage(message: JsAny?, transfer: JsArray) + fun start() + fun close() +} + +/** + * Exposes the JavaScript [BroadcastChannel](https://developer.mozilla.org/en/docs/Web/API/BroadcastChannel) to Kotlin + */ +public external open class BroadcastChannel(name: String) : EventTarget, JsAny { + open val name: String + var onmessage: ((MessageEvent) -> Unit)? + fun postMessage(message: JsAny?) + fun close() +} + +/** + * Exposes the JavaScript [WorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WorkerGlobalScope) to Kotlin + */ +public external abstract class WorkerGlobalScope : EventTarget, WindowOrWorkerGlobalScope, GlobalPerformance, JsAny { + open val self: WorkerGlobalScope + open val location: WorkerLocation + open val navigator: WorkerNavigator + open var onerror: ((JsAny? /* Event|String */, String, Int, Int, JsAny?) -> JsAny?)? + open var onlanguagechange: ((Event) -> Unit)? + open var onoffline: ((Event) -> Unit)? + open var ononline: ((Event) -> Unit)? + open var onrejectionhandled: ((Event) -> Unit)? + open var onunhandledrejection: ((PromiseRejectionEvent) -> Unit)? + fun importScripts(vararg urls: String) +} + +/** + * Exposes the JavaScript [DedicatedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/DedicatedWorkerGlobalScope) to Kotlin + */ +public external abstract class DedicatedWorkerGlobalScope : WorkerGlobalScope, JsAny { + open var onmessage: ((MessageEvent) -> Unit)? + fun postMessage(message: JsAny?, transfer: JsArray) + fun close() +} + +/** + * Exposes the JavaScript [SharedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/SharedWorkerGlobalScope) to Kotlin + */ +public external abstract class SharedWorkerGlobalScope : WorkerGlobalScope, JsAny { + open val name: String + open val applicationCache: ApplicationCache + open var onconnect: ((Event) -> Unit)? + fun close() +} + +/** + * Exposes the JavaScript [AbstractWorker](https://developer.mozilla.org/en/docs/Web/API/AbstractWorker) to Kotlin + */ +public external interface AbstractWorker : JsAny { + var onerror: ((Event) -> Unit)? + +} + +/** + * Exposes the JavaScript [Worker](https://developer.mozilla.org/en/docs/Web/API/Worker) to Kotlin + */ +public external open class Worker(scriptURL: String, options: WorkerOptions) : EventTarget, AbstractWorker, JsAny { + var onmessage: ((MessageEvent) -> Unit)? + override var onerror: ((Event) -> Unit)? + fun terminate() + fun postMessage(message: JsAny?, transfer: JsArray) +} + +public external interface WorkerOptions : JsAny { + var type: WorkerType? /* = WorkerType.CLASSIC */ + + var credentials: RequestCredentials? /* = RequestCredentials.OMIT */ + +} + +/** + * Exposes the JavaScript [SharedWorker](https://developer.mozilla.org/en/docs/Web/API/SharedWorker) to Kotlin + */ +public external open class SharedWorker(scriptURL: String, name: String, options: WorkerOptions) : EventTarget, AbstractWorker, JsAny { + open val port: MessagePort + override var onerror: ((Event) -> Unit)? +} + +/** + * Exposes the JavaScript [NavigatorConcurrentHardware](https://developer.mozilla.org/en/docs/Web/API/NavigatorConcurrentHardware) to Kotlin + */ +public external interface NavigatorConcurrentHardware : JsAny { + val hardwareConcurrency: JsNumber +} + +/** + * Exposes the JavaScript [WorkerNavigator](https://developer.mozilla.org/en/docs/Web/API/WorkerNavigator) to Kotlin + */ +public external abstract class WorkerNavigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorConcurrentHardware, JsAny { + open val serviceWorker: ServiceWorkerContainer +} + +/** + * Exposes the JavaScript [WorkerLocation](https://developer.mozilla.org/en/docs/Web/API/WorkerLocation) to Kotlin + */ +public external abstract class WorkerLocation : JsAny { + open val href: String + open val origin: String + open val protocol: String + open val host: String + open val hostname: String + open val port: String + open val pathname: String + open val search: String + open val hash: String +} + +/** + * Exposes the JavaScript [Storage](https://developer.mozilla.org/en/docs/Web/API/Storage) to Kotlin + */ +public external abstract class Storage : JsAny { + open val length: Int + fun key(index: Int): String? + fun removeItem(key: String) + fun clear() + fun getItem(key: String): String? + fun setItem(key: String, value: String) +} + +/** + * Exposes the JavaScript [WindowSessionStorage](https://developer.mozilla.org/en/docs/Web/API/WindowSessionStorage) to Kotlin + */ +public external interface WindowSessionStorage : JsAny { + val sessionStorage: Storage +} + +/** + * Exposes the JavaScript [WindowLocalStorage](https://developer.mozilla.org/en/docs/Web/API/WindowLocalStorage) to Kotlin + */ +public external interface WindowLocalStorage : JsAny { + val localStorage: Storage +} + +/** + * Exposes the JavaScript [StorageEvent](https://developer.mozilla.org/en/docs/Web/API/StorageEvent) to Kotlin + */ +public external open class StorageEvent(type: String, eventInitDict: StorageEventInit) : Event, JsAny { + open val key: String? + open val oldValue: String? + open val newValue: String? + open val url: String + open val storageArea: Storage? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface StorageEventInit : EventInit, JsAny { + var key: String? /* = null */ + + var oldValue: String? /* = null */ + + var newValue: String? /* = null */ + + var url: String? /* = "" */ + + var storageArea: Storage? /* = null */ + +} + +public external abstract class HTMLAppletElement : HTMLElement, JsAny { + open var align: String + open var alt: String + open var archive: String + open var code: String + open var codeBase: String + open var height: String + open var hspace: Int + open var name: String + open var _object: String + open var vspace: Int + open var width: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLMarqueeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMarqueeElement) to Kotlin + */ +public external abstract class HTMLMarqueeElement : HTMLElement, JsAny { + open var behavior: String + open var bgColor: String + open var direction: String + open var height: String + open var hspace: Int + open var loop: Int + open var scrollAmount: Int + open var scrollDelay: Int + open var trueSpeed: Boolean + open var vspace: Int + open var width: String + open var onbounce: ((Event) -> Unit)? + open var onfinish: ((Event) -> Unit)? + open var onstart: ((Event) -> Unit)? + fun start() + fun stop() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLFrameSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFrameSetElement) to Kotlin + */ +public external abstract class HTMLFrameSetElement : HTMLElement, WindowEventHandlers, JsAny { + open var cols: String + open var rows: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLFrameElement : HTMLElement, JsAny { + open var name: String + open var scrolling: String + open var src: String + open var frameBorder: String + open var longDesc: String + open var noResize: Boolean + open val contentDocument: Document? + open val contentWindow: Window? + open var marginHeight: String + open var marginWidth: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLDirectoryElement : HTMLElement, JsAny { + open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLFontElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFontElement) to Kotlin + */ +public external abstract class HTMLFontElement : HTMLElement, JsAny { + open var color: String + open var face: String + open var size: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface External : JsAny { + fun AddSearchProvider() + fun IsSearchProviderInstalled() +} + +public external interface EventInit : JsAny { + var bubbles: Boolean? /* = false */ + + var cancelable: Boolean? /* = false */ + + var composed: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [CustomEvent](https://developer.mozilla.org/en/docs/Web/API/CustomEvent) to Kotlin + */ +public external open class CustomEvent(type: String, eventInitDict: CustomEventInit) : Event, JsAny { + open val detail: JsAny? + fun initCustomEvent(type: String, bubbles: Boolean, cancelable: Boolean, detail: JsAny?) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface CustomEventInit : EventInit, JsAny { + var detail: JsAny? /* = null */ + +} + +public external interface EventListenerOptions : JsAny { + var capture: Boolean? /* = false */ + +} + +public external interface AddEventListenerOptions : EventListenerOptions, JsAny { + var passive: Boolean? /* = false */ + + var once: Boolean? /* = false */ + +} + +public external interface NonElementParentNode : JsAny { + fun getElementById(elementId: String): Element? +} + +/** + * Exposes the JavaScript [DocumentOrShadowRoot](https://developer.mozilla.org/en/docs/Web/API/DocumentOrShadowRoot) to Kotlin + */ +public external interface DocumentOrShadowRoot : JsAny { + val fullscreenElement: Element? +} + +/** + * Exposes the JavaScript [ParentNode](https://developer.mozilla.org/en/docs/Web/API/ParentNode) to Kotlin + */ +public external interface ParentNode : JsAny { + val children: HTMLCollection + val firstElementChild: Element? + val lastElementChild: Element? + val childElementCount: Int + fun prepend(vararg nodes: Node) + fun prepend(vararg nodes: String) + fun append(vararg nodes: Node) + fun append(vararg nodes: String) + fun querySelector(selectors: String): Element? + fun querySelectorAll(selectors: String): NodeList +} + +/** + * Exposes the JavaScript [NonDocumentTypeChildNode](https://developer.mozilla.org/en/docs/Web/API/NonDocumentTypeChildNode) to Kotlin + */ +public external interface NonDocumentTypeChildNode : JsAny { + val previousElementSibling: Element? + val nextElementSibling: Element? +} + +/** + * Exposes the JavaScript [ChildNode](https://developer.mozilla.org/en/docs/Web/API/ChildNode) to Kotlin + */ +public external interface ChildNode : JsAny { + fun before(vararg nodes: Node) + fun before(vararg nodes: String) + fun after(vararg nodes: Node) + fun after(vararg nodes: String) + fun replaceWith(vararg nodes: Node) + fun replaceWith(vararg nodes: String) + fun remove() +} + +/** + * Exposes the JavaScript [Slotable](https://developer.mozilla.org/en/docs/Web/API/Slotable) to Kotlin + */ +public external interface Slotable : JsAny { + val assignedSlot: HTMLSlotElement? +} + +/** + * Exposes the JavaScript [NodeList](https://developer.mozilla.org/en/docs/Web/API/NodeList) to Kotlin + */ +public external abstract class NodeList : ItemArrayLike, JsAny { + override fun item(index: Int): Node? +} + +public operator fun NodeList.get(index: Int): Node? = this.item(index) + +/** + * Exposes the JavaScript [HTMLCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLCollection) to Kotlin + */ +public external abstract class HTMLCollection : ItemArrayLike, UnionElementOrHTMLCollection, JsAny { + override fun item(index: Int): Element? + fun namedItem(name: String): Element? +} + +/** + * Exposes the JavaScript [MutationObserver](https://developer.mozilla.org/en/docs/Web/API/MutationObserver) to Kotlin + */ +public external open class MutationObserver(callback: (JsArray, MutationObserver) -> Unit) : JsAny { + fun observe(target: Node, options: MutationObserverInit) + fun disconnect() + fun takeRecords(): JsArray +} + +/** + * Exposes the JavaScript [MutationObserverInit](https://developer.mozilla.org/en/docs/Web/API/MutationObserverInit) to Kotlin + */ +public external interface MutationObserverInit : JsAny { + var childList: Boolean? /* = false */ + + var attributes: Boolean? + + var characterData: Boolean? + + var subtree: Boolean? /* = false */ + + var attributeOldValue: Boolean? + + var characterDataOldValue: Boolean? + + var attributeFilter: JsArray? + +} + +/** + * Exposes the JavaScript [MutationRecord](https://developer.mozilla.org/en/docs/Web/API/MutationRecord) to Kotlin + */ +public external abstract class MutationRecord : JsAny { + open val type: String + open val target: Node + open val addedNodes: NodeList + open val removedNodes: NodeList + open val previousSibling: Node? + open val nextSibling: Node? + open val attributeName: String? + open val attributeNamespace: String? + open val oldValue: String? +} + +/** + * Exposes the JavaScript [Node](https://developer.mozilla.org/en/docs/Web/API/Node) to Kotlin + */ +public external abstract class Node : EventTarget, JsAny { + open val nodeType: Short + open val nodeName: String + open val baseURI: String + open val isConnected: Boolean + open val ownerDocument: Document? + open val parentNode: Node? + open val parentElement: Element? + open val childNodes: NodeList + open val firstChild: Node? + open val lastChild: Node? + open val previousSibling: Node? + open val nextSibling: Node? + open var nodeValue: String? + open var textContent: String? + fun getRootNode(options: GetRootNodeOptions): Node + fun hasChildNodes(): Boolean + fun normalize() + fun cloneNode(deep: Boolean): Node + fun isEqualNode(otherNode: Node?): Boolean + fun isSameNode(otherNode: Node?): Boolean + fun compareDocumentPosition(other: Node): Short + fun contains(other: Node?): Boolean + fun lookupPrefix(namespace: String?): String? + fun lookupNamespaceURI(prefix: String?): String? + fun isDefaultNamespace(namespace: String?): Boolean + fun insertBefore(node: Node, child: Node?): Node + fun appendChild(node: Node): Node + fun replaceChild(node: Node, child: Node): Node + fun removeChild(child: Node): Node + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface GetRootNodeOptions : JsAny { + var composed: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [Document](https://developer.mozilla.org/en/docs/Web/API/Document) to Kotlin + */ +public external open class Document : Node, GlobalEventHandlers, DocumentAndElementEventHandlers, NonElementParentNode, DocumentOrShadowRoot, ParentNode, GeometryUtils, JsAny { + open val implementation: DOMImplementation + open val URL: String + open val documentURI: String + open val origin: String + open val compatMode: String + open val characterSet: String + open val charset: String + open val inputEncoding: String + open val contentType: String + open val doctype: DocumentType? + open val documentElement: Element? + open val location: Location? + var domain: String + open val referrer: String + var cookie: String + open val lastModified: String + open val readyState: DocumentReadyState + var title: String + var dir: String + var body: HTMLElement? + open val head: HTMLHeadElement? + open val images: HTMLCollection + open val embeds: HTMLCollection + open val plugins: HTMLCollection + open val links: HTMLCollection + open val forms: HTMLCollection + open val scripts: HTMLCollection + open val currentScript: HTMLOrSVGScriptElement? + open val defaultView: Window? + open val activeElement: Element? + var designMode: String + var onreadystatechange: ((Event) -> Unit)? + var fgColor: String + var linkColor: String + var vlinkColor: String + var alinkColor: String + var bgColor: String + open val anchors: HTMLCollection + open val applets: HTMLCollection + open val all: HTMLAllCollection + open val scrollingElement: Element? + open val styleSheets: StyleSheetList + open val rootElement: SVGSVGElement? + open val fullscreenEnabled: Boolean + open val fullscreen: Boolean + var onfullscreenchange: ((Event) -> Unit)? + var onfullscreenerror: ((Event) -> Unit)? + override var onabort: ((Event) -> Unit)? + override var onblur: ((FocusEvent) -> Unit)? + override var oncancel: ((Event) -> Unit)? + override var oncanplay: ((Event) -> Unit)? + override var oncanplaythrough: ((Event) -> Unit)? + override var onchange: ((Event) -> Unit)? + override var onclick: ((MouseEvent) -> Unit)? + override var onclose: ((Event) -> Unit)? + override var oncontextmenu: ((MouseEvent) -> Unit)? + override var oncuechange: ((Event) -> Unit)? + override var ondblclick: ((MouseEvent) -> Unit)? + override var ondrag: ((DragEvent) -> Unit)? + override var ondragend: ((DragEvent) -> Unit)? + override var ondragenter: ((DragEvent) -> Unit)? + override var ondragexit: ((DragEvent) -> Unit)? + override var ondragleave: ((DragEvent) -> Unit)? + override var ondragover: ((DragEvent) -> Unit)? + override var ondragstart: ((DragEvent) -> Unit)? + override var ondrop: ((DragEvent) -> Unit)? + override var ondurationchange: ((Event) -> Unit)? + override var onemptied: ((Event) -> Unit)? + override var onended: ((Event) -> Unit)? + override var onerror: ((JsAny? /* Event|String */, String, Int, Int, JsAny?) -> JsAny?)? + override var onfocus: ((FocusEvent) -> Unit)? + override var oninput: ((InputEvent) -> Unit)? + override var oninvalid: ((Event) -> Unit)? + override var onkeydown: ((KeyboardEvent) -> Unit)? + override var onkeypress: ((KeyboardEvent) -> Unit)? + override var onkeyup: ((KeyboardEvent) -> Unit)? + override var onload: ((Event) -> Unit)? + override var onloadeddata: ((Event) -> Unit)? + override var onloadedmetadata: ((Event) -> Unit)? + override var onloadend: ((Event) -> Unit)? + override var onloadstart: ((ProgressEvent) -> Unit)? + override var onmousedown: ((MouseEvent) -> Unit)? + override var onmouseenter: ((MouseEvent) -> Unit)? + override var onmouseleave: ((MouseEvent) -> Unit)? + override var onmousemove: ((MouseEvent) -> Unit)? + override var onmouseout: ((MouseEvent) -> Unit)? + override var onmouseover: ((MouseEvent) -> Unit)? + override var onmouseup: ((MouseEvent) -> Unit)? + override var onwheel: ((WheelEvent) -> Unit)? + override var onpause: ((Event) -> Unit)? + override var onplay: ((Event) -> Unit)? + override var onplaying: ((Event) -> Unit)? + override var onprogress: ((ProgressEvent) -> Unit)? + override var onratechange: ((Event) -> Unit)? + override var onreset: ((Event) -> Unit)? + override var onresize: ((Event) -> Unit)? + override var onscroll: ((Event) -> Unit)? + override var onseeked: ((Event) -> Unit)? + override var onseeking: ((Event) -> Unit)? + override var onselect: ((Event) -> Unit)? + override var onshow: ((Event) -> Unit)? + override var onstalled: ((Event) -> Unit)? + override var onsubmit: ((Event) -> Unit)? + override var onsuspend: ((Event) -> Unit)? + override var ontimeupdate: ((Event) -> Unit)? + override var ontoggle: ((Event) -> Unit)? + override var onvolumechange: ((Event) -> Unit)? + override var onwaiting: ((Event) -> Unit)? + override var ongotpointercapture: ((PointerEvent) -> Unit)? + override var onlostpointercapture: ((PointerEvent) -> Unit)? + override var onpointerdown: ((PointerEvent) -> Unit)? + override var onpointermove: ((PointerEvent) -> Unit)? + override var onpointerup: ((PointerEvent) -> Unit)? + override var onpointercancel: ((PointerEvent) -> Unit)? + override var onpointerover: ((PointerEvent) -> Unit)? + override var onpointerout: ((PointerEvent) -> Unit)? + override var onpointerenter: ((PointerEvent) -> Unit)? + override var onpointerleave: ((PointerEvent) -> Unit)? + override var oncopy: ((ClipboardEvent) -> Unit)? + override var oncut: ((ClipboardEvent) -> Unit)? + override var onpaste: ((ClipboardEvent) -> Unit)? + override val fullscreenElement: Element? + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + fun getElementsByTagName(qualifiedName: String): HTMLCollection + fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection + fun getElementsByClassName(classNames: String): HTMLCollection + fun createElement(localName: String): Element + fun createElement(localName: String, options: ElementCreationOptions): Element + fun createElementNS(namespace: String?, qualifiedName: String, options: ElementCreationOptions): Element + fun createDocumentFragment(): DocumentFragment + fun createTextNode(data: String): Text + fun createCDATASection(data: String): CDATASection + fun createComment(data: String): Comment + fun createProcessingInstruction(target: String, data: String): ProcessingInstruction + fun importNode(node: Node, deep: Boolean): Node + fun adoptNode(node: Node): Node + fun createAttribute(localName: String): Attr + fun createAttributeNS(namespace: String?, qualifiedName: String): Attr + fun createEvent(param_interface: String): Event + fun createRange(): Range + fun createNodeIterator(root: Node, whatToShow: Int, filter: NodeFilter?): NodeIterator + fun createNodeIterator(root: Node, whatToShow: Int, filter: ((Node) -> Short)?): NodeIterator + fun createTreeWalker(root: Node, whatToShow: Int, filter: NodeFilter?): TreeWalker + fun createTreeWalker(root: Node, whatToShow: Int, filter: ((Node) -> Short)?): TreeWalker + fun getElementsByName(elementName: String): NodeList + fun open(type: String, replace: String): Document + fun open(url: String, name: String, features: String): Window + fun close() + fun write(vararg text: String) + fun writeln(vararg text: String) + fun hasFocus(): Boolean + fun execCommand(commandId: String, showUI: Boolean, value: String): Boolean + fun queryCommandEnabled(commandId: String): Boolean + fun queryCommandIndeterm(commandId: String): Boolean + fun queryCommandState(commandId: String): Boolean + fun queryCommandSupported(commandId: String): Boolean + fun queryCommandValue(commandId: String): String + fun clear() + fun captureEvents() + fun releaseEvents() + fun elementFromPoint(x: Double, y: Double): Element? + fun elementsFromPoint(x: Double, y: Double): JsArray + fun caretPositionFromPoint(x: Double, y: Double): CaretPosition? + fun createTouch(view: Window, target: EventTarget, identifier: Int, pageX: Int, pageY: Int, screenX: Int, screenY: Int): Touch + fun createTouchList(vararg touches: Touch): TouchList + fun exitFullscreen(): Promise + override fun getElementById(elementId: String): Element? + override fun prepend(vararg nodes: Node) + override fun prepend(vararg nodes: String) + override fun append(vararg nodes: Node) + override fun append(vararg nodes: String) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + override fun getBoxQuads(options: BoxQuadOptions /* */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: Text, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Element, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Document, options: ConvertCoordinateOptions /* */): DOMPoint + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [XMLDocument](https://developer.mozilla.org/en/docs/Web/API/XMLDocument) to Kotlin + */ +public external open class XMLDocument : Document, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface ElementCreationOptions : JsAny { + var `is`: String? + +} + +/** + * Exposes the JavaScript [DOMImplementation](https://developer.mozilla.org/en/docs/Web/API/DOMImplementation) to Kotlin + */ +public external abstract class DOMImplementation : JsAny { + fun createDocumentType(qualifiedName: String, publicId: String, systemId: String): DocumentType + fun createDocument(namespace: String?, qualifiedName: String, doctype: DocumentType?): XMLDocument + fun createHTMLDocument(title: String): Document + fun hasFeature(): Boolean +} + +/** + * Exposes the JavaScript [DocumentType](https://developer.mozilla.org/en/docs/Web/API/DocumentType) to Kotlin + */ +public external abstract class DocumentType : Node, ChildNode, JsAny { + open val name: String + open val publicId: String + open val systemId: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [DocumentFragment](https://developer.mozilla.org/en/docs/Web/API/DocumentFragment) to Kotlin + */ +public external open class DocumentFragment : Node, NonElementParentNode, ParentNode, JsAny { + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + override fun getElementById(elementId: String): Element? + override fun prepend(vararg nodes: Node) + override fun prepend(vararg nodes: String) + override fun append(vararg nodes: Node) + override fun append(vararg nodes: String) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [ShadowRoot](https://developer.mozilla.org/en/docs/Web/API/ShadowRoot) to Kotlin + */ +public external open class ShadowRoot : DocumentFragment, DocumentOrShadowRoot, JsAny { + open val mode: ShadowRootMode + open val host: Element + override val fullscreenElement: Element? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [Element](https://developer.mozilla.org/en/docs/Web/API/Element) to Kotlin + */ +public external abstract class Element : Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, GeometryUtils, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent, UnionElementOrProcessingInstruction, JsAny { + open val namespaceURI: String? + open val prefix: String? + open val localName: String + open val tagName: String + open var id: String + open var className: String + open val classList: DOMTokenList + open var slot: String + open val attributes: NamedNodeMap + open val shadowRoot: ShadowRoot? + open var scrollTop: Double + open var scrollLeft: Double + open val scrollWidth: Int + open val scrollHeight: Int + open val clientTop: Int + open val clientLeft: Int + open val clientWidth: Int + open val clientHeight: Int + open var innerHTML: String + open var outerHTML: String + fun hasAttributes(): Boolean + fun getAttributeNames(): JsArray + fun getAttribute(qualifiedName: String): String? + fun getAttributeNS(namespace: String?, localName: String): String? + fun setAttribute(qualifiedName: String, value: String) + fun setAttributeNS(namespace: String?, qualifiedName: String, value: String) + fun removeAttribute(qualifiedName: String) + fun removeAttributeNS(namespace: String?, localName: String) + fun hasAttribute(qualifiedName: String): Boolean + fun hasAttributeNS(namespace: String?, localName: String): Boolean + fun getAttributeNode(qualifiedName: String): Attr? + fun getAttributeNodeNS(namespace: String?, localName: String): Attr? + fun setAttributeNode(attr: Attr): Attr? + fun setAttributeNodeNS(attr: Attr): Attr? + fun removeAttributeNode(attr: Attr): Attr + fun attachShadow(init: ShadowRootInit): ShadowRoot + fun closest(selectors: String): Element? + fun matches(selectors: String): Boolean + fun webkitMatchesSelector(selectors: String): Boolean + fun getElementsByTagName(qualifiedName: String): HTMLCollection + fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection + fun getElementsByClassName(classNames: String): HTMLCollection + fun insertAdjacentElement(where: String, element: Element): Element? + fun insertAdjacentText(where: String, data: String) + fun getClientRects(): JsArray + fun getBoundingClientRect(): DOMRect + fun scrollIntoView() + fun scrollIntoView(arg: Boolean) + fun scrollIntoView(arg: JsAny) + fun scroll(options: ScrollToOptions) + fun scroll(x: Double, y: Double) + fun scrollTo(options: ScrollToOptions) + fun scrollTo(x: Double, y: Double) + fun scrollBy(options: ScrollToOptions) + fun scrollBy(x: Double, y: Double) + fun insertAdjacentHTML(position: String, text: String) + fun setPointerCapture(pointerId: Int) + fun releasePointerCapture(pointerId: Int) + fun hasPointerCapture(pointerId: Int): Boolean + fun requestFullscreen(): Promise + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface ShadowRootInit : JsAny { + var mode: ShadowRootMode? +} + +/** + * Exposes the JavaScript [NamedNodeMap](https://developer.mozilla.org/en/docs/Web/API/NamedNodeMap) to Kotlin + */ +public external abstract class NamedNodeMap : ItemArrayLike, JsAny { + fun getNamedItemNS(namespace: String?, localName: String): Attr? + fun setNamedItem(attr: Attr): Attr? + fun setNamedItemNS(attr: Attr): Attr? + fun removeNamedItem(qualifiedName: String): Attr + fun removeNamedItemNS(namespace: String?, localName: String): Attr + override fun item(index: Int): Attr? + fun getNamedItem(qualifiedName: String): Attr? +} + +/** + * Exposes the JavaScript [Attr](https://developer.mozilla.org/en/docs/Web/API/Attr) to Kotlin + */ +public external abstract class Attr : Node, JsAny { + open val namespaceURI: String? + open val prefix: String? + open val localName: String + open val name: String + open var value: String + open val ownerElement: Element? + open val specified: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [CharacterData](https://developer.mozilla.org/en/docs/Web/API/CharacterData) to Kotlin + */ +public external abstract class CharacterData : Node, NonDocumentTypeChildNode, ChildNode, JsAny { + open var data: String + open val length: Int + fun substringData(offset: Int, count: Int): String + fun appendData(data: String) + fun insertData(offset: Int, data: String) + fun deleteData(offset: Int, count: Int) + fun replaceData(offset: Int, count: Int, data: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [Text](https://developer.mozilla.org/en/docs/Web/API/Text) to Kotlin + */ +public external open class Text(data: String) : CharacterData, Slotable, GeometryUtils, JsAny { + open val wholeText: String + override val assignedSlot: HTMLSlotElement? + override val previousElementSibling: Element? + override val nextElementSibling: Element? + fun splitText(offset: Int): Text + override fun getBoxQuads(options: BoxQuadOptions /* */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: Text, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Element, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Document, options: ConvertCoordinateOptions /* */): DOMPoint + override fun before(vararg nodes: Node) + override fun before(vararg nodes: String) + override fun after(vararg nodes: Node) + override fun after(vararg nodes: String) + override fun replaceWith(vararg nodes: Node) + override fun replaceWith(vararg nodes: String) + override fun remove() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [CDATASection](https://developer.mozilla.org/en/docs/Web/API/CDATASection) to Kotlin + */ +public external open class CDATASection : Text, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [ProcessingInstruction](https://developer.mozilla.org/en/docs/Web/API/ProcessingInstruction) to Kotlin + */ +public external abstract class ProcessingInstruction : CharacterData, LinkStyle, UnionElementOrProcessingInstruction, JsAny { + open val target: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [Comment](https://developer.mozilla.org/en/docs/Web/API/Comment) to Kotlin + */ +public external open class Comment(data: String) : CharacterData, JsAny { + override val previousElementSibling: Element? + override val nextElementSibling: Element? + override fun before(vararg nodes: Node) + override fun before(vararg nodes: String) + override fun after(vararg nodes: Node) + override fun after(vararg nodes: String) + override fun replaceWith(vararg nodes: Node) + override fun replaceWith(vararg nodes: String) + override fun remove() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [Range](https://developer.mozilla.org/en/docs/Web/API/Range) to Kotlin + */ +public external open class Range : JsAny { + open val startContainer: Node + open val startOffset: Int + open val endContainer: Node + open val endOffset: Int + open val collapsed: Boolean + open val commonAncestorContainer: Node + fun setStart(node: Node, offset: Int) + fun setEnd(node: Node, offset: Int) + fun setStartBefore(node: Node) + fun setStartAfter(node: Node) + fun setEndBefore(node: Node) + fun setEndAfter(node: Node) + fun collapse(toStart: Boolean) + fun selectNode(node: Node) + fun selectNodeContents(node: Node) + fun compareBoundaryPoints(how: Short, sourceRange: Range): Short + fun deleteContents() + fun extractContents(): DocumentFragment + fun cloneContents(): DocumentFragment + fun insertNode(node: Node) + fun surroundContents(newParent: Node) + fun cloneRange(): Range + fun detach() + fun isPointInRange(node: Node, offset: Int): Boolean + fun comparePoint(node: Node, offset: Int): Short + fun intersectsNode(node: Node): Boolean + fun getClientRects(): JsArray + fun getBoundingClientRect(): DOMRect + fun createContextualFragment(fragment: String): DocumentFragment + + companion object { + val START_TO_START: Short + val START_TO_END: Short + val END_TO_END: Short + val END_TO_START: Short + } +} + +/** + * Exposes the JavaScript [NodeIterator](https://developer.mozilla.org/en/docs/Web/API/NodeIterator) to Kotlin + */ +public external abstract class NodeIterator : JsAny { + open val root: Node + open val referenceNode: Node + open val pointerBeforeReferenceNode: Boolean + open val whatToShow: Int + open val filter: NodeFilter? + fun nextNode(): Node? + fun previousNode(): Node? + fun detach() +} + +/** + * Exposes the JavaScript [TreeWalker](https://developer.mozilla.org/en/docs/Web/API/TreeWalker) to Kotlin + */ +public external abstract class TreeWalker : JsAny { + open val root: Node + open val whatToShow: Int + open val filter: NodeFilter? + open var currentNode: Node + fun parentNode(): Node? + fun firstChild(): Node? + fun lastChild(): Node? + fun previousSibling(): Node? + fun nextSibling(): Node? + fun previousNode(): Node? + fun nextNode(): Node? +} + +/** + * Exposes the JavaScript [NodeFilter](https://developer.mozilla.org/en/docs/Web/API/NodeFilter) to Kotlin + */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface NodeFilter : JsAny { + fun acceptNode(node: Node): Short + + companion object { + val FILTER_ACCEPT: Short + val FILTER_REJECT: Short + val FILTER_SKIP: Short + val SHOW_ALL: Int + val SHOW_ELEMENT: Int + val SHOW_ATTRIBUTE: Int + val SHOW_TEXT: Int + val SHOW_CDATA_SECTION: Int + val SHOW_ENTITY_REFERENCE: Int + val SHOW_ENTITY: Int + val SHOW_PROCESSING_INSTRUCTION: Int + val SHOW_COMMENT: Int + val SHOW_DOCUMENT: Int + val SHOW_DOCUMENT_TYPE: Int + val SHOW_DOCUMENT_FRAGMENT: Int + val SHOW_NOTATION: Int + } +} + +/** + * Exposes the JavaScript [DOMTokenList](https://developer.mozilla.org/en/docs/Web/API/DOMTokenList) to Kotlin + */ +public external abstract class DOMTokenList : ItemArrayLike, JsAny { + open var value: String + fun contains(token: String): Boolean + fun add(vararg tokens: String) + fun remove(vararg tokens: String) + fun toggle(token: String, force: Boolean): Boolean + fun replace(token: String, newToken: String) + fun supports(token: String): Boolean + override fun item(index: Int): JsString? +} + +/** + * Exposes the JavaScript [DOMPointReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMPointReadOnly) to Kotlin + */ +public external open class DOMPointReadOnly(x: Double, y: Double, z: Double, w: Double) : JsAny { + open val x: Double + open val y: Double + open val z: Double + open val w: Double + fun matrixTransform(matrix: DOMMatrixReadOnly): DOMPoint +} + +/** + * Exposes the JavaScript [DOMPoint](https://developer.mozilla.org/en/docs/Web/API/DOMPoint) to Kotlin + */ +public external open class DOMPoint : DOMPointReadOnly, JsAny { + constructor(point: DOMPointInit) + constructor(x: Double, y: Double, z: Double, w: Double) + override var x: Double + override var y: Double + override var z: Double + override var w: Double +} + +/** + * Exposes the JavaScript [DOMPointInit](https://developer.mozilla.org/en/docs/Web/API/DOMPointInit) to Kotlin + */ +public external interface DOMPointInit : JsAny { + var x: Double? /* = 0.0 */ + + var y: Double? /* = 0.0 */ + + var z: Double? /* = 0.0 */ + + var w: Double? /* = 1.0 */ + +} + +/** + * Exposes the JavaScript [DOMRect](https://developer.mozilla.org/en/docs/Web/API/DOMRect) to Kotlin + */ +public external open class DOMRect(x: Double, y: Double, width: Double, height: Double) : DOMRectReadOnly, JsAny { + override var x: Double + override var y: Double + override var width: Double + override var height: Double +} + +/** + * Exposes the JavaScript [DOMRectReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMRectReadOnly) to Kotlin + */ +public external open class DOMRectReadOnly(x: Double, y: Double, width: Double, height: Double) : JsAny { + open val x: Double + open val y: Double + open val width: Double + open val height: Double + open val top: Double + open val right: Double + open val bottom: Double + open val left: Double +} + +public external interface DOMRectInit : JsAny { + var x: Double? /* = 0.0 */ + + var y: Double? /* = 0.0 */ + + var width: Double? /* = 0.0 */ + + var height: Double? /* = 0.0 */ + +} + +public external interface DOMRectList : ItemArrayLike, JsAny { + override fun item(index: Int): DOMRect? +} + +/** + * Exposes the JavaScript [DOMQuad](https://developer.mozilla.org/en/docs/Web/API/DOMQuad) to Kotlin + */ +public external open class DOMQuad : JsAny { + constructor(p1: DOMPointInit, p2: DOMPointInit, p3: DOMPointInit, p4: DOMPointInit) + constructor(rect: DOMRectInit) + open val p1: DOMPoint + open val p2: DOMPoint + open val p3: DOMPoint + open val p4: DOMPoint + open val bounds: DOMRectReadOnly +} + +/** + * Exposes the JavaScript [DOMMatrixReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMMatrixReadOnly) to Kotlin + */ +public external open class DOMMatrixReadOnly(numberSequence: JsArray) : JsAny { + open val a: Double + open val b: Double + open val c: Double + open val d: Double + open val e: Double + open val f: Double + open val m11: Double + open val m12: Double + open val m13: Double + open val m14: Double + open val m21: Double + open val m22: Double + open val m23: Double + open val m24: Double + open val m31: Double + open val m32: Double + open val m33: Double + open val m34: Double + open val m41: Double + open val m42: Double + open val m43: Double + open val m44: Double + open val is2D: Boolean + open val isIdentity: Boolean + fun translate(tx: Double, ty: Double, tz: Double): DOMMatrix + fun scale(scale: Double, originX: Double, originY: Double): DOMMatrix + fun scale3d(scale: Double, originX: Double, originY: Double, originZ: Double): DOMMatrix + fun scaleNonUniform(scaleX: Double, scaleY: Double, scaleZ: Double, originX: Double, originY: Double, originZ: Double): DOMMatrix + fun rotate(angle: Double, originX: Double, originY: Double): DOMMatrix + fun rotateFromVector(x: Double, y: Double): DOMMatrix + fun rotateAxisAngle(x: Double, y: Double, z: Double, angle: Double): DOMMatrix + fun skewX(sx: Double): DOMMatrix + fun skewY(sy: Double): DOMMatrix + fun multiply(other: DOMMatrix): DOMMatrix + fun flipX(): DOMMatrix + fun flipY(): DOMMatrix + fun inverse(): DOMMatrix + fun transformPoint(point: DOMPointInit): DOMPoint + fun toFloat32Array(): Float32Array + fun toFloat64Array(): Float64Array +} + +/** + * Exposes the JavaScript [DOMMatrix](https://developer.mozilla.org/en/docs/Web/API/DOMMatrix) to Kotlin + */ +public external open class DOMMatrix() : DOMMatrixReadOnly, JsAny { + constructor(transformList: String) + constructor(other: DOMMatrixReadOnly) + constructor(array32: Float32Array) + constructor(array64: Float64Array) + constructor(numberSequence: JsArray) + override var a: Double + override var b: Double + override var c: Double + override var d: Double + override var e: Double + override var f: Double + override var m11: Double + override var m12: Double + override var m13: Double + override var m14: Double + override var m21: Double + override var m22: Double + override var m23: Double + override var m24: Double + override var m31: Double + override var m32: Double + override var m33: Double + override var m34: Double + override var m41: Double + override var m42: Double + override var m43: Double + override var m44: Double + fun multiplySelf(other: DOMMatrix): DOMMatrix + fun preMultiplySelf(other: DOMMatrix): DOMMatrix + fun translateSelf(tx: Double, ty: Double, tz: Double): DOMMatrix + fun scaleSelf(scale: Double, originX: Double, originY: Double): DOMMatrix + fun scale3dSelf(scale: Double, originX: Double, originY: Double, originZ: Double): DOMMatrix + fun scaleNonUniformSelf(scaleX: Double, scaleY: Double, scaleZ: Double, originX: Double, originY: Double, originZ: Double): DOMMatrix + fun rotateSelf(angle: Double, originX: Double, originY: Double): DOMMatrix + fun rotateFromVectorSelf(x: Double, y: Double): DOMMatrix + fun rotateAxisAngleSelf(x: Double, y: Double, z: Double, angle: Double): DOMMatrix + fun skewXSelf(sx: Double): DOMMatrix + fun skewYSelf(sy: Double): DOMMatrix + fun invertSelf(): DOMMatrix + fun setMatrixValue(transformList: String): DOMMatrix +} + +public external interface ScrollOptions : JsAny { + var behavior: ScrollBehavior? /* = ScrollBehavior.AUTO */ + +} + +/** + * Exposes the JavaScript [ScrollToOptions](https://developer.mozilla.org/en/docs/Web/API/ScrollToOptions) to Kotlin + */ +public external interface ScrollToOptions : ScrollOptions, JsAny { + var left: Double? + + var top: Double? + +} + +/** + * Exposes the JavaScript [MediaQueryList](https://developer.mozilla.org/en/docs/Web/API/MediaQueryList) to Kotlin + */ +public external abstract class MediaQueryList : EventTarget, JsAny { + open val media: String + open val matches: Boolean + open var onchange: ((Event) -> Unit)? + fun addListener(listener: EventListener?) + fun addListener(listener: ((Event) -> Unit)?) + fun removeListener(listener: EventListener?) + fun removeListener(listener: ((Event) -> Unit)?) +} + +/** + * Exposes the JavaScript [MediaQueryListEvent](https://developer.mozilla.org/en/docs/Web/API/MediaQueryListEvent) to Kotlin + */ +public external open class MediaQueryListEvent(type: String, eventInitDict: MediaQueryListEventInit) : Event, JsAny { + open val media: String + open val matches: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface MediaQueryListEventInit : EventInit, JsAny { + var media: String? /* = "" */ + + var matches: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [Screen](https://developer.mozilla.org/en/docs/Web/API/Screen) to Kotlin + */ +public external abstract class Screen : JsAny { + open val availWidth: Int + open val availHeight: Int + open val width: Int + open val height: Int + open val colorDepth: Int + open val pixelDepth: Int +} + +/** + * Exposes the JavaScript [CaretPosition](https://developer.mozilla.org/en/docs/Web/API/CaretPosition) to Kotlin + */ +public external abstract class CaretPosition : JsAny { + open val offsetNode: Node + open val offset: Int + fun getClientRect(): DOMRect? +} + +public external interface ScrollIntoViewOptions : ScrollOptions, JsAny { + var block: ScrollLogicalPosition? /* = ScrollLogicalPosition.CENTER */ + + var inline: ScrollLogicalPosition? /* = ScrollLogicalPosition.CENTER */ + +} + +public external interface BoxQuadOptions : JsAny { + var box: CSSBoxType? /* = CSSBoxType.BORDER */ + + var relativeTo: JsAny? /* Text|Element|CSSPseudoElement|Document */ + +} + +public external interface ConvertCoordinateOptions : JsAny { + var fromBox: CSSBoxType? /* = CSSBoxType.BORDER */ + + var toBox: CSSBoxType? /* = CSSBoxType.BORDER */ + +} + +/** + * Exposes the JavaScript [GeometryUtils](https://developer.mozilla.org/en/docs/Web/API/GeometryUtils) to Kotlin + */ +public external interface GeometryUtils : JsAny { + fun getBoxQuads(options: BoxQuadOptions): JsArray + fun convertQuadFromNode(quad: JsAny?, from: Text, options: ConvertCoordinateOptions): DOMQuad + fun convertQuadFromNode(quad: JsAny?, from: Element, options: ConvertCoordinateOptions): DOMQuad + fun convertQuadFromNode(quad: JsAny?, from: Document, options: ConvertCoordinateOptions): DOMQuad + fun convertRectFromNode(rect: DOMRectReadOnly, from: Text, options: ConvertCoordinateOptions): DOMQuad + fun convertRectFromNode(rect: DOMRectReadOnly, from: Element, options: ConvertCoordinateOptions): DOMQuad + fun convertRectFromNode(rect: DOMRectReadOnly, from: Document, options: ConvertCoordinateOptions): DOMQuad + fun convertPointFromNode(point: DOMPointInit, from: Text, options: ConvertCoordinateOptions): DOMPoint + fun convertPointFromNode(point: DOMPointInit, from: Element, options: ConvertCoordinateOptions): DOMPoint + fun convertPointFromNode(point: DOMPointInit, from: Document, options: ConvertCoordinateOptions): DOMPoint +} + +/** + * Exposes the JavaScript [Touch](https://developer.mozilla.org/en/docs/Web/API/Touch) to Kotlin + */ +public external abstract class Touch : JsAny { + open val identifier: Int + open val target: EventTarget + open val screenX: Int + open val screenY: Int + open val clientX: Int + open val clientY: Int + open val pageX: Int + open val pageY: Int + open val region: String? +} + +public external abstract class TouchList : ItemArrayLike, JsAny { + override fun item(index: Int): Touch? +} + +public external open class TouchEvent : UIEvent, JsAny { + open val touches: TouchList + open val targetTouches: TouchList + open val changedTouches: TouchList + open val altKey: Boolean + open val metaKey: Boolean + open val ctrlKey: Boolean + open val shiftKey: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +/** + * Exposes the JavaScript [Image](https://developer.mozilla.org/en/docs/Web/API/Image) to Kotlin + */ +public external open class Image(width: Int, height: Int) : HTMLImageElement, JsAny { + override var onabort: ((Event) -> Unit)? + override var onblur: ((FocusEvent) -> Unit)? + override var oncancel: ((Event) -> Unit)? + override var oncanplay: ((Event) -> Unit)? + override var oncanplaythrough: ((Event) -> Unit)? + override var onchange: ((Event) -> Unit)? + override var onclick: ((MouseEvent) -> Unit)? + override var onclose: ((Event) -> Unit)? + override var oncontextmenu: ((MouseEvent) -> Unit)? + override var oncuechange: ((Event) -> Unit)? + override var ondblclick: ((MouseEvent) -> Unit)? + override var ondrag: ((DragEvent) -> Unit)? + override var ondragend: ((DragEvent) -> Unit)? + override var ondragenter: ((DragEvent) -> Unit)? + override var ondragexit: ((DragEvent) -> Unit)? + override var ondragleave: ((DragEvent) -> Unit)? + override var ondragover: ((DragEvent) -> Unit)? + override var ondragstart: ((DragEvent) -> Unit)? + override var ondrop: ((DragEvent) -> Unit)? + override var ondurationchange: ((Event) -> Unit)? + override var onemptied: ((Event) -> Unit)? + override var onended: ((Event) -> Unit)? + override var onerror: ((JsAny? /* Event|String */, String, Int, Int, JsAny?) -> JsAny?)? + override var onfocus: ((FocusEvent) -> Unit)? + override var oninput: ((InputEvent) -> Unit)? + override var oninvalid: ((Event) -> Unit)? + override var onkeydown: ((KeyboardEvent) -> Unit)? + override var onkeypress: ((KeyboardEvent) -> Unit)? + override var onkeyup: ((KeyboardEvent) -> Unit)? + override var onload: ((Event) -> Unit)? + override var onloadeddata: ((Event) -> Unit)? + override var onloadedmetadata: ((Event) -> Unit)? + override var onloadend: ((Event) -> Unit)? + override var onloadstart: ((ProgressEvent) -> Unit)? + override var onmousedown: ((MouseEvent) -> Unit)? + override var onmouseenter: ((MouseEvent) -> Unit)? + override var onmouseleave: ((MouseEvent) -> Unit)? + override var onmousemove: ((MouseEvent) -> Unit)? + override var onmouseout: ((MouseEvent) -> Unit)? + override var onmouseover: ((MouseEvent) -> Unit)? + override var onmouseup: ((MouseEvent) -> Unit)? + override var onwheel: ((WheelEvent) -> Unit)? + override var onpause: ((Event) -> Unit)? + override var onplay: ((Event) -> Unit)? + override var onplaying: ((Event) -> Unit)? + override var onprogress: ((ProgressEvent) -> Unit)? + override var onratechange: ((Event) -> Unit)? + override var onreset: ((Event) -> Unit)? + override var onresize: ((Event) -> Unit)? + override var onscroll: ((Event) -> Unit)? + override var onseeked: ((Event) -> Unit)? + override var onseeking: ((Event) -> Unit)? + override var onselect: ((Event) -> Unit)? + override var onshow: ((Event) -> Unit)? + override var onstalled: ((Event) -> Unit)? + override var onsubmit: ((Event) -> Unit)? + override var onsuspend: ((Event) -> Unit)? + override var ontimeupdate: ((Event) -> Unit)? + override var ontoggle: ((Event) -> Unit)? + override var onvolumechange: ((Event) -> Unit)? + override var onwaiting: ((Event) -> Unit)? + override var ongotpointercapture: ((PointerEvent) -> Unit)? + override var onlostpointercapture: ((PointerEvent) -> Unit)? + override var onpointerdown: ((PointerEvent) -> Unit)? + override var onpointermove: ((PointerEvent) -> Unit)? + override var onpointerup: ((PointerEvent) -> Unit)? + override var onpointercancel: ((PointerEvent) -> Unit)? + override var onpointerover: ((PointerEvent) -> Unit)? + override var onpointerout: ((PointerEvent) -> Unit)? + override var onpointerenter: ((PointerEvent) -> Unit)? + override var onpointerleave: ((PointerEvent) -> Unit)? + override var oncopy: ((ClipboardEvent) -> Unit)? + override var oncut: ((ClipboardEvent) -> Unit)? + override var onpaste: ((ClipboardEvent) -> Unit)? + override var contentEditable: String + override val isContentEditable: Boolean + override val style: CSSStyleDeclaration + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + override val previousElementSibling: Element? + override val nextElementSibling: Element? + override val assignedSlot: HTMLSlotElement? + override fun prepend(vararg nodes: Node) + override fun prepend(vararg nodes: String) + override fun append(vararg nodes: Node) + override fun append(vararg nodes: String) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + override fun before(vararg nodes: Node) + override fun before(vararg nodes: String) + override fun after(vararg nodes: Node) + override fun after(vararg nodes: String) + override fun replaceWith(vararg nodes: Node) + override fun replaceWith(vararg nodes: String) + override fun remove() + override fun getBoxQuads(options: BoxQuadOptions /* */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: Text, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Element, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Document, options: ConvertCoordinateOptions /* */): DOMPoint + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external open class Audio(src: String) : HTMLAudioElement, JsAny { + override var onabort: ((Event) -> Unit)? + override var onblur: ((FocusEvent) -> Unit)? + override var oncancel: ((Event) -> Unit)? + override var oncanplay: ((Event) -> Unit)? + override var oncanplaythrough: ((Event) -> Unit)? + override var onchange: ((Event) -> Unit)? + override var onclick: ((MouseEvent) -> Unit)? + override var onclose: ((Event) -> Unit)? + override var oncontextmenu: ((MouseEvent) -> Unit)? + override var oncuechange: ((Event) -> Unit)? + override var ondblclick: ((MouseEvent) -> Unit)? + override var ondrag: ((DragEvent) -> Unit)? + override var ondragend: ((DragEvent) -> Unit)? + override var ondragenter: ((DragEvent) -> Unit)? + override var ondragexit: ((DragEvent) -> Unit)? + override var ondragleave: ((DragEvent) -> Unit)? + override var ondragover: ((DragEvent) -> Unit)? + override var ondragstart: ((DragEvent) -> Unit)? + override var ondrop: ((DragEvent) -> Unit)? + override var ondurationchange: ((Event) -> Unit)? + override var onemptied: ((Event) -> Unit)? + override var onended: ((Event) -> Unit)? + override var onerror: ((JsAny? /* Event|String */, String, Int, Int, JsAny?) -> JsAny?)? + override var onfocus: ((FocusEvent) -> Unit)? + override var oninput: ((InputEvent) -> Unit)? + override var oninvalid: ((Event) -> Unit)? + override var onkeydown: ((KeyboardEvent) -> Unit)? + override var onkeypress: ((KeyboardEvent) -> Unit)? + override var onkeyup: ((KeyboardEvent) -> Unit)? + override var onload: ((Event) -> Unit)? + override var onloadeddata: ((Event) -> Unit)? + override var onloadedmetadata: ((Event) -> Unit)? + override var onloadend: ((Event) -> Unit)? + override var onloadstart: ((ProgressEvent) -> Unit)? + override var onmousedown: ((MouseEvent) -> Unit)? + override var onmouseenter: ((MouseEvent) -> Unit)? + override var onmouseleave: ((MouseEvent) -> Unit)? + override var onmousemove: ((MouseEvent) -> Unit)? + override var onmouseout: ((MouseEvent) -> Unit)? + override var onmouseover: ((MouseEvent) -> Unit)? + override var onmouseup: ((MouseEvent) -> Unit)? + override var onwheel: ((WheelEvent) -> Unit)? + override var onpause: ((Event) -> Unit)? + override var onplay: ((Event) -> Unit)? + override var onplaying: ((Event) -> Unit)? + override var onprogress: ((ProgressEvent) -> Unit)? + override var onratechange: ((Event) -> Unit)? + override var onreset: ((Event) -> Unit)? + override var onresize: ((Event) -> Unit)? + override var onscroll: ((Event) -> Unit)? + override var onseeked: ((Event) -> Unit)? + override var onseeking: ((Event) -> Unit)? + override var onselect: ((Event) -> Unit)? + override var onshow: ((Event) -> Unit)? + override var onstalled: ((Event) -> Unit)? + override var onsubmit: ((Event) -> Unit)? + override var onsuspend: ((Event) -> Unit)? + override var ontimeupdate: ((Event) -> Unit)? + override var ontoggle: ((Event) -> Unit)? + override var onvolumechange: ((Event) -> Unit)? + override var onwaiting: ((Event) -> Unit)? + override var ongotpointercapture: ((PointerEvent) -> Unit)? + override var onlostpointercapture: ((PointerEvent) -> Unit)? + override var onpointerdown: ((PointerEvent) -> Unit)? + override var onpointermove: ((PointerEvent) -> Unit)? + override var onpointerup: ((PointerEvent) -> Unit)? + override var onpointercancel: ((PointerEvent) -> Unit)? + override var onpointerover: ((PointerEvent) -> Unit)? + override var onpointerout: ((PointerEvent) -> Unit)? + override var onpointerenter: ((PointerEvent) -> Unit)? + override var onpointerleave: ((PointerEvent) -> Unit)? + override var oncopy: ((ClipboardEvent) -> Unit)? + override var oncut: ((ClipboardEvent) -> Unit)? + override var onpaste: ((ClipboardEvent) -> Unit)? + override var contentEditable: String + override val isContentEditable: Boolean + override val style: CSSStyleDeclaration + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + override val previousElementSibling: Element? + override val nextElementSibling: Element? + override val assignedSlot: HTMLSlotElement? + override fun prepend(vararg nodes: Node) + override fun prepend(vararg nodes: String) + override fun append(vararg nodes: Node) + override fun append(vararg nodes: String) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + override fun before(vararg nodes: Node) + override fun before(vararg nodes: String) + override fun after(vararg nodes: Node) + override fun after(vararg nodes: String) + override fun replaceWith(vararg nodes: Node) + override fun replaceWith(vararg nodes: String) + override fun remove() + override fun getBoxQuads(options: BoxQuadOptions /* */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: Text, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Element, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Document, options: ConvertCoordinateOptions /* */): DOMPoint + + companion object { + val NETWORK_EMPTY: Short + val NETWORK_IDLE: Short + val NETWORK_LOADING: Short + val NETWORK_NO_SOURCE: Short + val HAVE_NOTHING: Short + val HAVE_METADATA: Short + val HAVE_CURRENT_DATA: Short + val HAVE_FUTURE_DATA: Short + val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [Option](https://developer.mozilla.org/en/docs/Web/API/Option) to Kotlin + */ +public external open class Option(text: String, value: String, defaultSelected: Boolean, selected: Boolean) : HTMLOptionElement, JsAny { + override var onabort: ((Event) -> Unit)? + override var onblur: ((FocusEvent) -> Unit)? + override var oncancel: ((Event) -> Unit)? + override var oncanplay: ((Event) -> Unit)? + override var oncanplaythrough: ((Event) -> Unit)? + override var onchange: ((Event) -> Unit)? + override var onclick: ((MouseEvent) -> Unit)? + override var onclose: ((Event) -> Unit)? + override var oncontextmenu: ((MouseEvent) -> Unit)? + override var oncuechange: ((Event) -> Unit)? + override var ondblclick: ((MouseEvent) -> Unit)? + override var ondrag: ((DragEvent) -> Unit)? + override var ondragend: ((DragEvent) -> Unit)? + override var ondragenter: ((DragEvent) -> Unit)? + override var ondragexit: ((DragEvent) -> Unit)? + override var ondragleave: ((DragEvent) -> Unit)? + override var ondragover: ((DragEvent) -> Unit)? + override var ondragstart: ((DragEvent) -> Unit)? + override var ondrop: ((DragEvent) -> Unit)? + override var ondurationchange: ((Event) -> Unit)? + override var onemptied: ((Event) -> Unit)? + override var onended: ((Event) -> Unit)? + override var onerror: ((JsAny? /* Event|String */, String, Int, Int, JsAny?) -> JsAny?)? + override var onfocus: ((FocusEvent) -> Unit)? + override var oninput: ((InputEvent) -> Unit)? + override var oninvalid: ((Event) -> Unit)? + override var onkeydown: ((KeyboardEvent) -> Unit)? + override var onkeypress: ((KeyboardEvent) -> Unit)? + override var onkeyup: ((KeyboardEvent) -> Unit)? + override var onload: ((Event) -> Unit)? + override var onloadeddata: ((Event) -> Unit)? + override var onloadedmetadata: ((Event) -> Unit)? + override var onloadend: ((Event) -> Unit)? + override var onloadstart: ((ProgressEvent) -> Unit)? + override var onmousedown: ((MouseEvent) -> Unit)? + override var onmouseenter: ((MouseEvent) -> Unit)? + override var onmouseleave: ((MouseEvent) -> Unit)? + override var onmousemove: ((MouseEvent) -> Unit)? + override var onmouseout: ((MouseEvent) -> Unit)? + override var onmouseover: ((MouseEvent) -> Unit)? + override var onmouseup: ((MouseEvent) -> Unit)? + override var onwheel: ((WheelEvent) -> Unit)? + override var onpause: ((Event) -> Unit)? + override var onplay: ((Event) -> Unit)? + override var onplaying: ((Event) -> Unit)? + override var onprogress: ((ProgressEvent) -> Unit)? + override var onratechange: ((Event) -> Unit)? + override var onreset: ((Event) -> Unit)? + override var onresize: ((Event) -> Unit)? + override var onscroll: ((Event) -> Unit)? + override var onseeked: ((Event) -> Unit)? + override var onseeking: ((Event) -> Unit)? + override var onselect: ((Event) -> Unit)? + override var onshow: ((Event) -> Unit)? + override var onstalled: ((Event) -> Unit)? + override var onsubmit: ((Event) -> Unit)? + override var onsuspend: ((Event) -> Unit)? + override var ontimeupdate: ((Event) -> Unit)? + override var ontoggle: ((Event) -> Unit)? + override var onvolumechange: ((Event) -> Unit)? + override var onwaiting: ((Event) -> Unit)? + override var ongotpointercapture: ((PointerEvent) -> Unit)? + override var onlostpointercapture: ((PointerEvent) -> Unit)? + override var onpointerdown: ((PointerEvent) -> Unit)? + override var onpointermove: ((PointerEvent) -> Unit)? + override var onpointerup: ((PointerEvent) -> Unit)? + override var onpointercancel: ((PointerEvent) -> Unit)? + override var onpointerover: ((PointerEvent) -> Unit)? + override var onpointerout: ((PointerEvent) -> Unit)? + override var onpointerenter: ((PointerEvent) -> Unit)? + override var onpointerleave: ((PointerEvent) -> Unit)? + override var oncopy: ((ClipboardEvent) -> Unit)? + override var oncut: ((ClipboardEvent) -> Unit)? + override var onpaste: ((ClipboardEvent) -> Unit)? + override var contentEditable: String + override val isContentEditable: Boolean + override val style: CSSStyleDeclaration + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + override val previousElementSibling: Element? + override val nextElementSibling: Element? + override val assignedSlot: HTMLSlotElement? + override fun prepend(vararg nodes: Node) + override fun prepend(vararg nodes: String) + override fun append(vararg nodes: Node) + override fun append(vararg nodes: String) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + override fun before(vararg nodes: Node) + override fun before(vararg nodes: String) + override fun after(vararg nodes: Node) + override fun after(vararg nodes: String) + override fun replaceWith(vararg nodes: Node) + override fun replaceWith(vararg nodes: String) + override fun remove() + override fun getBoxQuads(options: BoxQuadOptions /* */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertQuadFromNode(quad: JsAny?, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Text, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Element, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: Document, options: ConvertCoordinateOptions /* */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: Text, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Element, options: ConvertCoordinateOptions /* */): DOMPoint + override fun convertPointFromNode(point: DOMPointInit, from: Document, options: ConvertCoordinateOptions /* */): DOMPoint + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface UnionElementOrHTMLCollection + +public external interface UnionElementOrRadioNodeList + +public external interface UnionHTMLOptGroupElementOrHTMLOptionElement + +public external interface UnionAudioTrackOrTextTrackOrVideoTrack + +public external interface UnionElementOrMouseEvent + +public external interface UnionMessagePortOrWindowProxy + +public external interface MediaProvider + +public external interface RenderingContext + +public external interface HTMLOrSVGImageElement : CanvasImageSource + +public external interface CanvasImageSource : ImageBitmapSource + +public external interface ImageBitmapSource + +public external interface HTMLOrSVGScriptElement + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface DocumentReadyState : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CanPlayTypeResult : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface TextTrackMode : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface TextTrackKind : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface SelectionMode : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CanvasFillRule : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ImageSmoothingQuality : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CanvasLineCap : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CanvasLineJoin : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CanvasTextAlign : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CanvasTextBaseline : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CanvasDirection : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ScrollRestoration : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ImageOrientation : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface PremultiplyAlpha : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ColorSpaceConversion : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ResizeQuality : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface BinaryType : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface WorkerType : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ShadowRootMode : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ScrollBehavior : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ScrollLogicalPosition : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface CSSBoxType : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediacapture.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediacapture.kt new file mode 100644 index 0000000000..17f254c55b --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediacapture.kt @@ -0,0 +1,387 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.mediacapture + +import web.JsAny +import web.JsArray +import web.JsBoolean +import web.JsString +import web.dom.EventInit +import web.dom.MediaProvider +import web.dom.events.Event +import web.dom.events.EventTarget +import web.Promise + +/** + * Exposes the JavaScript [MediaStream](https://developer.mozilla.org/en/docs/Web/API/MediaStream) to Kotlin + */ +public external open class MediaStream() : EventTarget, MediaProvider, JsAny { + constructor(stream: MediaStream) + constructor(tracks: JsArray) + + open val id: String + open val active: Boolean + var onaddtrack: ((MediaStreamTrackEvent) -> Unit)? + var onremovetrack: ((MediaStreamTrackEvent) -> Unit)? + fun getAudioTracks(): JsArray + fun getVideoTracks(): JsArray + fun getTracks(): JsArray + fun getTrackById(trackId: String): MediaStreamTrack? + fun addTrack(track: MediaStreamTrack) + fun removeTrack(track: MediaStreamTrack) + fun clone(): MediaStream +} + +/** + * Exposes the JavaScript [MediaStreamTrack](https://developer.mozilla.org/en/docs/Web/API/MediaStreamTrack) to Kotlin + */ +public external abstract class MediaStreamTrack : EventTarget, JsAny { + open val kind: String + open val id: String + open val label: String + open var enabled: Boolean + open val muted: Boolean + open var onmute: ((Event) -> Unit)? + open var onunmute: ((Event) -> Unit)? + open val readyState: MediaStreamTrackState + open var onended: ((Event) -> Unit)? + open var onoverconstrained: ((Event) -> Unit)? + fun clone(): MediaStreamTrack + fun stop() + fun getCapabilities(): MediaTrackCapabilities + fun getConstraints(): MediaTrackConstraints + fun getSettings(): MediaTrackSettings + fun applyConstraints(constraints: MediaTrackConstraints): Promise +} + +/** + * Exposes the JavaScript [MediaTrackSupportedConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaTrackSupportedConstraints) to Kotlin + */ +public external interface MediaTrackSupportedConstraints : JsAny { + var width: Boolean? /* = true */ + + var height: Boolean? /* = true */ + + var aspectRatio: Boolean? /* = true */ + + var frameRate: Boolean? /* = true */ + + var facingMode: Boolean? /* = true */ + + var resizeMode: Boolean? /* = true */ + + var volume: Boolean? /* = true */ + + var sampleRate: Boolean? /* = true */ + + var sampleSize: Boolean? /* = true */ + + var echoCancellation: Boolean? /* = true */ + + var autoGainControl: Boolean? /* = true */ + + var noiseSuppression: Boolean? /* = true */ + + var latency: Boolean? /* = true */ + + var channelCount: Boolean? /* = true */ + + var deviceId: Boolean? /* = true */ + + var groupId: Boolean? /* = true */ + +} + +public external interface MediaTrackCapabilities : JsAny { + var width: ULongRange? + + var height: ULongRange? + + var aspectRatio: DoubleRange? + + var frameRate: DoubleRange? + + var facingMode: JsArray? + + var resizeMode: JsArray? + + var volume: DoubleRange? + + var sampleRate: ULongRange? + + var sampleSize: ULongRange? + + var echoCancellation: JsArray? + + var autoGainControl: JsArray? + + var noiseSuppression: JsArray? + + var latency: DoubleRange? + + var channelCount: ULongRange? + + var deviceId: String? + + var groupId: String? + +} + +/** + * Exposes the JavaScript [MediaTrackConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaTrackConstraints) to Kotlin + */ +public external interface MediaTrackConstraints : MediaTrackConstraintSet, JsAny { + var advanced: JsArray? + +} + +public external interface MediaTrackConstraintSet : JsAny { + var width: JsAny? /* Int|ConstrainULongRange */ + + var height: JsAny? /* Int|ConstrainULongRange */ + + var aspectRatio: JsAny? /* Double|ConstrainDoubleRange */ + + var frameRate: JsAny? /* Double|ConstrainDoubleRange */ + + var facingMode: JsAny? /* String|JsArray|ConstrainDOMStringParameters */ + + var resizeMode: JsAny? /* String|JsArray|ConstrainDOMStringParameters */ + + var volume: JsAny? /* Double|ConstrainDoubleRange */ + + var sampleRate: JsAny? /* Int|ConstrainULongRange */ + + var sampleSize: JsAny? /* Int|ConstrainULongRange */ + + var echoCancellation: JsAny? /* Boolean|ConstrainBooleanParameters */ + + var autoGainControl: JsAny? /* Boolean|ConstrainBooleanParameters */ + + var noiseSuppression: JsAny? /* Boolean|ConstrainBooleanParameters */ + + var latency: JsAny? /* Double|ConstrainDoubleRange */ + + var channelCount: JsAny? /* Int|ConstrainULongRange */ + + var deviceId: JsAny? /* String|JsArray|ConstrainDOMStringParameters */ + + var groupId: JsAny? /* String|JsArray|ConstrainDOMStringParameters */ + +} + +/** + * Exposes the JavaScript [MediaTrackSettings](https://developer.mozilla.org/en/docs/Web/API/MediaTrackSettings) to Kotlin + */ +public external interface MediaTrackSettings : JsAny { + var width: Int? + + var height: Int? + + var aspectRatio: Double? + + var frameRate: Double? + + var facingMode: String? + + var resizeMode: String? + + var volume: Double? + + var sampleRate: Int? + + var sampleSize: Int? + + var echoCancellation: Boolean? + + var autoGainControl: Boolean? + + var noiseSuppression: Boolean? + + var latency: Double? + + var channelCount: Int? + + var deviceId: String? + + var groupId: String? + +} + +/** + * Exposes the JavaScript [MediaStreamTrackEvent](https://developer.mozilla.org/en/docs/Web/API/MediaStreamTrackEvent) to Kotlin + */ +public external open class MediaStreamTrackEvent(type: String, eventInitDict: MediaStreamTrackEventInit) : Event, + JsAny { + open val track: MediaStreamTrack + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface MediaStreamTrackEventInit : EventInit, JsAny { + var track: MediaStreamTrack? +} + +public external open class OverconstrainedErrorEvent(type: String, eventInitDict: OverconstrainedErrorEventInit) : + Event, JsAny { + open val error: JsAny? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface OverconstrainedErrorEventInit : EventInit, JsAny { + var error: JsAny? /* = null */ + +} + +/** + * Exposes the JavaScript [MediaDevices](https://developer.mozilla.org/en/docs/Web/API/MediaDevices) to Kotlin + */ +public external abstract class MediaDevices : EventTarget, JsAny { + open var ondevicechange: ((Event) -> Unit)? + fun enumerateDevices(): Promise<*> + fun getSupportedConstraints(): MediaTrackSupportedConstraints + fun getUserMedia(constraints: MediaStreamConstraints): Promise<*> +} + +/** + * Exposes the JavaScript [MediaDeviceInfo](https://developer.mozilla.org/en/docs/Web/API/MediaDeviceInfo) to Kotlin + */ +public external abstract class MediaDeviceInfo : JsAny { + open val deviceId: String + open val kind: MediaDeviceKind + open val label: String + open val groupId: String + fun toJSON(): JsAny +} + +public external abstract class InputDeviceInfo : MediaDeviceInfo, JsAny { + fun getCapabilities(): MediaTrackCapabilities +} + +/** + * Exposes the JavaScript [MediaStreamConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaStreamConstraints) to Kotlin + */ +public external interface MediaStreamConstraints : JsAny { + var video: JsAny? /* Boolean|MediaTrackConstraints */ + + var audio: JsAny? /* Boolean|MediaTrackConstraints */ + +} + +public external interface ConstrainablePattern : JsAny { + var onoverconstrained: ((Event) -> Unit)? + + + fun getCapabilities(): Capabilities + fun getConstraints(): Constraints + fun getSettings(): Settings + fun applyConstraints(constraints: Constraints): Promise +} + +/** + * Exposes the JavaScript [DoubleRange](https://developer.mozilla.org/en/docs/Web/API/DoubleRange) to Kotlin + */ +public external interface DoubleRange : JsAny { + var max: Double? + + var min: Double? + +} + +public external interface ConstrainDoubleRange : DoubleRange, JsAny { + var exact: Double? + + var ideal: Double? + +} + +public external interface ULongRange : JsAny { + var max: Int? + + var min: Int? + +} + +public external interface ConstrainULongRange : ULongRange, JsAny { + var exact: Int? + + var ideal: Int? + +} + +/** + * Exposes the JavaScript [ConstrainBooleanParameters](https://developer.mozilla.org/en/docs/Web/API/ConstrainBooleanParameters) to Kotlin + */ +public external interface ConstrainBooleanParameters : JsAny { + var exact: Boolean? + + var ideal: Boolean? + +} + +/** + * Exposes the JavaScript [ConstrainDOMStringParameters](https://developer.mozilla.org/en/docs/Web/API/ConstrainDOMStringParameters) to Kotlin + */ +public external interface ConstrainDOMStringParameters : JsAny { + var exact: JsAny? /* String|JsArray */ + + var ideal: JsAny? /* String|JsArray */ + +} + +public external interface Capabilities : JsAny + +public external interface Settings : JsAny + +public external interface ConstraintSet : JsAny + +public external interface Constraints : ConstraintSet, JsAny { + var advanced: JsArray? + +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface MediaStreamTrackState : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface VideoFacingModeEnum : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface VideoResizeModeEnum : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface MediaDeviceKind : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediasource.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediasource.kt new file mode 100644 index 0000000000..0ab6a6ed29 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.mediasource.kt @@ -0,0 +1,95 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.mediasource + +import web.JsAny +import web.dom.AudioTrackList +import web.dom.MediaProvider +import web.dom.TextTrackList +import web.dom.TimeRanges +import web.dom.VideoTrackList +import web.dom.events.Event +import web.dom.events.EventTarget + +/** + * Exposes the JavaScript [MediaSource](https://developer.mozilla.org/en/docs/Web/API/MediaSource) to Kotlin + */ +public external open class MediaSource : EventTarget, MediaProvider, JsAny { + open val sourceBuffers: SourceBufferList + open val activeSourceBuffers: SourceBufferList + open val readyState: ReadyState + var duration: Double + var onsourceopen: ((Event) -> Unit)? + var onsourceended: ((Event) -> Unit)? + var onsourceclose: ((Event) -> Unit)? + fun addSourceBuffer(type: String): SourceBuffer + fun removeSourceBuffer(sourceBuffer: SourceBuffer) + fun endOfStream(error: EndOfStreamError) + fun setLiveSeekableRange(start: Double, end: Double) + fun clearLiveSeekableRange() + + companion object { + fun isTypeSupported(type: String): Boolean + } +} + +/** + * Exposes the JavaScript [SourceBuffer](https://developer.mozilla.org/en/docs/Web/API/SourceBuffer) to Kotlin + */ +public external abstract class SourceBuffer : EventTarget, JsAny { + open var mode: AppendMode + open val updating: Boolean + open val buffered: TimeRanges + open var timestampOffset: Double + open val audioTracks: AudioTrackList + open val videoTracks: VideoTrackList + open val textTracks: TextTrackList + open var appendWindowStart: Double + open var appendWindowEnd: Double + open var onupdatestart: ((Event) -> Unit)? + open var onupdate: ((Event) -> Unit)? + open var onupdateend: ((Event) -> Unit)? + open var onerror: ((Event) -> Unit)? + open var onabort: ((Event) -> Unit)? + fun appendBuffer(data: JsAny?) + fun abort() + fun remove(start: Double, end: Double) +} + +/** + * Exposes the JavaScript [SourceBufferList](https://developer.mozilla.org/en/docs/Web/API/SourceBufferList) to Kotlin + */ +public external abstract class SourceBufferList : EventTarget, JsAny { + open val length: Int + open var onaddsourcebuffer: ((Event) -> Unit)? + open var onremovesourcebuffer: ((Event) -> Unit)? +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ReadyState : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface EndOfStreamError : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface AppendMode : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.parsing.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.parsing.kt new file mode 100644 index 0000000000..280ca0d2ac --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.parsing.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.parsing + +import web.JsAny +import web.dom.Document +import web.dom.Node + +/** + * Exposes the JavaScript [DOMParser](https://developer.mozilla.org/en/docs/Web/API/DOMParser) to Kotlin + */ +public external open class DOMParser : JsAny { + fun parseFromString(str: String, type: JsAny?): Document +} + +/** + * Exposes the JavaScript [XMLSerializer](https://developer.mozilla.org/en/docs/Web/API/XMLSerializer) to Kotlin + */ +public external open class XMLSerializer : JsAny { + fun serializeToString(root: Node): String +} \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.pointerevents.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.pointerevents.kt new file mode 100644 index 0000000000..09ba3a640a --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.pointerevents.kt @@ -0,0 +1,65 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.pointerevents + +import web.JsAny +import web.dom.events.MouseEvent +import web.dom.events.MouseEventInit + +public external interface PointerEventInit : MouseEventInit, JsAny { + var pointerId: Int? /* = 0 */ + + var width: Double? /* = 1.0 */ + + var height: Double? /* = 1.0 */ + + var pressure: Float? /* = 0f */ + + var tangentialPressure: Float? /* = 0f */ + + var tiltX: Int? /* = 0 */ + + var tiltY: Int? /* = 0 */ + + var twist: Int? /* = 0 */ + + var pointerType: String? /* = "" */ + + var isPrimary: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [PointerEvent](https://developer.mozilla.org/en/docs/Web/API/PointerEvent) to Kotlin + */ +public external open class PointerEvent(type: String, eventInitDict: PointerEventInit) : MouseEvent, + JsAny { + open val pointerId: Int + open val width: Double + open val height: Double + open val pressure: Float + open val tangentialPressure: Float + open val tiltX: Int + open val tiltY: Int + open val twist: Int + open val pointerType: String + open val isPrimary: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.svg.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.svg.kt new file mode 100644 index 0000000000..b8eda379bc --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.svg.kt @@ -0,0 +1,1779 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.svg + +import web.JsAny +import web.dom.* +import web.dom.css.ElementCSSInlineStyle +import web.dom.css.LinkStyle + +/** + * Exposes the JavaScript [SVGElement](https://developer.mozilla.org/en/docs/Web/API/SVGElement) to Kotlin + */ +public external abstract class SVGElement : Element, ElementCSSInlineStyle, GlobalEventHandlers, SVGElementInstance, + JsAny { + open val dataset: DOMStringMap + open val ownerSVGElement: SVGSVGElement? + open val viewportElement: SVGElement? + open var tabIndex: Int + fun focus() + fun blur() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface SVGBoundingBoxOptions : JsAny { + var fill: Boolean? /* = true */ + + var stroke: Boolean? /* = false */ + + var markers: Boolean? /* = false */ + + var clipped: Boolean? /* = false */ + +} + +/** + * Exposes the JavaScript [SVGGraphicsElement](https://developer.mozilla.org/en/docs/Web/API/SVGGraphicsElement) to Kotlin + */ +public external abstract class SVGGraphicsElement : SVGElement, SVGTests, JsAny { + open val transform: SVGAnimatedTransformList + fun getBBox(options: SVGBoundingBoxOptions): DOMRect + fun getCTM(): DOMMatrix? + fun getScreenCTM(): DOMMatrix? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGGeometryElement](https://developer.mozilla.org/en/docs/Web/API/SVGGeometryElement) to Kotlin + */ +public external abstract class SVGGeometryElement : SVGGraphicsElement, JsAny { + open val pathLength: SVGAnimatedNumber + fun isPointInFill(point: DOMPoint): Boolean + fun isPointInStroke(point: DOMPoint): Boolean + fun getTotalLength(): Float + fun getPointAtLength(distance: Float): DOMPoint + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGNumber](https://developer.mozilla.org/en/docs/Web/API/SVGNumber) to Kotlin + */ +public external abstract class SVGNumber : JsAny { + open var value: Float +} + +/** + * Exposes the JavaScript [SVGLength](https://developer.mozilla.org/en/docs/Web/API/SVGLength) to Kotlin + */ +public external abstract class SVGLength : JsAny { + open val unitType: Short + open var value: Float + open var valueInSpecifiedUnits: Float + open var valueAsString: String + fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float) + fun convertToSpecifiedUnits(unitType: Short) + + companion object { + val SVG_LENGTHTYPE_UNKNOWN: Short + val SVG_LENGTHTYPE_NUMBER: Short + val SVG_LENGTHTYPE_PERCENTAGE: Short + val SVG_LENGTHTYPE_EMS: Short + val SVG_LENGTHTYPE_EXS: Short + val SVG_LENGTHTYPE_PX: Short + val SVG_LENGTHTYPE_CM: Short + val SVG_LENGTHTYPE_MM: Short + val SVG_LENGTHTYPE_IN: Short + val SVG_LENGTHTYPE_PT: Short + val SVG_LENGTHTYPE_PC: Short + } +} + +/** + * Exposes the JavaScript [SVGAngle](https://developer.mozilla.org/en/docs/Web/API/SVGAngle) to Kotlin + */ +public external abstract class SVGAngle : JsAny { + open val unitType: Short + open var value: Float + open var valueInSpecifiedUnits: Float + open var valueAsString: String + fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float) + fun convertToSpecifiedUnits(unitType: Short) + + companion object { + val SVG_ANGLETYPE_UNKNOWN: Short + val SVG_ANGLETYPE_UNSPECIFIED: Short + val SVG_ANGLETYPE_DEG: Short + val SVG_ANGLETYPE_RAD: Short + val SVG_ANGLETYPE_GRAD: Short + } +} + +public external abstract class SVGNameList : JsAny { + open val length: Int + open val numberOfItems: Int + fun clear() + fun initialize(newItem: JsAny?): JsAny? + fun insertItemBefore(newItem: JsAny?, index: Int): JsAny? + fun replaceItem(newItem: JsAny?, index: Int): JsAny? + fun removeItem(index: Int): JsAny? + fun appendItem(newItem: JsAny?): JsAny? + fun getItem(index: Int): JsAny? +} + +/** + * Exposes the JavaScript [SVGNumberList](https://developer.mozilla.org/en/docs/Web/API/SVGNumberList) to Kotlin + */ +public external abstract class SVGNumberList : JsAny { + open val length: Int + open val numberOfItems: Int + fun clear() + fun initialize(newItem: SVGNumber): SVGNumber + fun insertItemBefore(newItem: SVGNumber, index: Int): SVGNumber + fun replaceItem(newItem: SVGNumber, index: Int): SVGNumber + fun removeItem(index: Int): SVGNumber + fun appendItem(newItem: SVGNumber): SVGNumber + fun getItem(index: Int): SVGNumber +} + +/** + * Exposes the JavaScript [SVGLengthList](https://developer.mozilla.org/en/docs/Web/API/SVGLengthList) to Kotlin + */ +public external abstract class SVGLengthList : JsAny { + open val length: Int + open val numberOfItems: Int + fun clear() + fun initialize(newItem: SVGLength): SVGLength + fun insertItemBefore(newItem: SVGLength, index: Int): SVGLength + fun replaceItem(newItem: SVGLength, index: Int): SVGLength + fun removeItem(index: Int): SVGLength + fun appendItem(newItem: SVGLength): SVGLength + fun getItem(index: Int): SVGLength +} + +/** + * Exposes the JavaScript [SVGAnimatedBoolean](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedBoolean) to Kotlin + */ +public external abstract class SVGAnimatedBoolean : JsAny { + open var baseVal: Boolean + open val animVal: Boolean +} + +/** + * Exposes the JavaScript [SVGAnimatedEnumeration](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedEnumeration) to Kotlin + */ +public external abstract class SVGAnimatedEnumeration : JsAny { + open var baseVal: Short + open val animVal: Short +} + +/** + * Exposes the JavaScript [SVGAnimatedInteger](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedInteger) to Kotlin + */ +public external abstract class SVGAnimatedInteger : JsAny { + open var baseVal: Int + open val animVal: Int +} + +/** + * Exposes the JavaScript [SVGAnimatedNumber](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedNumber) to Kotlin + */ +public external abstract class SVGAnimatedNumber : JsAny { + open var baseVal: Float + open val animVal: Float +} + +/** + * Exposes the JavaScript [SVGAnimatedLength](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedLength) to Kotlin + */ +public external abstract class SVGAnimatedLength : JsAny { + open val baseVal: SVGLength + open val animVal: SVGLength +} + +/** + * Exposes the JavaScript [SVGAnimatedAngle](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedAngle) to Kotlin + */ +public external abstract class SVGAnimatedAngle : JsAny { + open val baseVal: SVGAngle + open val animVal: SVGAngle +} + +/** + * Exposes the JavaScript [SVGAnimatedString](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedString) to Kotlin + */ +public external abstract class SVGAnimatedString : JsAny { + open var baseVal: String + open val animVal: String +} + +/** + * Exposes the JavaScript [SVGAnimatedRect](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedRect) to Kotlin + */ +public external abstract class SVGAnimatedRect : JsAny { + open val baseVal: DOMRect + open val animVal: DOMRectReadOnly +} + +/** + * Exposes the JavaScript [SVGAnimatedNumberList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedNumberList) to Kotlin + */ +public external abstract class SVGAnimatedNumberList : JsAny { + open val baseVal: SVGNumberList + open val animVal: SVGNumberList +} + +/** + * Exposes the JavaScript [SVGAnimatedLengthList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedLengthList) to Kotlin + */ +public external abstract class SVGAnimatedLengthList : JsAny { + open val baseVal: SVGLengthList + open val animVal: SVGLengthList +} + +/** + * Exposes the JavaScript [SVGStringList](https://developer.mozilla.org/en/docs/Web/API/SVGStringList) to Kotlin + */ +public external abstract class SVGStringList : JsAny { + open val length: Int + open val numberOfItems: Int + fun clear() + fun initialize(newItem: String): String + fun insertItemBefore(newItem: String, index: Int): String + fun replaceItem(newItem: String, index: Int): String + fun removeItem(index: Int): String + fun appendItem(newItem: String): String + fun getItem(index: Int): String +} + +/** + * Exposes the JavaScript [SVGUnitTypes](https://developer.mozilla.org/en/docs/Web/API/SVGUnitTypes) to Kotlin + */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface SVGUnitTypes : JsAny { + companion object { + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + } +} + +/** + * Exposes the JavaScript [SVGTests](https://developer.mozilla.org/en/docs/Web/API/SVGTests) to Kotlin + */ +public external interface SVGTests : JsAny { + val requiredExtensions: SVGStringList + val systemLanguage: SVGStringList +} + +public external interface SVGFitToViewBox : JsAny { + val viewBox: SVGAnimatedRect + val preserveAspectRatio: SVGAnimatedPreserveAspectRatio +} + +/** + * Exposes the JavaScript [SVGZoomAndPan](https://developer.mozilla.org/en/docs/Web/API/SVGZoomAndPan) to Kotlin + */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface SVGZoomAndPan : JsAny { + var zoomAndPan: Short + + companion object { + val SVG_ZOOMANDPAN_UNKNOWN: Short + val SVG_ZOOMANDPAN_DISABLE: Short + val SVG_ZOOMANDPAN_MAGNIFY: Short + } +} + +/** + * Exposes the JavaScript [SVGURIReference](https://developer.mozilla.org/en/docs/Web/API/SVGURIReference) to Kotlin + */ +public external interface SVGURIReference : JsAny { + val href: SVGAnimatedString +} + +/** + * Exposes the JavaScript [SVGSVGElement](https://developer.mozilla.org/en/docs/Web/API/SVGSVGElement) to Kotlin + */ +public external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewBox, SVGZoomAndPan, WindowEventHandlers, + JsAny { + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + open val width: SVGAnimatedLength + open val height: SVGAnimatedLength + open var currentScale: Float + open val currentTranslate: DOMPointReadOnly + fun getIntersectionList(rect: DOMRectReadOnly, referenceElement: SVGElement?): NodeList + fun getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement?): NodeList + fun checkIntersection(element: SVGElement, rect: DOMRectReadOnly): Boolean + fun checkEnclosure(element: SVGElement, rect: DOMRectReadOnly): Boolean + fun deselectAll() + fun createSVGNumber(): SVGNumber + fun createSVGLength(): SVGLength + fun createSVGAngle(): SVGAngle + fun createSVGPoint(): DOMPoint + fun createSVGMatrix(): DOMMatrix + fun createSVGRect(): DOMRect + fun createSVGTransform(): SVGTransform + fun createSVGTransformFromMatrix(matrix: DOMMatrixReadOnly): SVGTransform + fun getElementById(elementId: String): Element + fun suspendRedraw(maxWaitMilliseconds: Int): Int + fun unsuspendRedraw(suspendHandleID: Int) + fun unsuspendRedrawAll() + fun forceRedraw() + + companion object { + val SVG_ZOOMANDPAN_UNKNOWN: Short + val SVG_ZOOMANDPAN_DISABLE: Short + val SVG_ZOOMANDPAN_MAGNIFY: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGGElement](https://developer.mozilla.org/en/docs/Web/API/SVGGElement) to Kotlin + */ +public external abstract class SVGGElement : SVGGraphicsElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class SVGUnknownElement : SVGGraphicsElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGDefsElement](https://developer.mozilla.org/en/docs/Web/API/SVGDefsElement) to Kotlin + */ +public external abstract class SVGDefsElement : SVGGraphicsElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGDescElement](https://developer.mozilla.org/en/docs/Web/API/SVGDescElement) to Kotlin + */ +public external abstract class SVGDescElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGMetadataElement](https://developer.mozilla.org/en/docs/Web/API/SVGMetadataElement) to Kotlin + */ +public external abstract class SVGMetadataElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGTitleElement](https://developer.mozilla.org/en/docs/Web/API/SVGTitleElement) to Kotlin + */ +public external abstract class SVGTitleElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGSymbolElement](https://developer.mozilla.org/en/docs/Web/API/SVGSymbolElement) to Kotlin + */ +public external abstract class SVGSymbolElement : SVGGraphicsElement, SVGFitToViewBox, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGUseElement](https://developer.mozilla.org/en/docs/Web/API/SVGUseElement) to Kotlin + */ +public external abstract class SVGUseElement : SVGGraphicsElement, SVGURIReference, JsAny { + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + open val width: SVGAnimatedLength + open val height: SVGAnimatedLength + open val instanceRoot: SVGElement? + open val animatedInstanceRoot: SVGElement? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external open class SVGUseElementShadowRoot : ShadowRoot, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface SVGElementInstance : JsAny { + val correspondingElement: SVGElement? + val correspondingUseElement: SVGUseElement? +} + +public external open class ShadowAnimation(source: JsAny?, newTarget: JsAny?) : JsAny { + open val sourceAnimation: JsAny? +} + +/** + * Exposes the JavaScript [SVGSwitchElement](https://developer.mozilla.org/en/docs/Web/API/SVGSwitchElement) to Kotlin + */ +public external abstract class SVGSwitchElement : SVGGraphicsElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface GetSVGDocument : JsAny { + fun getSVGDocument(): Document +} + +/** + * Exposes the JavaScript [SVGStyleElement](https://developer.mozilla.org/en/docs/Web/API/SVGStyleElement) to Kotlin + */ +public external abstract class SVGStyleElement : SVGElement, LinkStyle, JsAny { + open var type: String + open var media: String + open var title: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGTransform](https://developer.mozilla.org/en/docs/Web/API/SVGTransform) to Kotlin + */ +public external abstract class SVGTransform : JsAny { + open val type: Short + open val matrix: DOMMatrix + open val angle: Float + fun setMatrix(matrix: DOMMatrixReadOnly) + fun setTranslate(tx: Float, ty: Float) + fun setScale(sx: Float, sy: Float) + fun setRotate(angle: Float, cx: Float, cy: Float) + fun setSkewX(angle: Float) + fun setSkewY(angle: Float) + + companion object { + val SVG_TRANSFORM_UNKNOWN: Short + val SVG_TRANSFORM_MATRIX: Short + val SVG_TRANSFORM_TRANSLATE: Short + val SVG_TRANSFORM_SCALE: Short + val SVG_TRANSFORM_ROTATE: Short + val SVG_TRANSFORM_SKEWX: Short + val SVG_TRANSFORM_SKEWY: Short + } +} + +/** + * Exposes the JavaScript [SVGTransformList](https://developer.mozilla.org/en/docs/Web/API/SVGTransformList) to Kotlin + */ +public external abstract class SVGTransformList : JsAny { + open val length: Int + open val numberOfItems: Int + fun clear() + fun initialize(newItem: SVGTransform): SVGTransform + fun insertItemBefore(newItem: SVGTransform, index: Int): SVGTransform + fun replaceItem(newItem: SVGTransform, index: Int): SVGTransform + fun removeItem(index: Int): SVGTransform + fun appendItem(newItem: SVGTransform): SVGTransform + fun createSVGTransformFromMatrix(matrix: DOMMatrixReadOnly): SVGTransform + fun consolidate(): SVGTransform? + fun getItem(index: Int): SVGTransform +} + +/** + * Exposes the JavaScript [SVGAnimatedTransformList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedTransformList) to Kotlin + */ +public external abstract class SVGAnimatedTransformList : JsAny { + open val baseVal: SVGTransformList + open val animVal: SVGTransformList +} + +/** + * Exposes the JavaScript [SVGPreserveAspectRatio](https://developer.mozilla.org/en/docs/Web/API/SVGPreserveAspectRatio) to Kotlin + */ +public external abstract class SVGPreserveAspectRatio : JsAny { + open var align: Short + open var meetOrSlice: Short + + companion object { + val SVG_PRESERVEASPECTRATIO_UNKNOWN: Short + val SVG_PRESERVEASPECTRATIO_NONE: Short + val SVG_PRESERVEASPECTRATIO_XMINYMIN: Short + val SVG_PRESERVEASPECTRATIO_XMIDYMIN: Short + val SVG_PRESERVEASPECTRATIO_XMAXYMIN: Short + val SVG_PRESERVEASPECTRATIO_XMINYMID: Short + val SVG_PRESERVEASPECTRATIO_XMIDYMID: Short + val SVG_PRESERVEASPECTRATIO_XMAXYMID: Short + val SVG_PRESERVEASPECTRATIO_XMINYMAX: Short + val SVG_PRESERVEASPECTRATIO_XMIDYMAX: Short + val SVG_PRESERVEASPECTRATIO_XMAXYMAX: Short + val SVG_MEETORSLICE_UNKNOWN: Short + val SVG_MEETORSLICE_MEET: Short + val SVG_MEETORSLICE_SLICE: Short + } +} + +/** + * Exposes the JavaScript [SVGAnimatedPreserveAspectRatio](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedPreserveAspectRatio) to Kotlin + */ +public external abstract class SVGAnimatedPreserveAspectRatio : JsAny { + open val baseVal: SVGPreserveAspectRatio + open val animVal: SVGPreserveAspectRatio +} + +/** + * Exposes the JavaScript [SVGPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGPathElement) to Kotlin + */ +public external abstract class SVGPathElement : SVGGeometryElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGRectElement](https://developer.mozilla.org/en/docs/Web/API/SVGRectElement) to Kotlin + */ +public external abstract class SVGRectElement : SVGGeometryElement, JsAny { + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + open val width: SVGAnimatedLength + open val height: SVGAnimatedLength + open val rx: SVGAnimatedLength + open val ry: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGCircleElement](https://developer.mozilla.org/en/docs/Web/API/SVGCircleElement) to Kotlin + */ +public external abstract class SVGCircleElement : SVGGeometryElement, JsAny { + open val cx: SVGAnimatedLength + open val cy: SVGAnimatedLength + open val r: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGEllipseElement](https://developer.mozilla.org/en/docs/Web/API/SVGEllipseElement) to Kotlin + */ +public external abstract class SVGEllipseElement : SVGGeometryElement, JsAny { + open val cx: SVGAnimatedLength + open val cy: SVGAnimatedLength + open val rx: SVGAnimatedLength + open val ry: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGLineElement](https://developer.mozilla.org/en/docs/Web/API/SVGLineElement) to Kotlin + */ +public external abstract class SVGLineElement : SVGGeometryElement, JsAny { + open val x1: SVGAnimatedLength + open val y1: SVGAnimatedLength + open val x2: SVGAnimatedLength + open val y2: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGMeshElement](https://developer.mozilla.org/en/docs/Web/API/SVGMeshElement) to Kotlin + */ +public external abstract class SVGMeshElement : SVGGeometryElement, SVGURIReference, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGAnimatedPoints](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedPoints) to Kotlin + */ +public external interface SVGAnimatedPoints : JsAny { + val points: SVGPointList + val animatedPoints: SVGPointList +} + +public external abstract class SVGPointList : JsAny { + open val length: Int + open val numberOfItems: Int + fun clear() + fun initialize(newItem: DOMPoint): DOMPoint + fun insertItemBefore(newItem: DOMPoint, index: Int): DOMPoint + fun replaceItem(newItem: DOMPoint, index: Int): DOMPoint + fun removeItem(index: Int): DOMPoint + fun appendItem(newItem: DOMPoint): DOMPoint + fun getItem(index: Int): DOMPoint +} + +/** + * Exposes the JavaScript [SVGPolylineElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolylineElement) to Kotlin + */ +public external abstract class SVGPolylineElement : SVGGeometryElement, SVGAnimatedPoints, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGPolygonElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolygonElement) to Kotlin + */ +public external abstract class SVGPolygonElement : SVGGeometryElement, SVGAnimatedPoints, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGTextContentElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextContentElement) to Kotlin + */ +public external abstract class SVGTextContentElement : SVGGraphicsElement, JsAny { + open val textLength: SVGAnimatedLength + open val lengthAdjust: SVGAnimatedEnumeration + fun getNumberOfChars(): Int + fun getComputedTextLength(): Float + fun getSubStringLength(charnum: Int, nchars: Int): Float + fun getStartPositionOfChar(charnum: Int): DOMPoint + fun getEndPositionOfChar(charnum: Int): DOMPoint + fun getExtentOfChar(charnum: Int): DOMRect + fun getRotationOfChar(charnum: Int): Float + fun getCharNumAtPosition(point: DOMPoint): Int + fun selectSubString(charnum: Int, nchars: Int) + + companion object { + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGTextPositioningElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextPositioningElement) to Kotlin + */ +public external abstract class SVGTextPositioningElement : SVGTextContentElement, JsAny { + open val x: SVGAnimatedLengthList + open val y: SVGAnimatedLengthList + open val dx: SVGAnimatedLengthList + open val dy: SVGAnimatedLengthList + open val rotate: SVGAnimatedNumberList + + companion object { + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGTextElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextElement) to Kotlin + */ +public external abstract class SVGTextElement : SVGTextPositioningElement, JsAny { + companion object { + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGTSpanElement](https://developer.mozilla.org/en/docs/Web/API/SVGTSpanElement) to Kotlin + */ +public external abstract class SVGTSpanElement : SVGTextPositioningElement, JsAny { + companion object { + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGTextPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextPathElement) to Kotlin + */ +public external abstract class SVGTextPathElement : SVGTextContentElement, SVGURIReference, JsAny { + open val startOffset: SVGAnimatedLength + open val method: SVGAnimatedEnumeration + open val spacing: SVGAnimatedEnumeration + + companion object { + val TEXTPATH_METHODTYPE_UNKNOWN: Short + val TEXTPATH_METHODTYPE_ALIGN: Short + val TEXTPATH_METHODTYPE_STRETCH: Short + val TEXTPATH_SPACINGTYPE_UNKNOWN: Short + val TEXTPATH_SPACINGTYPE_AUTO: Short + val TEXTPATH_SPACINGTYPE_EXACT: Short + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGImageElement](https://developer.mozilla.org/en/docs/Web/API/SVGImageElement) to Kotlin + */ +public external abstract class SVGImageElement : SVGGraphicsElement, SVGURIReference, HTMLOrSVGImageElement, JsAny { + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + open val width: SVGAnimatedLength + open val height: SVGAnimatedLength + open val preserveAspectRatio: SVGAnimatedPreserveAspectRatio + open var crossOrigin: String? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGForeignObjectElement](https://developer.mozilla.org/en/docs/Web/API/SVGForeignObjectElement) to Kotlin + */ +public external abstract class SVGForeignObjectElement : SVGGraphicsElement, JsAny { + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + open val width: SVGAnimatedLength + open val height: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox, JsAny { + open val refX: SVGAnimatedLength + open val refY: SVGAnimatedLength + open val markerUnits: SVGAnimatedEnumeration + open val markerWidth: SVGAnimatedLength + open val markerHeight: SVGAnimatedLength + open val orientType: SVGAnimatedEnumeration + open val orientAngle: SVGAnimatedAngle + open var orient: String + fun setOrientToAuto() + fun setOrientToAngle(angle: SVGAngle) + + companion object { + val SVG_MARKERUNITS_UNKNOWN: Short + val SVG_MARKERUNITS_USERSPACEONUSE: Short + val SVG_MARKERUNITS_STROKEWIDTH: Short + val SVG_MARKER_ORIENT_UNKNOWN: Short + val SVG_MARKER_ORIENT_AUTO: Short + val SVG_MARKER_ORIENT_ANGLE: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGSolidcolorElement](https://developer.mozilla.org/en/docs/Web/API/SVGSolidcolorElement) to Kotlin + */ +public external abstract class SVGSolidcolorElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGGradientElement) to Kotlin + */ +public external abstract class SVGGradientElement : SVGElement, SVGURIReference, SVGUnitTypes, JsAny { + open val gradientUnits: SVGAnimatedEnumeration + open val gradientTransform: SVGAnimatedTransformList + open val spreadMethod: SVGAnimatedEnumeration + + companion object { + val SVG_SPREADMETHOD_UNKNOWN: Short + val SVG_SPREADMETHOD_PAD: Short + val SVG_SPREADMETHOD_REFLECT: Short + val SVG_SPREADMETHOD_REPEAT: Short + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGLinearGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGLinearGradientElement) to Kotlin + */ +public external abstract class SVGLinearGradientElement : SVGGradientElement, JsAny { + open val x1: SVGAnimatedLength + open val y1: SVGAnimatedLength + open val x2: SVGAnimatedLength + open val y2: SVGAnimatedLength + + companion object { + val SVG_SPREADMETHOD_UNKNOWN: Short + val SVG_SPREADMETHOD_PAD: Short + val SVG_SPREADMETHOD_REFLECT: Short + val SVG_SPREADMETHOD_REPEAT: Short + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGRadialGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGRadialGradientElement) to Kotlin + */ +public external abstract class SVGRadialGradientElement : SVGGradientElement, JsAny { + open val cx: SVGAnimatedLength + open val cy: SVGAnimatedLength + open val r: SVGAnimatedLength + open val fx: SVGAnimatedLength + open val fy: SVGAnimatedLength + open val fr: SVGAnimatedLength + + companion object { + val SVG_SPREADMETHOD_UNKNOWN: Short + val SVG_SPREADMETHOD_PAD: Short + val SVG_SPREADMETHOD_REFLECT: Short + val SVG_SPREADMETHOD_REPEAT: Short + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class SVGMeshGradientElement : SVGGradientElement, JsAny { + companion object { + val SVG_SPREADMETHOD_UNKNOWN: Short + val SVG_SPREADMETHOD_PAD: Short + val SVG_SPREADMETHOD_REFLECT: Short + val SVG_SPREADMETHOD_REPEAT: Short + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class SVGMeshrowElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class SVGMeshpatchElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGStopElement](https://developer.mozilla.org/en/docs/Web/API/SVGStopElement) to Kotlin + */ +public external abstract class SVGStopElement : SVGElement, JsAny { + open val offset: SVGAnimatedNumber + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGPatternElement](https://developer.mozilla.org/en/docs/Web/API/SVGPatternElement) to Kotlin + */ +public external abstract class SVGPatternElement : SVGElement, SVGFitToViewBox, SVGURIReference, SVGUnitTypes, JsAny { + open val patternUnits: SVGAnimatedEnumeration + open val patternContentUnits: SVGAnimatedEnumeration + open val patternTransform: SVGAnimatedTransformList + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + open val width: SVGAnimatedLength + open val height: SVGAnimatedLength + + companion object { + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class SVGHatchElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class SVGHatchpathElement : SVGElement, JsAny { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGCursorElement](https://developer.mozilla.org/en/docs/Web/API/SVGCursorElement) to Kotlin + */ +public external abstract class SVGCursorElement : SVGElement, SVGURIReference, JsAny { + open val x: SVGAnimatedLength + open val y: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGScriptElement](https://developer.mozilla.org/en/docs/Web/API/SVGScriptElement) to Kotlin + */ +public external abstract class SVGScriptElement : SVGElement, SVGURIReference, HTMLOrSVGScriptElement, JsAny { + open var type: String + open var crossOrigin: String? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGAElement](https://developer.mozilla.org/en/docs/Web/API/SVGAElement) to Kotlin + */ +public external abstract class SVGAElement : SVGGraphicsElement, SVGURIReference, JsAny { + open val target: SVGAnimatedString + open val download: SVGAnimatedString + open val rel: SVGAnimatedString + open val relList: SVGAnimatedString + open val hreflang: SVGAnimatedString + open val type: SVGAnimatedString + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [SVGViewElement](https://developer.mozilla.org/en/docs/Web/API/SVGViewElement) to Kotlin + */ +public external abstract class SVGViewElement : SVGElement, SVGFitToViewBox, SVGZoomAndPan, JsAny { + companion object { + val SVG_ZOOMANDPAN_UNKNOWN: Short + val SVG_ZOOMANDPAN_DISABLE: Short + val SVG_ZOOMANDPAN_MAGNIFY: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.url.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.url.kt new file mode 100644 index 0000000000..f0c62b7d22 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.dom.url.kt @@ -0,0 +1,58 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress("NO_EXPLICIT_VISIBILITY_IN_API_MODE", "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE") // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.dom.url + +import web.JsAny +import web.JsArray +import web.JsString +import kotlin.js.* +import web.webgl.* +import web.dom.mediasource.* +import web.files.* + +/** + * Exposes the JavaScript [URL](https://developer.mozilla.org/en/docs/Web/API/URL) to Kotlin + */ +public external open class URL(url: String, base: String) : JsAny { + var href: String + open val origin: String + var protocol: String + var username: String + var password: String + var host: String + var hostname: String + var port: String + var pathname: String + var search: String + open val searchParams: URLSearchParams + var hash: String + + companion object { + fun domainToASCII(domain: String): String + fun domainToUnicode(domain: String): String + fun createObjectURL(mediaSource: MediaSource): String + fun createObjectURL(blob: Blob): String + fun createFor(blob: Blob): String + fun revokeObjectURL(url: String) + } +} + +/** + * Exposes the JavaScript [URLSearchParams](https://developer.mozilla.org/en/docs/Web/API/URLSearchParams) to Kotlin + */ +public external open class URLSearchParams(init: JsAny? /* String|URLSearchParams */) : JsAny { + fun append(name: String, value: String) + fun delete(name: String) + fun get(name: String): String? + fun getAll(name: String): JsArray + fun has(name: String): Boolean + fun set(name: String, value: String) +} \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.fetch.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.fetch.kt new file mode 100644 index 0000000000..8d5419b439 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.fetch.kt @@ -0,0 +1,176 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.fetch + +import web.JsAny +import web.Promise + +/** + * Exposes the JavaScript [Headers](https://developer.mozilla.org/en/docs/Web/API/Headers) to Kotlin + */ +public external open class Headers(init: JsAny? /* Headers|JsArray>|OpenEndedDictionary */) : + JsAny { + fun append(name: String, value: String) + fun delete(name: String) + fun get(name: String): String? + fun has(name: String): Boolean + fun set(name: String, value: String) +} + +/** + * Exposes the JavaScript [Body](https://developer.mozilla.org/en/docs/Web/API/Body) to Kotlin + */ +public external interface Body : JsAny { + val bodyUsed: Boolean + fun arrayBuffer(): Promise<*> + fun blob(): Promise<*> + fun formData(): Promise<*> + fun json(): Promise<*> + fun text(): Promise<*> +} + +/** + * Exposes the JavaScript [Request](https://developer.mozilla.org/en/docs/Web/API/Request) to Kotlin + */ +public external open class Request(input: JsAny? /* Request|String */, init: RequestInit) : Body, + JsAny { + open val method: String + open val url: String + open val headers: Headers + open val type: RequestType + open val destination: RequestDestination + open val referrer: String + open val referrerPolicy: JsAny? + open val mode: RequestMode + open val credentials: RequestCredentials + open val cache: RequestCache + open val redirect: RequestRedirect + open val integrity: String + open val keepalive: Boolean + override val bodyUsed: Boolean + fun clone(): Request + override fun arrayBuffer(): Promise<*> + override fun blob(): Promise<*> + override fun formData(): Promise<*> + override fun json(): Promise<*> + override fun text(): Promise<*> +} + +public external interface RequestInit : JsAny { + var method: String? + + var headers: JsAny? /* Headers|JsArray>|OpenEndedDictionary */ + + var body: JsAny? /* Blob|BufferSource|FormData|URLSearchParams|String */ + + var referrer: String? + + var referrerPolicy: JsAny? + + var mode: RequestMode? + + var credentials: RequestCredentials? + + var cache: RequestCache? + + var redirect: RequestRedirect? + + var integrity: String? + + var keepalive: Boolean? + + var window: JsAny? + +} + +/** + * Exposes the JavaScript [Response](https://developer.mozilla.org/en/docs/Web/API/Response) to Kotlin + */ +public external open class Response( + body: JsAny? /* JsAny?|ReadableStream */, + init: ResponseInit +) : Body, JsAny { + open val type: ResponseType + open val url: String + open val redirected: Boolean + open val status: Short + open val ok: Boolean + open val statusText: String + open val headers: Headers + open val body: JsAny? + open val trailer: Promise<*> + override val bodyUsed: Boolean + fun clone(): Response + override fun arrayBuffer(): Promise<*> + override fun blob(): Promise<*> + override fun formData(): Promise<*> + override fun json(): Promise<*> + override fun text(): Promise<*> + + companion object { + fun error(): Response + fun redirect(url: String, status: Short): Response + } +} + +public external interface ResponseInit : JsAny { + var status: Short? /* = 200 */ + + var statusText: String? /* = "OK" */ + + var headers: JsAny? /* Headers|JsArray>|OpenEndedDictionary */ + +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface RequestType : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface RequestDestination : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface RequestMode : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface RequestCredentials : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface RequestCache : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface RequestRedirect : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ResponseType : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.files.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.files.kt new file mode 100644 index 0000000000..2d6286661e --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.files.kt @@ -0,0 +1,109 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.files + +import web.JsAny +import web.JsArray +import web.JsNumber +import web.dom.ImageBitmapSource +import web.dom.ItemArrayLike +import web.dom.MediaProvider +import web.dom.events.Event +import web.dom.events.EventTarget +import web.webgl.ArrayBuffer +import web.xhr.ProgressEvent + +/** + * Exposes the JavaScript [Blob](https://developer.mozilla.org/en/docs/Web/API/Blob) to Kotlin + */ +public external open class Blob( + blobParts: JsArray, + options: BlobPropertyBag +) : MediaProvider, ImageBitmapSource, JsAny { + open val size: JsNumber + open val type: String + open val isClosed: Boolean + fun slice( + start: Int, + end: Int, + contentType: String + ): Blob + + fun close() +} + +public external interface BlobPropertyBag : JsAny { + var type: String? /* = "" */ + +} + +/** + * Exposes the JavaScript [File](https://developer.mozilla.org/en/docs/Web/API/File) to Kotlin + */ +public external open class File( + fileBits: JsArray, + fileName: String, + options: FilePropertyBag +) : Blob, JsAny { + open val name: String + open val lastModified: Int +} + +public external interface FilePropertyBag : BlobPropertyBag, JsAny { + var lastModified: Int? + +} + +/** + * Exposes the JavaScript [FileList](https://developer.mozilla.org/en/docs/Web/API/FileList) to Kotlin + */ +public external abstract class FileList : ItemArrayLike, JsAny { + override fun item(index: Int): File? +} + +/** + * Exposes the JavaScript [FileReader](https://developer.mozilla.org/en/docs/Web/API/FileReader) to Kotlin + */ +public external open class FileReader : EventTarget, JsAny { + open val readyState: Short + open val result: JsAny? /* String|ArrayBuffer */ + open val error: JsAny? + var onloadstart: ((ProgressEvent) -> Unit)? + var onprogress: ((ProgressEvent) -> Unit)? + var onload: ((Event) -> Unit)? + var onabort: ((Event) -> Unit)? + var onerror: ((Event) -> Unit)? + var onloadend: ((Event) -> Unit)? + fun readAsArrayBuffer(blob: Blob) + fun readAsBinaryString(blob: Blob) + fun readAsText(blob: Blob, label: String) + fun readAsDataURL(blob: Blob) + fun abort() + + companion object { + val EMPTY: Short + val LOADING: Short + val DONE: Short + } +} + +/** + * Exposes the JavaScript [FileReaderSync](https://developer.mozilla.org/en/docs/Web/API/FileReaderSync) to Kotlin + */ +public external open class FileReaderSync : JsAny { + fun readAsArrayBuffer(blob: Blob): ArrayBuffer + fun readAsBinaryString(blob: Blob): String + fun readAsText(blob: Blob, label: String): String + fun readAsDataURL(blob: Blob): String +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.notifications.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.notifications.kt new file mode 100644 index 0000000000..e712e9b3b1 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.notifications.kt @@ -0,0 +1,141 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.notifications + +import web.JsAny +import web.JsArray +import web.JsNumber +import web.dom.events.Event +import web.dom.events.EventTarget +import web.dom.events.MouseEvent +import web.workers.ExtendableEvent +import web.workers.ExtendableEventInit +import web.Promise + +/** + * Exposes the JavaScript [Notification](https://developer.mozilla.org/en/docs/Web/API/Notification) to Kotlin + */ +public external open class Notification(title: String, options: NotificationOptions) : EventTarget, + JsAny { + var onclick: ((MouseEvent) -> Unit)? + var onerror: ((Event) -> Unit)? + open val title: String + open val dir: NotificationDirection + open val lang: String + open val body: String + open val tag: String + open val image: String + open val icon: String + open val badge: String + open val sound: String + open val vibrate: JsArray + open val timestamp: JsNumber + open val renotify: Boolean + open val silent: Boolean + open val noscreen: Boolean + open val requireInteraction: Boolean + open val sticky: Boolean + open val data: JsAny? + open val actions: JsArray + fun close() + + companion object { + val permission: NotificationPermission + val maxActions: Int + fun requestPermission(deprecatedCallback: (NotificationPermission) -> Unit): Promise<*> + } +} + +public external interface NotificationOptions : JsAny { + var dir: NotificationDirection? /* = NotificationDirection.AUTO */ + + var lang: String? /* = "" */ + + var body: String? /* = "" */ + + var tag: String? /* = "" */ + + var image: String? + + var icon: String? + + var badge: String? + + var sound: String? + + var vibrate: JsAny? /* Int|JsArray */ + + var timestamp: JsNumber? + + var renotify: Boolean? /* = false */ + + var silent: Boolean? /* = false */ + + var noscreen: Boolean? /* = false */ + + var requireInteraction: Boolean? /* = false */ + + var sticky: Boolean? /* = false */ + + var data: JsAny? /* = null */ + + var actions: JsArray? /* = arrayOf() */ + +} + +public external interface NotificationAction : JsAny { + var action: String? + var title: String? + var icon: String? + +} + +public external interface GetNotificationOptions : JsAny { + var tag: String? /* = "" */ + +} + +/** + * Exposes the JavaScript [NotificationEvent](https://developer.mozilla.org/en/docs/Web/API/NotificationEvent) to Kotlin + */ +public external open class NotificationEvent(type: String, eventInitDict: NotificationEventInit) : ExtendableEvent, + JsAny { + open val notification: Notification + open val action: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface NotificationEventInit : ExtendableEventInit, JsAny { + var notification: Notification? + var action: String? /* = "" */ + +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface NotificationPermission : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface NotificationDirection : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.performance.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.performance.kt new file mode 100644 index 0000000000..2c8131b31a --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.performance.kt @@ -0,0 +1,73 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.performance + +import web.JsAny +import web.JsNumber +import web.dom.events.EventTarget + +/** + * Exposes the JavaScript [Performance](https://developer.mozilla.org/en/docs/Web/API/Performance) to Kotlin + */ +public external abstract class Performance : EventTarget, JsAny { + open val timing: PerformanceTiming + open val navigation: PerformanceNavigation + fun now(): Double +} + +public external interface GlobalPerformance : JsAny { + val performance: Performance +} + +/** + * Exposes the JavaScript [PerformanceTiming](https://developer.mozilla.org/en/docs/Web/API/PerformanceTiming) to Kotlin + */ +public external abstract class PerformanceTiming : JsAny { + open val navigationStart: JsNumber + open val unloadEventStart: JsNumber + open val unloadEventEnd: JsNumber + open val redirectStart: JsNumber + open val redirectEnd: JsNumber + open val fetchStart: JsNumber + open val domainLookupStart: JsNumber + open val domainLookupEnd: JsNumber + open val connectStart: JsNumber + open val connectEnd: JsNumber + open val secureConnectionStart: JsNumber + open val requestStart: JsNumber + open val responseStart: JsNumber + open val responseEnd: JsNumber + open val domLoading: JsNumber + open val domInteractive: JsNumber + open val domContentLoadedEventStart: JsNumber + open val domContentLoadedEventEnd: JsNumber + open val domComplete: JsNumber + open val loadEventStart: JsNumber + open val loadEventEnd: JsNumber +} + +/** + * Exposes the JavaScript [PerformanceNavigation](https://developer.mozilla.org/en/docs/Web/API/PerformanceNavigation) to Kotlin + */ +public external abstract class PerformanceNavigation : JsAny { + open val type: Short + open val redirectCount: Short + + companion object { + val TYPE_NAVIGATE: Short + val TYPE_RELOAD: Short + val TYPE_BACK_FORWARD: Short + val TYPE_RESERVED: Short + } +} \ No newline at end of file diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.workers.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.workers.kt new file mode 100644 index 0000000000..05b86dbab1 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.workers.kt @@ -0,0 +1,385 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.workers + +import web.JsAny +import web.JsArray +import web.JsBoolean +import web.JsString +import web.dom.AbstractWorker +import web.dom.EventInit +import web.dom.MessageEvent +import web.dom.MessagePort +import web.dom.WorkerGlobalScope +import web.dom.WorkerType +import web.dom.events.Event +import web.dom.events.EventTarget +import web.fetch.Request +import web.fetch.Response +import web.notifications.GetNotificationOptions +import web.notifications.Notification +import web.notifications.NotificationEvent +import web.notifications.NotificationOptions +import web.Promise + +/** + * Exposes the JavaScript [ServiceWorker](https://developer.mozilla.org/en/docs/Web/API/ServiceWorker) to Kotlin + */ +public external abstract class ServiceWorker : EventTarget, AbstractWorker, UnionMessagePortOrServiceWorker, + UnionClientOrMessagePortOrServiceWorker, JsAny { + open val scriptURL: String + open val state: ServiceWorkerState + open var onstatechange: ((Event) -> Unit)? + fun postMessage(message: JsAny?, transfer: JsArray) +} + +/** + * Exposes the JavaScript [ServiceWorkerRegistration](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerRegistration) to Kotlin + */ +public external abstract class ServiceWorkerRegistration : EventTarget, JsAny { + open val installing: ServiceWorker? + open val waiting: ServiceWorker? + open val active: ServiceWorker? + open val scope: String + open var onupdatefound: ((Event) -> Unit)? + open val APISpace: JsAny? + fun update(): Promise + fun unregister(): Promise<*> + fun showNotification(title: String, options: NotificationOptions): Promise + fun getNotifications(filter: GetNotificationOptions): Promise<*> + fun methodName(): Promise<*> +} + +/** + * Exposes the JavaScript [ServiceWorkerContainer](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerContainer) to Kotlin + */ +public external abstract class ServiceWorkerContainer : EventTarget, JsAny { + open val controller: ServiceWorker? + open val ready: Promise<*> + open var oncontrollerchange: ((Event) -> Unit)? + open var onmessage: ((MessageEvent) -> Unit)? + fun register( + scriptURL: String, + options: RegistrationOptions + ): Promise<*> + + fun getRegistration(clientURL: String): Promise<*> + fun getRegistrations(): Promise<*> + fun startMessages() +} + +public external interface RegistrationOptions : JsAny { + var scope: String? + + var type: WorkerType? /* = WorkerType.CLASSIC */ + +} + +/** + * Exposes the JavaScript [ServiceWorkerMessageEvent](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerMessageEvent) to Kotlin + */ +public external open class ServiceWorkerMessageEvent( + type: String, + eventInitDict: ServiceWorkerMessageEventInit +) : Event, JsAny { + open val data: JsAny? + open val origin: String + open val lastEventId: String + open val source: UnionMessagePortOrServiceWorker? + open val ports: JsArray? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ServiceWorkerMessageEventInit : EventInit, JsAny { + var data: JsAny? + + var origin: String? + + var lastEventId: String? + + var source: UnionMessagePortOrServiceWorker? + + var ports: JsArray? + +} + +/** + * Exposes the JavaScript [ServiceWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerGlobalScope) to Kotlin + */ +public external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope, JsAny { + open val clients: Clients + open val registration: ServiceWorkerRegistration + open var oninstall: ((Event) -> Unit)? + open var onactivate: ((Event) -> Unit)? + open var onfetch: ((FetchEvent) -> Unit)? + open var onforeignfetch: ((Event) -> Unit)? + open var onmessage: ((MessageEvent) -> Unit)? + open var onnotificationclick: ((NotificationEvent) -> Unit)? + open var onnotificationclose: ((NotificationEvent) -> Unit)? + open var onfunctionalevent: ((Event) -> Unit)? + fun skipWaiting(): Promise +} + +/** + * Exposes the JavaScript [Client](https://developer.mozilla.org/en/docs/Web/API/Client) to Kotlin + */ +public external abstract class Client : UnionClientOrMessagePortOrServiceWorker, JsAny { + open val url: String + open val frameType: FrameType + open val id: String + fun postMessage(message: JsAny?, transfer: JsArray) +} + +/** + * Exposes the JavaScript [WindowClient](https://developer.mozilla.org/en/docs/Web/API/WindowClient) to Kotlin + */ +public external abstract class WindowClient : Client, JsAny { + open val visibilityState: JsAny? + open val focused: Boolean + fun focus(): Promise<*> + fun navigate(url: String): Promise<*> +} + +/** + * Exposes the JavaScript [Clients](https://developer.mozilla.org/en/docs/Web/API/Clients) to Kotlin + */ +public external abstract class Clients : JsAny { + fun get(id: String): Promise<*> + fun matchAll(options: ClientQueryOptions): Promise<*> + fun openWindow(url: String): Promise<*> + fun claim(): Promise +} + +public external interface ClientQueryOptions : JsAny { + var includeUncontrolled: Boolean? /* = false */ + + var type: ClientType? /* = ClientType.WINDOW */ + +} + +/** + * Exposes the JavaScript [ExtendableEvent](https://developer.mozilla.org/en/docs/Web/API/ExtendableEvent) to Kotlin + */ +public external open class ExtendableEvent(type: String, eventInitDict: ExtendableEventInit) : + Event, JsAny { + fun waitUntil(f: Promise<*>) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ExtendableEventInit : EventInit, JsAny + +/** + * Exposes the JavaScript [InstallEvent](https://developer.mozilla.org/en/docs/Web/API/InstallEvent) to Kotlin + */ +public external open class InstallEvent(type: String, eventInitDict: ExtendableEventInit) : + ExtendableEvent, JsAny { + fun registerForeignFetch(options: ForeignFetchOptions) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ForeignFetchOptions : JsAny { + var scopes: JsArray? + var origins: JsArray? +} + +/** + * Exposes the JavaScript [FetchEvent](https://developer.mozilla.org/en/docs/Web/API/FetchEvent) to Kotlin + */ +public external open class FetchEvent(type: String, eventInitDict: FetchEventInit) : ExtendableEvent, JsAny { + open val request: Request + open val clientId: String? + open val isReload: Boolean + fun respondWith(r: Promise<*>) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface FetchEventInit : ExtendableEventInit, JsAny { + var request: Request? + var clientId: String? /* = null */ + + var isReload: Boolean? /* = false */ + +} + +public external open class ForeignFetchEvent(type: String, eventInitDict: ForeignFetchEventInit) : ExtendableEvent, + JsAny { + open val request: Request + open val origin: String + fun respondWith(r: Promise<*>) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ForeignFetchEventInit : ExtendableEventInit, JsAny { + var request: Request? + var origin: String? /* = "null" */ + +} + +public external interface ForeignFetchResponse : JsAny { + var response: Response? + var origin: String? + + var headers: JsArray? + +} + +/** + * Exposes the JavaScript [ExtendableMessageEvent](https://developer.mozilla.org/en/docs/Web/API/ExtendableMessageEvent) to Kotlin + */ +public external open class ExtendableMessageEvent( + type: String, + eventInitDict: ExtendableMessageEventInit +) : ExtendableEvent, JsAny { + open val data: JsAny? + open val origin: String + open val lastEventId: String + open val source: UnionClientOrMessagePortOrServiceWorker? + open val ports: JsArray? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ExtendableMessageEventInit : ExtendableEventInit, JsAny { + var data: JsAny? + + var origin: String? + + var lastEventId: String? + + var source: UnionClientOrMessagePortOrServiceWorker? + + var ports: JsArray? + +} + +/** + * Exposes the JavaScript [Cache](https://developer.mozilla.org/en/docs/Web/API/Cache) to Kotlin + */ +public external abstract class Cache : JsAny { + fun match(request: Request, options: CacheQueryOptions): Promise<*> + fun match(request: String, options: CacheQueryOptions): Promise<*> + fun matchAll(request: Request, options: CacheQueryOptions): Promise<*> + fun matchAll(request: String, options: CacheQueryOptions): Promise<*> + fun matchAll(): Promise<*> + fun add(request: Request): Promise + fun add(request: String): Promise + fun addAll(requests: JsArray): Promise + fun put(request: Request, response: Response): Promise + fun put(request: String, response: Response): Promise + fun delete(request: Request, options: CacheQueryOptions): Promise<*> + fun delete(request: String, options: CacheQueryOptions): Promise<*> + fun keys(request: Request, options: CacheQueryOptions): Promise<*> + fun keys(request: String, options: CacheQueryOptions): Promise<*> + fun keys(): Promise<*> +} + +public external interface CacheQueryOptions : JsAny { + var ignoreSearch: Boolean? /* = false */ + + var ignoreMethod: Boolean? /* = false */ + + var ignoreVary: Boolean? /* = false */ + + var cacheName: String? + +} + +public external interface CacheBatchOperation : JsAny { + var type: String? + + var request: Request? + + var response: Response? + + var options: CacheQueryOptions? + +} + +/** + * Exposes the JavaScript [CacheStorage](https://developer.mozilla.org/en/docs/Web/API/CacheStorage) to Kotlin + */ +public external abstract class CacheStorage : JsAny { + fun match(request: Request, options: CacheQueryOptions): Promise<*> + fun match(request: String, options: CacheQueryOptions): Promise<*> + fun has(cacheName: String): Promise<*> + fun open(cacheName: String): Promise<*> + fun delete(cacheName: String): Promise<*> + fun keys(): Promise<*> +} + +public external open class FunctionalEvent : ExtendableEvent, JsAny { + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface UnionMessagePortOrServiceWorker + +public external interface UnionClientOrMessagePortOrServiceWorker + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ServiceWorkerState : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface FrameType : JsAny { + companion object +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface ClientType : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.xhr.kt b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.xhr.kt new file mode 100644 index 0000000000..ec3c218d4f --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/org.w3c.xhr.kt @@ -0,0 +1,132 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! +// See github.com/kotlin/dukat for details + +@file:Suppress( + "NO_EXPLICIT_VISIBILITY_IN_API_MODE", + "NO_EXPLICIT_RETURN_TYPE_IN_API_MODE" +) // TODO: Fix in dukat: https://github.com/Kotlin/dukat/issues/124 + +package web.xhr + +import web.JsAny +import web.JsArray +import web.JsNumber +import web.dom.Document +import web.dom.EventInit +import web.dom.HTMLFormElement +import web.dom.events.Event +import web.dom.events.EventTarget +import web.dom.url.URLSearchParams +import web.files.Blob + +/** + * Exposes the JavaScript [XMLHttpRequestEventTarget](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequestEventTarget) to Kotlin + */ +public external abstract class XMLHttpRequestEventTarget : EventTarget, JsAny { + open var onloadstart: ((ProgressEvent) -> Unit)? + open var onprogress: ((ProgressEvent) -> Unit)? + open var onabort: ((Event) -> Unit)? + open var onerror: ((Event) -> Unit)? + open var onload: ((Event) -> Unit)? + open var ontimeout: ((Event) -> Unit)? + open var onloadend: ((Event) -> Unit)? +} + +public external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget, JsAny + +/** + * Exposes the JavaScript [XMLHttpRequest](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest) to Kotlin + */ +public external open class XMLHttpRequest : XMLHttpRequestEventTarget, JsAny { + var onreadystatechange: ((Event) -> Unit)? + open val readyState: Short + var timeout: Int + var withCredentials: Boolean + open val upload: XMLHttpRequestUpload + open val responseURL: String + open val status: Short + open val statusText: String + var responseType: XMLHttpRequestResponseType + open val response: JsAny? + open val responseText: String + open val responseXML: Document? + fun open(method: String, url: String) + fun open( + method: String, + url: String, + async: Boolean, + username: String?, + password: String? + ) + + fun setRequestHeader(name: String, value: String) + fun send(body: Document) + fun send(body: Blob) + fun send(body: FormData) + fun send(body: URLSearchParams) + fun send(body: String) + fun send() + fun abort() + fun getResponseHeader(name: String): String? + fun getAllResponseHeaders(): String + fun overrideMimeType(mime: String) + + companion object { + val UNSENT: Short + val OPENED: Short + val HEADERS_RECEIVED: Short + val LOADING: Short + val DONE: Short + } +} + +/** + * Exposes the JavaScript [FormData](https://developer.mozilla.org/en/docs/Web/API/FormData) to Kotlin + */ +public external open class FormData(form: HTMLFormElement) : JsAny { + fun append(name: String, value: String) + fun append(name: String, value: Blob, filename: String) + fun delete(name: String) + fun get(name: String): JsAny? /* File|String */ + fun getAll(name: String): JsArray + fun has(name: String): Boolean + fun set(name: String, value: String) + fun set(name: String, value: Blob, filename: String) +} + +/** + * Exposes the JavaScript [ProgressEvent](https://developer.mozilla.org/en/docs/Web/API/ProgressEvent) to Kotlin + */ +public external open class ProgressEvent(type: String, eventInitDict: ProgressEventInit) : Event, + JsAny { + open val lengthComputable: Boolean + open val loaded: JsNumber + open val total: JsNumber + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ProgressEventInit : EventInit, JsAny { + var lengthComputable: Boolean? /* = false */ + + var loaded: JsNumber? /* = 0 */ + + var total: JsNumber? /* = 0 */ + +} + +/* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") +public external interface XMLHttpRequestResponseType : JsAny { + companion object +} diff --git a/modules/kilua-dom/src/commonMain/kotlin/web/web.kt b/modules/kilua-dom/src/commonMain/kotlin/web/web.kt new file mode 100644 index 0000000000..76bf6ae553 --- /dev/null +++ b/modules/kilua-dom/src/commonMain/kotlin/web/web.kt @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package web + +import web.dom.* + +public external val window: Window + +public external val document: Document + +public external val localStorage: Storage + +public external val sessionStorage: Storage diff --git a/modules/kilua-dom/src/jsMain/kotlin/web/JsAny.js.kt b/modules/kilua-dom/src/jsMain/kotlin/web/JsAny.js.kt new file mode 100644 index 0000000000..20d20aa439 --- /dev/null +++ b/modules/kilua-dom/src/jsMain/kotlin/web/JsAny.js.kt @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +public actual external interface JsAny diff --git a/modules/kilua-dom/src/jsMain/kotlin/web/JsArray.js.kt b/modules/kilua-dom/src/jsMain/kotlin/web/JsArray.js.kt new file mode 100644 index 0000000000..2a88606040 --- /dev/null +++ b/modules/kilua-dom/src/jsMain/kotlin/web/JsArray.js.kt @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +@JsName("Array") +public actual external class JsArray : JsAny { + public actual val length: Int +} + +public actual operator fun JsArray.get(index: Int): T? = + jsArrayGet(this, index) + +public actual operator fun JsArray.set(index: Int, value: T) { + jsArraySet(this, index, value) +} + +private fun jsArrayGet(array: JsArray, index: Int): T? = + js("array[index]") + +private fun jsArraySet(array: JsArray, index: Int, value: T) { + js("array[index] = value") +} diff --git a/modules/kilua-dom/src/jsMain/kotlin/web/JsBoolean.js.kt b/modules/kilua-dom/src/jsMain/kotlin/web/JsBoolean.js.kt new file mode 100644 index 0000000000..b4ac04b217 --- /dev/null +++ b/modules/kilua-dom/src/jsMain/kotlin/web/JsBoolean.js.kt @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +@JsName("boolean") +public actual external class JsBoolean : JsAny + +public actual fun JsBoolean.toBoolean(): Boolean { + return this.unsafeCast() +} + +public actual fun Boolean.toJsBoolean(): JsBoolean { + return this.unsafeCast() +} diff --git a/modules/kilua-dom/src/jsMain/kotlin/web/JsNumber.js.kt b/modules/kilua-dom/src/jsMain/kotlin/web/JsNumber.js.kt new file mode 100644 index 0000000000..abf58e3dd3 --- /dev/null +++ b/modules/kilua-dom/src/jsMain/kotlin/web/JsNumber.js.kt @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +@JsName("Number") +public actual external class JsNumber : JsAny + +public actual fun JsNumber.toDouble(): Double { + return this.unsafeCast().toDouble() +} + +public actual fun Double.toJsNumber(): JsNumber { + return this.unsafeCast() +} + +public actual fun JsNumber.toInt(): Int { + return this.unsafeCast().toInt() +} + +public actual fun Int.toJsNumber(): JsNumber { + return this.unsafeCast() +} diff --git a/modules/kilua-dom/src/jsMain/kotlin/web/JsString.js.kt b/modules/kilua-dom/src/jsMain/kotlin/web/JsString.js.kt new file mode 100644 index 0000000000..631eb7444b --- /dev/null +++ b/modules/kilua-dom/src/jsMain/kotlin/web/JsString.js.kt @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +@JsName("String") +public actual external class JsString : JsAny + +public actual fun String.toJsString(): JsString { + return this.unsafeCast() +} diff --git a/modules/kilua-dom/src/jsMain/kotlin/web/Promise.js.kt b/modules/kilua-dom/src/jsMain/kotlin/web/Promise.js.kt new file mode 100644 index 0000000000..bc3a748ec3 --- /dev/null +++ b/modules/kilua-dom/src/jsMain/kotlin/web/Promise.js.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +public actual external class Promise actual constructor(executor: (resolve: (T) -> Unit, reject: (JsAny) -> Unit) -> Unit) : + JsAny { + public actual fun then(onFulfilled: ((T) -> S)?): Promise + + public actual fun then(onFulfilled: ((T) -> S)?, onRejected: ((JsAny) -> S)?): Promise + + public actual fun catch(onRejected: (JsAny) -> S): Promise + + public actual fun finally(onFinally: () -> Unit): Promise + + public actual companion object { + public actual fun all(promise: JsArray>): Promise> + + public actual fun race(promise: JsArray>): Promise + + public actual fun reject(e: JsAny): Promise + + public actual fun resolve(e: S): Promise + + public actual fun resolve(e: Promise): Promise + } +} diff --git a/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsAny.wasmJs.kt b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsAny.wasmJs.kt new file mode 100644 index 0000000000..5750860d35 --- /dev/null +++ b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsAny.wasmJs.kt @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +public actual typealias JsAny = kotlin.js.JsAny diff --git a/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsArray.wasmJs.kt b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsArray.wasmJs.kt new file mode 100644 index 0000000000..4dd12ad4ef --- /dev/null +++ b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsArray.wasmJs.kt @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +import kotlin.js.get as jsGet +import kotlin.js.set as jsSet + +public actual typealias JsArray = kotlin.js.JsArray + +public actual operator fun JsArray.get(index: Int): T? = this.jsGet(index) + +public actual operator fun JsArray.set(index: Int, value: T) { + this.jsSet(index, value) +} diff --git a/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsBoolean.wasmJs.kt b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsBoolean.wasmJs.kt new file mode 100644 index 0000000000..a8b1c2754f --- /dev/null +++ b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsBoolean.wasmJs.kt @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +import kotlin.js.toBoolean as jsToBoolean +import kotlin.js.toJsBoolean as jsToJsBoolean + +public actual typealias JsBoolean = kotlin.js.JsBoolean + +public actual fun JsBoolean.toBoolean(): Boolean = this.jsToBoolean() + +public actual fun Boolean.toJsBoolean(): JsBoolean = this.jsToJsBoolean() diff --git a/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsNumber.wasmJs.kt b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsNumber.wasmJs.kt new file mode 100644 index 0000000000..dc071197ef --- /dev/null +++ b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsNumber.wasmJs.kt @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +import kotlin.js.toDouble as jsToDouble +import kotlin.js.toInt as jsToInt +import kotlin.js.toJsNumber as jsToJsNumber + +public actual typealias JsNumber = kotlin.js.JsNumber + +public actual fun JsNumber.toDouble(): Double = this.jsToDouble() +public actual fun Double.toJsNumber(): JsNumber = this.jsToJsNumber() +public actual fun JsNumber.toInt(): Int = this.jsToInt() +public actual fun Int.toJsNumber(): JsNumber = this.jsToJsNumber() diff --git a/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsString.wasmJs.kt b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsString.wasmJs.kt new file mode 100644 index 0000000000..2df86eef16 --- /dev/null +++ b/modules/kilua-dom/src/wasmJsMain/kotlin/web/JsString.wasmJs.kt @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +import kotlin.js.toJsString as jsToJsString + +public actual typealias JsString = kotlin.js.JsString + +public actual fun String.toJsString(): JsString = this.jsToJsString() diff --git a/modules/kilua-dom/src/wasmJsMain/kotlin/web/Promise.wasmJs.kt b/modules/kilua-dom/src/wasmJsMain/kotlin/web/Promise.wasmJs.kt new file mode 100644 index 0000000000..bc3a748ec3 --- /dev/null +++ b/modules/kilua-dom/src/wasmJsMain/kotlin/web/Promise.wasmJs.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2023 Robert Jaros + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package web + +public actual external class Promise actual constructor(executor: (resolve: (T) -> Unit, reject: (JsAny) -> Unit) -> Unit) : + JsAny { + public actual fun then(onFulfilled: ((T) -> S)?): Promise + + public actual fun then(onFulfilled: ((T) -> S)?, onRejected: ((JsAny) -> S)?): Promise + + public actual fun catch(onRejected: (JsAny) -> S): Promise + + public actual fun finally(onFinally: () -> Unit): Promise + + public actual companion object { + public actual fun all(promise: JsArray>): Promise> + + public actual fun race(promise: JsArray>): Promise + + public actual fun reject(e: JsAny): Promise + + public actual fun resolve(e: S): Promise + + public actual fun resolve(e: Promise): Promise + } +} diff --git a/modules/kilua-fontawesome/build.gradle.kts b/modules/kilua-fontawesome/build.gradle.kts index b00a9f018f..6f200dd9e7 100644 --- a/modules/kilua-fontawesome/build.gradle.kts +++ b/modules/kilua-fontawesome/build.gradle.kts @@ -5,9 +5,6 @@ plugins { id("signing") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - detekt { toolVersion = libs.versions.detekt.get() config.setFrom("../../detekt-config.yml") @@ -17,8 +14,8 @@ detekt { kotlin { explicitApi() compilerOptions() - kotlinJsTargets(buildTarget, isInIdea) - kotlinWasmTargets(buildTarget, isInIdea) + kotlinJsTargets() + kotlinWasmTargets() sourceSets { val commonMain by getting { dependencies { @@ -34,16 +31,12 @@ kotlin { implementation(project(":modules:kilua-testutils")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/modules/kilua-fontawesome/src/commonMain/kotlin/dev/kilua/FontAwesomeModule.kt b/modules/kilua-fontawesome/src/commonMain/kotlin/dev/kilua/FontAwesomeModule.kt index b39f7738c2..b4864a9493 100644 --- a/modules/kilua-fontawesome/src/commonMain/kotlin/dev/kilua/FontAwesomeModule.kt +++ b/modules/kilua-fontawesome/src/commonMain/kotlin/dev/kilua/FontAwesomeModule.kt @@ -22,6 +22,7 @@ package dev.kilua +import dev.kilua.utils.JsModule import dev.kilua.utils.JsNonModule import dev.kilua.utils.useModule diff --git a/modules/kilua-testutils/build.gradle.kts b/modules/kilua-testutils/build.gradle.kts index 6e7da881e9..eaa8f26ec1 100644 --- a/modules/kilua-testutils/build.gradle.kts +++ b/modules/kilua-testutils/build.gradle.kts @@ -5,9 +5,6 @@ plugins { id("signing") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - detekt { toolVersion = libs.versions.detekt.get() config.setFrom("../../detekt-config.yml") @@ -17,8 +14,8 @@ detekt { kotlin { explicitApi() compilerOptions() - kotlinJsTargets(buildTarget, isInIdea) - kotlinWasmTargets(buildTarget, isInIdea) + kotlinJsTargets() + kotlinWasmTargets() sourceSets { val commonMain by getting { dependencies { @@ -30,16 +27,12 @@ kotlin { implementation(npm("html-differ", libs.versions.html.differ.get())) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/HtmlDiffer.kt b/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/HtmlDiffer.kt index e8dd00b2f2..fd8c9f49e4 100644 --- a/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/HtmlDiffer.kt +++ b/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/HtmlDiffer.kt @@ -24,7 +24,11 @@ package dev.kilua.test +import dev.kilua.utils.JsModule + @Suppress("UnusedPrivateProperty") -public external class HtmlDiffer(preset: String = definedExternally) { +public external class HtmlDiffer(preset: String) { + public constructor() + public fun isEqual(html1: String, html2: String): Boolean } diff --git a/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/TestUtil.kt b/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/TestUtil.kt index 9e019cbe99..428760cc80 100644 --- a/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/TestUtil.kt +++ b/modules/kilua-testutils/src/commonMain/kotlin/dev/kilua/test/TestUtil.kt @@ -22,17 +22,17 @@ package dev.kilua.test +import dev.kilua.asPromise import dev.kilua.compose.Root -import dev.kilua.externals.Object import dev.kilua.utils.cast import dev.kilua.utils.isDom -import kotlinx.browser.document import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.promise -import kotlinx.dom.clear -import kotlin.js.Promise +import kotlinx.coroutines.async +import web.JsAny +import web.Promise +import web.document import kotlin.test.DefaultAsserter.assertTrue public val testScope: CoroutineScope = CoroutineScope(Dispatchers.Default + SupervisorJob()) @@ -49,11 +49,11 @@ public interface TestSpec { afterTest() } - public fun runAsync(code: suspend () -> Unit): Promise { + public fun runAsync(code: suspend () -> Unit): Promise { beforeTest() - return testScope.promise { + return testScope.async { code() - }.finally { + }.asPromise().finally { afterTest() }.cast() } @@ -81,11 +81,11 @@ public interface DomSpec : TestSpec { afterTest() } - public fun runWhenDomAvailableAsync(code: suspend () -> Unit): Promise { + public fun runWhenDomAvailableAsync(code: suspend () -> Unit): Promise { beforeTest() - return testScope.promise { + return testScope.async { if (isDom) code() - }.finally { + }.asPromise().finally { afterTest() }.cast() } @@ -101,7 +101,11 @@ public interface DomSpec : TestSpec { override fun afterTest() { if (isDom) { val div = document.getElementById("pretest") - div?.clear() + div?.let { + while (it.hasChildNodes()) { + it.removeChild(it.firstChild!!) + } + } val modalBackdrop = document.getElementById(".modal-backdrop") modalBackdrop?.remove() } diff --git a/modules/kilua-trix/build.gradle.kts b/modules/kilua-trix/build.gradle.kts index 1f1e421fdf..e9bb1d3de3 100644 --- a/modules/kilua-trix/build.gradle.kts +++ b/modules/kilua-trix/build.gradle.kts @@ -7,9 +7,6 @@ plugins { id("signing") } -val isInIdea = System.getProperty("idea.vendor.name") != null -val buildTarget: String by project - detekt { toolVersion = libs.versions.detekt.get() config.setFrom("../../detekt-config.yml") @@ -19,8 +16,8 @@ detekt { kotlin { explicitApi() compilerOptions() - kotlinJsTargets(buildTarget, isInIdea) - kotlinWasmTargets(buildTarget, isInIdea) + kotlinJsTargets() + kotlinWasmTargets() sourceSets { val commonMain by getting { dependencies { @@ -36,16 +33,12 @@ kotlin { implementation(project(":modules:kilua-testutils")) } } - if (buildTarget == "js" || !isInIdea) { - val jsMain by getting { - dependencies { - } + val jsMain by getting { + dependencies { } } - if (buildTarget == "wasm" || !isInIdea) { - val wasmJsMain by getting { - dependencies { - } + val wasmJsMain by getting { + dependencies { } } } diff --git a/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/TrixModule.kt b/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/TrixModule.kt index af8062de97..56dc4f81d8 100644 --- a/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/TrixModule.kt +++ b/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/TrixModule.kt @@ -22,6 +22,7 @@ package dev.kilua +import dev.kilua.utils.JsModule import dev.kilua.utils.JsNonModule import dev.kilua.utils.useModule diff --git a/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/externals/Editor.kt b/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/externals/Editor.kt index cfd7e2cbb6..2b44cf965c 100644 --- a/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/externals/Editor.kt +++ b/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/externals/Editor.kt @@ -22,7 +22,7 @@ package dev.kilua.externals -import org.w3c.dom.Element +import web.dom.Element /** * Internal Editor class. diff --git a/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/form/text/RichText.kt b/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/form/text/RichText.kt index 12d64b912b..4e7469e65e 100644 --- a/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/form/text/RichText.kt +++ b/modules/kilua-trix/src/commonMain/kotlin/dev/kilua/form/text/RichText.kt @@ -45,12 +45,13 @@ import dev.kilua.initializeTrix import dev.kilua.state.WithStateFlow import dev.kilua.state.WithStateFlowDelegate import dev.kilua.state.WithStateFlowDelegateImpl -import kotlinx.dom.clear -import org.w3c.dom.HTMLButtonElement -import org.w3c.dom.HTMLElement -import org.w3c.dom.HTMLInputElement -import org.w3c.dom.asList -import org.w3c.dom.events.Event +import dev.kilua.utils.cast +import web.clear +import web.dom.HTMLButtonElement +import web.dom.HTMLElement +import web.dom.HTMLInputElement +import web.dom.asList +import web.dom.events.Event /** * Trix rich text editor component. @@ -140,7 +141,7 @@ public open class RichText( get() = super.visible set(value) { super.visible = value - toolbar?.let { SafeDomFactory.getElementById(it) }?.unsafeCast()?.run { + toolbar?.let { SafeDomFactory.getElementById(it) }?.cast()?.run { if (!value) { style.display = "none" } else { @@ -187,7 +188,7 @@ public open class RichText( @Suppress("LeakingThis") onEventDirect("trix-change") { input?.let { SafeDomFactory.getElementById(it) }?.let { - val elementValue = it.unsafeCast().value + val elementValue = it.cast().value setInternalValueFromString(elementValue) dispatchEvent("change", buildCustomEventInit(obj())) } @@ -204,9 +205,9 @@ public open class RichText( * Disable/enable connected toolbar. */ protected fun toolbarDisable(disable: Boolean) { - toolbar?.let { SafeDomFactory.getElementById(it) }?.unsafeCast()?.run { + toolbar?.let { SafeDomFactory.getElementById(it) }?.cast()?.run { querySelectorAll("button").asList().forEach { - it.unsafeCast().disabled = disable + it.cast().disabled = disable } } } @@ -215,7 +216,7 @@ public open class RichText( * Localize connected toolbar. */ protected fun toolbarLocalize() { - toolbar?.let { SafeDomFactory.getElementById(it) }?.unsafeCast()?.innerHTML = + toolbar?.let { SafeDomFactory.getElementById(it) }?.cast()?.innerHTML = getToolbarContent(locale) } @@ -274,7 +275,7 @@ public open class RichText( override fun onRemove() { if (renderConfig.isDom) { - toolbar?.let { SafeDomFactory.getElementById(it) }?.unsafeCast()?.clear() + toolbar?.let { SafeDomFactory.getElementById(it) }?.cast()?.clear() element.clear() } } diff --git a/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Editor.js.kt b/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Editor.js.kt index 358c70615f..4374d7b044 100644 --- a/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Editor.js.kt +++ b/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Editor.js.kt @@ -22,7 +22,7 @@ package dev.kilua.externals -import org.w3c.dom.Element +import web.dom.Element internal actual fun getEditorFromElement(element: Element): Editor? { @Suppress("UnsafeCastFromDynamic") diff --git a/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Trix.js.kt b/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Trix.js.kt index 130a22977b..f7bb385a07 100644 --- a/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Trix.js.kt +++ b/modules/kilua-trix/src/jsMain/kotlin/dev/kilua/externals/Trix.js.kt @@ -23,6 +23,8 @@ package dev.kilua.externals +import web.JsAny + /** * Native JS Trix toolbar object. */ @@ -34,7 +36,7 @@ internal external class TrixToolbar { * Native JS Trix config object. */ internal external class TrixConfig { - val lang: Object + val lang: JsAny val toolbar: TrixToolbar } diff --git a/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Editor.wasmJs.kt b/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Editor.wasmJs.kt index fd211639ef..48dc4aabca 100644 --- a/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Editor.wasmJs.kt +++ b/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Editor.wasmJs.kt @@ -22,7 +22,7 @@ package dev.kilua.externals -import org.w3c.dom.Element +import web.dom.Element /** * Internal Element class with editor property. diff --git a/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Trix.wasmJs.kt b/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Trix.wasmJs.kt index 7164d01f9c..e8b52fd54a 100644 --- a/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Trix.wasmJs.kt +++ b/modules/kilua-trix/src/wasmJsMain/kotlin/dev/kilua/externals/Trix.wasmJs.kt @@ -23,6 +23,8 @@ package dev.kilua.externals +import web.JsAny + /** * Native JS Trix toolbar object. */ @@ -34,7 +36,7 @@ internal external class TrixToolbar : JsAny { * Native JS Trix config object. */ internal external class TrixConfig : JsAny { - val lang: Object + val lang: JsAny val toolbar: TrixToolbar } diff --git a/settings.gradle.kts b/settings.gradle.kts index 0976b95801..7eb4a20bfe 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,8 +4,6 @@ pluginManagement { repositories { gradlePluginPortal() mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - maven("https://maven.pkg.jetbrains.space/kotlin/p/wasm/experimental") mavenLocal() } } @@ -13,9 +11,6 @@ pluginManagement { dependencyResolutionManagement { repositories { mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - maven("https://maven.pkg.jetbrains.space/kotlin/p/wasm/experimental") - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev") mavenLocal() } } @@ -23,6 +18,7 @@ dependencyResolutionManagement { rootProject.name = "kilua" include(":kilua") include(":modules:kilua-common-types") +include(":modules:kilua-dom") include(":modules:kilua-bootstrap") include(":modules:kilua-bootstrap-icons") include(":modules:kilua-fontawesome")