@pfern/elements 0.1.4 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/elements.js CHANGED
@@ -21,13 +21,13 @@ const svgNS = 'http://www.w3.org/2000/svg'
21
21
  /**
22
22
  * Maps vnode instances to their current root DOM element,
23
23
  * allowing accurate replacement when the same vnode is re-invoked.
24
- *
25
- * @type {WeakMap<any[], HTMLElement>}
26
24
  */
27
25
  const rootMap = new WeakMap()
28
26
 
29
27
  const isNodeEnv = typeof document === 'undefined'
30
28
 
29
+ let componentUpdateDepth = 0
30
+
31
31
  /**
32
32
  * Determines whether two nodes have changed enough to require replacement.
33
33
  * Compares type, string value, or element tag.
@@ -187,8 +187,12 @@ const renderTree = (node, isRoot = true) => {
187
187
  }
188
188
 
189
189
  if (Array.isArray(node) && node[0] === 'wrap') {
190
- const [_tag, _props, child] = node
191
- return renderTree(child, true)
190
+ const [_tag, props = {}, child] = node
191
+ const el = renderTree(child, true)
192
+ if (props && typeof props === 'object' && props.__instance) {
193
+ rootMap.set(props.__instance, el)
194
+ }
195
+ return el
192
196
  }
193
197
 
194
198
  const [tag, props = {}, ...children] = node
@@ -262,8 +266,8 @@ const applyPatch = (parent, patch, index = 0) => {
262
266
  * Renders a new vnode into the DOM. If this vnode was rendered before,
263
267
  * reuses the previous root and applies a patch. Otherwise, performs initial mount.
264
268
  *
265
- * @param {HTMLElement} mount - The container to render into
266
- * @param {any[]} nextVNode - The declarative vnode array to render
269
+ * @param {any[]} vtree - The declarative vnode array to render
270
+ * @param {HTMLElement} container - The container to render into
267
271
  */
268
272
  export const render = (vtree, container = null) => {
269
273
  const target =
@@ -300,17 +304,25 @@ export const render = (vtree, container = null) => {
300
304
  * @returns {(...args: any[]) => any} - A callable component that can manage its own subtree.
301
305
  */
302
306
  export const component = fn => {
307
+ const instance = {}
303
308
  return (...args) => {
304
309
  try {
310
+ const prevEl = rootMap.get(instance)
311
+ const canUpdateInPlace = !!prevEl?.parentNode && componentUpdateDepth === 0
312
+
313
+ componentUpdateDepth++
305
314
  const vnode = fn(...args)
306
- const prevEl = rootMap.get(vnode)
307
- if (prevEl?.parentNode) {
308
- const replacement = renderTree(['wrap', {}, vnode], true)
315
+ componentUpdateDepth--
316
+
317
+ if (canUpdateInPlace) {
318
+ const replacement = renderTree(['wrap', { __instance: instance }, vnode], true)
309
319
  prevEl.parentNode.replaceChild(replacement, prevEl)
310
320
  return replacement.__vnode
311
321
  }
312
- return ['wrap', {}, vnode]
322
+
323
+ return ['wrap', { __instance: instance }, vnode]
313
324
  } catch (err) {
325
+ componentUpdateDepth = Math.max(0, componentUpdateDepth - 1)
314
326
  console.error('Component error:', err)
315
327
  return ['div', {}, `Error: ${err.message}`]
316
328
  }
@@ -460,7 +472,6 @@ const htmlTagNames = [
460
472
 
461
473
  const svgTagNames = [
462
474
  // Animation elements
463
- 'a',
464
475
  'animate',
465
476
  'animateMotion',
466
477
  'animateTransform',
@@ -569,18 +580,19 @@ const isPropsObject = x =>
569
580
  *
570
581
  * The following helpers are included:
571
582
  * `div`, `span`, `button`, `svg`, `circle`, etc.
572
- *
573
- * @typedef {function([propsOrChild], ...children): Array} ElementHelper
574
- *
575
- * @type {Record<string, ElementHelper>}
576
583
  */
577
584
  export const elements = tagNames.reduce(
578
585
  (acc, tag) => ({
579
586
  ...acc,
580
- [tag]: (propsOrChild, ...children) => {
581
- const props = isPropsObject(propsOrChild) ? propsOrChild : {}
582
- const actualChildren =
583
- props === propsOrChild ? children : [propsOrChild, ...children]
587
+ [tag]: (...args) => {
588
+ const hasFirstArg = args.length > 0
589
+ const [propsOrChild, ...children] = args
590
+ const props = hasFirstArg && isPropsObject(propsOrChild) ? propsOrChild : {}
591
+ const actualChildren = !hasFirstArg
592
+ ? []
593
+ : props === propsOrChild
594
+ ? children
595
+ : [propsOrChild, ...children]
584
596
  return [tag, props, ...actualChildren]
585
597
  }
586
598
  }),
@@ -594,7 +606,6 @@ export const elements = tagNames.reduce(
594
606
  * Represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.
595
607
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/html
596
608
  *
597
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLHtmlElement}
598
609
  */
599
610
  export const html = elements.html
600
611
 
@@ -603,7 +614,6 @@ export const html = elements.html
603
614
  * Specifies the base URL to use for all relative URLs in a document. There can be only one such element in a document.
604
615
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/base
605
616
  *
606
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLBaseElement}
607
617
  */
608
618
  export const base = elements.base
609
619
 
@@ -612,7 +622,6 @@ export const base = elements.base
612
622
  * Contains machine-readable information (metadata) about the document, like its title, scripts, and style sheets.
613
623
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/head
614
624
  *
615
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLHeadElement}
616
625
  */
617
626
  export const head = elements.head
618
627
 
@@ -621,7 +630,6 @@ export const head = elements.head
621
630
  * Specifies relationships between the current document and an external resource. This element is most commonly used to link to CSS but is also used to establish site icons (both "favicon" style icons and icons for the home screen and apps on mobile devices) among other things.
622
631
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/link
623
632
  *
624
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLLinkElement}
625
633
  */
626
634
  export const link = elements.link
627
635
 
@@ -630,7 +638,6 @@ export const link = elements.link
630
638
  * Represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> and <title>.
631
639
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta
632
640
  *
633
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLMetaElement}
634
641
  */
635
642
  export const meta = elements.meta
636
643
 
@@ -639,7 +646,6 @@ export const meta = elements.meta
639
646
  * Contains style information for a document or part of a document. It contains CSS, which is applied to the contents of the document containing this element.
640
647
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/style
641
648
  *
642
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLStyleElement}
643
649
  */
644
650
  export const style = elements.style
645
651
 
@@ -648,7 +654,6 @@ export const style = elements.style
648
654
  * Defines the document's title that is shown in a browser's title bar or a page's tab. It only contains text; HTML tags within the element, if any, are also treated as plain text.
649
655
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/title
650
656
  *
651
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTitleElement}
652
657
  */
653
658
  export const title = elements.title
654
659
 
@@ -657,7 +662,6 @@ export const title = elements.title
657
662
  * Represents the content of an HTML document. There can be only one such element in a document.
658
663
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/body
659
664
  *
660
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLBodyElement}
661
665
  */
662
666
  export const body = elements.body
663
667
 
@@ -666,7 +670,6 @@ export const body = elements.body
666
670
  * Indicates that the enclosed HTML provides contact information for a person or people, or for an organization.
667
671
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/address
668
672
  *
669
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLAddressElement}
670
673
  */
671
674
  export const address = elements.address
672
675
 
@@ -675,7 +678,6 @@ export const address = elements.address
675
678
  * Represents a self-contained composition in a document, page, application, or site, which is intended to be independently distributable or reusable (e.g., in syndication). Examples include a forum post, a magazine or newspaper article, a blog entry, a product card, a user-submitted comment, an interactive widget or gadget, or any other independent item of content.
676
679
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/article
677
680
  *
678
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLArticleElement}
679
681
  */
680
682
  export const article = elements.article
681
683
 
@@ -684,7 +686,6 @@ export const article = elements.article
684
686
  * Represents a portion of a document whose content is only indirectly related to the document's main content. Asides are frequently presented as sidebars or call-out boxes.
685
687
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/aside
686
688
  *
687
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLAsideElement}
688
689
  */
689
690
  export const aside = elements.aside
690
691
 
@@ -693,7 +694,6 @@ export const aside = elements.aside
693
694
  * Represents a footer for its nearest ancestor sectioning content or sectioning root element. A <footer> typically contains information about the author of the section, copyright data, or links to related documents.
694
695
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/footer
695
696
  *
696
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLFooterElement}
697
697
  */
698
698
  export const footer = elements.footer
699
699
 
