diff --git a/rescript.json b/rescript.json index 0b45fbdf..050c31e5 100644 --- a/rescript.json +++ b/rescript.json @@ -95,6 +95,7 @@ "DOMRectReadOnly", "DOMStringList", "DOMTokenList", + "DOMTree", "Document", "DocumentFragment", "DocumentTimeline", diff --git a/src/DOM/DOMStringMap.res b/src/DOM/DOMStringMap.res new file mode 100644 index 00000000..639c8bce --- /dev/null +++ b/src/DOM/DOMStringMap.res @@ -0,0 +1,5 @@ +/** +Used by the dataset HTML attribute to represent data for custom attributes added to elements. +[See DOMStringMap on MDN](https://developer.mozilla.org/docs/Web/API/DOMStringMap) +*/ +type t = private {} diff --git a/src/DOM/DOMTree.res b/src/DOM/DOMTree.res new file mode 100644 index 00000000..fc81c0cb --- /dev/null +++ b/src/DOM/DOMTree.res @@ -0,0 +1,21 @@ +/** + * Compatibility aliases for the recursive DOM interface family. + * + * DOMTree and these public type names are permanent; only the aliases below + * are temporary. PRs #302 through #308 migrate consumers from DOM/DomTypes, + * then PR #310 replaces the aliases in place with concrete recursive + * definitions and removes their old DOM/DomTypes definitions. + */ +type shadowRootMode = DOM.shadowRootMode +type slotAssignmentMode = DOM.slotAssignmentMode +type customStateSet = DOM.customStateSet + +type node = DOM.node +type element = DOM.element +type documentFragment = DOM.documentFragment +type shadowRoot = DOM.shadowRoot +type htmlElement = DOM.htmlElement +type htmlFormElement = DOM.htmlFormElement +type htmlFormControlsCollection = DOM.htmlFormControlsCollection +type htmlSlotElement = DOM.htmlSlotElement +type elementInternals = DOM.elementInternals diff --git a/src/DOM/HTMLCollection.res b/src/DOM/HTMLCollection.res index 5a387983..94861cdd 100644 --- a/src/DOM/HTMLCollection.res +++ b/src/DOM/HTMLCollection.res @@ -1,13 +1,25 @@ +/** +A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list. +[See HTMLCollection on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection) +*/ +type t<'item> = private { + /** + Sets or retrieves the number of objects in a collection. + [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length) + */ + length: int, +} + /** Retrieves an object from various collections. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item) */ @send -external item: (DomTypes.htmlCollection<'t>, int) => 't = "item" +external item: (t<'item>, int) => 'item = "item" /** Retrieves a select object or an object from an options collection. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem) */ @send -external namedItem: (DomTypes.htmlCollection<'t>, string) => 't = "namedItem" +external namedItem: (t<'item>, string) => 'item = "namedItem"