diff --git a/docs/content/docs/contributing/api-modelling.mdx b/docs/content/docs/contributing/api-modelling.mdx
index 7b8fe790..4b70adeb 100644
--- a/docs/content/docs/contributing/api-modelling.mdx
+++ b/docs/content/docs/contributing/api-modelling.mdx
@@ -1,7 +1,7 @@
---
title: API Modelling
description: Learn more about the API modelling process of @rescript/webapi.
-slug: "04-api-modelling"
+slug: "05-api-modelling"
---
import { Aside, Code, Icon } from "@astrojs/starlight/components";
diff --git a/docs/content/docs/contributing/module-structure.mdx b/docs/content/docs/contributing/api-module-structure.mdx
similarity index 94%
rename from docs/content/docs/contributing/module-structure.mdx
rename to docs/content/docs/contributing/api-module-structure.mdx
index e7bdcfac..d8724947 100644
--- a/docs/content/docs/contributing/module-structure.mdx
+++ b/docs/content/docs/contributing/api-module-structure.mdx
@@ -1,7 +1,7 @@
---
-title: Module Structure
-description: Learn more about the module structure of @rescript/webapi.
-slug: "02-module-structure"
+title: API Module Structure
+description: Learn more about the API module structure of @rescript/webapi.
+slug: "02-api-module-structure"
---
import { Aside } from "@astrojs/starlight/components";
diff --git a/docs/content/docs/contributing/code-generation.mdx b/docs/content/docs/contributing/code-generation.mdx
index 37ead831..952e0cad 100644
--- a/docs/content/docs/contributing/code-generation.mdx
+++ b/docs/content/docs/contributing/code-generation.mdx
@@ -1,7 +1,7 @@
---
title: Code Generation
description: Learn more about the code generation process for @rescript/webapi.
-slug: "03-code-generation"
+slug: "04-code-generation"
---
The original bindings were generated using a modified version of [TypeScript-DOM-lib-generator](https://github.com/microsoft/TypeScript-DOM-lib-generator).
diff --git a/docs/content/docs/contributing/documentation.mdx b/docs/content/docs/contributing/documentation.mdx
index 5f271948..e4a5986d 100644
--- a/docs/content/docs/contributing/documentation.mdx
+++ b/docs/content/docs/contributing/documentation.mdx
@@ -1,7 +1,7 @@
---
title: "Documentation"
description: Learn more about the relevance of adding documentation to @rescript/webapi.
-slug: "06-documentation"
+slug: "07-documentation"
---
After the bindings are generated, all you got was a link to the MDN documentation.
diff --git a/docs/content/docs/contributing/module-type-structure.mdx b/docs/content/docs/contributing/module-type-structure.mdx
new file mode 100644
index 00000000..904696db
--- /dev/null
+++ b/docs/content/docs/contributing/module-type-structure.mdx
@@ -0,0 +1,86 @@
+---
+title: Module Type Structure
+description: Learn more about the module structure of @rescript/webapi.
+slug: "03-module-type-structure"
+---
+
+import { Aside, FileTree, Code } from "@astrojs/starlight/components";
+
+Every interface in a Web API module can potentially contain methods. These methods are modeled in a separate module named after the interface.
+
+The primary reason for this separation is to handle method overloads.
+As explained in the [Design Philosophy](../design-philosophy) section, ReScript does not permit records to define the same properties more than once.
+Therefore, methods with overloads cannot be modeled within the same record type.
+
+## Bindings
+
+Another advantage of having a separate file is that these bindings can utilize all types defined in the API module.
+Under normal circumstances, the type module only contains `@send` bindings where the type is the first parameter.
+
+
+
+- DOMAPI
+ - HTMLButtonElement.res
+
+
+
+```ReScript
+/**
+Returns whether a form will validate when it is submitted, without having to submit it.
+[Read more on MDN](
+ https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/checkValidity)
+*/
+@send
+external checkValidity: htmlButtonElement => bool = "checkValidity"
+```
+
+## Inheritance
+
+When an interface inherits from another interface, the base interface methods can be [included](https://rescript-lang.org/syntax-lookup#include) into the inheriting interface.
+All methods from [HTMLElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement#instance_methods) should also be available on [HTMLButtonElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement#instance_methods).
+
+export const htmlElementModule = `
+open DOMAPI
+
+// A concrete type for \`T.t\` is passed later using the \`include\` keyword.
+module Impl = (T: { type t }) => {
+
+/**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
+*/
+@send
+external focus: (T.t, ~options: focusOptions=?) => unit = "focus"
+
+}
+
+include Impl({ type t = htmlElement })
+`;
+
+
+
+export const buttonModule = `
+open DOMAPI
+
+// Include all the methods from HTMLElement
+include HTMLElement.Impl({ type t = htmlButtonElement })
+
+// Add additional methods specific to HTMLButtonElement:
+
+/**
+Returns whether a form will validate when it is submitted, without having to submit it.
+[Read more on MDN](
+ https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/checkValidity)
+*/
+@send
+external checkValidity: htmlButtonElement => bool = "checkValidity"
+`;
+
+
diff --git a/docs/content/docs/contributing/testing.mdx b/docs/content/docs/contributing/testing.mdx
index 97e9cb6d..d5c61a2f 100644
--- a/docs/content/docs/contributing/testing.mdx
+++ b/docs/content/docs/contributing/testing.mdx
@@ -1,7 +1,7 @@
---
title: Testing
description: Learn more about testing the bindings for @rescript/webapi.
-slug: "05-testing"
+slug: "06-testing"
---
import { Aside, FileTree } from "@astrojs/starlight/components";
diff --git a/src/CSSFontLoadingAPI/FontFaceSet.js b/src/CSSFontLoadingAPI/FontFaceSet.js
index d856702b..977be071 100644
--- a/src/CSSFontLoadingAPI/FontFaceSet.js
+++ b/src/CSSFontLoadingAPI/FontFaceSet.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as EventTarget$WebApi from "../EventAPI/EventTarget.js";
+
+EventTarget$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/CSSFontLoadingAPI/FontFaceSet.res b/src/CSSFontLoadingAPI/FontFaceSet.res
index 3f0b3b38..2afe50ee 100644
--- a/src/CSSFontLoadingAPI/FontFaceSet.res
+++ b/src/CSSFontLoadingAPI/FontFaceSet.res
@@ -1,85 +1,9 @@
open EventAPI
open CSSFontLoadingAPI
-external asEventTarget: fontFaceSet => eventTarget = "%identity"
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- fontFaceSet,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- fontFaceSet,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- fontFaceSet,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- fontFaceSet,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (fontFaceSet, event) => bool = "dispatchEvent"
+include EventTarget.Impl({
+ type t = fontFaceSet
+})
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FontFaceSet/add)
diff --git a/src/CanvasAPI/OffscreenCanvas.js b/src/CanvasAPI/OffscreenCanvas.js
index d856702b..977be071 100644
--- a/src/CanvasAPI/OffscreenCanvas.js
+++ b/src/CanvasAPI/OffscreenCanvas.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as EventTarget$WebApi from "../EventAPI/EventTarget.js";
+
+EventTarget$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/CanvasAPI/OffscreenCanvas.res b/src/CanvasAPI/OffscreenCanvas.res
index 0683f2cd..4382385f 100644
--- a/src/CanvasAPI/OffscreenCanvas.res
+++ b/src/CanvasAPI/OffscreenCanvas.res
@@ -9,85 +9,9 @@ open FileAPI
@new
external make: (~width: int, ~height: int) => offscreenCanvas = "OffscreenCanvas"
-external asEventTarget: offscreenCanvas => eventTarget = "%identity"
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- offscreenCanvas,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- offscreenCanvas,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- offscreenCanvas,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- offscreenCanvas,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (offscreenCanvas, event) => bool = "dispatchEvent"
+include EventTarget.Impl({
+ type t = offscreenCanvas
+})
/**
Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.
diff --git a/src/ChannelMessagingAPI/MessagePort.js b/src/ChannelMessagingAPI/MessagePort.js
index d856702b..977be071 100644
--- a/src/ChannelMessagingAPI/MessagePort.js
+++ b/src/ChannelMessagingAPI/MessagePort.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as EventTarget$WebApi from "../EventAPI/EventTarget.js";
+
+EventTarget$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/ChannelMessagingAPI/MessagePort.res b/src/ChannelMessagingAPI/MessagePort.res
index 43a53022..c444ccac 100644
--- a/src/ChannelMessagingAPI/MessagePort.res
+++ b/src/ChannelMessagingAPI/MessagePort.res
@@ -1,86 +1,8 @@
-open EventAPI
open ChannelMessagingAPI
-open Prelude
-external asEventTarget: messagePort => eventTarget = "%identity"
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- messagePort,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- messagePort,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- messagePort,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- messagePort,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (messagePort, event) => bool = "dispatchEvent"
+include EventTarget.Impl({
+ type t = messagePort
+})
/**
Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.
diff --git a/src/ClipboardAPI/Clipboard.js b/src/ClipboardAPI/Clipboard.js
index d856702b..977be071 100644
--- a/src/ClipboardAPI/Clipboard.js
+++ b/src/ClipboardAPI/Clipboard.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as EventTarget$WebApi from "../EventAPI/EventTarget.js";
+
+EventTarget$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/ClipboardAPI/Clipboard.res b/src/ClipboardAPI/Clipboard.res
index 3a451e15..28c7b2c8 100644
--- a/src/ClipboardAPI/Clipboard.res
+++ b/src/ClipboardAPI/Clipboard.res
@@ -1,85 +1,8 @@
-open EventAPI
open ClipboardAPI
-external asEventTarget: clipboard => eventTarget = "%identity"
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- clipboard,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- clipboard,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- clipboard,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- clipboard,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (clipboard, event) => bool = "dispatchEvent"
+include EventTarget.Impl({
+ type t = clipboard
+})
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Clipboard/read)
diff --git a/src/DOMAPI/Animation.js b/src/DOMAPI/Animation.js
index d856702b..977be071 100644
--- a/src/DOMAPI/Animation.js
+++ b/src/DOMAPI/Animation.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as EventTarget$WebApi from "../EventAPI/EventTarget.js";
+
+EventTarget$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/Animation.res b/src/DOMAPI/Animation.res
index f1a04783..89ff5127 100644
--- a/src/DOMAPI/Animation.res
+++ b/src/DOMAPI/Animation.res
@@ -1,4 +1,3 @@
-open EventAPI
open DOMAPI
/**
@@ -8,85 +7,9 @@ open DOMAPI
external make: (~effect: animationEffect=?, ~timeline: animationTimeline=?) => animation =
"Animation"
-external asEventTarget: animation => eventTarget = "%identity"
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- animation,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- animation,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- animation,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- animation,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (animation, event) => bool = "dispatchEvent"
+include EventTarget.Impl({
+ type t = animation
+})
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Animation/cancel)
diff --git a/src/DOMAPI/CharacterData.js b/src/DOMAPI/CharacterData.js
index d856702b..5c41d3b3 100644
--- a/src/DOMAPI/CharacterData.js
+++ b/src/DOMAPI/CharacterData.js
@@ -1,2 +1,15 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as Node$WebApi from "./Node.js";
+
+function Impl(T) {
+ Node$WebApi.Impl({});
+ return {};
+}
+
+Node$WebApi.Impl({});
+
+export {
+ Impl,
+}
+/* Not a pure module */
diff --git a/src/DOMAPI/CharacterData.res b/src/DOMAPI/CharacterData.res
index 213a37c7..e46dc11a 100644
--- a/src/DOMAPI/CharacterData.res
+++ b/src/DOMAPI/CharacterData.res
@@ -1,272 +1,109 @@
open DOMAPI
open EventAPI
-external asNode: characterData => node = "%identity"
-external asEventTarget: characterData => eventTarget = "%identity"
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (characterData, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (characterData, string) => unit = "before"
-
-/**
+module Impl = (
+ T: {
+ type t
+ },
+) => {
+ include Node.Impl({
+ type t = T.t
+ })
+
+ external asCharacterData: T.t => characterData = "%identity"
+
+ /**
Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
*/
-@send
-external after: (characterData, node) => unit = "after"
+ @send
+ external after: (T.t, node) => unit = "after"
-/**
+ /**
Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
*/
-@send
-external after2: (characterData, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
+ @send
+ external after2: (T.t, string) => unit = "after"
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData)
*/
-@send
-external replaceWith: (characterData, node) => unit = "replaceWith"
+ @send
+ external appendData: (T.t, string) => unit = "appendData"
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (characterData, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: characterData => unit = "remove"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- characterData,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- characterData,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- characterData,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- characterData,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (characterData, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (characterData, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: characterData => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: characterData => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (characterData, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
*/
-@send
-external isEqualNode: (characterData, node) => bool = "isEqualNode"
+ @send
+ external before: (T.t, node) => unit = "before"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (characterData, node) => bool = "isSameNode"
+ /**
+Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
*/
-@send
-external compareDocumentPosition: (characterData, node) => int = "compareDocumentPosition"
+ @send
+ external before2: (T.t, string) => unit = "before"
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData)
*/
-@send
-external contains: (characterData, node) => bool = "contains"
+ @send
+ external deleteData: (T.t, ~offset: int, ~count: int) => unit = "deleteData"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData)
*/
-@send
-external lookupPrefix: (characterData, string) => string = "lookupPrefix"
+ @send
+ external insertData: (T.t, ~offset: int, ~data: string) => unit = "insertData"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
+ /**
+Removes node.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
*/
-@send
-external lookupNamespaceURI: (characterData, string) => string = "lookupNamespaceURI"
+ @send
+ external remove: T.t => unit = "remove"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData)
*/
-@send
-external isDefaultNamespace: (characterData, string) => bool = "isDefaultNamespace"
+ @send
+ external replaceData: (T.t, ~offset: int, ~count: int, ~data: string) => unit = "replaceData"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (characterData, 't, ~child: node) => 't = "insertBefore"
+ /**
+Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
*/
-@send
-external appendChild: (characterData, 't) => 't = "appendChild"
+ @send
+ external replaceWith: (T.t, node) => unit = "replaceWith"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (characterData, ~node: node, 't) => 't = "replaceChild"
+ /**
+Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
*/
-@send
-external removeChild: (characterData, 't) => 't = "removeChild"
+ @send
+ external replaceWith2: (T.t, string) => unit = "replaceWith"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/substringData)
*/
-@send
-external substringData: (characterData, ~offset: int, ~count: int) => string = "substringData"
+ @send
+ external substringData: (T.t, ~offset: int, ~count: int) => string = "substringData"
+}
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData)
-*/
-@send
-external appendData: (characterData, string) => unit = "appendData"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData)
-*/
-@send
-external insertData: (characterData, ~offset: int, ~data: string) => unit = "insertData"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData)
-*/
-@send
-external deleteData: (characterData, ~offset: int, ~count: int) => unit = "deleteData"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData)
-*/
-@send
-external replaceData: (characterData, ~offset: int, ~count: int, ~data: string) => unit =
- "replaceData"
+include Impl({
+ type t = characterData
+})
diff --git a/src/DOMAPI/Comment.js b/src/DOMAPI/Comment.js
index d856702b..bcfb8d84 100644
--- a/src/DOMAPI/Comment.js
+++ b/src/DOMAPI/Comment.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as CharacterData$WebApi from "./CharacterData.js";
+
+CharacterData$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/Comment.res b/src/DOMAPI/Comment.res
index 04bd3d07..b7ec3f8d 100644
--- a/src/DOMAPI/Comment.res
+++ b/src/DOMAPI/Comment.res
@@ -1,278 +1,11 @@
open DOMAPI
-open EventAPI
+
+include CharacterData.Impl({
+ type t = comment
+})
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Comment)
*/
@new
external make: (~data: string=?) => comment = "Comment"
-
-external asCharacterData: comment => characterData = "%identity"
-external asNode: comment => node = "%identity"
-external asEventTarget: comment => eventTarget = "%identity"
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (comment, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (comment, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (comment, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (comment, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (comment, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (comment, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: comment => unit = "remove"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- comment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- comment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- comment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- comment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (comment, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (comment, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: comment => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: comment => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (comment, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (comment, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (comment, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (comment, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (comment, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (comment, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (comment, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (comment, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (comment, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (comment, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (comment, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (comment, 't) => 't = "removeChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/substringData)
-*/
-@send
-external substringData: (comment, ~offset: int, ~count: int) => string = "substringData"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData)
-*/
-@send
-external appendData: (comment, string) => unit = "appendData"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData)
-*/
-@send
-external insertData: (comment, ~offset: int, ~data: string) => unit = "insertData"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData)
-*/
-@send
-external deleteData: (comment, ~offset: int, ~count: int) => unit = "deleteData"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData)
-*/
-@send
-external replaceData: (comment, ~offset: int, ~count: int, ~data: string) => unit = "replaceData"
diff --git a/src/DOMAPI/Document.js b/src/DOMAPI/Document.js
index d856702b..2fbb7a85 100644
--- a/src/DOMAPI/Document.js
+++ b/src/DOMAPI/Document.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as Node$WebApi from "./Node.js";
+
+Node$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/Document.res b/src/DOMAPI/Document.res
index 8501ac27..9c0c84ce 100644
--- a/src/DOMAPI/Document.res
+++ b/src/DOMAPI/Document.res
@@ -8,8 +8,10 @@ open ViewTransitionsAPI
@new
external make: unit => document = "Document"
-external asNode: document => node = "%identity"
-external asEventTarget: document => eventTarget = "%identity"
+include Node.Impl({
+ type t = document
+})
+
/**
Returns the first element within node's descendants whose ID is elementId.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/getElementById)
@@ -114,182 +116,6 @@ external evaluate: (
~result: xPathResult=?,
) => xPathResult = "evaluate"
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- document,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- document,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- document,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- document,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (document, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (document, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: document => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: document => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (document, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (document, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (document, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (document, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (document, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (document, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (document, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (document, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (document, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (document, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (document, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (document, 't) => 't = "removeChild"
-
/**
Retrieves a collection of objects based on the specified element name.
@param name Specifies the name of an element.
diff --git a/src/DOMAPI/DocumentFragment.js b/src/DOMAPI/DocumentFragment.js
index d856702b..5c41d3b3 100644
--- a/src/DOMAPI/DocumentFragment.js
+++ b/src/DOMAPI/DocumentFragment.js
@@ -1,2 +1,15 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as Node$WebApi from "./Node.js";
+
+function Impl(T) {
+ Node$WebApi.Impl({});
+ return {};
+}
+
+Node$WebApi.Impl({});
+
+export {
+ Impl,
+}
+/* Not a pure module */
diff --git a/src/DOMAPI/DocumentFragment.res b/src/DOMAPI/DocumentFragment.res
index 97dfcca3..b52239ed 100644
--- a/src/DOMAPI/DocumentFragment.res
+++ b/src/DOMAPI/DocumentFragment.res
@@ -2,260 +2,98 @@ open DOMAPI
open EventAPI
/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragmentFragment)
*/
@new
external make: unit => documentFragment = "DocumentFragment"
-external asNode: documentFragment => node = "%identity"
-external asEventTarget: documentFragment => eventTarget = "%identity"
-/**
-Returns the first element within node's descendants whose ID is elementId.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/getElementById)
-*/
-@send
-external getElementById: (documentFragment, string) => element = "getElementById"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
+module Impl = (
+ T: {
+ type t
+ },
+) => {
+ include Node.Impl({
+ type t = T.t
+ })
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (documentFragment, node) => unit = "prepend"
+ external asDocumentFragment: T.t => documentFragment = "%identity"
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/append)
*/
-@send
-external prepend2: (documentFragment, string) => unit = "prepend"
+ @send
+ external append: (T.t, node) => unit = "append"
-/**
+ /**
Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/append)
*/
-@send
-external append: (documentFragment, node) => unit = "append"
+ @send
+ external append2: (T.t, string) => unit = "append"
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
+ /**
+Returns the first element within node's descendants whose ID is elementId.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/getElementById)
*/
-@send
-external append2: (documentFragment, string) => unit = "append"
+ @send
+ external getElementById: (T.t, string) => element = "getElementById"
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/prepend)
*/
-@send
-external replaceChildren: (documentFragment, node) => unit = "replaceChildren"
+ @send
+ external prepend: (T.t, node) => unit = "prepend"
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/prepend)
*/
-@send
-external replaceChildren2: (documentFragment, string) => unit = "replaceChildren"
+ @send
+ external prepend2: (T.t, string) => unit = "prepend"
-/**
+ /**
Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/querySelector)
*/
-@send
-external querySelector: (documentFragment, string) => element = "querySelector"
+ @send
+ external querySelector: (T.t, string) => element = "querySelector"
-/**
+ /**
Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (documentFragment, string) => nodeList = "querySelectorAll"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- documentFragment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- documentFragment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- documentFragment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- documentFragment,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (documentFragment, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (documentFragment, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: documentFragment => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: documentFragment => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (documentFragment, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (documentFragment, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/querySelectorAll)
*/
-@send
-external isSameNode: (documentFragment, node) => bool = "isSameNode"
+ @send
+ external querySelectorAll: (T.t, string) => nodeList = "querySelectorAll"
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (documentFragment, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (documentFragment, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (documentFragment, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (documentFragment, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (documentFragment, string) => bool = "isDefaultNamespace"
+ /**
+Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/replaceChildren)
*/
-@send
-external insertBefore: (documentFragment, 't, ~child: node) => 't = "insertBefore"
+ @send
+ external replaceChildren: (T.t, node) => unit = "replaceChildren"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (documentFragment, 't) => 't = "appendChild"
+ /**
+Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentFragment/replaceChildren)
*/
-@send
-external replaceChild: (documentFragment, ~node: node, 't) => 't = "replaceChild"
+ @send
+ external replaceChildren2: (T.t, string) => unit = "replaceChildren"
+}
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (documentFragment, 't) => 't = "removeChild"
+include Impl({
+ type t = documentFragment
+})
diff --git a/src/DOMAPI/Element.js b/src/DOMAPI/Element.js
index d856702b..5c41d3b3 100644
--- a/src/DOMAPI/Element.js
+++ b/src/DOMAPI/Element.js
@@ -1,2 +1,15 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as Node$WebApi from "./Node.js";
+
+function Impl(T) {
+ Node$WebApi.Impl({});
+ return {};
+}
+
+Node$WebApi.Impl({});
+
+export {
+ Impl,
+}
+/* Not a pure module */
diff --git a/src/DOMAPI/Element.res b/src/DOMAPI/Element.res
index 251e5f03..fd2cbd8d 100644
--- a/src/DOMAPI/Element.res
+++ b/src/DOMAPI/Element.res
@@ -1,634 +1,470 @@
open DOMAPI
open Prelude
-open EventAPI
-external asNode: element => node = "%identity"
-external asEventTarget: element => eventTarget = "%identity"
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
+module Impl = (
+ T: {
+ type t
+ },
+) => {
+ include Node.Impl({
+ type t = T.t
+ })
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (element, node) => unit = "prepend"
+ external asElement: T.t => element = "%identity"
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/after)
*/
-@send
-external prepend2: (element, string) => unit = "prepend"
+ @send
+ external after: (T.t, node) => unit = "after"
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/after)
*/
-@send
-external append: (element, node) => unit = "append"
+ @send
+ external after2: (T.t, string) => unit = "after"
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
+*/
+ @send
+ external animate: (T.t, ~keyframes: any, ~options: float=?) => animation = "animate"
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
*/
-@send
-external append2: (element, string) => unit = "append"
+ @send
+ external animate2: (T.t, ~keyframes: any, ~options: keyframeAnimationOptions=?) => animation =
+ "animate"
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/append)
*/
-@send
-external replaceChildren: (element, node) => unit = "replaceChildren"
+ @send
+ external append: (T.t, node) => unit = "append"
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
+ /**
+Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (element, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/append)
*/
-@send
-external querySelector: (element, string) => element = "querySelector"
+ @send
+ external append2: (T.t, string) => unit = "append"
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
+ /**
+Creates a shadow root for element and returns it.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
*/
-@send
-external querySelectorAll: (element, string) => nodeList = "querySelectorAll"
+ @send
+ external attachShadow: (T.t, shadowRootInit) => shadowRoot = "attachShadow"
-/**
+ /**
Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/before)
*/
-@send
-external before: (element, node) => unit = "before"
+ @send
+ external before: (T.t, node) => unit = "before"
-/**
+ /**
Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/before)
*/
-@send
-external before2: (element, string) => unit = "before"
+ @send
+ external before2: (T.t, string) => unit = "before"
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (element, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (element, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (element, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (element, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
*/
-@send
-external remove: element => unit = "remove"
+ @send
+ external checkVisibility: (T.t, ~options: checkVisibilityOptions=?) => bool = "checkVisibility"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
+ /**
+Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
*/
-@send
-external animate: (element, ~keyframes: any, ~options: float=?) => animation = "animate"
+ @send
+ external closest: (T.t, string) => 'e = "closest"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
*/
-@send
-external animate2: (element, ~keyframes: any, ~options: keyframeAnimationOptions=?) => animation =
- "animate"
+ @send
+ external computedStyleMap: T.t => stylePropertyMapReadOnly = "computedStyleMap"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
*/
-@send
-external getAnimations: (element, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
+ @send
+ external getAnimations: (T.t, ~options: getAnimationsOptions=?) => array =
+ "getAnimations"
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
+ /**
+Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
*/
-@send
-external addEventListener: (
- element,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
+ @send
+ external getAttribute: (T.t, string) => string = "getAttribute"
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
+ /**
+Returns the qualified names of all element's attributes. Can contain duplicates.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
*/
-@send
-external addEventListener2: (
- element,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
+ @send
+ external getAttributeNames: T.t => array = "getAttributeNames"
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
*/
-@send
-external removeEventListener: (
- element,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
+ @send
+ external getAttributeNode: (T.t, string) => attr = "getAttributeNode"
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
*/
-@send
-external removeEventListener2: (
- element,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
+ @send
+ external getAttributeNodeNS: (T.t, ~namespace: string, ~localName: string) => attr =
+ "getAttributeNodeNS"
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
+ /**
+Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
*/
-@send
-external dispatchEvent: (element, event) => bool = "dispatchEvent"
+ @send
+ external getAttributeNS: (T.t, ~namespace: string, ~localName: string) => string =
+ "getAttributeNS"
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
*/
-@send
-external getRootNode: (element, ~options: getRootNodeOptions=?) => node = "getRootNode"
+ @send
+ external getBoundingClientRect: T.t => domRect = "getBoundingClientRect"
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
*/
-@send
-external hasChildNodes: element => bool = "hasChildNodes"
+ @send
+ external getClientRects: T.t => domRectList = "getClientRects"
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
+ /**
+Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
*/
-@send
-external normalize: element => unit = "normalize"
+ @send
+ external getElementsByClassName: (T.t, string) => htmlCollectionOf =
+ "getElementsByClassName"
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
*/
-@send
-external cloneNode: (element, ~deep: bool=?) => node = "cloneNode"
+ @send
+ external getElementsByTagName: (T.t, string) => htmlCollection = "getElementsByTagName"
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
*/
-@send
-external isEqualNode: (element, node) => bool = "isEqualNode"
+ @send
+ external getElementsByTagNameNS: (
+ element,
+ ~namespace: string,
+ ~localName: string,
+ ) => htmlCollectionOf = "getElementsByTagNameNS"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
*/
-@send
-external isSameNode: (element, node) => bool = "isSameNode"
+ @send
+ external getHTML: (T.t, ~options: getHTMLOptions=?) => string = "getHTML"
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
+ /**
+Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
*/
-@send
-external compareDocumentPosition: (element, node) => int = "compareDocumentPosition"
+ @send
+ external hasAttribute: (T.t, string) => bool = "hasAttribute"
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
+ /**
+Returns true if element has an attribute whose namespace is namespace and local name is localName.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
*/
-@send
-external contains: (element, node) => bool = "contains"
+ @send
+ external hasAttributeNS: (T.t, ~namespace: string, ~localName: string) => bool = "hasAttributeNS"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
+ /**
+Returns true if element has attributes, and false otherwise.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
*/
-@send
-external lookupPrefix: (element, string) => string = "lookupPrefix"
+ @send
+ external hasAttributes: T.t => bool = "hasAttributes"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
*/
-@send
-external lookupNamespaceURI: (element, string) => string = "lookupNamespaceURI"
+ @send
+ external hasPointerCapture: (T.t, int) => bool = "hasPointerCapture"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
*/
-@send
-external isDefaultNamespace: (element, string) => bool = "isDefaultNamespace"
+ @send
+ external insertAdjacentElement: (T.t, ~where: insertPosition, ~element: element) => element =
+ "insertAdjacentElement"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
*/
-@send
-external insertBefore: (element, 't, ~child: node) => 't = "insertBefore"
+ @send
+ external insertAdjacentHTML: (T.t, ~position: insertPosition, ~string: string) => unit =
+ "insertAdjacentHTML"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
*/
-@send
-external appendChild: (element, 't) => 't = "appendChild"
+ @send
+ external insertAdjacentText: (T.t, ~where: insertPosition, ~data: string) => unit =
+ "insertAdjacentText"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
+ /**
+Returns true if matching selectors against element's root yields element, and false otherwise.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
*/
-@send
-external replaceChild: (element, ~node: node, 't) => 't = "replaceChild"
+ @send
+ external matches: (T.t, string) => bool = "matches"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (element, 't) => 't = "removeChild"
+ /**
+Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
*/
-@send
-external hasAttributes: element => bool = "hasAttributes"
+ @send
+ external prepend: (T.t, node) => unit = "prepend"
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
+ /**
+Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
+
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
*/
-@send
-external getAttributeNames: element => array = "getAttributeNames"
+ @send
+ external prepend2: (T.t, string) => unit = "prepend"
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
+ /**
+Returns the first element that is a descendant of node that matches selectors.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
*/
-@send
-external getAttribute: (element, string) => string = "getAttribute"
+ @send
+ external querySelector: (T.t, string) => element = "querySelector"
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
+ /**
+Returns all element descendants of node that match selectors.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
*/
-@send
-external getAttributeNS: (element, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
+ @send
+ external querySelectorAll: (T.t, string) => nodeList = "querySelectorAll"
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
*/
-@send
-external setAttribute: (element, ~qualifiedName: string, ~value: string) => unit = "setAttribute"
+ @send
+ external releasePointerCapture: (T.t, int) => unit = "releasePointerCapture"
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
+ /**
+Removes node.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
*/
-@send
-external setAttributeNS: (
- element,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
+ @send
+ external remove: T.t => unit = "remove"
-/**
+ /**
Removes element's first attribute whose qualified name is qualifiedName.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
*/
-@send
-external removeAttribute: (element, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (element, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (element, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (element, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (element, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
+ @send
+ external removeAttribute: (T.t, string) => unit = "removeAttribute"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
*/
-@send
-external getAttributeNode: (element, string) => attr = "getAttributeNode"
+ @send
+ external removeAttributeNode: (T.t, attr) => attr = "removeAttributeNode"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
+ /**
+Removes element's attribute whose namespace is namespace and local name is localName.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
*/
-@send
-external getAttributeNodeNS: (element, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
+ @send
+ external removeAttributeNS: (T.t, ~namespace: string, ~localName: string) => unit =
+ "removeAttributeNS"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (element, attr) => attr = "setAttributeNode"
+ /**
+Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
*/
-@send
-external setAttributeNodeNS: (element, attr) => attr = "setAttributeNodeNS"
+ @send
+ external replaceChildren: (T.t, node) => unit = "replaceChildren"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (element, attr) => attr = "removeAttributeNode"
+ /**
+Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
*/
-@send
-external attachShadow: (element, shadowRootInit) => shadowRoot = "attachShadow"
+ @send
+ external replaceChildren2: (T.t, string) => unit = "replaceChildren"
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (element, string) => 'e = "closest"
+ /**
+Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
*/
-@send
-external matches: (element, string) => bool = "matches"
+ @send
+ external replaceWith: (T.t, node) => unit = "replaceWith"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (element, string) => htmlCollection = "getElementsByTagName"
+ /**
+Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
+Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
*/
-@send
-external getElementsByTagNameNS: (
- element,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
+ @send
+ external replaceWith2: (T.t, string) => unit = "replaceWith"
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (element, string) => htmlCollectionOf =
- "getElementsByClassName"
+ /**
+Displays element fullscreen and resolves promise when done.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
+When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
*/
-@send
-external insertAdjacentElement: (element, ~where: insertPosition, ~element: element) => element =
- "insertAdjacentElement"
+ @send
+ external requestFullscreen: (T.t, ~options: fullscreenOptions=?) => Promise.t =
+ "requestFullscreen"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
*/
-@send
-external insertAdjacentText: (element, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
+ @send
+ external requestPointerLock: (T.t, ~options: pointerLockOptions=?) => Promise.t =
+ "requestPointerLock"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
*/
-@send
-external computedStyleMap: element => stylePropertyMapReadOnly = "computedStyleMap"
+ @send
+ external scroll: (T.t, ~options: scrollToOptions=?) => unit = "scroll"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
*/
-@send
-external getClientRects: element => domRectList = "getClientRects"
+ @send
+ external scroll2: (T.t, ~x: float, ~y: float) => unit = "scroll"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
*/
-@send
-external getBoundingClientRect: element => domRect = "getBoundingClientRect"
+ @send
+ external scrollBy: (T.t, ~options: scrollToOptions=?) => unit = "scrollBy"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
*/
-@send
-external checkVisibility: (element, ~options: checkVisibilityOptions=?) => bool = "checkVisibility"
+ @send
+ external scrollBy2: (T.t, ~x: float, ~y: float) => unit = "scrollBy"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
*/
-@send
-external scrollIntoView: (element, ~arg: bool=?) => unit = "scrollIntoView"
+ @send
+ external scrollIntoView: (T.t, ~arg: bool=?) => unit = "scrollIntoView"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
*/
-@send
-external scrollIntoView2: (element, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
+ @send
+ external scrollIntoView2: (T.t, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (element, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (element, ~x: float, ~y: float) => unit = "scroll"
-
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
*/
-@send
-external scrollTo: (element, ~options: scrollToOptions=?) => unit = "scrollTo"
+ @send
+ external scrollTo: (T.t, ~options: scrollToOptions=?) => unit = "scrollTo"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
*/
-@send
-external scrollTo2: (element, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (element, ~options: scrollToOptions=?) => unit = "scrollBy"
+ @send
+ external scrollTo2: (T.t, ~x: float, ~y: float) => unit = "scrollTo"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
+ /**
+Sets the value of element's first attribute whose qualified name is qualifiedName to value.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
*/
-@send
-external scrollBy2: (element, ~x: float, ~y: float) => unit = "scrollBy"
+ @send
+ external setAttribute: (T.t, ~qualifiedName: string, ~value: string) => unit = "setAttribute"
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
*/
-@send
-external requestFullscreen: (element, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
+ @send
+ external setAttributeNode: (T.t, attr) => attr = "setAttributeNode"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
*/
-@send
-external setHTMLUnsafe: (element, string) => unit = "setHTMLUnsafe"
+ @send
+ external setAttributeNodeNS: (T.t, attr) => attr = "setAttributeNodeNS"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
+ /**
+Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
*/
-@send
-external getHTML: (element, ~options: getHTMLOptions=?) => string = "getHTML"
+ @send
+ external setAttributeNS: (
+ element,
+ ~namespace: string,
+ ~qualifiedName: string,
+ ~value: string,
+ ) => unit = "setAttributeNS"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
*/
-@send
-external insertAdjacentHTML: (element, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
+ @send
+ external setHTMLUnsafe: (T.t, string) => unit = "setHTMLUnsafe"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
*/
-@send
-external setPointerCapture: (element, int) => unit = "setPointerCapture"
+ @send
+ external setPointerCapture: (T.t, int) => unit = "setPointerCapture"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (element, int) => unit = "releasePointerCapture"
+ /**
+If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
+Returns true if qualifiedName is now present, and false otherwise.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
*/
-@send
-external hasPointerCapture: (element, int) => bool = "hasPointerCapture"
+ @send
+ external toggleAttribute: (T.t, ~qualifiedName: string, ~force: bool=?) => bool =
+ "toggleAttribute"
+}
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (element, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
+include Impl({
+ type t = element
+})
diff --git a/src/DOMAPI/HTMLAnchorElement.js b/src/DOMAPI/HTMLAnchorElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLAnchorElement.js
+++ b/src/DOMAPI/HTMLAnchorElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLAnchorElement.res b/src/DOMAPI/HTMLAnchorElement.res
index 2c7ec0f5..4506d98b 100644
--- a/src/DOMAPI/HTMLAnchorElement.res
+++ b/src/DOMAPI/HTMLAnchorElement.res
@@ -1,693 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlAnchorElement => htmlElement = "%identity"
-external asElement: htmlAnchorElement => element = "%identity"
-external asNode: htmlAnchorElement => node = "%identity"
-external asEventTarget: htmlAnchorElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlAnchorElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlAnchorElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlAnchorElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlAnchorElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlAnchorElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlAnchorElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlAnchorElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlAnchorElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlAnchorElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlAnchorElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlAnchorElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlAnchorElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlAnchorElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlAnchorElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlAnchorElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlAnchorElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlAnchorElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlAnchorElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlAnchorElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlAnchorElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlAnchorElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlAnchorElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlAnchorElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlAnchorElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlAnchorElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlAnchorElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlAnchorElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlAnchorElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlAnchorElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlAnchorElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlAnchorElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlAnchorElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlAnchorElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlAnchorElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlAnchorElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlAnchorElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlAnchorElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlAnchorElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlAnchorElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlAnchorElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlAnchorElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlAnchorElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlAnchorElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlAnchorElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlAnchorElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlAnchorElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlAnchorElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlAnchorElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlAnchorElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlAnchorElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlAnchorElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlAnchorElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlAnchorElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlAnchorElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlAnchorElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlAnchorElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlAnchorElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlAnchorElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlAnchorElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlAnchorElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlAnchorElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlAnchorElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlAnchorElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlAnchorElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlAnchorElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlAnchorElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlAnchorElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlAnchorElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlAnchorElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlAnchorElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlAnchorElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlAnchorElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlAnchorElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlAnchorElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlAnchorElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlAnchorElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlAnchorElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlAnchorElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlAnchorElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlAnchorElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlAnchorElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlAnchorElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlAnchorElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlAnchorElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlAnchorElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlAnchorElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlAnchorElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlAnchorElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlAnchorElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlAnchorElement
+})
diff --git a/src/DOMAPI/HTMLAreaElement.js b/src/DOMAPI/HTMLAreaElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLAreaElement.js
+++ b/src/DOMAPI/HTMLAreaElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLAreaElement.res b/src/DOMAPI/HTMLAreaElement.res
index b22cf8c4..ac2a222b 100644
--- a/src/DOMAPI/HTMLAreaElement.res
+++ b/src/DOMAPI/HTMLAreaElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlAreaElement => htmlElement = "%identity"
-external asElement: htmlAreaElement => element = "%identity"
-external asNode: htmlAreaElement => node = "%identity"
-external asEventTarget: htmlAreaElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlAreaElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlAreaElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlAreaElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlAreaElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlAreaElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlAreaElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlAreaElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlAreaElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlAreaElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlAreaElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlAreaElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlAreaElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlAreaElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlAreaElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlAreaElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlAreaElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlAreaElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlAreaElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlAreaElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlAreaElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlAreaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlAreaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlAreaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlAreaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlAreaElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlAreaElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlAreaElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlAreaElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlAreaElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlAreaElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlAreaElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlAreaElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlAreaElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlAreaElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlAreaElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlAreaElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlAreaElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlAreaElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlAreaElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlAreaElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlAreaElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlAreaElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlAreaElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlAreaElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlAreaElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlAreaElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlAreaElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlAreaElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlAreaElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlAreaElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlAreaElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlAreaElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlAreaElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlAreaElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlAreaElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlAreaElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlAreaElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlAreaElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlAreaElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlAreaElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlAreaElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlAreaElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlAreaElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlAreaElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlAreaElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlAreaElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlAreaElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlAreaElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlAreaElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlAreaElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlAreaElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlAreaElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlAreaElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlAreaElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlAreaElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlAreaElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlAreaElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlAreaElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlAreaElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlAreaElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlAreaElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlAreaElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlAreaElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlAreaElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlAreaElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlAreaElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlAreaElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlAreaElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlAreaElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlAreaElement
+})
diff --git a/src/DOMAPI/HTMLAudioElement.js b/src/DOMAPI/HTMLAudioElement.js
index d856702b..bc5bb6d8 100644
--- a/src/DOMAPI/HTMLAudioElement.js
+++ b/src/DOMAPI/HTMLAudioElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLMediaElement$WebApi from "./HTMLMediaElement.js";
+
+HTMLMediaElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLAudioElement.res b/src/DOMAPI/HTMLAudioElement.res
index db9f193b..dd9749e7 100644
--- a/src/DOMAPI/HTMLAudioElement.res
+++ b/src/DOMAPI/HTMLAudioElement.res
@@ -1,750 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-open WebVTTAPI
-open EncryptedMediaExtensionsAPI
-external asHTMLMediaElement: htmlAudioElement => htmlMediaElement = "%identity"
-external asHTMLElement: htmlAudioElement => htmlElement = "%identity"
-external asElement: htmlAudioElement => element = "%identity"
-external asNode: htmlAudioElement => node = "%identity"
-external asEventTarget: htmlAudioElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlAudioElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlAudioElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlAudioElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlAudioElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlAudioElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlAudioElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlAudioElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlAudioElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlAudioElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlAudioElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlAudioElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlAudioElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlAudioElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlAudioElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlAudioElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlAudioElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlAudioElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlAudioElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlAudioElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlAudioElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlAudioElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlAudioElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlAudioElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlAudioElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlAudioElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlAudioElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlAudioElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlAudioElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlAudioElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlAudioElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlAudioElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlAudioElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlAudioElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlAudioElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlAudioElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlAudioElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlAudioElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlAudioElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlAudioElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlAudioElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlAudioElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlAudioElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlAudioElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlAudioElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlAudioElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlAudioElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlAudioElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlAudioElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlAudioElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlAudioElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlAudioElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlAudioElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlAudioElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlAudioElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlAudioElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlAudioElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlAudioElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlAudioElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlAudioElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlAudioElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlAudioElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlAudioElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlAudioElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlAudioElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlAudioElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlAudioElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlAudioElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlAudioElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlAudioElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlAudioElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlAudioElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlAudioElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlAudioElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlAudioElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlAudioElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlAudioElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlAudioElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlAudioElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlAudioElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlAudioElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlAudioElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlAudioElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlAudioElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlAudioElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlAudioElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlAudioElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlAudioElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlAudioElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlAudioElement, ~force: bool=?) => bool = "togglePopover"
-
-/**
-Resets the audio or video object and loads a new media resource.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/load)
-*/
-@send
-external load: htmlAudioElement => unit = "load"
-
-/**
-Returns a string that specifies whether the client can play a given media resource type.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType)
-*/
-@send
-external canPlayType: (htmlAudioElement, string) => canPlayTypeResult = "canPlayType"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/fastSeek)
-*/
-@send
-external fastSeek: (htmlAudioElement, float) => unit = "fastSeek"
-
-/**
-Loads and starts playback of a media resource.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play)
-*/
-@send
-external play: htmlAudioElement => Promise.t = "play"
-
-/**
-Pauses the current playback and sets paused to TRUE.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause)
-*/
-@send
-external pause: htmlAudioElement => unit = "pause"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack)
-*/
-@send
-external addTextTrack: (
- htmlAudioElement,
- ~kind: textTrackKind,
- ~label: string=?,
- ~language: string=?,
-) => textTrack = "addTextTrack"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setSinkId)
-*/
-@send
-external setSinkId: (htmlAudioElement, string) => Promise.t = "setSinkId"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setMediaKeys)
-*/
-@send
-external setMediaKeys: (htmlAudioElement, mediaKeys) => Promise.t = "setMediaKeys"
+include HTMLMediaElement.Impl({
+ type t = htmlAudioElement
+})
diff --git a/src/DOMAPI/HTMLBRElement.js b/src/DOMAPI/HTMLBRElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLBRElement.js
+++ b/src/DOMAPI/HTMLBRElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLBRElement.res b/src/DOMAPI/HTMLBRElement.res
index 8c0f475a..553bdefe 100644
--- a/src/DOMAPI/HTMLBRElement.res
+++ b/src/DOMAPI/HTMLBRElement.res
@@ -1,686 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlbrElement => htmlElement = "%identity"
-external asElement: htmlbrElement => element = "%identity"
-external asNode: htmlbrElement => node = "%identity"
-external asEventTarget: htmlbrElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlbrElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlbrElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlbrElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlbrElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlbrElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlbrElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlbrElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlbrElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlbrElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlbrElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlbrElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlbrElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlbrElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlbrElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlbrElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlbrElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlbrElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlbrElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlbrElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlbrElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlbrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlbrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlbrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlbrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlbrElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlbrElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlbrElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlbrElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlbrElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlbrElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlbrElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlbrElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlbrElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlbrElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlbrElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlbrElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlbrElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlbrElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlbrElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlbrElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlbrElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlbrElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlbrElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlbrElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlbrElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlbrElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlbrElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlbrElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlbrElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlbrElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlbrElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlbrElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlbrElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlbrElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlbrElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlbrElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlbrElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlbrElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlbrElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlbrElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlbrElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlbrElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlbrElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlbrElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlbrElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlbrElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlbrElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlbrElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlbrElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlbrElement, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlbrElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlbrElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlbrElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlbrElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlbrElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlbrElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlbrElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlbrElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlbrElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlbrElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlbrElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlbrElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlbrElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlbrElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlbrElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlbrElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlbrElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlbrElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlbrElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlbrElement
+})
diff --git a/src/DOMAPI/HTMLBaseElement.js b/src/DOMAPI/HTMLBaseElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLBaseElement.js
+++ b/src/DOMAPI/HTMLBaseElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLBaseElement.res b/src/DOMAPI/HTMLBaseElement.res
index 6e59d349..c322ed50 100644
--- a/src/DOMAPI/HTMLBaseElement.res
+++ b/src/DOMAPI/HTMLBaseElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlBaseElement => htmlElement = "%identity"
-external asElement: htmlBaseElement => element = "%identity"
-external asNode: htmlBaseElement => node = "%identity"
-external asEventTarget: htmlBaseElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlBaseElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlBaseElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlBaseElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlBaseElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlBaseElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlBaseElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlBaseElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlBaseElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlBaseElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlBaseElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlBaseElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlBaseElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlBaseElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlBaseElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlBaseElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlBaseElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlBaseElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlBaseElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlBaseElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlBaseElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlBaseElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlBaseElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlBaseElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlBaseElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlBaseElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlBaseElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlBaseElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlBaseElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlBaseElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlBaseElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlBaseElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlBaseElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlBaseElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlBaseElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlBaseElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlBaseElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlBaseElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlBaseElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlBaseElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlBaseElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlBaseElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlBaseElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlBaseElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlBaseElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlBaseElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlBaseElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlBaseElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlBaseElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlBaseElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlBaseElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlBaseElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlBaseElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlBaseElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlBaseElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlBaseElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlBaseElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlBaseElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlBaseElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlBaseElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlBaseElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlBaseElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlBaseElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlBaseElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlBaseElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlBaseElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlBaseElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlBaseElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlBaseElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlBaseElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlBaseElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlBaseElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlBaseElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlBaseElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlBaseElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlBaseElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlBaseElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlBaseElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlBaseElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlBaseElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlBaseElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlBaseElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlBaseElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlBaseElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlBaseElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlBaseElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlBaseElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlBaseElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlBaseElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlBaseElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlBaseElement
+})
diff --git a/src/DOMAPI/HTMLBodyElement.js b/src/DOMAPI/HTMLBodyElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLBodyElement.js
+++ b/src/DOMAPI/HTMLBodyElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLBodyElement.res b/src/DOMAPI/HTMLBodyElement.res
index 345120f7..0a940cb0 100644
--- a/src/DOMAPI/HTMLBodyElement.res
+++ b/src/DOMAPI/HTMLBodyElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlBodyElement => htmlElement = "%identity"
-external asElement: htmlBodyElement => element = "%identity"
-external asNode: htmlBodyElement => node = "%identity"
-external asEventTarget: htmlBodyElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlBodyElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlBodyElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlBodyElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlBodyElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlBodyElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlBodyElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlBodyElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlBodyElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlBodyElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlBodyElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlBodyElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlBodyElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlBodyElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlBodyElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlBodyElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlBodyElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlBodyElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlBodyElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlBodyElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlBodyElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlBodyElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlBodyElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlBodyElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlBodyElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlBodyElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlBodyElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlBodyElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlBodyElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlBodyElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlBodyElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlBodyElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlBodyElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlBodyElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlBodyElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlBodyElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlBodyElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlBodyElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlBodyElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlBodyElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlBodyElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlBodyElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlBodyElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlBodyElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlBodyElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlBodyElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlBodyElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlBodyElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlBodyElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlBodyElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlBodyElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlBodyElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlBodyElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlBodyElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlBodyElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlBodyElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlBodyElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlBodyElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlBodyElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlBodyElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlBodyElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlBodyElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlBodyElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlBodyElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlBodyElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlBodyElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlBodyElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlBodyElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlBodyElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlBodyElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlBodyElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlBodyElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlBodyElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlBodyElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlBodyElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlBodyElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlBodyElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlBodyElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlBodyElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlBodyElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlBodyElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlBodyElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlBodyElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlBodyElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlBodyElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlBodyElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlBodyElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlBodyElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlBodyElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlBodyElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlBodyElement
+})
diff --git a/src/DOMAPI/HTMLButtonElement.js b/src/DOMAPI/HTMLButtonElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLButtonElement.js
+++ b/src/DOMAPI/HTMLButtonElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLButtonElement.res b/src/DOMAPI/HTMLButtonElement.res
index 00f42635..5410af08 100644
--- a/src/DOMAPI/HTMLButtonElement.res
+++ b/src/DOMAPI/HTMLButtonElement.res
@@ -1,696 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlButtonElement => htmlElement = "%identity"
-external asElement: htmlButtonElement => element = "%identity"
-external asNode: htmlButtonElement => node = "%identity"
-external asEventTarget: htmlButtonElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlButtonElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlButtonElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlButtonElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlButtonElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlButtonElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlButtonElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlButtonElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlButtonElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlButtonElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlButtonElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlButtonElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlButtonElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlButtonElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlButtonElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlButtonElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlButtonElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlButtonElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlButtonElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlButtonElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlButtonElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlButtonElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlButtonElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlButtonElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlButtonElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlButtonElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlButtonElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlButtonElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlButtonElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlButtonElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlButtonElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlButtonElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlButtonElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlButtonElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlButtonElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlButtonElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlButtonElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlButtonElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlButtonElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlButtonElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlButtonElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlButtonElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlButtonElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlButtonElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlButtonElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlButtonElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlButtonElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlButtonElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlButtonElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlButtonElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlButtonElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlButtonElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlButtonElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlButtonElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlButtonElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlButtonElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlButtonElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlButtonElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlButtonElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlButtonElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlButtonElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlButtonElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlButtonElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlButtonElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlButtonElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlButtonElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlButtonElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlButtonElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlButtonElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlButtonElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlButtonElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlButtonElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlButtonElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlButtonElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlButtonElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlButtonElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlButtonElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlButtonElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlButtonElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlButtonElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlButtonElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlButtonElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlButtonElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlButtonElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlButtonElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlButtonElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlButtonElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlButtonElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlButtonElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlButtonElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlButtonElement
+})
/**
Returns whether a form will validate when it is submitted, without having to submit it.
diff --git a/src/DOMAPI/HTMLCanvasElement.js b/src/DOMAPI/HTMLCanvasElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLCanvasElement.js
+++ b/src/DOMAPI/HTMLCanvasElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLCanvasElement.res b/src/DOMAPI/HTMLCanvasElement.res
index 6fcc4dad..df7e5703 100644
--- a/src/DOMAPI/HTMLCanvasElement.res
+++ b/src/DOMAPI/HTMLCanvasElement.res
@@ -1,698 +1,10 @@
open DOMAPI
-open Prelude
-open EventAPI
open CanvasAPI
open MediaCaptureAndStreamsAPI
-external asHTMLElement: htmlCanvasElement => htmlElement = "%identity"
-external asElement: htmlCanvasElement => element = "%identity"
-external asNode: htmlCanvasElement => node = "%identity"
-external asEventTarget: htmlCanvasElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlCanvasElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlCanvasElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlCanvasElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlCanvasElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlCanvasElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlCanvasElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlCanvasElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlCanvasElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlCanvasElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlCanvasElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlCanvasElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlCanvasElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlCanvasElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlCanvasElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlCanvasElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlCanvasElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlCanvasElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlCanvasElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlCanvasElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlCanvasElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlCanvasElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlCanvasElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlCanvasElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlCanvasElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlCanvasElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlCanvasElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlCanvasElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlCanvasElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlCanvasElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlCanvasElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlCanvasElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlCanvasElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlCanvasElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlCanvasElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlCanvasElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlCanvasElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlCanvasElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlCanvasElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlCanvasElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlCanvasElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlCanvasElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlCanvasElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlCanvasElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlCanvasElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlCanvasElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlCanvasElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlCanvasElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlCanvasElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlCanvasElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlCanvasElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlCanvasElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlCanvasElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlCanvasElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlCanvasElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlCanvasElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlCanvasElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlCanvasElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlCanvasElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlCanvasElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlCanvasElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlCanvasElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlCanvasElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlCanvasElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlCanvasElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlCanvasElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlCanvasElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlCanvasElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlCanvasElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlCanvasElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlCanvasElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlCanvasElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlCanvasElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlCanvasElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlCanvasElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlCanvasElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlCanvasElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlCanvasElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlCanvasElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlCanvasElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlCanvasElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlCanvasElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlCanvasElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlCanvasElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlCanvasElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlCanvasElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlCanvasElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlCanvasElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlCanvasElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlCanvasElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlCanvasElement
+})
/**
Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.
diff --git a/src/DOMAPI/HTMLDListElement.js b/src/DOMAPI/HTMLDListElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLDListElement.js
+++ b/src/DOMAPI/HTMLDListElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLDListElement.res b/src/DOMAPI/HTMLDListElement.res
index d9f6b714..9ff6795a 100644
--- a/src/DOMAPI/HTMLDListElement.res
+++ b/src/DOMAPI/HTMLDListElement.res
@@ -1,690 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmldListElement => htmlElement = "%identity"
-external asElement: htmldListElement => element = "%identity"
-external asNode: htmldListElement => node = "%identity"
-external asEventTarget: htmldListElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmldListElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmldListElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmldListElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmldListElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmldListElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmldListElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmldListElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmldListElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmldListElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmldListElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmldListElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmldListElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmldListElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmldListElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmldListElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmldListElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmldListElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmldListElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmldListElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmldListElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmldListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmldListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmldListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmldListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmldListElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmldListElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmldListElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmldListElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmldListElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmldListElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmldListElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmldListElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmldListElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmldListElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmldListElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmldListElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmldListElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmldListElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmldListElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmldListElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmldListElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmldListElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmldListElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmldListElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmldListElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmldListElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmldListElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmldListElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmldListElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmldListElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmldListElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmldListElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmldListElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmldListElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmldListElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmldListElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmldListElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmldListElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmldListElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmldListElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmldListElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmldListElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmldListElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmldListElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmldListElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmldListElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmldListElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmldListElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmldListElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmldListElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmldListElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmldListElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmldListElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmldListElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmldListElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmldListElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmldListElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmldListElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmldListElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmldListElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmldListElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmldListElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmldListElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmldListElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmldListElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmldListElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmldListElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmldListElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmldListElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmldListElement
+})
diff --git a/src/DOMAPI/HTMLDataElement.js b/src/DOMAPI/HTMLDataElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLDataElement.js
+++ b/src/DOMAPI/HTMLDataElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLDataElement.res b/src/DOMAPI/HTMLDataElement.res
index c4ace30a..a5274d72 100644
--- a/src/DOMAPI/HTMLDataElement.res
+++ b/src/DOMAPI/HTMLDataElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlDataElement => htmlElement = "%identity"
-external asElement: htmlDataElement => element = "%identity"
-external asNode: htmlDataElement => node = "%identity"
-external asEventTarget: htmlDataElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlDataElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlDataElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlDataElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlDataElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlDataElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlDataElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlDataElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlDataElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlDataElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlDataElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlDataElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlDataElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlDataElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlDataElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlDataElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlDataElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlDataElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlDataElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlDataElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlDataElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlDataElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlDataElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlDataElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlDataElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlDataElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlDataElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlDataElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlDataElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlDataElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlDataElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlDataElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlDataElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlDataElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlDataElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlDataElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlDataElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlDataElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlDataElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlDataElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlDataElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlDataElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlDataElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlDataElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlDataElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlDataElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlDataElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlDataElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlDataElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlDataElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlDataElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlDataElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlDataElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlDataElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlDataElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlDataElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlDataElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlDataElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlDataElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlDataElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlDataElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlDataElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlDataElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlDataElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlDataElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlDataElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlDataElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlDataElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlDataElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlDataElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlDataElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlDataElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlDataElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlDataElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlDataElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlDataElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlDataElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlDataElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlDataElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlDataElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlDataElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlDataElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlDataElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlDataElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlDataElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlDataElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlDataElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlDataElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlDataElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlDataElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlDataElement
+})
diff --git a/src/DOMAPI/HTMLDataListElement.js b/src/DOMAPI/HTMLDataListElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLDataListElement.js
+++ b/src/DOMAPI/HTMLDataListElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLDataListElement.res b/src/DOMAPI/HTMLDataListElement.res
index e842960d..2ff33ed2 100644
--- a/src/DOMAPI/HTMLDataListElement.res
+++ b/src/DOMAPI/HTMLDataListElement.res
@@ -1,697 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlDataListElement => htmlElement = "%identity"
-external asElement: htmlDataListElement => element = "%identity"
-external asNode: htmlDataListElement => node = "%identity"
-external asEventTarget: htmlDataListElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlDataListElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlDataListElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlDataListElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlDataListElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlDataListElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlDataListElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlDataListElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlDataListElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlDataListElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlDataListElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlDataListElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlDataListElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlDataListElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlDataListElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlDataListElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlDataListElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlDataListElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlDataListElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlDataListElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (
- htmlDataListElement,
- ~options: getAnimationsOptions=?,
-) => array = "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlDataListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlDataListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlDataListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlDataListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlDataListElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlDataListElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlDataListElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlDataListElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlDataListElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlDataListElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlDataListElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlDataListElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlDataListElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlDataListElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlDataListElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlDataListElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlDataListElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlDataListElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlDataListElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlDataListElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlDataListElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlDataListElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlDataListElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlDataListElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlDataListElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlDataListElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlDataListElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlDataListElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlDataListElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlDataListElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlDataListElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlDataListElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlDataListElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlDataListElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlDataListElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlDataListElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlDataListElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlDataListElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlDataListElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlDataListElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlDataListElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlDataListElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlDataListElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlDataListElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlDataListElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlDataListElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlDataListElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlDataListElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlDataListElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlDataListElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlDataListElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlDataListElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlDataListElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlDataListElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlDataListElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlDataListElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (
- htmlDataListElement,
- ~options: fullscreenOptions=?,
-) => Promise.t = "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlDataListElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlDataListElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlDataListElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlDataListElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlDataListElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlDataListElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlDataListElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlDataListElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlDataListElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlDataListElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlDataListElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlDataListElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlDataListElement
+})
diff --git a/src/DOMAPI/HTMLDialogElement.js b/src/DOMAPI/HTMLDialogElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLDialogElement.js
+++ b/src/DOMAPI/HTMLDialogElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLDialogElement.res b/src/DOMAPI/HTMLDialogElement.res
index 6113e799..1112770c 100644
--- a/src/DOMAPI/HTMLDialogElement.res
+++ b/src/DOMAPI/HTMLDialogElement.res
@@ -1,696 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlDialogElement => htmlElement = "%identity"
-external asElement: htmlDialogElement => element = "%identity"
-external asNode: htmlDialogElement => node = "%identity"
-external asEventTarget: htmlDialogElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlDialogElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlDialogElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlDialogElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlDialogElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlDialogElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlDialogElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlDialogElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlDialogElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlDialogElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlDialogElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlDialogElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlDialogElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlDialogElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlDialogElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlDialogElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlDialogElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlDialogElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlDialogElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlDialogElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlDialogElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlDialogElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlDialogElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlDialogElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlDialogElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlDialogElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlDialogElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlDialogElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlDialogElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlDialogElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlDialogElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlDialogElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlDialogElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlDialogElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlDialogElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlDialogElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlDialogElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlDialogElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlDialogElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlDialogElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlDialogElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlDialogElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlDialogElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlDialogElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlDialogElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlDialogElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlDialogElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlDialogElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlDialogElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlDialogElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlDialogElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlDialogElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlDialogElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlDialogElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlDialogElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlDialogElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlDialogElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlDialogElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlDialogElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlDialogElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlDialogElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlDialogElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlDialogElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlDialogElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlDialogElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlDialogElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlDialogElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlDialogElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlDialogElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlDialogElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlDialogElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlDialogElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlDialogElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlDialogElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlDialogElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlDialogElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlDialogElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlDialogElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlDialogElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlDialogElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlDialogElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlDialogElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlDialogElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlDialogElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlDialogElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlDialogElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlDialogElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlDialogElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlDialogElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlDialogElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlDialogElement
+})
/**
Displays the dialog element.
diff --git a/src/DOMAPI/HTMLDivElement.js b/src/DOMAPI/HTMLDivElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLDivElement.js
+++ b/src/DOMAPI/HTMLDivElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLDivElement.res b/src/DOMAPI/HTMLDivElement.res
index cfc7b51a..f3802c4f 100644
--- a/src/DOMAPI/HTMLDivElement.res
+++ b/src/DOMAPI/HTMLDivElement.res
@@ -1,686 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlDivElement => htmlElement = "%identity"
-external asElement: htmlDivElement => element = "%identity"
-external asNode: htmlDivElement => node = "%identity"
-external asEventTarget: htmlDivElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlDivElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlDivElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlDivElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlDivElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlDivElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlDivElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlDivElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlDivElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlDivElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlDivElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlDivElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlDivElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlDivElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlDivElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlDivElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlDivElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlDivElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlDivElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlDivElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlDivElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlDivElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlDivElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlDivElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlDivElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlDivElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlDivElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlDivElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlDivElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlDivElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlDivElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlDivElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlDivElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlDivElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlDivElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlDivElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlDivElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlDivElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlDivElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlDivElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlDivElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlDivElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlDivElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlDivElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlDivElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlDivElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlDivElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlDivElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlDivElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlDivElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlDivElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlDivElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlDivElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlDivElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlDivElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlDivElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlDivElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlDivElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlDivElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlDivElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlDivElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlDivElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlDivElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlDivElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlDivElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlDivElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlDivElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlDivElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlDivElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlDivElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlDivElement, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlDivElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlDivElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlDivElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlDivElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlDivElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlDivElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlDivElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlDivElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlDivElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlDivElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlDivElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlDivElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlDivElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlDivElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlDivElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlDivElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlDivElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlDivElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlDivElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlDivElement
+})
diff --git a/src/DOMAPI/HTMLElement.js b/src/DOMAPI/HTMLElement.js
index d856702b..ccf9abf4 100644
--- a/src/DOMAPI/HTMLElement.js
+++ b/src/DOMAPI/HTMLElement.js
@@ -1,2 +1,15 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as Element$WebApi from "./Element.js";
+
+function Impl(T) {
+ Element$WebApi.Impl({});
+ return {};
+}
+
+Element$WebApi.Impl({});
+
+export {
+ Impl,
+}
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLElement.res b/src/DOMAPI/HTMLElement.res
index 463750ce..e636036f 100644
--- a/src/DOMAPI/HTMLElement.res
+++ b/src/DOMAPI/HTMLElement.res
@@ -1,685 +1,59 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asElement: htmlElement => element = "%identity"
-external asNode: htmlElement => node = "%identity"
-external asEventTarget: htmlElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlElement, event) => bool = "dispatchEvent"
+module Impl = (
+ T: {
+ type t
+ },
+) => {
+ include Element.Impl({
+ type t = T.t
+ })
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlElement, 't) => 't = "appendChild"
+ external asHTMLElement: T.t => htmlElement = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlElement, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
*/
-@send
-external hasPointerCapture: (htmlElement, int) => bool = "hasPointerCapture"
+ @send
+ external attachInternals: T.t => elementInternals = "attachInternals"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
*/
-@send
-external requestPointerLock: (htmlElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
+ @send
+ external blur: T.t => unit = "blur"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
*/
-@send
-external click: htmlElement => unit = "click"
+ @send
+ external click: T.t => unit = "click"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
*/
-@send
-external attachInternals: htmlElement => elementInternals = "attachInternals"
+ @send
+ external focus: (T.t, ~options: focusOptions=?) => unit = "focus"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
*/
-@send
-external showPopover: htmlElement => unit = "showPopover"
+ @send
+ external hidePopover: T.t => unit = "hidePopover"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
*/
-@send
-external hidePopover: htmlElement => unit = "hidePopover"
+ @send
+ external showPopover: T.t => unit = "showPopover"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
*/
-@send
-external togglePopover: (htmlElement, ~force: bool=?) => bool = "togglePopover"
+ @send
+ external togglePopover: (T.t, ~force: bool=?) => bool = "togglePopover"
+}
+
+include Impl({
+ type t = htmlElement
+})
diff --git a/src/DOMAPI/HTMLEmbedElement.js b/src/DOMAPI/HTMLEmbedElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLEmbedElement.js
+++ b/src/DOMAPI/HTMLEmbedElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLEmbedElement.res b/src/DOMAPI/HTMLEmbedElement.res
index 8c532ff1..b92577db 100644
--- a/src/DOMAPI/HTMLEmbedElement.res
+++ b/src/DOMAPI/HTMLEmbedElement.res
@@ -1,693 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlEmbedElement => htmlElement = "%identity"
-external asElement: htmlEmbedElement => element = "%identity"
-external asNode: htmlEmbedElement => node = "%identity"
-external asEventTarget: htmlEmbedElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlEmbedElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlEmbedElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlEmbedElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlEmbedElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlEmbedElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlEmbedElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlEmbedElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlEmbedElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlEmbedElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlEmbedElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlEmbedElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlEmbedElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlEmbedElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlEmbedElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlEmbedElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlEmbedElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlEmbedElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlEmbedElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlEmbedElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlEmbedElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlEmbedElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlEmbedElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlEmbedElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlEmbedElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlEmbedElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlEmbedElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlEmbedElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlEmbedElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlEmbedElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlEmbedElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlEmbedElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlEmbedElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlEmbedElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlEmbedElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlEmbedElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlEmbedElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlEmbedElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlEmbedElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlEmbedElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlEmbedElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlEmbedElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlEmbedElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlEmbedElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlEmbedElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlEmbedElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlEmbedElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlEmbedElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlEmbedElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlEmbedElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlEmbedElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlEmbedElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlEmbedElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlEmbedElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlEmbedElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlEmbedElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlEmbedElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlEmbedElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlEmbedElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlEmbedElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlEmbedElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlEmbedElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlEmbedElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlEmbedElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlEmbedElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlEmbedElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlEmbedElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlEmbedElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlEmbedElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlEmbedElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlEmbedElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlEmbedElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlEmbedElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlEmbedElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlEmbedElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlEmbedElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlEmbedElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlEmbedElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlEmbedElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlEmbedElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlEmbedElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlEmbedElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlEmbedElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlEmbedElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlEmbedElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlEmbedElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlEmbedElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlEmbedElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlEmbedElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlEmbedElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlEmbedElement
+})
@send
external getSVGDocument: htmlEmbedElement => document = "getSVGDocument"
diff --git a/src/DOMAPI/HTMLFieldSetElement.js b/src/DOMAPI/HTMLFieldSetElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLFieldSetElement.js
+++ b/src/DOMAPI/HTMLFieldSetElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLFieldSetElement.res b/src/DOMAPI/HTMLFieldSetElement.res
index 6d644368..5d518c48 100644
--- a/src/DOMAPI/HTMLFieldSetElement.res
+++ b/src/DOMAPI/HTMLFieldSetElement.res
@@ -1,700 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlFieldSetElement => htmlElement = "%identity"
-external asElement: htmlFieldSetElement => element = "%identity"
-external asNode: htmlFieldSetElement => node = "%identity"
-external asEventTarget: htmlFieldSetElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlFieldSetElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlFieldSetElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlFieldSetElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlFieldSetElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlFieldSetElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlFieldSetElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlFieldSetElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlFieldSetElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlFieldSetElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlFieldSetElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlFieldSetElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlFieldSetElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlFieldSetElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlFieldSetElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlFieldSetElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlFieldSetElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlFieldSetElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlFieldSetElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlFieldSetElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (
- htmlFieldSetElement,
- ~options: getAnimationsOptions=?,
-) => array = "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlFieldSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlFieldSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlFieldSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlFieldSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlFieldSetElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlFieldSetElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlFieldSetElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlFieldSetElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlFieldSetElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlFieldSetElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlFieldSetElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlFieldSetElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlFieldSetElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlFieldSetElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlFieldSetElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlFieldSetElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlFieldSetElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlFieldSetElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlFieldSetElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlFieldSetElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlFieldSetElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlFieldSetElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlFieldSetElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlFieldSetElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlFieldSetElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlFieldSetElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlFieldSetElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlFieldSetElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlFieldSetElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlFieldSetElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlFieldSetElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlFieldSetElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlFieldSetElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlFieldSetElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlFieldSetElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlFieldSetElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlFieldSetElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlFieldSetElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlFieldSetElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlFieldSetElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlFieldSetElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlFieldSetElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlFieldSetElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlFieldSetElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlFieldSetElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlFieldSetElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlFieldSetElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlFieldSetElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlFieldSetElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlFieldSetElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlFieldSetElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlFieldSetElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlFieldSetElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlFieldSetElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlFieldSetElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlFieldSetElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (
- htmlFieldSetElement,
- ~options: fullscreenOptions=?,
-) => Promise.t = "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlFieldSetElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlFieldSetElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlFieldSetElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlFieldSetElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlFieldSetElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlFieldSetElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlFieldSetElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlFieldSetElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlFieldSetElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlFieldSetElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlFieldSetElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlFieldSetElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlFieldSetElement
+})
/**
Returns whether a form will validate when it is submitted, without having to submit it.
diff --git a/src/DOMAPI/HTMLFormElement.js b/src/DOMAPI/HTMLFormElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLFormElement.js
+++ b/src/DOMAPI/HTMLFormElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLFormElement.res b/src/DOMAPI/HTMLFormElement.res
index 6ef49787..02d54811 100644
--- a/src/DOMAPI/HTMLFormElement.res
+++ b/src/DOMAPI/HTMLFormElement.res
@@ -1,690 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlFormElement => htmlElement = "%identity"
-external asElement: htmlFormElement => element = "%identity"
-external asNode: htmlFormElement => node = "%identity"
-external asEventTarget: htmlFormElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlFormElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlFormElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlFormElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlFormElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlFormElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlFormElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlFormElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlFormElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlFormElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlFormElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlFormElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlFormElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlFormElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlFormElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlFormElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlFormElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlFormElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlFormElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlFormElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlFormElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlFormElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlFormElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlFormElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlFormElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlFormElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlFormElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlFormElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlFormElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlFormElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlFormElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlFormElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlFormElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlFormElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlFormElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlFormElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlFormElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlFormElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlFormElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlFormElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlFormElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlFormElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlFormElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlFormElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlFormElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlFormElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlFormElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlFormElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlFormElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlFormElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlFormElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlFormElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlFormElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlFormElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlFormElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlFormElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlFormElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlFormElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlFormElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlFormElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlFormElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlFormElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlFormElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlFormElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlFormElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlFormElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlFormElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlFormElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlFormElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlFormElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlFormElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlFormElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlFormElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlFormElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlFormElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlFormElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlFormElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlFormElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlFormElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlFormElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlFormElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlFormElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlFormElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlFormElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlFormElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlFormElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlFormElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlFormElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlFormElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlFormElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlFormElement
+})
/**
Fires when a FORM is about to be submitted.
diff --git a/src/DOMAPI/HTMLFrameSetElement.js b/src/DOMAPI/HTMLFrameSetElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLFrameSetElement.js
+++ b/src/DOMAPI/HTMLFrameSetElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLFrameSetElement.res b/src/DOMAPI/HTMLFrameSetElement.res
index 7d7674f4..7a7b53d2 100644
--- a/src/DOMAPI/HTMLFrameSetElement.res
+++ b/src/DOMAPI/HTMLFrameSetElement.res
@@ -1,697 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlFrameSetElement => htmlElement = "%identity"
-external asElement: htmlFrameSetElement => element = "%identity"
-external asNode: htmlFrameSetElement => node = "%identity"
-external asEventTarget: htmlFrameSetElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlFrameSetElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlFrameSetElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlFrameSetElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlFrameSetElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlFrameSetElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlFrameSetElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlFrameSetElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlFrameSetElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlFrameSetElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlFrameSetElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlFrameSetElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlFrameSetElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlFrameSetElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlFrameSetElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlFrameSetElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlFrameSetElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlFrameSetElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlFrameSetElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlFrameSetElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (
- htmlFrameSetElement,
- ~options: getAnimationsOptions=?,
-) => array = "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlFrameSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlFrameSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlFrameSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlFrameSetElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlFrameSetElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlFrameSetElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlFrameSetElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlFrameSetElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlFrameSetElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlFrameSetElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlFrameSetElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlFrameSetElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlFrameSetElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlFrameSetElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlFrameSetElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlFrameSetElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlFrameSetElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlFrameSetElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlFrameSetElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlFrameSetElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlFrameSetElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlFrameSetElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlFrameSetElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlFrameSetElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlFrameSetElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlFrameSetElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlFrameSetElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlFrameSetElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlFrameSetElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlFrameSetElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlFrameSetElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlFrameSetElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlFrameSetElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlFrameSetElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlFrameSetElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlFrameSetElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlFrameSetElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlFrameSetElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlFrameSetElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlFrameSetElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlFrameSetElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlFrameSetElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlFrameSetElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlFrameSetElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlFrameSetElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlFrameSetElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlFrameSetElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlFrameSetElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlFrameSetElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlFrameSetElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlFrameSetElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlFrameSetElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlFrameSetElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlFrameSetElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlFrameSetElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlFrameSetElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (
- htmlFrameSetElement,
- ~options: fullscreenOptions=?,
-) => Promise.t = "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlFrameSetElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlFrameSetElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlFrameSetElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlFrameSetElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlFrameSetElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlFrameSetElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlFrameSetElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlFrameSetElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlFrameSetElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlFrameSetElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlFrameSetElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlFrameSetElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlFrameSetElement
+})
diff --git a/src/DOMAPI/HTMLHRElement.js b/src/DOMAPI/HTMLHRElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLHRElement.js
+++ b/src/DOMAPI/HTMLHRElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLHRElement.res b/src/DOMAPI/HTMLHRElement.res
index 4169289c..c7459086 100644
--- a/src/DOMAPI/HTMLHRElement.res
+++ b/src/DOMAPI/HTMLHRElement.res
@@ -1,686 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlhrElement => htmlElement = "%identity"
-external asElement: htmlhrElement => element = "%identity"
-external asNode: htmlhrElement => node = "%identity"
-external asEventTarget: htmlhrElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlhrElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlhrElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlhrElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlhrElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlhrElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlhrElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlhrElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlhrElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlhrElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlhrElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlhrElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlhrElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlhrElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlhrElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlhrElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlhrElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlhrElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlhrElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlhrElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlhrElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlhrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlhrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlhrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlhrElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlhrElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlhrElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlhrElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlhrElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlhrElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlhrElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlhrElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlhrElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlhrElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlhrElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlhrElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlhrElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlhrElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlhrElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlhrElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlhrElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlhrElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlhrElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlhrElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlhrElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlhrElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlhrElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlhrElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlhrElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlhrElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlhrElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlhrElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlhrElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlhrElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlhrElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlhrElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlhrElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlhrElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlhrElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlhrElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlhrElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlhrElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlhrElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlhrElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlhrElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlhrElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlhrElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlhrElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlhrElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlhrElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlhrElement, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlhrElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlhrElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlhrElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlhrElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlhrElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlhrElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlhrElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlhrElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlhrElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlhrElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlhrElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlhrElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlhrElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlhrElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlhrElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlhrElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlhrElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlhrElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlhrElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlhrElement
+})
diff --git a/src/DOMAPI/HTMLHeadElement.js b/src/DOMAPI/HTMLHeadElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLHeadElement.js
+++ b/src/DOMAPI/HTMLHeadElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLHeadElement.res b/src/DOMAPI/HTMLHeadElement.res
index 85659d1f..ce2459db 100644
--- a/src/DOMAPI/HTMLHeadElement.res
+++ b/src/DOMAPI/HTMLHeadElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlHeadElement => htmlElement = "%identity"
-external asElement: htmlHeadElement => element = "%identity"
-external asNode: htmlHeadElement => node = "%identity"
-external asEventTarget: htmlHeadElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlHeadElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlHeadElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlHeadElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlHeadElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlHeadElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlHeadElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlHeadElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlHeadElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlHeadElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlHeadElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlHeadElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlHeadElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlHeadElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlHeadElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlHeadElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlHeadElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlHeadElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlHeadElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlHeadElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlHeadElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlHeadElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlHeadElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlHeadElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlHeadElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlHeadElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlHeadElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlHeadElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlHeadElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlHeadElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlHeadElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlHeadElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlHeadElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlHeadElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlHeadElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlHeadElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlHeadElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlHeadElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlHeadElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlHeadElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlHeadElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlHeadElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlHeadElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlHeadElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlHeadElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlHeadElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlHeadElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlHeadElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlHeadElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlHeadElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlHeadElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlHeadElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlHeadElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlHeadElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlHeadElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlHeadElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlHeadElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlHeadElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlHeadElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlHeadElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlHeadElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlHeadElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlHeadElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlHeadElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlHeadElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlHeadElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlHeadElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlHeadElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlHeadElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlHeadElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlHeadElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlHeadElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlHeadElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlHeadElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlHeadElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlHeadElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlHeadElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlHeadElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlHeadElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlHeadElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlHeadElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlHeadElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlHeadElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlHeadElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlHeadElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlHeadElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlHeadElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlHeadElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlHeadElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlHeadElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlHeadElement
+})
diff --git a/src/DOMAPI/HTMLHeadingElement.js b/src/DOMAPI/HTMLHeadingElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLHeadingElement.js
+++ b/src/DOMAPI/HTMLHeadingElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLHeadingElement.res b/src/DOMAPI/HTMLHeadingElement.res
index 62f4b49b..6fc967ac 100644
--- a/src/DOMAPI/HTMLHeadingElement.res
+++ b/src/DOMAPI/HTMLHeadingElement.res
@@ -1,693 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlHeadingElement => htmlElement = "%identity"
-external asElement: htmlHeadingElement => element = "%identity"
-external asNode: htmlHeadingElement => node = "%identity"
-external asEventTarget: htmlHeadingElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlHeadingElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlHeadingElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlHeadingElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlHeadingElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlHeadingElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlHeadingElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlHeadingElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlHeadingElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlHeadingElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlHeadingElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlHeadingElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlHeadingElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlHeadingElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlHeadingElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlHeadingElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlHeadingElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlHeadingElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlHeadingElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlHeadingElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlHeadingElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlHeadingElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlHeadingElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlHeadingElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlHeadingElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlHeadingElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlHeadingElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlHeadingElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlHeadingElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlHeadingElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlHeadingElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlHeadingElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlHeadingElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlHeadingElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlHeadingElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlHeadingElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlHeadingElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlHeadingElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlHeadingElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlHeadingElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlHeadingElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlHeadingElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlHeadingElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlHeadingElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlHeadingElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlHeadingElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlHeadingElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlHeadingElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlHeadingElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlHeadingElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlHeadingElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlHeadingElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlHeadingElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlHeadingElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlHeadingElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlHeadingElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlHeadingElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlHeadingElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlHeadingElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlHeadingElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlHeadingElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlHeadingElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlHeadingElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlHeadingElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlHeadingElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlHeadingElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlHeadingElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlHeadingElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlHeadingElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlHeadingElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlHeadingElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlHeadingElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlHeadingElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlHeadingElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlHeadingElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlHeadingElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlHeadingElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlHeadingElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlHeadingElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlHeadingElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlHeadingElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlHeadingElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlHeadingElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlHeadingElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlHeadingElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlHeadingElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlHeadingElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlHeadingElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlHeadingElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlHeadingElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlHeadingElement
+})
diff --git a/src/DOMAPI/HTMLHtmlElement.js b/src/DOMAPI/HTMLHtmlElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLHtmlElement.js
+++ b/src/DOMAPI/HTMLHtmlElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLHtmlElement.res b/src/DOMAPI/HTMLHtmlElement.res
index 66edc167..dd9ef110 100644
--- a/src/DOMAPI/HTMLHtmlElement.res
+++ b/src/DOMAPI/HTMLHtmlElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlHtmlElement => htmlElement = "%identity"
-external asElement: htmlHtmlElement => element = "%identity"
-external asNode: htmlHtmlElement => node = "%identity"
-external asEventTarget: htmlHtmlElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlHtmlElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlHtmlElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlHtmlElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlHtmlElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlHtmlElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlHtmlElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlHtmlElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlHtmlElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlHtmlElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlHtmlElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlHtmlElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlHtmlElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlHtmlElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlHtmlElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlHtmlElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlHtmlElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlHtmlElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlHtmlElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlHtmlElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlHtmlElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlHtmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlHtmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlHtmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlHtmlElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlHtmlElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlHtmlElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlHtmlElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlHtmlElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlHtmlElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlHtmlElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlHtmlElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlHtmlElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlHtmlElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlHtmlElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlHtmlElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlHtmlElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlHtmlElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlHtmlElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlHtmlElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlHtmlElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlHtmlElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlHtmlElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlHtmlElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlHtmlElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlHtmlElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlHtmlElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlHtmlElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlHtmlElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlHtmlElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlHtmlElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlHtmlElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlHtmlElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlHtmlElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlHtmlElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlHtmlElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlHtmlElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlHtmlElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlHtmlElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlHtmlElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlHtmlElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlHtmlElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlHtmlElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlHtmlElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlHtmlElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlHtmlElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlHtmlElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlHtmlElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlHtmlElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlHtmlElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlHtmlElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlHtmlElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlHtmlElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlHtmlElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlHtmlElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlHtmlElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlHtmlElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlHtmlElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlHtmlElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlHtmlElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlHtmlElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlHtmlElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlHtmlElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlHtmlElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlHtmlElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlHtmlElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlHtmlElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlHtmlElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlHtmlElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlHtmlElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlHtmlElement
+})
diff --git a/src/DOMAPI/HTMLIFrameElement.js b/src/DOMAPI/HTMLIFrameElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLIFrameElement.js
+++ b/src/DOMAPI/HTMLIFrameElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLIFrameElement.res b/src/DOMAPI/HTMLIFrameElement.res
index 105a7275..4d0f6c5d 100644
--- a/src/DOMAPI/HTMLIFrameElement.res
+++ b/src/DOMAPI/HTMLIFrameElement.res
@@ -1,696 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmliFrameElement => htmlElement = "%identity"
-external asElement: htmliFrameElement => element = "%identity"
-external asNode: htmliFrameElement => node = "%identity"
-external asEventTarget: htmliFrameElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmliFrameElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmliFrameElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmliFrameElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmliFrameElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmliFrameElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmliFrameElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmliFrameElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmliFrameElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmliFrameElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmliFrameElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmliFrameElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmliFrameElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmliFrameElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmliFrameElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmliFrameElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmliFrameElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmliFrameElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmliFrameElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmliFrameElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmliFrameElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmliFrameElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmliFrameElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmliFrameElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmliFrameElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmliFrameElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmliFrameElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmliFrameElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmliFrameElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmliFrameElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmliFrameElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmliFrameElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmliFrameElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmliFrameElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmliFrameElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmliFrameElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmliFrameElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmliFrameElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmliFrameElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmliFrameElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmliFrameElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmliFrameElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmliFrameElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmliFrameElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmliFrameElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmliFrameElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmliFrameElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmliFrameElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmliFrameElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmliFrameElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmliFrameElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmliFrameElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmliFrameElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmliFrameElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmliFrameElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmliFrameElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmliFrameElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmliFrameElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmliFrameElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmliFrameElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmliFrameElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmliFrameElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmliFrameElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmliFrameElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmliFrameElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmliFrameElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmliFrameElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmliFrameElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmliFrameElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmliFrameElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmliFrameElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmliFrameElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmliFrameElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmliFrameElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmliFrameElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmliFrameElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmliFrameElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmliFrameElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmliFrameElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmliFrameElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmliFrameElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmliFrameElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmliFrameElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmliFrameElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmliFrameElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmliFrameElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmliFrameElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmliFrameElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmliFrameElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmliFrameElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmliFrameElement
+})
@send
external getSVGDocument: htmliFrameElement => document = "getSVGDocument"
diff --git a/src/DOMAPI/HTMLImageElement.js b/src/DOMAPI/HTMLImageElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLImageElement.js
+++ b/src/DOMAPI/HTMLImageElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLImageElement.res b/src/DOMAPI/HTMLImageElement.res
index 4a2ec170..d0bab363 100644
--- a/src/DOMAPI/HTMLImageElement.res
+++ b/src/DOMAPI/HTMLImageElement.res
@@ -1,693 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlImageElement => htmlElement = "%identity"
-external asElement: htmlImageElement => element = "%identity"
-external asNode: htmlImageElement => node = "%identity"
-external asEventTarget: htmlImageElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlImageElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlImageElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlImageElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlImageElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlImageElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlImageElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlImageElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlImageElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlImageElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlImageElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlImageElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlImageElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlImageElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlImageElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlImageElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlImageElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlImageElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlImageElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlImageElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlImageElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlImageElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlImageElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlImageElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlImageElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlImageElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlImageElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlImageElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlImageElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlImageElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlImageElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlImageElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlImageElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlImageElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlImageElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlImageElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlImageElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlImageElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlImageElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlImageElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlImageElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlImageElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlImageElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlImageElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlImageElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlImageElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlImageElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlImageElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlImageElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlImageElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlImageElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlImageElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlImageElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlImageElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlImageElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlImageElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlImageElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlImageElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlImageElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlImageElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlImageElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlImageElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlImageElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlImageElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlImageElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlImageElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlImageElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlImageElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlImageElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlImageElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlImageElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlImageElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlImageElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlImageElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlImageElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlImageElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlImageElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlImageElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlImageElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlImageElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlImageElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlImageElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlImageElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlImageElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlImageElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlImageElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlImageElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlImageElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlImageElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlImageElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlImageElement
+})
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/decode)
diff --git a/src/DOMAPI/HTMLInputElement.js b/src/DOMAPI/HTMLInputElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLInputElement.js
+++ b/src/DOMAPI/HTMLInputElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLInputElement.res b/src/DOMAPI/HTMLInputElement.res
index 5a4160c7..8f73a98a 100644
--- a/src/DOMAPI/HTMLInputElement.res
+++ b/src/DOMAPI/HTMLInputElement.res
@@ -1,693 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlInputElement => htmlElement = "%identity"
-external asElement: htmlInputElement => element = "%identity"
-external asNode: htmlInputElement => node = "%identity"
-external asEventTarget: htmlInputElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlInputElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlInputElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlInputElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlInputElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlInputElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlInputElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlInputElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlInputElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlInputElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlInputElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlInputElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlInputElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlInputElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlInputElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlInputElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlInputElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlInputElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlInputElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlInputElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlInputElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlInputElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlInputElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlInputElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlInputElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlInputElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlInputElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlInputElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlInputElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlInputElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlInputElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlInputElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlInputElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlInputElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlInputElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlInputElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlInputElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlInputElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlInputElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlInputElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlInputElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlInputElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlInputElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlInputElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlInputElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlInputElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlInputElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlInputElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlInputElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlInputElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlInputElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlInputElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlInputElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlInputElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlInputElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlInputElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlInputElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlInputElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlInputElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlInputElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlInputElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlInputElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlInputElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlInputElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlInputElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlInputElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlInputElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlInputElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlInputElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlInputElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlInputElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlInputElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlInputElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlInputElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlInputElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlInputElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlInputElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlInputElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlInputElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlInputElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlInputElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlInputElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlInputElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlInputElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlInputElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlInputElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlInputElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlInputElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlInputElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlInputElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlInputElement
+})
/**
Increments a range input control's value by the value given by the Step attribute. If the optional parameter is used, will increment the input control's value by that value.
diff --git a/src/DOMAPI/HTMLLIElement.js b/src/DOMAPI/HTMLLIElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLLIElement.js
+++ b/src/DOMAPI/HTMLLIElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLLIElement.res b/src/DOMAPI/HTMLLIElement.res
index 792ce2d8..9dc16ac3 100644
--- a/src/DOMAPI/HTMLLIElement.res
+++ b/src/DOMAPI/HTMLLIElement.res
@@ -1,686 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlliElement => htmlElement = "%identity"
-external asElement: htmlliElement => element = "%identity"
-external asNode: htmlliElement => node = "%identity"
-external asEventTarget: htmlliElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlliElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlliElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlliElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlliElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlliElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlliElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlliElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlliElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlliElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlliElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlliElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlliElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlliElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlliElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlliElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlliElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlliElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlliElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlliElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlliElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlliElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlliElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlliElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlliElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlliElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlliElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlliElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlliElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlliElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlliElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlliElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlliElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlliElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlliElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlliElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlliElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlliElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlliElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlliElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlliElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlliElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlliElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlliElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlliElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlliElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlliElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlliElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlliElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlliElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlliElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlliElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlliElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlliElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlliElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlliElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlliElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlliElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlliElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlliElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlliElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlliElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlliElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlliElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlliElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlliElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlliElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlliElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlliElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlliElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlliElement, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlliElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlliElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlliElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlliElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlliElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlliElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlliElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlliElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlliElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlliElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlliElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlliElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlliElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlliElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlliElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlliElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlliElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlliElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlliElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlliElement
+})
diff --git a/src/DOMAPI/HTMLLabelElement.js b/src/DOMAPI/HTMLLabelElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLLabelElement.js
+++ b/src/DOMAPI/HTMLLabelElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLLabelElement.res b/src/DOMAPI/HTMLLabelElement.res
index a85a2a1b..6bee81c9 100644
--- a/src/DOMAPI/HTMLLabelElement.res
+++ b/src/DOMAPI/HTMLLabelElement.res
@@ -1,690 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlLabelElement => htmlElement = "%identity"
-external asElement: htmlLabelElement => element = "%identity"
-external asNode: htmlLabelElement => node = "%identity"
-external asEventTarget: htmlLabelElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlLabelElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlLabelElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlLabelElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlLabelElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlLabelElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlLabelElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlLabelElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlLabelElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlLabelElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlLabelElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlLabelElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlLabelElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlLabelElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlLabelElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlLabelElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlLabelElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlLabelElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlLabelElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlLabelElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlLabelElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlLabelElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlLabelElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlLabelElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlLabelElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlLabelElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlLabelElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlLabelElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlLabelElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlLabelElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlLabelElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlLabelElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlLabelElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlLabelElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlLabelElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlLabelElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlLabelElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlLabelElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlLabelElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlLabelElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlLabelElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlLabelElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlLabelElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlLabelElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlLabelElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlLabelElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlLabelElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlLabelElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlLabelElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlLabelElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlLabelElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlLabelElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlLabelElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlLabelElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlLabelElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlLabelElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlLabelElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlLabelElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlLabelElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlLabelElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlLabelElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlLabelElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlLabelElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlLabelElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlLabelElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlLabelElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlLabelElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlLabelElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlLabelElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlLabelElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlLabelElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlLabelElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlLabelElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlLabelElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlLabelElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlLabelElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlLabelElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlLabelElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlLabelElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlLabelElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlLabelElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlLabelElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlLabelElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlLabelElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlLabelElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlLabelElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlLabelElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlLabelElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlLabelElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlLabelElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlLabelElement
+})
diff --git a/src/DOMAPI/HTMLLegendElement.js b/src/DOMAPI/HTMLLegendElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLLegendElement.js
+++ b/src/DOMAPI/HTMLLegendElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLLegendElement.res b/src/DOMAPI/HTMLLegendElement.res
index 3a37b8ad..c7ce0e11 100644
--- a/src/DOMAPI/HTMLLegendElement.res
+++ b/src/DOMAPI/HTMLLegendElement.res
@@ -1,693 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlLegendElement => htmlElement = "%identity"
-external asElement: htmlLegendElement => element = "%identity"
-external asNode: htmlLegendElement => node = "%identity"
-external asEventTarget: htmlLegendElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlLegendElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlLegendElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlLegendElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlLegendElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlLegendElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlLegendElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlLegendElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlLegendElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlLegendElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlLegendElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlLegendElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlLegendElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlLegendElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlLegendElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlLegendElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlLegendElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlLegendElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlLegendElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlLegendElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlLegendElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlLegendElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlLegendElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlLegendElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlLegendElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlLegendElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlLegendElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlLegendElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlLegendElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlLegendElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlLegendElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlLegendElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlLegendElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlLegendElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlLegendElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlLegendElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlLegendElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlLegendElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlLegendElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlLegendElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlLegendElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlLegendElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlLegendElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlLegendElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlLegendElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlLegendElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlLegendElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlLegendElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlLegendElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlLegendElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlLegendElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlLegendElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlLegendElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlLegendElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlLegendElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlLegendElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlLegendElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlLegendElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlLegendElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlLegendElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlLegendElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlLegendElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlLegendElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlLegendElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlLegendElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlLegendElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlLegendElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlLegendElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlLegendElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlLegendElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlLegendElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlLegendElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlLegendElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlLegendElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlLegendElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlLegendElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlLegendElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlLegendElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlLegendElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlLegendElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlLegendElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlLegendElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlLegendElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlLegendElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlLegendElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlLegendElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlLegendElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlLegendElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlLegendElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlLegendElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlLegendElement
+})
diff --git a/src/DOMAPI/HTMLLinkElement.js b/src/DOMAPI/HTMLLinkElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLLinkElement.js
+++ b/src/DOMAPI/HTMLLinkElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLLinkElement.res b/src/DOMAPI/HTMLLinkElement.res
index d937836d..c41ec441 100644
--- a/src/DOMAPI/HTMLLinkElement.res
+++ b/src/DOMAPI/HTMLLinkElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlLinkElement => htmlElement = "%identity"
-external asElement: htmlLinkElement => element = "%identity"
-external asNode: htmlLinkElement => node = "%identity"
-external asEventTarget: htmlLinkElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlLinkElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlLinkElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlLinkElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlLinkElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlLinkElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlLinkElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlLinkElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlLinkElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlLinkElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlLinkElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlLinkElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlLinkElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlLinkElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlLinkElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlLinkElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlLinkElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlLinkElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlLinkElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlLinkElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlLinkElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlLinkElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlLinkElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlLinkElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlLinkElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlLinkElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlLinkElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlLinkElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlLinkElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlLinkElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlLinkElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlLinkElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlLinkElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlLinkElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlLinkElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlLinkElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlLinkElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlLinkElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlLinkElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlLinkElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlLinkElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlLinkElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlLinkElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlLinkElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlLinkElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlLinkElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlLinkElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlLinkElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlLinkElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlLinkElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlLinkElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlLinkElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlLinkElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlLinkElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlLinkElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlLinkElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlLinkElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlLinkElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlLinkElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlLinkElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlLinkElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlLinkElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlLinkElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlLinkElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlLinkElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlLinkElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlLinkElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlLinkElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlLinkElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlLinkElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlLinkElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlLinkElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlLinkElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlLinkElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlLinkElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlLinkElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlLinkElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlLinkElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlLinkElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlLinkElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlLinkElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlLinkElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlLinkElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlLinkElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlLinkElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlLinkElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlLinkElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlLinkElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlLinkElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlLinkElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlLinkElement
+})
diff --git a/src/DOMAPI/HTMLMapElement.js b/src/DOMAPI/HTMLMapElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLMapElement.js
+++ b/src/DOMAPI/HTMLMapElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLMapElement.res b/src/DOMAPI/HTMLMapElement.res
index 687165a8..b60cdeb2 100644
--- a/src/DOMAPI/HTMLMapElement.res
+++ b/src/DOMAPI/HTMLMapElement.res
@@ -1,686 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlMapElement => htmlElement = "%identity"
-external asElement: htmlMapElement => element = "%identity"
-external asNode: htmlMapElement => node = "%identity"
-external asEventTarget: htmlMapElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlMapElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlMapElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlMapElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlMapElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlMapElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlMapElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlMapElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlMapElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlMapElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlMapElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlMapElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlMapElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlMapElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlMapElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlMapElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlMapElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlMapElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlMapElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlMapElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlMapElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlMapElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlMapElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlMapElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlMapElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlMapElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlMapElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlMapElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlMapElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlMapElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlMapElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlMapElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlMapElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlMapElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlMapElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlMapElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlMapElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlMapElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlMapElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlMapElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlMapElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlMapElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlMapElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlMapElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlMapElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlMapElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlMapElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlMapElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlMapElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlMapElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlMapElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlMapElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlMapElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlMapElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlMapElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlMapElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlMapElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlMapElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlMapElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlMapElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlMapElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlMapElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlMapElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlMapElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlMapElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlMapElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlMapElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlMapElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlMapElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlMapElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlMapElement, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlMapElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlMapElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlMapElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlMapElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlMapElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlMapElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlMapElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlMapElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlMapElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlMapElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlMapElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlMapElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlMapElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlMapElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlMapElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlMapElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlMapElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlMapElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlMapElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlMapElement
+})
diff --git a/src/DOMAPI/HTMLMediaElement.js b/src/DOMAPI/HTMLMediaElement.js
index d856702b..dbb5c976 100644
--- a/src/DOMAPI/HTMLMediaElement.js
+++ b/src/DOMAPI/HTMLMediaElement.js
@@ -1,2 +1,15 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+function Impl(T) {
+ HTMLElement$WebApi.Impl({});
+ return {};
+}
+
+HTMLElement$WebApi.Impl({});
+
+export {
+ Impl,
+}
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLMediaElement.res b/src/DOMAPI/HTMLMediaElement.res
index 3ff516fc..8d6b40ef 100644
--- a/src/DOMAPI/HTMLMediaElement.res
+++ b/src/DOMAPI/HTMLMediaElement.res
@@ -1,749 +1,76 @@
open DOMAPI
-open Prelude
-open EventAPI
open WebVTTAPI
open EncryptedMediaExtensionsAPI
-external asHTMLElement: htmlMediaElement => htmlElement = "%identity"
-external asElement: htmlMediaElement => element = "%identity"
-external asNode: htmlMediaElement => node = "%identity"
-external asEventTarget: htmlMediaElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlMediaElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlMediaElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlMediaElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlMediaElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlMediaElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlMediaElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlMediaElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlMediaElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlMediaElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlMediaElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlMediaElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlMediaElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlMediaElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlMediaElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlMediaElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlMediaElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlMediaElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlMediaElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlMediaElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlMediaElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
+module Impl = (
+ T: {
+ type t
+ },
+) => {
+ include HTMLElement.Impl({
+ type t = htmlMediaElement
+ })
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlMediaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlMediaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlMediaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlMediaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlMediaElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlMediaElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlMediaElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlMediaElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlMediaElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlMediaElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlMediaElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlMediaElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlMediaElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlMediaElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlMediaElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlMediaElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlMediaElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlMediaElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlMediaElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlMediaElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlMediaElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlMediaElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlMediaElement, string) => string = "getAttribute"
+ external asHTMLMediaElement: T.t => htmlMediaElement = "%identity"
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlMediaElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlMediaElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlMediaElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlMediaElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlMediaElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlMediaElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlMediaElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlMediaElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlMediaElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlMediaElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlMediaElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlMediaElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlMediaElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlMediaElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlMediaElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlMediaElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlMediaElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlMediaElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlMediaElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlMediaElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlMediaElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlMediaElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlMediaElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlMediaElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlMediaElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlMediaElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlMediaElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlMediaElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlMediaElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlMediaElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlMediaElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlMediaElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlMediaElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlMediaElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlMediaElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlMediaElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlMediaElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlMediaElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlMediaElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlMediaElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlMediaElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlMediaElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlMediaElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack)
*/
-@send
-external showPopover: htmlMediaElement => unit = "showPopover"
+ @send
+ external addTextTrack: (
+ T.t,
+ ~kind: textTrackKind,
+ ~label: string=?,
+ ~language: string=?,
+ ) => textTrack = "addTextTrack"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
+ /**
+Returns a string that specifies whether the client can play a given media resource type.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType)
*/
-@send
-external hidePopover: htmlMediaElement => unit = "hidePopover"
+ @send
+ external canPlayType: (T.t, string) => canPlayTypeResult = "canPlayType"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/fastSeek)
*/
-@send
-external togglePopover: (htmlMediaElement, ~force: bool=?) => bool = "togglePopover"
+ @send
+ external fastSeek: (T.t, float) => unit = "fastSeek"
-/**
+ /**
Resets the audio or video object and loads a new media resource.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/load)
*/
-@send
-external load: htmlMediaElement => unit = "load"
-
-/**
-Returns a string that specifies whether the client can play a given media resource type.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType)
-*/
-@send
-external canPlayType: (htmlMediaElement, string) => canPlayTypeResult = "canPlayType"
+ @send
+ external load: T.t => unit = "load"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/fastSeek)
+ /**
+Pauses the current playback and sets paused to TRUE.
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause)
*/
-@send
-external fastSeek: (htmlMediaElement, float) => unit = "fastSeek"
+ @send
+ external pause: T.t => unit = "pause"
-/**
+ /**
Loads and starts playback of a media resource.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play)
*/
-@send
-external play: htmlMediaElement => Promise.t = "play"
+ @send
+ external play: T.t => Promise.t = "play"
-/**
-Pauses the current playback and sets paused to TRUE.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause)
-*/
-@send
-external pause: htmlMediaElement => unit = "pause"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack)
+ /**
+[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setMediaKeys)
*/
-@send
-external addTextTrack: (
- htmlMediaElement,
- ~kind: textTrackKind,
- ~label: string=?,
- ~language: string=?,
-) => textTrack = "addTextTrack"
+ @send
+ external setMediaKeys: (T.t, mediaKeys) => Promise.t = "setMediaKeys"
-/**
+ /**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setSinkId)
*/
-@send
-external setSinkId: (htmlMediaElement, string) => Promise.t = "setSinkId"
+ @send
+ external setSinkId: (T.t, string) => Promise.t = "setSinkId"
+}
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setMediaKeys)
-*/
-@send
-external setMediaKeys: (htmlMediaElement, mediaKeys) => Promise.t = "setMediaKeys"
+include Impl({
+ type t = htmlMediaElement
+})
diff --git a/src/DOMAPI/HTMLMenuElement.js b/src/DOMAPI/HTMLMenuElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLMenuElement.js
+++ b/src/DOMAPI/HTMLMenuElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLMenuElement.res b/src/DOMAPI/HTMLMenuElement.res
index a6af4545..7d167ebb 100644
--- a/src/DOMAPI/HTMLMenuElement.res
+++ b/src/DOMAPI/HTMLMenuElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlMenuElement => htmlElement = "%identity"
-external asElement: htmlMenuElement => element = "%identity"
-external asNode: htmlMenuElement => node = "%identity"
-external asEventTarget: htmlMenuElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlMenuElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlMenuElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlMenuElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlMenuElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlMenuElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlMenuElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlMenuElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlMenuElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlMenuElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlMenuElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlMenuElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlMenuElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlMenuElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlMenuElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlMenuElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlMenuElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlMenuElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlMenuElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlMenuElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlMenuElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlMenuElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlMenuElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlMenuElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlMenuElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlMenuElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlMenuElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlMenuElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlMenuElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlMenuElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlMenuElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlMenuElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlMenuElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlMenuElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlMenuElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlMenuElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlMenuElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlMenuElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlMenuElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlMenuElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlMenuElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlMenuElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlMenuElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlMenuElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlMenuElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlMenuElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlMenuElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlMenuElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlMenuElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlMenuElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlMenuElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlMenuElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlMenuElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlMenuElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlMenuElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlMenuElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlMenuElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlMenuElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlMenuElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlMenuElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlMenuElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlMenuElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlMenuElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlMenuElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlMenuElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlMenuElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlMenuElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlMenuElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlMenuElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlMenuElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlMenuElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlMenuElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlMenuElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlMenuElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlMenuElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlMenuElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlMenuElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlMenuElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlMenuElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlMenuElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlMenuElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlMenuElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlMenuElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlMenuElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlMenuElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlMenuElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlMenuElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlMenuElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlMenuElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlMenuElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlMenuElement
+})
diff --git a/src/DOMAPI/HTMLMetaElement.js b/src/DOMAPI/HTMLMetaElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLMetaElement.js
+++ b/src/DOMAPI/HTMLMetaElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLMetaElement.res b/src/DOMAPI/HTMLMetaElement.res
index 41c38688..53b71984 100644
--- a/src/DOMAPI/HTMLMetaElement.res
+++ b/src/DOMAPI/HTMLMetaElement.res
@@ -1,687 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlMetaElement => htmlElement = "%identity"
-external asElement: htmlMetaElement => element = "%identity"
-external asNode: htmlMetaElement => node = "%identity"
-external asEventTarget: htmlMetaElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlMetaElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlMetaElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlMetaElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlMetaElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlMetaElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlMetaElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlMetaElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlMetaElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlMetaElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlMetaElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlMetaElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlMetaElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlMetaElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlMetaElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlMetaElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlMetaElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlMetaElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlMetaElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlMetaElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlMetaElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlMetaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlMetaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlMetaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlMetaElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlMetaElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlMetaElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlMetaElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlMetaElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlMetaElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlMetaElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlMetaElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlMetaElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlMetaElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlMetaElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlMetaElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlMetaElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlMetaElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlMetaElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlMetaElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlMetaElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlMetaElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlMetaElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlMetaElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlMetaElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlMetaElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlMetaElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlMetaElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlMetaElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlMetaElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlMetaElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlMetaElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlMetaElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlMetaElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlMetaElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlMetaElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlMetaElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlMetaElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlMetaElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlMetaElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlMetaElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlMetaElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlMetaElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlMetaElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlMetaElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlMetaElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlMetaElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlMetaElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlMetaElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlMetaElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlMetaElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlMetaElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlMetaElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlMetaElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlMetaElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlMetaElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlMetaElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlMetaElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlMetaElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlMetaElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlMetaElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlMetaElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlMetaElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlMetaElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlMetaElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlMetaElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlMetaElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlMetaElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlMetaElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlMetaElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlMetaElement
+})
diff --git a/src/DOMAPI/HTMLMeterElement.js b/src/DOMAPI/HTMLMeterElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLMeterElement.js
+++ b/src/DOMAPI/HTMLMeterElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLMeterElement.res b/src/DOMAPI/HTMLMeterElement.res
index adf298de..90a70020 100644
--- a/src/DOMAPI/HTMLMeterElement.res
+++ b/src/DOMAPI/HTMLMeterElement.res
@@ -1,690 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlMeterElement => htmlElement = "%identity"
-external asElement: htmlMeterElement => element = "%identity"
-external asNode: htmlMeterElement => node = "%identity"
-external asEventTarget: htmlMeterElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlMeterElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlMeterElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlMeterElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlMeterElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlMeterElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlMeterElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlMeterElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlMeterElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlMeterElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlMeterElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlMeterElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlMeterElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlMeterElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlMeterElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlMeterElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlMeterElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlMeterElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlMeterElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlMeterElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlMeterElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlMeterElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlMeterElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlMeterElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlMeterElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlMeterElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlMeterElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlMeterElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlMeterElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlMeterElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlMeterElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlMeterElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlMeterElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlMeterElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlMeterElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlMeterElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlMeterElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlMeterElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlMeterElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlMeterElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlMeterElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlMeterElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlMeterElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlMeterElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlMeterElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlMeterElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlMeterElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlMeterElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlMeterElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlMeterElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlMeterElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlMeterElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlMeterElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlMeterElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlMeterElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlMeterElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlMeterElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlMeterElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlMeterElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlMeterElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlMeterElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlMeterElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlMeterElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlMeterElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlMeterElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlMeterElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlMeterElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlMeterElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlMeterElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlMeterElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlMeterElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlMeterElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlMeterElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlMeterElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlMeterElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlMeterElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlMeterElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlMeterElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlMeterElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlMeterElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlMeterElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlMeterElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlMeterElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlMeterElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlMeterElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlMeterElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlMeterElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlMeterElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlMeterElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlMeterElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlMeterElement
+})
diff --git a/src/DOMAPI/HTMLModElement.js b/src/DOMAPI/HTMLModElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLModElement.js
+++ b/src/DOMAPI/HTMLModElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLModElement.res b/src/DOMAPI/HTMLModElement.res
index 49ace540..7ca5023d 100644
--- a/src/DOMAPI/HTMLModElement.res
+++ b/src/DOMAPI/HTMLModElement.res
@@ -1,686 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlModElement => htmlElement = "%identity"
-external asElement: htmlModElement => element = "%identity"
-external asNode: htmlModElement => node = "%identity"
-external asEventTarget: htmlModElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlModElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlModElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlModElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlModElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlModElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlModElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlModElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlModElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlModElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlModElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlModElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlModElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlModElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlModElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlModElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlModElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlModElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlModElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlModElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlModElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlModElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlModElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlModElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlModElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlModElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlModElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlModElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlModElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlModElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlModElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlModElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlModElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlModElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlModElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlModElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlModElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlModElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlModElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlModElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlModElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlModElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlModElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlModElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlModElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlModElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlModElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlModElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlModElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlModElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlModElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlModElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlModElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlModElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlModElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlModElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlModElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlModElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlModElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlModElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlModElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlModElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlModElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlModElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlModElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlModElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlModElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlModElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlModElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlModElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlModElement, ~arg: scrollIntoViewOptions=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlModElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlModElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlModElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlModElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlModElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlModElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlModElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlModElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlModElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (htmlModElement, ~position: insertPosition, ~string: string) => unit =
- "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlModElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlModElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlModElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmlModElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlModElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlModElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlModElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlModElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlModElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlModElement
+})
diff --git a/src/DOMAPI/HTMLOListElement.js b/src/DOMAPI/HTMLOListElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLOListElement.js
+++ b/src/DOMAPI/HTMLOListElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLOListElement.res b/src/DOMAPI/HTMLOListElement.res
index 5c3b560c..449649ac 100644
--- a/src/DOMAPI/HTMLOListElement.res
+++ b/src/DOMAPI/HTMLOListElement.res
@@ -1,690 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmloListElement => htmlElement = "%identity"
-external asElement: htmloListElement => element = "%identity"
-external asNode: htmloListElement => node = "%identity"
-external asEventTarget: htmloListElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmloListElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmloListElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmloListElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmloListElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmloListElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmloListElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmloListElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmloListElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmloListElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmloListElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmloListElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmloListElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmloListElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmloListElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmloListElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmloListElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmloListElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmloListElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmloListElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmloListElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmloListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmloListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmloListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmloListElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmloListElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmloListElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmloListElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmloListElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmloListElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmloListElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmloListElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmloListElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmloListElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmloListElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmloListElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmloListElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmloListElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmloListElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmloListElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmloListElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmloListElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmloListElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmloListElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmloListElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmloListElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmloListElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmloListElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmloListElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmloListElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmloListElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmloListElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmloListElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmloListElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmloListElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmloListElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmloListElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmloListElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmloListElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmloListElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmloListElement, string) => htmlCollection = "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmloListElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmloListElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmloListElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmloListElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmloListElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmloListElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmloListElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmloListElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmloListElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmloListElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmloListElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmloListElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmloListElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmloListElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmloListElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmloListElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmloListElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmloListElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmloListElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmloListElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmloListElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmloListElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmloListElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (htmloListElement, ~options: pointerLockOptions=?) => Promise.t =
- "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmloListElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmloListElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmloListElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmloListElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmloListElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmloListElement
+})
diff --git a/src/DOMAPI/HTMLObjectElement.js b/src/DOMAPI/HTMLObjectElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLObjectElement.js
+++ b/src/DOMAPI/HTMLObjectElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLObjectElement.res b/src/DOMAPI/HTMLObjectElement.res
index 8e4874d9..e412bdc0 100644
--- a/src/DOMAPI/HTMLObjectElement.res
+++ b/src/DOMAPI/HTMLObjectElement.res
@@ -1,696 +1,8 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlObjectElement => htmlElement = "%identity"
-external asElement: htmlObjectElement => element = "%identity"
-external asNode: htmlObjectElement => node = "%identity"
-external asEventTarget: htmlObjectElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlObjectElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlObjectElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlObjectElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlObjectElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlObjectElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlObjectElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlObjectElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlObjectElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlObjectElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlObjectElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlObjectElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlObjectElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlObjectElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlObjectElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlObjectElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlObjectElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlObjectElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlObjectElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlObjectElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlObjectElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlObjectElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlObjectElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlObjectElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlObjectElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlObjectElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlObjectElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlObjectElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlObjectElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlObjectElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlObjectElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlObjectElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlObjectElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlObjectElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlObjectElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlObjectElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlObjectElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlObjectElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlObjectElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlObjectElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlObjectElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlObjectElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlObjectElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlObjectElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlObjectElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlObjectElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlObjectElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlObjectElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlObjectElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlObjectElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlObjectElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlObjectElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlObjectElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlObjectElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlObjectElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlObjectElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlObjectElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlObjectElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlObjectElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlObjectElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlObjectElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlObjectElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlObjectElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlObjectElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlObjectElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlObjectElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlObjectElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlObjectElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlObjectElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlObjectElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlObjectElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlObjectElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlObjectElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlObjectElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlObjectElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlObjectElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlObjectElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlObjectElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlObjectElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlObjectElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlObjectElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlObjectElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlObjectElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlObjectElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlObjectElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlObjectElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlObjectElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlObjectElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlObjectElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlObjectElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlObjectElement
+})
@send
external getSVGDocument: htmlObjectElement => document = "getSVGDocument"
diff --git a/src/DOMAPI/HTMLOptGroupElement.js b/src/DOMAPI/HTMLOptGroupElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLOptGroupElement.js
+++ b/src/DOMAPI/HTMLOptGroupElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLOptGroupElement.res b/src/DOMAPI/HTMLOptGroupElement.res
index 3b6bd19d..c79a8f9a 100644
--- a/src/DOMAPI/HTMLOptGroupElement.res
+++ b/src/DOMAPI/HTMLOptGroupElement.res
@@ -1,697 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlOptGroupElement => htmlElement = "%identity"
-external asElement: htmlOptGroupElement => element = "%identity"
-external asNode: htmlOptGroupElement => node = "%identity"
-external asEventTarget: htmlOptGroupElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlOptGroupElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlOptGroupElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlOptGroupElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlOptGroupElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlOptGroupElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlOptGroupElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlOptGroupElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlOptGroupElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlOptGroupElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlOptGroupElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlOptGroupElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlOptGroupElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlOptGroupElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlOptGroupElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlOptGroupElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlOptGroupElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlOptGroupElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlOptGroupElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlOptGroupElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (
- htmlOptGroupElement,
- ~options: getAnimationsOptions=?,
-) => array = "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlOptGroupElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlOptGroupElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlOptGroupElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlOptGroupElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlOptGroupElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlOptGroupElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlOptGroupElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlOptGroupElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlOptGroupElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlOptGroupElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlOptGroupElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlOptGroupElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlOptGroupElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlOptGroupElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlOptGroupElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlOptGroupElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlOptGroupElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlOptGroupElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlOptGroupElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlOptGroupElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlOptGroupElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlOptGroupElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlOptGroupElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlOptGroupElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlOptGroupElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlOptGroupElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlOptGroupElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlOptGroupElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlOptGroupElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlOptGroupElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlOptGroupElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlOptGroupElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlOptGroupElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlOptGroupElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlOptGroupElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlOptGroupElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlOptGroupElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlOptGroupElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlOptGroupElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlOptGroupElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlOptGroupElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlOptGroupElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlOptGroupElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlOptGroupElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlOptGroupElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlOptGroupElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlOptGroupElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlOptGroupElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlOptGroupElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlOptGroupElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlOptGroupElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlOptGroupElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlOptGroupElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlOptGroupElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlOptGroupElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlOptGroupElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (
- htmlOptGroupElement,
- ~options: fullscreenOptions=?,
-) => Promise.t = "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlOptGroupElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlOptGroupElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlOptGroupElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlOptGroupElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlOptGroupElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlOptGroupElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlOptGroupElement,
- ~options: pointerLockOptions=?,
-) => Promise.t = "requestPointerLock"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
-*/
-@send
-external click: htmlOptGroupElement => unit = "click"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
-*/
-@send
-external attachInternals: htmlOptGroupElement => elementInternals = "attachInternals"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
-*/
-@send
-external showPopover: htmlOptGroupElement => unit = "showPopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
-*/
-@send
-external hidePopover: htmlOptGroupElement => unit = "hidePopover"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
-*/
-@send
-external togglePopover: (htmlOptGroupElement, ~force: bool=?) => bool = "togglePopover"
+include HTMLElement.Impl({
+ type t = htmlOptGroupElement
+})
diff --git a/src/DOMAPI/HTMLOptionElement.js b/src/DOMAPI/HTMLOptionElement.js
index d856702b..816311bf 100644
--- a/src/DOMAPI/HTMLOptionElement.js
+++ b/src/DOMAPI/HTMLOptionElement.js
@@ -1,2 +1,7 @@
// Generated by ReScript, PLEASE EDIT WITH CARE
-/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
+
+import * as HTMLElement$WebApi from "./HTMLElement.js";
+
+HTMLElement$WebApi.Impl({});
+
+/* Not a pure module */
diff --git a/src/DOMAPI/HTMLOptionElement.res b/src/DOMAPI/HTMLOptionElement.res
index 45d5c442..d147c61e 100644
--- a/src/DOMAPI/HTMLOptionElement.res
+++ b/src/DOMAPI/HTMLOptionElement.res
@@ -1,693 +1,5 @@
open DOMAPI
-open Prelude
-open EventAPI
-external asHTMLElement: htmlOptionElement => htmlElement = "%identity"
-external asElement: htmlOptionElement => element = "%identity"
-external asNode: htmlOptionElement => node = "%identity"
-external asEventTarget: htmlOptionElement => eventTarget = "%identity"
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus)
-*/
-@send
-external focus: (htmlOptionElement, ~options: focusOptions=?) => unit = "focus"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur)
-*/
-@send
-external blur: htmlOptionElement => unit = "blur"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend: (htmlOptionElement, node) => unit = "prepend"
-
-/**
-Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/prepend)
-*/
-@send
-external prepend2: (htmlOptionElement, string) => unit = "prepend"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append: (htmlOptionElement, node) => unit = "append"
-
-/**
-Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/append)
-*/
-@send
-external append2: (htmlOptionElement, string) => unit = "append"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren: (htmlOptionElement, node) => unit = "replaceChildren"
-
-/**
-Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
-*/
-@send
-external replaceChildren2: (htmlOptionElement, string) => unit = "replaceChildren"
-
-/**
-Returns the first element that is a descendant of node that matches selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
-*/
-@send
-external querySelector: (htmlOptionElement, string) => element = "querySelector"
-
-/**
-Returns all element descendants of node that match selectors.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
-*/
-@send
-external querySelectorAll: (htmlOptionElement, string) => nodeList = "querySelectorAll"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before: (htmlOptionElement, node) => unit = "before"
-
-/**
-Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
-*/
-@send
-external before2: (htmlOptionElement, string) => unit = "before"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after: (htmlOptionElement, node) => unit = "after"
-
-/**
-Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
-*/
-@send
-external after2: (htmlOptionElement, string) => unit = "after"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith: (htmlOptionElement, node) => unit = "replaceWith"
-
-/**
-Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
-
-Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
-*/
-@send
-external replaceWith2: (htmlOptionElement, string) => unit = "replaceWith"
-
-/**
-Removes node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
-*/
-@send
-external remove: htmlOptionElement => unit = "remove"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate: (htmlOptionElement, ~keyframes: any, ~options: float=?) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/animate)
-*/
-@send
-external animate2: (
- htmlOptionElement,
- ~keyframes: any,
- ~options: keyframeAnimationOptions=?,
-) => animation = "animate"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAnimations)
-*/
-@send
-external getAnimations: (htmlOptionElement, ~options: getAnimationsOptions=?) => array =
- "getAnimations"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener: (
- htmlOptionElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: addEventListenerOptions=?,
-) => unit = "addEventListener"
-
-/**
-Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
-
-The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
-
-When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
-
-When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
-
-When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
-
-If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
-
-The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
-*/
-@send
-external addEventListener2: (
- htmlOptionElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "addEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener: (
- htmlOptionElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: eventListenerOptions=?,
-) => unit = "removeEventListener"
-
-/**
-Removes the event listener in target's event listener list with the same type, callback, and options.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
-*/
-@send
-external removeEventListener2: (
- htmlOptionElement,
- ~type_: eventType,
- ~callback: eventListener<'event>,
- ~options: bool=?,
-) => unit = "removeEventListener"
-
-/**
-Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
-*/
-@send
-external dispatchEvent: (htmlOptionElement, event) => bool = "dispatchEvent"
-
-/**
-Returns node's root.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
-*/
-@send
-external getRootNode: (htmlOptionElement, ~options: getRootNodeOptions=?) => node = "getRootNode"
-
-/**
-Returns whether node has children.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
-*/
-@send
-external hasChildNodes: htmlOptionElement => bool = "hasChildNodes"
-
-/**
-Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/normalize)
-*/
-@send
-external normalize: htmlOptionElement => unit = "normalize"
-
-/**
-Returns a copy of node. If deep is true, the copy also includes the node's descendants.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
-*/
-@send
-external cloneNode: (htmlOptionElement, ~deep: bool=?) => node = "cloneNode"
-
-/**
-Returns whether node and otherNode have the same properties.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
-*/
-@send
-external isEqualNode: (htmlOptionElement, node) => bool = "isEqualNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
-*/
-@send
-external isSameNode: (htmlOptionElement, node) => bool = "isSameNode"
-
-/**
-Returns a bitmask indicating the position of other relative to node.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
-*/
-@send
-external compareDocumentPosition: (htmlOptionElement, node) => int = "compareDocumentPosition"
-
-/**
-Returns true if other is an inclusive descendant of node, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/contains)
-*/
-@send
-external contains: (htmlOptionElement, node) => bool = "contains"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
-*/
-@send
-external lookupPrefix: (htmlOptionElement, string) => string = "lookupPrefix"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
-*/
-@send
-external lookupNamespaceURI: (htmlOptionElement, string) => string = "lookupNamespaceURI"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
-*/
-@send
-external isDefaultNamespace: (htmlOptionElement, string) => bool = "isDefaultNamespace"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
-*/
-@send
-external insertBefore: (htmlOptionElement, 't, ~child: node) => 't = "insertBefore"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
-*/
-@send
-external appendChild: (htmlOptionElement, 't) => 't = "appendChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
-*/
-@send
-external replaceChild: (htmlOptionElement, ~node: node, 't) => 't = "replaceChild"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
-*/
-@send
-external removeChild: (htmlOptionElement, 't) => 't = "removeChild"
-
-/**
-Returns true if element has attributes, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
-*/
-@send
-external hasAttributes: htmlOptionElement => bool = "hasAttributes"
-
-/**
-Returns the qualified names of all element's attributes. Can contain duplicates.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
-*/
-@send
-external getAttributeNames: htmlOptionElement => array = "getAttributeNames"
-
-/**
-Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
-*/
-@send
-external getAttribute: (htmlOptionElement, string) => string = "getAttribute"
-
-/**
-Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
-*/
-@send
-external getAttributeNS: (htmlOptionElement, ~namespace: string, ~localName: string) => string =
- "getAttributeNS"
-
-/**
-Sets the value of element's first attribute whose qualified name is qualifiedName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
-*/
-@send
-external setAttribute: (htmlOptionElement, ~qualifiedName: string, ~value: string) => unit =
- "setAttribute"
-
-/**
-Sets the value of element's attribute whose namespace is namespace and local name is localName to value.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
-*/
-@send
-external setAttributeNS: (
- htmlOptionElement,
- ~namespace: string,
- ~qualifiedName: string,
- ~value: string,
-) => unit = "setAttributeNS"
-
-/**
-Removes element's first attribute whose qualified name is qualifiedName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
-*/
-@send
-external removeAttribute: (htmlOptionElement, string) => unit = "removeAttribute"
-
-/**
-Removes element's attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
-*/
-@send
-external removeAttributeNS: (htmlOptionElement, ~namespace: string, ~localName: string) => unit =
- "removeAttributeNS"
-
-/**
-If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.
-
-Returns true if qualifiedName is now present, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
-*/
-@send
-external toggleAttribute: (htmlOptionElement, ~qualifiedName: string, ~force: bool=?) => bool =
- "toggleAttribute"
-
-/**
-Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
-*/
-@send
-external hasAttribute: (htmlOptionElement, string) => bool = "hasAttribute"
-
-/**
-Returns true if element has an attribute whose namespace is namespace and local name is localName.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
-*/
-@send
-external hasAttributeNS: (htmlOptionElement, ~namespace: string, ~localName: string) => bool =
- "hasAttributeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
-*/
-@send
-external getAttributeNode: (htmlOptionElement, string) => attr = "getAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
-*/
-@send
-external getAttributeNodeNS: (htmlOptionElement, ~namespace: string, ~localName: string) => attr =
- "getAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
-*/
-@send
-external setAttributeNode: (htmlOptionElement, attr) => attr = "setAttributeNode"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
-*/
-@send
-external setAttributeNodeNS: (htmlOptionElement, attr) => attr = "setAttributeNodeNS"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
-*/
-@send
-external removeAttributeNode: (htmlOptionElement, attr) => attr = "removeAttributeNode"
-
-/**
-Creates a shadow root for element and returns it.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
-*/
-@send
-external attachShadow: (htmlOptionElement, shadowRootInit) => shadowRoot = "attachShadow"
-
-/**
-Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/closest)
-*/
-@send
-external closest: (htmlOptionElement, string) => 'e = "closest"
-
-/**
-Returns true if matching selectors against element's root yields element, and false otherwise.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/matches)
-*/
-@send
-external matches: (htmlOptionElement, string) => bool = "matches"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
-*/
-@send
-external getElementsByTagName: (htmlOptionElement, string) => htmlCollection =
- "getElementsByTagName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
-*/
-@send
-external getElementsByTagNameNS: (
- htmlOptionElement,
- ~namespace: string,
- ~localName: string,
-) => htmlCollectionOf = "getElementsByTagNameNS"
-
-/**
-Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
-*/
-@send
-external getElementsByClassName: (htmlOptionElement, string) => htmlCollectionOf =
- "getElementsByClassName"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
-*/
-@send
-external insertAdjacentElement: (
- htmlOptionElement,
- ~where: insertPosition,
- ~element: element,
-) => element = "insertAdjacentElement"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
-*/
-@send
-external insertAdjacentText: (htmlOptionElement, ~where: insertPosition, ~data: string) => unit =
- "insertAdjacentText"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
-*/
-@send
-external computedStyleMap: htmlOptionElement => stylePropertyMapReadOnly = "computedStyleMap"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
-*/
-@send
-external getClientRects: htmlOptionElement => domRectList = "getClientRects"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
-*/
-@send
-external getBoundingClientRect: htmlOptionElement => domRect = "getBoundingClientRect"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
-*/
-@send
-external checkVisibility: (htmlOptionElement, ~options: checkVisibilityOptions=?) => bool =
- "checkVisibility"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView: (htmlOptionElement, ~arg: bool=?) => unit = "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
-*/
-@send
-external scrollIntoView2: (htmlOptionElement, ~arg: scrollIntoViewOptions=?) => unit =
- "scrollIntoView"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll: (htmlOptionElement, ~options: scrollToOptions=?) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scroll)
-*/
-@send
-external scroll2: (htmlOptionElement, ~x: float, ~y: float) => unit = "scroll"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo: (htmlOptionElement, ~options: scrollToOptions=?) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
-*/
-@send
-external scrollTo2: (htmlOptionElement, ~x: float, ~y: float) => unit = "scrollTo"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy: (htmlOptionElement, ~options: scrollToOptions=?) => unit = "scrollBy"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
-*/
-@send
-external scrollBy2: (htmlOptionElement, ~x: float, ~y: float) => unit = "scrollBy"
-
-/**
-Displays element fullscreen and resolves promise when done.
-
-When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference.
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
-*/
-@send
-external requestFullscreen: (htmlOptionElement, ~options: fullscreenOptions=?) => Promise.t =
- "requestFullscreen"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
-*/
-@send
-external setHTMLUnsafe: (htmlOptionElement, string) => unit = "setHTMLUnsafe"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
-*/
-@send
-external getHTML: (htmlOptionElement, ~options: getHTMLOptions=?) => string = "getHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
-*/
-@send
-external insertAdjacentHTML: (
- htmlOptionElement,
- ~position: insertPosition,
- ~string: string,
-) => unit = "insertAdjacentHTML"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
-*/
-@send
-external setPointerCapture: (htmlOptionElement, int) => unit = "setPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
-*/
-@send
-external releasePointerCapture: (htmlOptionElement, int) => unit = "releasePointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
-*/
-@send
-external hasPointerCapture: (htmlOptionElement, int) => bool = "hasPointerCapture"
-
-/**
-[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
-*/
-@send
-external requestPointerLock: (
- htmlOptionElement,
- ~options: pointerLockOptions=?,
-) => Promise.t