@@ -702,7 +702,6 @@ export const footer = elements.footer
702
702
  * Represents introductory content, typically a group of introductory or navigational aids. It may contain some heading elements but also a logo, a search form, an author name, and other elements.
703
703
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/header
704
704
  *
705
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLHeaderElement}
706
705
  */
707
706
  export const header = elements.header
708
707
 
@@ -711,7 +710,6 @@ export const header = elements.header
711
710
  * There are six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
712
711
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/h1
713
712
  *
714
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLH6Element}
715
713
  */
716
714
  export const h1 = elements.h1
717
715
 
@@ -720,7 +718,6 @@ export const h1 = elements.h1
720
718
  * There are six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
721
719
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/h2
722
720
  *
723
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLH6Element}
724
721
  */
725
722
  export const h2 = elements.h2
726
723
 
@@ -729,7 +726,6 @@ export const h2 = elements.h2
729
726
  * There are six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
730
727
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/h3
731
728
  *
732
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLH6Element}
733
729
  */
734
730
  export const h3 = elements.h3
735
731
 
@@ -738,7 +734,6 @@ export const h3 = elements.h3
738
734
  * There are six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
739
735
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/h4
740
736
  *
741
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLH6Element}
742
737
  */
743
738
  export const h4 = elements.h4
744
739
 
@@ -747,7 +742,6 @@ export const h4 = elements.h4
747
742
  * There are six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
748
743
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/h5
749
744
  *
750
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLH6Element}
751
745
  */
752
746
  export const h5 = elements.h5
753
747
 
@@ -756,7 +750,6 @@ export const h5 = elements.h5
756
750
  * There are six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
757
751
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/h6
758
752
  *
759
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLH6Element}
760
753
  */
761
754
  export const h6 = elements.h6
762
755
 
@@ -765,7 +758,6 @@ export const h6 = elements.h6
765
758
  * Represents a heading grouped with any secondary content, such as subheadings, an alternative title, or a tagline.
766
759
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/hgroup
767
760
  *
768
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLHgroupElement}
769
761
  */
770
762
  export const hgroup = elements.hgroup
771
763
 
@@ -774,7 +766,6 @@ export const hgroup = elements.hgroup
774
766
  * Represents the dominant content of the body of a document. The main content area consists of content that is directly related to or expands upon the central topic of a document, or the central functionality of an application.
775
767
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/main
776
768
  *
777
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLMainElement}
778
769
  */
779
770
  export const main = elements.main
780
771
 
@@ -783,7 +774,6 @@ export const main = elements.main
783
774
  * Represents a section of a page whose purpose is to provide navigation links, either within the current document or to other documents. Common examples of navigation sections are menus, tables of contents, and indexes.
784
775
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/nav
785
776
  *
786
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLNavElement}
787
777
  */
788
778
  export const nav = elements.nav
789
779
 
@@ -792,7 +782,6 @@ export const nav = elements.nav
792
782
  * Represents a generic standalone section of a document, which doesn't have a more specific semantic element to represent it. Sections should always have a heading, with very few exceptions.
793
783
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/section
794
784
  *
795
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSectionElement}
796
785
  */
797
786
  export const section = elements.section
798
787
 
@@ -801,7 +790,6 @@ export const section = elements.section
801
790
  * Represents a part that contains a set of form controls or other content related to performing a search or filtering operation.
802
791
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/search
803
792
  *
804
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSearchElement}
805
793
  */
806
794
  export const search = elements.search
807
795
 
@@ -810,7 +798,6 @@ export const search = elements.search
810
798
  * Indicates that the enclosed text is an extended quotation. Usually, this is rendered visually by indentation. A URL for the source of the quotation may be given using the cite attribute, while a text representation of the source can be given using the <cite> element.
811
799
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/blockquote
812
800
  *
813
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLBlockquoteElement}
814
801
  */
815
802
  export const blockquote = elements.blockquote
816
803
 
@@ -819,7 +806,6 @@ export const blockquote = elements.blockquote
819
806
  * Provides the description, definition, or value for the preceding term (<dt>) in a description list (<dl>).
820
807
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dd
821
808
  *
822
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDdElement}
823
809
  */
824
810
  export const dd = elements.dd
825
811
 
@@ -828,7 +814,6 @@ export const dd = elements.dd
828
814
  * The generic container for flow content. It has no effect on the content or layout until styled in some way using CSS (e.g., styling is directly applied to it, or some kind of layout model like flexbox is applied to its parent element).
829
815
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/div
830
816
  *
831
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDivElement}
832
817
  */
833
818
  export const div = elements.div
834
819
 
@@ -837,7 +822,6 @@ export const div = elements.div
837
822
  * Represents a description list. The element encloses a list of groups of terms (specified using the <dt> element) and descriptions (provided by <dd> elements). Common uses for this element are to implement a glossary or to display metadata (a list of key-value pairs).
838
823
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dl
839
824
  *
840
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDlElement}
841
825
  */
842
826
  export const dl = elements.dl
843
827
 
@@ -846,7 +830,6 @@ export const dl = elements.dl
846
830
  * Specifies a term in a description or definition list, and as such must be used inside a <dl> element. It is usually followed by a <dd> element; however, multiple <dt> elements in a row indicate several terms that are all defined by the immediate next <dd> element.
847
831
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dt
848
832
  *
849
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDtElement}
850
833
  */
851
834
  export const dt = elements.dt
852
835
 
@@ -855,7 +838,6 @@ export const dt = elements.dt
855
838
  * Represents a caption or legend describing the rest of the contents of its parent <figure> element.
856
839
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/figcaption
857
840
  *
858
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLFigcaptionElement}
859
841
  */
860
842
  export const figcaption = elements.figcaption
861
843
 
@@ -864,7 +846,6 @@ export const figcaption = elements.figcaption
864
846
  * Represents self-contained content, potentially with an optional caption, which is specified using the <figcaption> element. The figure, its caption, and its contents are referenced as a single unit.
865
847
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/figure
866
848
  *
867
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLFigureElement}
868
849
  */
869
850
  export const figure = elements.figure
870
851
 
@@ -873,7 +854,6 @@ export const figure = elements.figure
873
854
  * Represents a thematic break between paragraph-level elements: for example, a change of scene in a story, or a shift of topic within a section.
874
855
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/hr
875
856
  *
876
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLHrElement}
877
857
  */
878
858
  export const hr = elements.hr
879
859
 
@@ -882,7 +862,6 @@ export const hr = elements.hr
882
862
  * Represents an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.
883
863
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/li
884
864
  *
885
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLLiElement}
886
865
  */
887
866
  export const li = elements.li
888
867
 
@@ -891,7 +870,6 @@ export const li = elements.li
891
870
  * A semantic alternative to <ul>, but treated by browsers (and exposed through the accessibility tree) as no different than <ul>. It represents an unordered list of items (which are represented by <li> elements).
892
871
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/menu
893
872
  *
894
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLMenuElement}
895
873
  */
896
874
  export const menu = elements.menu
897
875
 
@@ -900,7 +878,6 @@ export const menu = elements.menu
900
878
  * Represents an ordered list of items — typically rendered as a numbered list.
901
879
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ol
902
880
  *
903
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLOlElement}
904
881
  */
905
882
  export const ol = elements.ol
906
883
 
@@ -909,7 +886,6 @@ export const ol = elements.ol
909
886
  * Represents a paragraph. Paragraphs are usually represented in visual media as blocks of text separated from adjacent blocks by blank lines and/or first-line indentation, but HTML paragraphs can be any structural grouping of related content, such as images or form fields.
910
887
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/p
911
888
  *
912
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLPElement}
913
889
  */
914
890
  export const p = elements.p
915
891
 
@@ -918,7 +894,6 @@ export const p = elements.p
918
894
  * Represents preformatted text which is to be presented exactly as written in the HTML file. The text is typically rendered using a non-proportional, or monospaced, font. Whitespace inside this element is displayed as written.
919
895
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/pre
920
896
  *
921
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLPreElement}
922
897
  */
923
898
  export const pre = elements.pre
924
899
 
@@ -927,7 +902,6 @@ export const pre = elements.pre
927
902
  * Represents an unordered list of items, typically rendered as a bulleted list.
928
903
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ul
929
904
  *
930
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLUlElement}
931
905
  */
932
906
  export const ul = elements.ul
933
907
 
@@ -936,7 +910,6 @@ export const ul = elements.ul
936
910
  * Together with its href attribute, creates a hyperlink to web pages, files, email addresses, locations within the current page, or anything else a URL can address.
937
911
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a
938
912
  *
939
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLAElement}
940
913
  */
941
914
  export const a = elements.a
942
915
 
@@ -945,7 +918,6 @@ export const a = elements.a
945
918
  * Represents an abbreviation or acronym.
946
919
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/abbr
947
920
  *
948
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLAbbrElement}
949
921
  */
950
922
  export const abbr = elements.abbr
951
923
 
@@ -954,7 +926,6 @@ export const abbr = elements.abbr
954
926
  * Used to draw the reader's attention to the element's contents, which are not otherwise granted special importance. This was formerly known as the Boldface element, and most browsers still draw the text in boldface. However, you should not use <b> for styling text or granting importance. If you wish to create boldface text, you should use the CSS font-weight property. If you wish to indicate an element is of special importance, you should use the <strong> element.
955
927
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/b
956
928
  *
957
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLBElement}
958
929
  */
959
930
  export const b = elements.b
960
931
 
@@ -963,7 +934,6 @@ export const b = elements.b
963
934
  * Tells the browser's bidirectional algorithm to treat the text it contains in isolation from its surrounding text. It's particularly useful when a website dynamically inserts some text and doesn't know the directionality of the text being inserted.
964
935
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/bdi
965
936
  *
966
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLBdiElement}
967
937
  */
968
938
  export const bdi = elements.bdi
969
939
 
@@ -972,7 +942,6 @@ export const bdi = elements.bdi
972
942
  * Overrides the current directionality of text, so that the text within is rendered in a different direction.
973
943
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/bdo
974
944
  *
975
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLBdoElement}
976
945
  */
977
946
  export const bdo = elements.bdo
978
947
 
@@ -981,7 +950,6 @@ export const bdo = elements.bdo
981
950
  * Produces a line break in text (carriage-return). It is useful for writing a poem or an address, where the division of lines is significant.
982
951
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/br
983
952
  *
984
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLBrElement}
985
953
  */
986
954
  export const br = elements.br
987
955
 
@@ -990,7 +958,6 @@ export const br = elements.br
990
958
  * Used to mark up the title of a creative work. The reference may be in an abbreviated form according to context-appropriate conventions related to citation metadata.
991
959
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/cite
992
960
  *
993
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLCiteElement}
994
961
  */
995
962
  export const cite = elements.cite
996
963
 
@@ -999,7 +966,6 @@ export const cite = elements.cite
999
966
  * Displays its contents styled in a fashion intended to indicate that the text is a short fragment of computer code. By default, the content text is displayed using the user agent's default monospace font.
1000
967
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/code
1001
968
  *
1002
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLCodeElement}
1003
969
  */
1004
970
  export const code = elements.code
1005
971
 
@@ -1008,7 +974,6 @@ export const code = elements.code
1008
974
  * Links a given piece of content with a machine-readable translation. If the content is time- or date-related, the <time> element must be used.
1009
975
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/data
1010
976
  *
1011
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDataElement}
1012
977
  */
1013
978
  export const data = elements.data
1014
979
 
@@ -1017,7 +982,6 @@ export const data = elements.data
1017
982
  * Used to indicate the term being defined within the context of a definition phrase or sentence. The ancestor <p> element, the <dt>/<dd> pairing, or the nearest section ancestor of the <dfn> element, is considered to be the definition of the term.
1018
983
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dfn
1019
984
  *
1020
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDfnElement}
1021
985
  */
1022
986
  export const dfn = elements.dfn
1023
987
 
@@ -1026,7 +990,6 @@ export const dfn = elements.dfn
1026
990
  * Marks text that has stress emphasis. The <em> element can be nested, with each nesting level indicating a greater degree of emphasis.
1027
991
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/em
1028
992
  *
1029
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLEmElement}
1030
993
  */
1031
994
  export const em = elements.em
1032
995
 
@@ -1035,7 +998,6 @@ export const em = elements.em
1035
998
  * Represents a range of text that is set off from the normal text for some reason, such as idiomatic text, technical terms, and taxonomical designations, among others. Historically, these have been presented using italicized type, which is the original source of the <i> naming of this element.
1036
999
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/i
1037
1000
  *
1038
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLIElement}
1039
1001
  */
1040
1002
  export const i = elements.i
1041
1003
 
@@ -1044,7 +1006,6 @@ export const i = elements.i
1044
1006
  * Represents a span of inline text denoting textual user input from a keyboard, voice input, or any other text entry device. By convention, the user agent defaults to rendering the contents of a <kbd> element using its default monospace font, although this is not mandated by the HTML standard.
1045
1007
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/kbd
1046
1008
  *
1047
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLKbdElement}
1048
1009
  */
1049
1010
  export const kbd = elements.kbd
1050
1011
 
@@ -1053,7 +1014,6 @@ export const kbd = elements.kbd
1053
1014
  * Represents text which is marked or highlighted for reference or notation purposes due to the marked passage's relevance in the enclosing context.
1054
1015
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/mark
1055
1016
  *
1056
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLMarkElement}
1057
1017
  */
1058
1018
  export const mark = elements.mark
1059
1019
 
@@ -1062,7 +1022,6 @@ export const mark = elements.mark
1062
1022
  * Indicates that the enclosed text is a short inline quotation. Most modern browsers implement this by surrounding the text in quotation marks. This element is intended for short quotations that don't require paragraph breaks; for long quotations use the <blockquote> element.
1063
1023
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/q>
1064
1024
  *
1065
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLQElement}
1066
1025
  */
1067
1026
  export const q = elements.q
1068
1027
 
@@ -1071,7 +1030,6 @@ export const q = elements.q
1071
1030
  * Used to provide fall-back parentheses for browsers that do not support the display of ruby annotations using the <ruby> element. One <rp> element should enclose each of the opening and closing parentheses that wrap the <rt> element that contains the annotation's text.
1072
1031
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/rp
1073
1032
  *
1074
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLRpElement}
1075
1033
  */
1076
1034
  export const rp = elements.rp
1077
1035
 
@@ -1080,7 +1038,6 @@ export const rp = elements.rp
1080
1038
  * Specifies the ruby text component of a ruby annotation, which is used to provide pronunciation, translation, or transliteration information for East Asian typography. The <rt> element must always be contained within a <ruby> element.
1081
1039
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/rt
1082
1040
  *
1083
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLRtElement}
1084
1041
  */
1085
1042
  export const rt = elements.rt
1086
1043
 
@@ -1089,7 +1046,6 @@ export const rt = elements.rt
1089
1046
  * Represents small annotations that are rendered above, below, or next to base text, usually used for showing the pronunciation of East Asian characters. It can also be used for annotating other kinds of text, but this usage is less common.
1090
1047
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ruby
1091
1048
  *
1092
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLRubyElement}
1093
1049
  */
1094
1050
  export const ruby = elements.ruby
1095
1051
 
@@ -1098,7 +1054,6 @@ export const ruby = elements.ruby
1098
1054
  * Renders text with a strikethrough, or a line through it. Use the <s> element to represent things that are no longer relevant or no longer accurate. However, <s> is not appropriate when indicating document edits; for that, use the <del> and <ins> elements, as appropriate.
1099
1055
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/s
1100
1056
  *
1101
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSElement}
1102
1057
  */
1103
1058
  export const s = elements.s
1104
1059
 
@@ -1107,7 +1062,6 @@ export const s = elements.s
1107
1062
  * Used to enclose inline text which represents sample (or quoted) output from a computer program. Its contents are typically rendered using the browser's default monospaced font (such as Courier or Lucida Console).
1108
1063
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/samp
1109
1064
  *
1110
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSampElement}
1111
1065
  */
1112
1066
  export const samp = elements.samp
1113
1067
 
@@ -1116,7 +1070,6 @@ export const samp = elements.samp
1116
1070
  * Represents side-comments and small print, like copyright and legal text, independent of its styled presentation. By default, it renders text within it one font size smaller, such as from small to x-small.
1117
1071
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/small
1118
1072
  *
1119
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSmallElement}
1120
1073
  */
1121
1074
  export const small = elements.small
1122
1075
 
@@ -1125,7 +1078,6 @@ export const small = elements.small
1125
1078
  * A generic inline container for phrasing content, which does not inherently represent anything. It can be used to group elements for styling purposes (using the class or id attributes), or because they share attribute values, such as lang. It should be used only when no other semantic element is appropriate. <span> is very much like a div element, but div is a block-level element whereas a <span> is an inline-level element.
1126
1079
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/span
1127
1080
  *
1128
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSpanElement}
1129
1081
  */
1130
1082
  export const span = elements.span
1131
1083
 
@@ -1134,7 +1086,6 @@ export const span = elements.span
1134
1086
  * Indicates that its contents have strong importance, seriousness, or urgency. Browsers typically render the contents in bold type.
1135
1087
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/strong
1136
1088
  *
1137
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLStrongElement}
1138
1089
  */
1139
1090
  export const strong = elements.strong
1140
1091
 
@@ -1143,7 +1094,6 @@ export const strong = elements.strong
1143
1094
  * Specifies inline text which should be displayed as subscript for solely typographical reasons. Subscripts are typically rendered with a lowered baseline using smaller text.
1144
1095
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/sub
1145
1096
  *
1146
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSubElement}
1147
1097
  */
1148
1098
  export const sub = elements.sub
1149
1099
 
@@ -1152,7 +1102,6 @@ export const sub = elements.sub
1152
1102
  * Specifies inline text which is to be displayed as superscript for solely typographical reasons. Superscripts are usually rendered with a raised baseline using smaller text.
1153
1103
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/sup
1154
1104
  *
1155
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSupElement}
1156
1105
  */
1157
1106
  export const sup = elements.sup
1158
1107
 
@@ -1161,7 +1110,6 @@ export const sup = elements.sup
1161
1110
  * Represents a specific period in time. It may include the datetime attribute to translate dates into machine-readable format, allowing for better search engine results or custom features such as reminders.
1162
1111
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time
1163
1112
  *
1164
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTimeElement}
1165
1113
  */
1166
1114
  export const time = elements.time
1167
1115
 
@@ -1170,7 +1118,6 @@ export const time = elements.time
1170
1118
  * Represents a span of inline text which should be rendered in a way that indicates that it has a non-textual annotation. This is rendered by default as a single solid underline but may be altered using CSS.
1171
1119
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/u
1172
1120
  *
1173
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLUElement}
1174
1121
  */
1175
1122
  export const u = elements.u
1176
1123
 
@@ -1179,7 +1126,6 @@ export const u = elements.u
1179
1126
  * Represents the name of a variable in a mathematical expression or a programming context. It's typically presented using an italicized version of the current typeface, although that behavior is browser-dependent.
1180
1127
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/var
1181
1128
  *
1182
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLVarElement}
1183
1129
  */
1184
1130
  export const htmlvar = elements.var
1185
1131
 
@@ -1188,7 +1134,6 @@ export const htmlvar = elements.var
1188
1134
  * Represents a word break opportunity—a position within text where the browser may optionally break a line, though its line-breaking rules would not otherwise create a break at that location.
1189
1135
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/wbr
1190
1136
  *
1191
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLWbrElement}
1192
1137
  */
1193
1138
  export const wbr = elements.wbr
1194
1139
 
@@ -1197,7 +1142,6 @@ export const wbr = elements.wbr
1197
1142
  * Defines an area inside an image map that has predefined clickable areas. An image map allows geometric areas on an image to be associated with hyperlink.
1198
1143
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/area
1199
1144
  *
1200
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLAreaElement}
1201
1145
  */
1202
1146
  export const area = elements.area
1203
1147
 
@@ -1206,7 +1150,6 @@ export const area = elements.area
1206
1150
  * Used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the source element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.
1207
1151
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/audio
1208
1152
  *
1209
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLAudioElement}
1210
1153
  */
1211
1154
  export const audio = elements.audio
1212
1155
 
@@ -1215,7 +1158,6 @@ export const audio = elements.audio
1215
1158
  * Embeds an image into the document.
1216
1159
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img
1217
1160
  *
1218
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLImgElement}
1219
1161
  */
1220
1162
  export const img = elements.img
1221
1163
 
@@ -1224,7 +1166,6 @@ export const img = elements.img
1224
1166
  * Used with <area> elements to define an image map (a clickable link area).
1225
1167
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/map
1226
1168
  *
1227
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLMapElement}
1228
1169
  */
1229
1170
  export const map = elements.map
1230
1171
 
@@ -1233,7 +1174,6 @@ export const map = elements.map
1233
1174
  * Used as a child of the media elements, audio and video. It lets you specify timed text tracks (or time-based data), for example to automatically handle subtitles. The tracks are formatted in WebVTT format (.vtt files)—Web Video Text Tracks.
1234
1175
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/track
1235
1176
  *
1236
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTrackElement}
1237
1177
  */
1238
1178
  export const track = elements.track
1239
1179
 
@@ -1242,7 +1182,6 @@ export const track = elements.track
1242
1182
  * Embeds a media player which supports video playback into the document. You can also use <video> for audio content, but the audio element may provide a more appropriate user experience.
1243
1183
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/video
1244
1184
  *
1245
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLVideoElement}
1246
1185
  */
1247
1186
  export const video = elements.video
1248
1187
 
@@ -1251,7 +1190,6 @@ export const video = elements.video
1251
1190
  * Embeds external content at the specified point in the document. This content is provided by an external application or other source of interactive content such as a browser plug-in.
1252
1191
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/embed
1253
1192
  *
1254
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLEmbedElement}
1255
1193
  */
1256
1194
  export const embed = elements.embed
1257
1195
 
@@ -1260,7 +1198,6 @@ export const embed = elements.embed
1260
1198
  * Represents a nested browsing context, embedding another HTML page into the current one.
1261
1199
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe
1262
1200
  *
1263
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLIframeElement}
1264
1201
  */
1265
1202
  export const iframe = elements.iframe
1266
1203
 
@@ -1269,7 +1206,6 @@ export const iframe = elements.iframe
1269
1206
  * Represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.
1270
1207
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/object
1271
1208
  *
1272
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLObjectElement}
1273
1209
  */
1274
1210
  export const object = elements.object
1275
1211
 
@@ -1278,7 +1214,6 @@ export const object = elements.object
1278
1214
  * Contains zero or more <source> elements and one <img> element to offer alternative versions of an image for different display/device scenarios.
1279
1215
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/picture
1280
1216
  *
1281
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLPictureElement}
1282
1217
  */
1283
1218
  export const picture = elements.picture
1284
1219
 
@@ -1287,7 +1222,6 @@ export const picture = elements.picture
1287
1222
  * Specifies multiple media resources for the picture, the audio element, or the video element. It is a void element, meaning that it has no content and does not have a closing tag. It is commonly used to offer the same media content in multiple file formats in order to provide compatibility with a broad range of browsers given their differing support for image file formats and media file formats.
1288
1223
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source
1289
1224
  *
1290
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSourceElement}
1291
1225
  */
1292
1226
  export const source = elements.source
1293
1227
 
@@ -1296,7 +1230,6 @@ export const source = elements.source
1296
1230
  * Container element to use with either the canvas scripting API or the WebGL API to draw graphics and animations.
1297
1231
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/canvas
1298
1232
  *
1299
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLCanvasElement}
1300
1233
  */
1301
1234
  export const canvas = elements.canvas
1302
1235
 
@@ -1305,7 +1238,6 @@ export const canvas = elements.canvas
1305
1238
  * Defines a section of HTML to be inserted if a script type on the page is unsupported or if scripting is currently turned off in the browser.
1306
1239
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/noscript
1307
1240
  *
1308
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLNoscriptElement}
1309
1241
  */
1310
1242
  export const noscript = elements.noscript
1311
1243
 
@@ -1314,7 +1246,6 @@ export const noscript = elements.noscript
1314
1246
  * Used to embed executable code or data; this is typically used to embed or refer to JavaScript code. The <script> element can also be used with other languages, such as WebGL's GLSL shader programming language and JSON.
1315
1247
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/script
1316
1248
  *
1317
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLScriptElement}
1318
1249
  */
1319
1250
  export const script = elements.script
1320
1251
 
@@ -1323,7 +1254,6 @@ export const script = elements.script
1323
1254
  * Represents a range of text that has been deleted from a document. This can be used when rendering "track changes" or source code diff information, for example. The <ins> element can be used for the opposite purpose: to indicate text that has been added to the document.
1324
1255
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/del
1325
1256
  *
1326
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDelElement}
1327
1257
  */
1328
1258
  export const del = elements.del
1329
1259
 
@@ -1332,7 +1262,6 @@ export const del = elements.del
1332
1262
  * Represents a range of text that has been added to a document. You can use the <del> element to similarly represent a range of text that has been deleted from the document.
1333
1263
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ins
1334
1264
  *
1335
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLInsElement}
1336
1265
  */
1337
1266
  export const ins = elements.ins
1338
1267
 
@@ -1341,7 +1270,6 @@ export const ins = elements.ins
1341
1270
  * Specifies the caption (or title) of a table.
1342
1271
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/caption
1343
1272
  *
1344
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLCaptionElement}
1345
1273
  */
1346
1274
  export const caption = elements.caption
1347
1275
 
@@ -1350,7 +1278,6 @@ export const caption = elements.caption
1350
1278
  * Defines one or more columns in a column group represented by its implicit or explicit parent <colgroup> element. The <col> element is only valid as a child of a <colgroup> element that has no span attribute defined.
1351
1279
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/col
1352
1280
  *
1353
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLColElement}
1354
1281
  */
1355
1282
  export const col = elements.col
1356
1283
 
@@ -1359,7 +1286,6 @@ export const col = elements.col
1359
1286
  * Defines a group of columns within a table.
1360
1287
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/colgroup
1361
1288
  *
1362
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLColgroupElement}
1363
1289
  */
1364
1290
  export const colgroup = elements.colgroup
1365
1291
 
@@ -1368,7 +1294,6 @@ export const colgroup = elements.colgroup
1368
1294
  * Represents tabular data—that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.
1369
1295
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/table
1370
1296
  *
1371
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTableElement}
1372
1297
  */
1373
1298
  export const table = elements.table
1374
1299
 
@@ -1377,7 +1302,6 @@ export const table = elements.table
1377
1302
  * Encapsulates a set of table rows (<tr> elements), indicating that they comprise the body of a table's (main) data.
1378
1303
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tbody
1379
1304
  *
1380
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTbodyElement}
1381
1305
  */
1382
1306
  export const tbody = elements.tbody
1383
1307
 
@@ -1386,7 +1310,6 @@ export const tbody = elements.tbody
1386
1310
  * A child of the <tr> element, it defines a cell of a table that contains data.
1387
1311
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/td
1388
1312
  *
1389
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTdElement}
1390
1313
  */
1391
1314
  export const td = elements.td
1392
1315
 
@@ -1395,7 +1318,6 @@ export const td = elements.td
1395
1318
  * Encapsulates a set of table rows (<tr> elements), indicating that they comprise the foot of a table with information about the table's columns. This is usually a summary of the columns, e.g., a sum of the given numbers in a column.
1396
1319
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tfoot
1397
1320
  *
1398
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTfootElement}
1399
1321
  */
1400
1322
  export const tfoot = elements.tfoot
1401
1323
 
@@ -1404,7 +1326,6 @@ export const tfoot = elements.tfoot
1404
1326
  * A child of the <tr> element, it defines a cell as the header of a group of table cells. The nature of this group can be explicitly defined by the scope and headers attributes.
1405
1327
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/th
1406
1328
  *
1407
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLThElement}
1408
1329
  */
1409
1330
  export const th = elements.th
1410
1331
 
@@ -1413,7 +1334,6 @@ export const th = elements.th
1413
1334
  * Encapsulates a set of table rows (<tr> elements), indicating that they comprise the head of a table with information about the table's columns. This is usually in the form of column headers (<th> elements).
1414
1335
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/thead
1415
1336
  *
1416
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTheadElement}
1417
1337
  */
1418
1338
  export const thead = elements.thead
1419
1339
 
@@ -1422,7 +1342,6 @@ export const thead = elements.thead
1422
1342
  * Defines a row of cells in a table. The row's cells can then be established using a mix of <td> (data cell) and <th> (header cell) elements.
1423
1343
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tr
1424
1344
  *
1425
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTrElement}
1426
1345
  */
1427
1346
  export const tr = elements.tr
1428
1347
 
@@ -1431,7 +1350,6 @@ export const tr = elements.tr
1431
1350
  * An interactive element activated by a user with a mouse, keyboard, finger, voice command, or other assistive technology. Once activated, it performs an action, such as submitting a form or opening a dialog.
1432
1351
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/button
1433
1352
  *
1434
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLButtonElement}
1435
1353
  */
1436
1354
  export const button = elements.button
1437
1355
 
@@ -1440,7 +1358,6 @@ export const button = elements.button
1440
1358
  * Contains a set of <option> elements that represent the permissible or recommended options available to choose from within other controls.
1441
1359
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/datalist
1442
1360
  *
1443
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDatalistElement}
1444
1361
  */
1445
1362
  export const datalist = elements.datalist
1446
1363
 
@@ -1449,7 +1366,6 @@ export const datalist = elements.datalist
1449
1366
  * Used to group several controls as well as labels (<label>) within a web form.
1450
1367
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/fieldset
1451
1368
  *
1452
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLFieldsetElement}
1453
1369
  */
1454
1370
  export const fieldset = elements.fieldset
1455
1371
 
@@ -1458,7 +1374,6 @@ export const fieldset = elements.fieldset
1458
1374
  * Represents a document section containing interactive controls for submitting information.
1459
1375
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/form
1460
1376
  *
1461
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLFormElement}
1462
1377
  */
1463
1378
  export const form = elements.form
1464
1379
 
@@ -1467,7 +1382,6 @@ export const form = elements.form
1467
1382
  * Used to create interactive controls for web-based forms to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent. The <input> element is one of the most powerful and complex in all of HTML due to the sheer number of combinations of input types and attributes.
1468
1383
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input
1469
1384
  *
1470
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLInputElement}
1471
1385
  */
1472
1386
  export const input = elements.input
1473
1387
 
@@ -1476,7 +1390,6 @@ export const input = elements.input
1476
1390
  * Represents a caption for an item in a user interface.
1477
1391
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/label
1478
1392
  *
1479
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLLabelElement}
1480
1393
  */
1481
1394
  export const label = elements.label
1482
1395
 
@@ -1485,7 +1398,6 @@ export const label = elements.label
1485
1398
  * Represents a caption for the content of its parent <fieldset>.
1486
1399
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/legend
1487
1400
  *
1488
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLLegendElement}
1489
1401
  */
1490
1402
  export const legend = elements.legend
1491
1403
 
@@ -1494,7 +1406,6 @@ export const legend = elements.legend
1494
1406
  * Represents either a scalar value within a known range or a fractional value.
1495
1407
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meter
1496
1408
  *
1497
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLMeterElement}
1498
1409
  */
1499
1410
  export const meter = elements.meter
1500
1411
 
@@ -1503,7 +1414,6 @@ export const meter = elements.meter
1503
1414
  * Creates a grouping of options within a <select> element.
1504
1415
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/optgroup
1505
1416
  *
1506
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLOptgroupElement}
1507
1417
  */
1508
1418
  export const optgroup = elements.optgroup
1509
1419
 
@@ -1512,7 +1422,6 @@ export const optgroup = elements.optgroup
1512
1422
  * Used to define an item contained in a select, an <optgroup>, or a <datalist> element. As such, <option> can represent menu items in popups and other lists of items in an HTML document.
1513
1423
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/option
1514
1424
  *
1515
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLOptionElement}
1516
1425
  */
1517
1426
  export const option = elements.option
1518
1427
 
@@ -1521,7 +1430,6 @@ export const option = elements.option
1521
1430
  * Container element into which a site or app can inject the results of a calculation or the outcome of a user action.
1522
1431
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/output
1523
1432
  *
1524
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLOutputElement}
1525
1433
  */
1526
1434
  export const output = elements.output
1527
1435
 
@@ -1530,7 +1438,6 @@ export const output = elements.output
1530
1438
  * Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.
1531
1439
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/progress
1532
1440
  *
1533
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLProgressElement}
1534
1441
  */
1535
1442
  export const progress = elements.progress
1536
1443
 
@@ -1539,7 +1446,6 @@ export const progress = elements.progress
1539
1446
  * Represents a control that provides a menu of options.
1540
1447
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/select
1541
1448
  *
1542
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSelectElement}
1543
1449
  */
1544
1450
  export const select = elements.select
1545
1451
 
@@ -1548,7 +1454,6 @@ export const select = elements.select
1548
1454
  * Represents a multi-line plain-text editing control, useful when you want to allow users to enter a sizeable amount of free-form text, for example, a comment on a review or feedback form.
1549
1455
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/textarea
1550
1456
  *
1551
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTextareaElement}
1552
1457
  */
1553
1458
  export const textarea = elements.textarea
1554
1459
 
@@ -1557,7 +1462,6 @@ export const textarea = elements.textarea
1557
1462
  * Creates a disclosure widget in which information is visible only when the widget is toggled into an "open" state. A summary or label must be provided using the <summary> element.
1558
1463
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/details
1559
1464
  *
1560
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDetailsElement}
1561
1465
  */
1562
1466
  export const details = elements.details
1563
1467
 
@@ -1566,7 +1470,6 @@ export const details = elements.details
1566
1470
  * Represents a dialog box or other interactive component, such as a dismissible alert, inspector, or subwindow.
1567
1471
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dialog
1568
1472
  *
1569
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLDialogElement}
1570
1473
  */
1571
1474
  export const dialog = elements.dialog
1572
1475
 
@@ -1575,7 +1478,6 @@ export const dialog = elements.dialog
1575
1478
  * Specifies a summary, caption, or legend for a details element's disclosure box. Clicking the <summary> element toggles the state of the parent <details> element open and closed.
1576
1479
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/summary
1577
1480
  *
1578
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSummaryElement}
1579
1481
  */
1580
1482
  export const summary = elements.summary
1581
1483
 
@@ -1584,7 +1486,6 @@ export const summary = elements.summary
1584
1486
  * Part of the Web Components technology suite, this element is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.
1585
1487
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/slot
1586
1488
  *
1587
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLSlotElement}
1588
1489
  */
1589
1490
  export const slot = elements.slot
1590
1491
 
@@ -1593,7 +1494,6 @@ export const slot = elements.slot
1593
1494
  * A mechanism for holding HTML that is not to be rendered immediately when a page is loaded but may be instantiated subsequently during runtime using JavaScript.
1594
1495
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/template
1595
1496
  *
1596
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLTemplateElement}
1597
1497
  */
1598
1498
  export const template = elements.template
1599
1499
 
@@ -1602,7 +1502,6 @@ export const template = elements.template
1602
1502
  * An ancient and poorly supported precursor to the <img> element. It should not be used.
1603
1503
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/image
1604
1504
  *
1605
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLImageElement}
1606
1505
  */
1607
1506
  export const image = elements.image
1608
1507
 
@@ -1611,7 +1510,6 @@ export const image = elements.image
1611
1510
  * Used to delimit the base text component of a ruby annotation, i.e., the text that is being annotated. One <rb> element should wrap each separate atomic segment of the base text.
1612
1511
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/rb
1613
1512
  *
1614
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLRbElement}
1615
1513
  */
1616
1514
  export const rb = elements.rb
1617
1515
 
@@ -1620,7 +1518,6 @@ export const rb = elements.rb
1620
1518
  * Embraces semantic annotations of characters presented in a ruby of <rb> elements used inside of <ruby> element. <rb> elements can have both pronunciation (<rt>) and semantic (<rtc>) annotations.
1621
1519
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/rtc
1622
1520
  *
1623
- * @type {(props?: object, ...children: (string | number | Node)[]) => HTMLRtcElement}
1624
1521
  */
1625
1522
  export const rtc = elements.rtc
1626
1523
 
@@ -1628,7 +1525,6 @@ export const rtc = elements.rtc
1628
1525
  * The <animate> SVG element provides a way to animate an attribute of an element over time.
1629
1526
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/animate
1630
1527
  *
1631
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGAnimateElement }
1632
1528
  */
1633
1529
  export const animate = elements.animate
1634
1530
 
@@ -1636,7 +1532,6 @@ export const animate = elements.animate
1636
1532
  * The <animateMotion> SVG element provides a way to define how an element moves along a motion path.
1637
1533
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/animateMotion
1638
1534
  *
1639
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGAnimateMotionElement }
1640
1535
  */
1641
1536
  export const animateMotion = elements.animateMotion
1642
1537
 
@@ -1644,7 +1539,6 @@ export const animateMotion = elements.animateMotion
1644
1539
  * The <animateTransform> SVG element animates a transformation attribute on its target element, thereby allowing animations to control translation, scaling, rotation, and/or skewing.
1645
1540
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/animateTransform
1646
1541
  *
1647
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGAnimateTransformElement }
1648
1542
  */
1649
1543
  export const animateTransform = elements.animateTransform
1650
1544
 
@@ -1652,7 +1546,6 @@ export const animateTransform = elements.animateTransform
1652
1546
  * The <mpath> SVG sub-element for the <animateMotion> element provides the ability to reference an external <path> element as the definition of a motion path.
1653
1547
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/mpath
1654
1548
  *
1655
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGMpathElement }
1656
1549
  */
1657
1550
  export const mpath = elements.mpath
1658
1551
 
@@ -1660,7 +1553,6 @@ export const mpath = elements.mpath
1660
1553
  * The <set> SVG element provides a method of setting the value of an attribute for a specified duration.
1661
1554
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/set
1662
1555
  *
1663
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGSetElement }
1664
1556
  */
1665
1557
  export const set = elements.set
1666
1558
 
@@ -1668,7 +1560,6 @@ export const set = elements.set
1668
1560
  * The <circle> SVG element is an SVG basic shape, used to draw circles based on a center point and a radius.
1669
1561
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/circle
1670
1562
  *
1671
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGCircleElement }
1672
1563
  */
1673
1564
  export const circle = elements.circle
1674
1565
 
@@ -1676,7 +1567,6 @@ export const circle = elements.circle
1676
1567
  * The <ellipse> SVG element is an SVG basic shape, used to create ellipses based on a center coordinate, and both their x and y radius.
1677
1568
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/ellipse
1678
1569
  *
1679
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGEllipseElement }
1680
1570
  */
1681
1571
  export const ellipse = elements.ellipse
1682
1572
 
@@ -1684,7 +1574,6 @@ export const ellipse = elements.ellipse
1684
1574
  * The <line> SVG element is an SVG basic shape used to create a line connecting two points.
1685
1575
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line
1686
1576
  *
1687
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGLineElement }
1688
1577
  */
1689
1578
  export const line = elements.line
1690
1579
 
@@ -1692,7 +1581,6 @@ export const line = elements.line
1692
1581
  * The <path> SVG element is the generic element to define a shape. All the basic shapes can be created with a path element.
1693
1582
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/path
1694
1583
  *
1695
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGPathElement }
1696
1584
  */
1697
1585
  export const path = elements.path
1698
1586
 
@@ -1700,7 +1588,6 @@ export const path = elements.path
1700
1588
  * The <polygon> SVG element defines a closed shape consisting of a set of connected straight line segments. The last point is connected to the first point.
1701
1589
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/polygon
1702
1590
  *
1703
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGPolygonElement }
1704
1591
  */
1705
1592
  export const polygon = elements.polygon
1706
1593
 
@@ -1708,7 +1595,6 @@ export const polygon = elements.polygon
1708
1595
  * The <polyline> SVG element is an SVG basic shape that creates straight lines connecting several points. Typically a polyline is used to create open shapes as the last point doesn't have to be connected to the first point. For closed shapes see the <polygon> element.
1709
1596
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/polyline
1710
1597
  *
1711
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGPolylineElement }
1712
1598
  */
1713
1599
  export const polyline = elements.polyline
1714
1600
 
@@ -1716,7 +1602,6 @@ export const polyline = elements.polyline
1716
1602
  * The <rect> SVG element is a basic SVG shape that draws rectangles, defined by their position, width, and height. The rectangles may have their corners rounded.
1717
1603
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect
1718
1604
  *
1719
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGRectElement }
1720
1605
  */
1721
1606
  export const rect = elements.rect
1722
1607
 
@@ -1724,7 +1609,6 @@ export const rect = elements.rect
1724
1609
  * The <defs> SVG element is used to store graphical objects that will be used at a later time. Objects created inside a <defs> element are not rendered directly. To display them you have to reference them (with a <use> element for example).
1725
1610
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/defs
1726
1611
  *
1727
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGDefsElement }
1728
1612
  */
1729
1613
  export const defs = elements.defs
1730
1614
 
@@ -1732,7 +1616,6 @@ export const defs = elements.defs
1732
1616
  * The <g> SVG element is a container used to group other SVG elements.
1733
1617
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g
1734
1618
  *
1735
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGGElement }
1736
1619
  */
1737
1620
  export const g = elements.g
1738
1621
 
@@ -1740,7 +1623,6 @@ export const g = elements.g
1740
1623
  * The <marker> SVG element defines a graphic used for drawing arrowheads or polymarkers on a given <path>, <line>, <polyline> or <polygon> element.
1741
1624
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/marker
1742
1625
  *
1743
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGMarkerElement }
1744
1626
  */
1745
1627
  export const marker = elements.marker
1746
1628
 
@@ -1748,7 +1630,6 @@ export const marker = elements.marker
1748
1630
  * The <mask> SVG element defines a mask for compositing the current object into the background. A mask is used/referenced using the mask property and CSS mask-image property.
1749
1631
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/mask
1750
1632
  *
1751
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGMaskElement }
1752
1633
  */
1753
1634
  export const mask = elements.mask
1754
1635
 
@@ -1756,7 +1637,6 @@ export const mask = elements.mask
1756
1637
  * The <pattern> SVG element defines a graphics object which can be redrawn at repeated x- and y-coordinate intervals ("tiled") to cover an area.
1757
1638
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/pattern
1758
1639
  *
1759
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGPatternElement }
1760
1640
  */
1761
1641
  export const pattern = elements.pattern
1762
1642
 
@@ -1764,7 +1644,6 @@ export const pattern = elements.pattern
1764
1644
  * The <svg> SVG element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents, but it can also be used to embed an SVG fragment inside an SVG or HTML document.
1765
1645
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/svg
1766
1646
  *
1767
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGSvgElement }
1768
1647
  */
1769
1648
  export const svg = elements.svg
1770
1649
 
@@ -1772,7 +1651,6 @@ export const svg = elements.svg
1772
1651
  * The <switch> SVG element evaluates any requiredFeatures, requiredExtensions and systemLanguage attributes on its direct child elements in order, and then renders the first child where these attributes evaluate to true.
1773
1652
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/switch
1774
1653
  *
1775
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGSwitchElement }
1776
1654
  */
1777
1655
  export const svgswitch = elements.switch
1778
1656
 
@@ -1780,7 +1658,6 @@ export const svgswitch = elements.switch
1780
1658
  * The <symbol> SVG element is used to define graphical template objects which can be instantiated by a <use> element.
1781
1659
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/symbol
1782
1660
  *
1783
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGSymbolElement }
1784
1661
  */
1785
1662
  export const symbol = elements.symbol
1786
1663
 
@@ -1788,7 +1665,6 @@ export const symbol = elements.symbol
1788
1665
  * The <use> element takes nodes from within an SVG document, and duplicates them somewhere else. The effect is the same as if the nodes were deeply cloned into a non-exposed DOM, then pasted where the <use> element is, much like cloned <template> elements.
1789
1666
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/use
1790
1667
  *
1791
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGUseElement }
1792
1668
  */
1793
1669
  export const use = elements.use
1794
1670
 
@@ -1796,7 +1672,6 @@ export const use = elements.use
1796
1672
  * The <desc> SVG element provides an accessible, long-text description of any SVG container element or graphics element.
1797
1673
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/desc
1798
1674
  *
1799
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGDescElement }
1800
1675
  */
1801
1676
  export const desc = elements.desc
1802
1677
 
@@ -1804,7 +1679,6 @@ export const desc = elements.desc
1804
1679
  * The <metadata> SVG element adds metadata to SVG content. Metadata is structured information about data. The contents of <metadata> should be elements from other XML namespaces such as RDF, FOAF, etc.
1805
1680
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/metadata
1806
1681
  *
1807
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGMetadataElement }
1808
1682
  */
1809
1683
  export const metadata = elements.metadata
1810
1684
 
@@ -1812,7 +1686,6 @@ export const metadata = elements.metadata
1812
1686
  * The <filter> SVG element defines a custom filter effect by grouping atomic filter primitives. It is never rendered itself, but must be used by the filter attribute on SVG elements, or the filter CSS property for SVG/HTML elements.
1813
1687
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/filter
1814
1688
  *
1815
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFilterElement }
1816
1689
  */
1817
1690
  export const filter = elements.filter
1818
1691
 
@@ -1820,7 +1693,6 @@ export const filter = elements.filter
1820
1693
  * The <feBlend> SVG filter primitive composes two objects together ruled by a certain blending mode. This is similar to what is known from image editing software when blending two layers. The mode is defined by the mode attribute.
1821
1694
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feBlend
1822
1695
  *
1823
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeBlendElement }
1824
1696
  */
1825
1697
  export const feBlend = elements.feBlend
1826
1698
 
@@ -1828,7 +1700,6 @@ export const feBlend = elements.feBlend
1828
1700
  * The <feColorMatrix> SVG filter element changes colors based on a transformation matrix. Every pixel's color value [R,G,B,A] is matrix multiplied by a 5 by 5 color matrix to create new color [R',G',B',A'].
1829
1701
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feColorMatrix
1830
1702
  *
1831
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeColorMatrixElement }
1832
1703
  */
1833
1704
  export const feColorMatrix = elements.feColorMatrix
1834
1705
 
@@ -1836,7 +1707,6 @@ export const feColorMatrix = elements.feColorMatrix
1836
1707
  * The <feComponentTransfer> SVG filter primitive performs color-component-wise remapping of data for each pixel. It allows operations like brightness adjustment, contrast adjustment, color balance or thresholding.
1837
1708
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feComponentTransfer
1838
1709
  *
1839
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeComponentTransferElement }
1840
1710
  */
1841
1711
  export const feComponentTransfer = elements.feComponentTransfer
1842
1712
 
@@ -1844,7 +1714,6 @@ export const feComponentTransfer = elements.feComponentTransfer
1844
1714
  * The <feComposite> SVG filter primitive performs the combination of two input images pixel-wise in image space using one of the Porter-Duff compositing operations: over, in, atop, out, xor, lighter, or arithmetic.
1845
1715
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feComposite
1846
1716
  *
1847
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeCompositeElement }
1848
1717
  */
1849
1718
  export const feComposite = elements.feComposite
1850
1719
 
@@ -1852,7 +1721,6 @@ export const feComposite = elements.feComposite
1852
1721
  * The <feConvolveMatrix> SVG filter primitive applies a matrix convolution filter effect. A convolution combines pixels in the input image with neighboring pixels to produce a resulting image. A wide variety of imaging operations can be achieved through convolutions, including blurring, edge detection, sharpening, embossing and beveling.
1853
1722
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feConvolveMatrix
1854
1723
  *
1855
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeConvolveMatrixElement }
1856
1724
  */
1857
1725
  export const feConvolveMatrix = elements.feConvolveMatrix
1858
1726
 
@@ -1860,7 +1728,6 @@ export const feConvolveMatrix = elements.feConvolveMatrix
1860
1728
  * The <feDiffuseLighting> SVG filter primitive lights an image using the alpha channel as a bump map. The resulting image, which is an RGBA opaque image, depends on the light color, light position and surface geometry of the input bump map.
1861
1729
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feDiffuseLighting
1862
1730
  *
1863
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeDiffuseLightingElement }
1864
1731
  */
1865
1732
  export const feDiffuseLighting = elements.feDiffuseLighting
1866
1733
 
@@ -1868,7 +1735,6 @@ export const feDiffuseLighting = elements.feDiffuseLighting
1868
1735
  * The <feDisplacementMap> SVG filter primitive uses the pixel values from the image from in2 to spatially displace the image from in.
1869
1736
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feDisplacementMap
1870
1737
  *
1871
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeDisplacementMapElement }
1872
1738
  */
1873
1739
  export const feDisplacementMap = elements.feDisplacementMap
1874
1740
 
@@ -1876,7 +1742,6 @@ export const feDisplacementMap = elements.feDisplacementMap
1876
1742
  * The <feDistantLight> SVG filter primitive defines a distant light source that can be used within a lighting filter primitive: <feDiffuseLighting> or <feSpecularLighting>.
1877
1743
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feDistantLight
1878
1744
  *
1879
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeDistantLightElement }
1880
1745
  */
1881
1746
  export const feDistantLight = elements.feDistantLight
1882
1747
 
@@ -1884,7 +1749,6 @@ export const feDistantLight = elements.feDistantLight
1884
1749
  * The <feDropShadow> SVG filter primitive creates a drop shadow of the input image. It can only be used inside a <filter> element.
1885
1750
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feDropShadow
1886
1751
  *
1887
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeDropShadowElement }
1888
1752
  */
1889
1753
  export const feDropShadow = elements.feDropShadow
1890
1754
 
@@ -1892,7 +1756,6 @@ export const feDropShadow = elements.feDropShadow
1892
1756
  * The <feFlood> SVG filter primitive fills the filter subregion with the color and opacity defined by flood-color and flood-opacity.
1893
1757
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feFlood
1894
1758
  *
1895
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeFloodElement }
1896
1759
  */
1897
1760
  export const feFlood = elements.feFlood
1898
1761
 
@@ -1900,7 +1763,6 @@ export const feFlood = elements.feFlood
1900
1763
  * The <feFuncA> SVG filter primitive defines the transfer function for the alpha component of the input graphic of its parent <feComponentTransfer> element.
1901
1764
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feFuncA
1902
1765
  *
1903
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeFuncAElement }
1904
1766
  */
1905
1767
  export const feFuncA = elements.feFuncA
1906
1768
 
@@ -1908,7 +1770,6 @@ export const feFuncA = elements.feFuncA
1908
1770
  * The <feFuncB> SVG filter primitive defines the transfer function for the blue component of the input graphic of its parent <feComponentTransfer> element.
1909
1771
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feFuncB
1910
1772
  *
1911
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeFuncBElement }
1912
1773
  */
1913
1774
  export const feFuncB = elements.feFuncB
1914
1775
 
@@ -1916,7 +1777,6 @@ export const feFuncB = elements.feFuncB
1916
1777
  * The <feFuncG> SVG filter primitive defines the transfer function for the green component of the input graphic of its parent <feComponentTransfer> element.
1917
1778
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feFuncG
1918
1779
  *
1919
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeFuncGElement }
1920
1780
  */
1921
1781
  export const feFuncG = elements.feFuncG
1922
1782
 
@@ -1924,7 +1784,6 @@ export const feFuncG = elements.feFuncG
1924
1784
  * The <feFuncR> SVG filter primitive defines the transfer function for the red component of the input graphic of its parent <feComponentTransfer> element.
1925
1785
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feFuncR
1926
1786
  *
1927
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeFuncRElement }
1928
1787
  */
1929
1788
  export const feFuncR = elements.feFuncR
1930
1789
 
@@ -1932,7 +1791,6 @@ export const feFuncR = elements.feFuncR
1932
1791
  * The <feGaussianBlur> SVG filter primitive blurs the input image by the amount specified in stdDeviation, which defines the bell-curve.
1933
1792
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feGaussianBlur
1934
1793
  *
1935
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeGaussianBlurElement }
1936
1794
  */
1937
1795
  export const feGaussianBlur = elements.feGaussianBlur
1938
1796
 
@@ -1940,7 +1798,6 @@ export const feGaussianBlur = elements.feGaussianBlur
1940
1798
  * The <feImage> SVG filter primitive fetches image data from an external source and provides the pixel data as output (meaning if the external source is an SVG image, it is rasterized.)
1941
1799
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feImage
1942
1800
  *
1943
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeImageElement }
1944
1801
  */
1945
1802
  export const feImage = elements.feImage
1946
1803
 
@@ -1948,7 +1805,6 @@ export const feImage = elements.feImage
1948
1805
  * The <feMerge> SVG element allows filter effects to be applied concurrently instead of sequentially. This is achieved by other filters storing their output via the result attribute and then accessing it in a <feMergeNode> child.
1949
1806
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feMerge
1950
1807
  *
1951
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeMergeElement }
1952
1808
  */
1953
1809
  export const feMerge = elements.feMerge
1954
1810
 
@@ -1956,7 +1812,6 @@ export const feMerge = elements.feMerge
1956
1812
  * The <feMergeNode> SVG takes the result of another filter to be processed by its parent <feMerge>.
1957
1813
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feMergeNode
1958
1814
  *
1959
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeMergeNodeElement }
1960
1815
  */
1961
1816
  export const feMergeNode = elements.feMergeNode
1962
1817
 
@@ -1964,7 +1819,6 @@ export const feMergeNode = elements.feMergeNode
1964
1819
  * The <feMorphology> SVG filter primitive is used to erode or dilate the input image. Its usefulness lies especially in fattening or thinning effects.
1965
1820
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feMorphology
1966
1821
  *
1967
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeMorphologyElement }
1968
1822
  */
1969
1823
  export const feMorphology = elements.feMorphology
1970
1824
 
@@ -1972,7 +1826,6 @@ export const feMorphology = elements.feMorphology
1972
1826
  * The <feOffset> SVG filter primitive enables offsetting an input image relative to its current position. The input image as a whole is offset by the values specified in the dx and dy attributes.
1973
1827
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feOffset
1974
1828
  *
1975
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeOffsetElement }
1976
1829
  */
1977
1830
  export const feOffset = elements.feOffset
1978
1831
 
@@ -1980,7 +1833,6 @@ export const feOffset = elements.feOffset
1980
1833
  * The <fePointLight> SVG filter primitive defines a light source which allows to create a point light effect. It that can be used within a lighting filter primitive: <feDiffuseLighting> or <feSpecularLighting>.
1981
1834
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/fePointLight
1982
1835
  *
1983
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFePointLightElement }
1984
1836
  */
1985
1837
  export const fePointLight = elements.fePointLight
1986
1838
 
@@ -1988,7 +1840,6 @@ export const fePointLight = elements.fePointLight
1988
1840
  * The <feSpecularLighting> SVG filter primitive lights a source graphic using the alpha channel as a bump map. The resulting image is an RGBA image based on the light color. The lighting calculation follows the standard specular component of the Phong lighting model. The resulting image depends on the light color, light position and surface geometry of the input bump map. The result of the lighting calculation is added. The filter primitive assumes that the viewer is at infinity in the z direction.
1989
1841
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feSpecularLighting
1990
1842
  *
1991
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeSpecularLightingElement }
1992
1843
  */
1993
1844
  export const feSpecularLighting = elements.feSpecularLighting
1994
1845
 
@@ -1996,7 +1847,6 @@ export const feSpecularLighting = elements.feSpecularLighting
1996
1847
  * The <feSpotLight> SVG filter primitive defines a light source that can be used to create a spotlight effect. It is used within a lighting filter primitive: <feDiffuseLighting> or <feSpecularLighting>.
1997
1848
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feSpotLight
1998
1849
  *
1999
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeSpotLightElement }
2000
1850
  */
2001
1851
  export const feSpotLight = elements.feSpotLight
2002
1852
 
@@ -2004,7 +1854,6 @@ export const feSpotLight = elements.feSpotLight
2004
1854
  * The <feTile> SVG filter primitive allows to fill a target rectangle with a repeated, tiled pattern of an input image. The effect is similar to the one of a <pattern>.
2005
1855
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feTile
2006
1856
  *
2007
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeTileElement }
2008
1857
  */
2009
1858
  export const feTile = elements.feTile
2010
1859
 
@@ -2012,7 +1861,6 @@ export const feTile = elements.feTile
2012
1861
  * The <feTurbulence> SVG filter primitive creates an image using the Perlin turbulence function. It allows the synthesis of artificial textures like clouds or marble. The resulting image will fill the entire filter primitive subregion.
2013
1862
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feTurbulence
2014
1863
  *
2015
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGFeTurbulenceElement }
2016
1864
  */
2017
1865
  export const feTurbulence = elements.feTurbulence
2018
1866
 
@@ -2020,7 +1868,6 @@ export const feTurbulence = elements.feTurbulence
2020
1868
  * The <linearGradient> SVG element lets authors define linear gradients to apply to other SVG elements.
2021
1869
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/linearGradient
2022
1870
  *
2023
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGLinearGradientElement }
2024
1871
  */
2025
1872
  export const linearGradient = elements.linearGradient
2026
1873
 
@@ -2028,7 +1875,6 @@ export const linearGradient = elements.linearGradient
2028
1875
  * The <radialGradient> SVG element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
2029
1876
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/radialGradient
2030
1877
  *
2031
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGRadialGradientElement }
2032
1878
  */
2033
1879
  export const radialGradient = elements.radialGradient
2034
1880
 
@@ -2036,7 +1882,6 @@ export const radialGradient = elements.radialGradient
2036
1882
  * The <stop> SVG element defines a color and its position to use on a gradient. This element is always a child of a <linearGradient> or <radialGradient> element.
2037
1883
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/stop
2038
1884
  *
2039
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGStopElement }
2040
1885
  */
2041
1886
  export const stop = elements.stop
2042
1887
 
@@ -2044,7 +1889,6 @@ export const stop = elements.stop
2044
1889
  * The <foreignObject> SVG element includes elements from a different XML namespace. In the context of a browser, it is most likely (X)HTML.
2045
1890
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/foreignObject
2046
1891
  *
2047
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGForeignObjectElement }
2048
1892
  */
2049
1893
  export const foreignObject = elements.foreignObject
2050
1894
 
@@ -2052,7 +1896,6 @@ export const foreignObject = elements.foreignObject
2052
1896
  * The <text> SVG element draws a graphics element consisting of text. It's possible to apply a gradient, pattern, clipping path, mask, or filter to <text>, like any other SVG graphics element.
2053
1897
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/text
2054
1898
  *
2055
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGTextElement }
2056
1899
  */
2057
1900
  export const text = elements.text
2058
1901
 
@@ -2060,7 +1903,6 @@ export const text = elements.text
2060
1903
  * The <textPath> SVG element is used to render text along the shape of a <path> element. The text must be enclosed in the <textPath> element and its href attribute is used to reference the desired <path>.
2061
1904
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/textPath
2062
1905
  *
2063
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGTextPathElement }
2064
1906
  */
2065
1907
  export const textPath = elements.textPath
2066
1908
 
@@ -2068,7 +1910,6 @@ export const textPath = elements.textPath
2068
1910
  * The <tspan> SVG element defines a subtext within a <text> element or another <tspan> element. It allows for adjustment of the style and/or position of that subtext as needed.
2069
1911
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/tspan
2070
1912
  *
2071
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGTspanElement }
2072
1913
  */
2073
1914
  export const tspan = elements.tspan
2074
1915
 
@@ -2076,7 +1917,6 @@ export const tspan = elements.tspan
2076
1917
  * The <view> SVG element defines a particular view of an SVG document. A specific view can be displayed by referencing the <view> element's id as the target fragment of a URL.
2077
1918
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/view
2078
1919
  *
2079
- * @type {(props?: object, ...children: (string | number | Node)[]) => SVGViewElement }
2080
1920
  */
2081
1921
  export const view = elements.view
2082
1922