diff --git a/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Base.kt b/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Base.kt index 784c5dec87..e194bc3603 100644 --- a/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Base.kt +++ b/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Base.kt @@ -93,104 +93,6 @@ class DisposableEffectHolder( var effect: (DisposableEffectScope.(Element) -> DisposableEffectResult)? = null ) -interface ElementBuilder { - fun create(): TElement - - private open class ElementBuilderImplementation(private val tagName: String) : ElementBuilder { - private val el: Element by lazy { document.createElement(tagName) } - override fun create(): TElement = el.cloneNode() as TElement - } - - companion object { - fun createBuilder(tagName: String): ElementBuilder { - return object : ElementBuilderImplementation(tagName) {} - } - - val Address: ElementBuilder = ElementBuilderImplementation("address") - val Article: ElementBuilder = ElementBuilderImplementation("article") - val Aside: ElementBuilder = ElementBuilderImplementation("aside") - val Header: ElementBuilder = ElementBuilderImplementation("header") - - val Area: ElementBuilder = ElementBuilderImplementation("area") - val Audio: ElementBuilder = ElementBuilderImplementation("audio") - val Map: ElementBuilder = ElementBuilderImplementation("map") - val Track: ElementBuilder = ElementBuilderImplementation("track") - val Video: ElementBuilder = ElementBuilderImplementation("video") - - val Datalist: ElementBuilder = ElementBuilderImplementation("datalist") - val Fieldset: ElementBuilder = ElementBuilderImplementation("fieldset") - val Legend: ElementBuilder = ElementBuilderImplementation("legend") - val Meter: ElementBuilder = ElementBuilderImplementation("meter") - val Output: ElementBuilder = ElementBuilderImplementation("output") - val Progress: ElementBuilder = ElementBuilderImplementation("progress") - - val Embed: ElementBuilder = ElementBuilderImplementation("embed") - val Iframe: ElementBuilder = ElementBuilderImplementation("iframe") - val Object: ElementBuilder = ElementBuilderImplementation("object") - val Param: ElementBuilder = ElementBuilderImplementation("param") - val Picture: ElementBuilder = ElementBuilderImplementation("picture") - val Source: ElementBuilder = ElementBuilderImplementation("source") - - val Div: ElementBuilder = ElementBuilderImplementation("div") - val A: ElementBuilder = ElementBuilderImplementation("a") - val Input: ElementBuilder = ElementBuilderImplementation("input") - val Button: ElementBuilder = ElementBuilderImplementation("button") - - val H1: ElementBuilder = ElementBuilderImplementation("h1") - val H2: ElementBuilder = ElementBuilderImplementation("h2") - val H3: ElementBuilder = ElementBuilderImplementation("h3") - val H4: ElementBuilder = ElementBuilderImplementation("h4") - val H5: ElementBuilder = ElementBuilderImplementation("h5") - val H6: ElementBuilder = ElementBuilderImplementation("h6") - - val P: ElementBuilder = ElementBuilderImplementation("p") - - val Em: ElementBuilder = ElementBuilderImplementation("em") - val I: ElementBuilder = ElementBuilderImplementation("i") - val B: ElementBuilder = ElementBuilderImplementation("b") - val Small: ElementBuilder = ElementBuilderImplementation("small") - - val Span: ElementBuilder = ElementBuilderImplementation("span") - - val Br: ElementBuilder = ElementBuilderImplementation("br") - - val Ul: ElementBuilder = ElementBuilderImplementation("ul") - val Ol: ElementBuilder = ElementBuilderImplementation("ol") - - val Li: ElementBuilder = ElementBuilderImplementation("li") - - val Img: ElementBuilder = ElementBuilderImplementation("img") - val Form: ElementBuilder = ElementBuilderImplementation("form") - - val Select: ElementBuilder = ElementBuilderImplementation("select") - val Option: ElementBuilder = ElementBuilderImplementation("option") - val OptGroup: ElementBuilder = ElementBuilderImplementation("optgroup") - - val Section: ElementBuilder = ElementBuilderImplementation("section") - val TextArea: ElementBuilder = ElementBuilderImplementation("textarea") - val Nav: ElementBuilder = ElementBuilderImplementation("nav") - val Pre: ElementBuilder = ElementBuilderImplementation("pre") - val Code: ElementBuilder = ElementBuilderImplementation("code") - - val Main: ElementBuilder = ElementBuilderImplementation("main") - val Footer: ElementBuilder = ElementBuilderImplementation("footer") - val Hr: ElementBuilder = ElementBuilderImplementation("hr") - val Label: ElementBuilder = ElementBuilderImplementation("label") - val Table: ElementBuilder = ElementBuilderImplementation("table") - val Caption: ElementBuilder = ElementBuilderImplementation("caption") - val Col: ElementBuilder = ElementBuilderImplementation("col") - val Colgroup: ElementBuilder = ElementBuilderImplementation("colgroup") - val Tr: ElementBuilder = ElementBuilderImplementation("tr") - val Thead: ElementBuilder = ElementBuilderImplementation("thead") - val Th: ElementBuilder = ElementBuilderImplementation("th") - val Td: ElementBuilder = ElementBuilderImplementation("td") - val Tbody: ElementBuilder = ElementBuilderImplementation("tbody") - val Tfoot: ElementBuilder = ElementBuilderImplementation("tfoot") - - val Style: ElementBuilder = ElementBuilderImplementation("style") - } -} - @Composable fun TagElement( elementBuilder: ElementBuilder, diff --git a/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Elements.kt b/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Elements.kt index 2ba3370443..fd823474e7 100644 --- a/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Elements.kt +++ b/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Elements.kt @@ -8,6 +8,10 @@ import org.jetbrains.compose.web.DomApplier import org.jetbrains.compose.web.DomNodeWrapper import kotlinx.browser.document import org.jetbrains.compose.web.attributes.* +import org.jetbrains.compose.web.css.CSSRuleDeclarationList +import org.jetbrains.compose.web.css.StyleSheetBuilder +import org.jetbrains.compose.web.css.StyleSheetBuilderImpl +import org.w3c.dom.Element import org.w3c.dom.HTMLAnchorElement import org.w3c.dom.HTMLAreaElement import org.w3c.dom.HTMLAudioElement @@ -23,6 +27,7 @@ import org.w3c.dom.HTMLHeadingElement import org.w3c.dom.HTMLHRElement import org.w3c.dom.HTMLIFrameElement import org.w3c.dom.HTMLImageElement +import org.w3c.dom.HTMLInputElement import org.w3c.dom.HTMLLIElement import org.w3c.dom.HTMLLabelElement import org.w3c.dom.HTMLLegendElement @@ -41,27 +46,128 @@ import org.w3c.dom.HTMLProgressElement import org.w3c.dom.HTMLSelectElement import org.w3c.dom.HTMLSourceElement import org.w3c.dom.HTMLSpanElement +import org.w3c.dom.HTMLStyleElement import org.w3c.dom.HTMLTableCaptionElement import org.w3c.dom.HTMLTableCellElement import org.w3c.dom.HTMLTableColElement import org.w3c.dom.HTMLTableElement import org.w3c.dom.HTMLTableRowElement import org.w3c.dom.HTMLTableSectionElement +import org.w3c.dom.HTMLTextAreaElement import org.w3c.dom.HTMLTrackElement import org.w3c.dom.HTMLUListElement import org.w3c.dom.HTMLVideoElement import org.w3c.dom.Text +import org.w3c.dom.css.CSSStyleSheet typealias AttrBuilderContext = AttrsBuilder.() -> Unit typealias ContentBuilder = @Composable ElementScope.() -> Unit +private open class ElementBuilderImplementation(private val tagName: String) : ElementBuilder { + private val el: Element by lazy { document.createElement(tagName) } + override fun create(): TElement = el.cloneNode() as TElement +} + +private val Address: ElementBuilder = ElementBuilderImplementation("address") +private val Article: ElementBuilder = ElementBuilderImplementation("article") +private val Aside: ElementBuilder = ElementBuilderImplementation("aside") +private val Header: ElementBuilder = ElementBuilderImplementation("header") + +private val Area: ElementBuilder = ElementBuilderImplementation("area") +private val Audio: ElementBuilder = ElementBuilderImplementation("audio") +private val Map: ElementBuilder = ElementBuilderImplementation("map") +private val Track: ElementBuilder = ElementBuilderImplementation("track") +private val Video: ElementBuilder = ElementBuilderImplementation("video") + +private val Datalist: ElementBuilder = ElementBuilderImplementation("datalist") +private val Fieldset: ElementBuilder = ElementBuilderImplementation("fieldset") +private val Legend: ElementBuilder = ElementBuilderImplementation("legend") +private val Meter: ElementBuilder = ElementBuilderImplementation("meter") +private val Output: ElementBuilder = ElementBuilderImplementation("output") +private val Progress: ElementBuilder = ElementBuilderImplementation("progress") + +private val Embed: ElementBuilder = ElementBuilderImplementation("embed") +private val Iframe: ElementBuilder = ElementBuilderImplementation("iframe") +private val Object: ElementBuilder = ElementBuilderImplementation("object") +private val Param: ElementBuilder = ElementBuilderImplementation("param") +private val Picture: ElementBuilder = ElementBuilderImplementation("picture") +private val Source: ElementBuilder = ElementBuilderImplementation("source") + +private val Div: ElementBuilder = ElementBuilderImplementation("div") +private val A: ElementBuilder = ElementBuilderImplementation("a") +private val Input: ElementBuilder = ElementBuilderImplementation("input") +private val Button: ElementBuilder = ElementBuilderImplementation("button") + +private val H1: ElementBuilder = ElementBuilderImplementation("h1") +private val H2: ElementBuilder = ElementBuilderImplementation("h2") +private val H3: ElementBuilder = ElementBuilderImplementation("h3") +private val H4: ElementBuilder = ElementBuilderImplementation("h4") +private val H5: ElementBuilder = ElementBuilderImplementation("h5") +private val H6: ElementBuilder = ElementBuilderImplementation("h6") + +private val P: ElementBuilder = ElementBuilderImplementation("p") + +private val Em: ElementBuilder = ElementBuilderImplementation("em") +private val I: ElementBuilder = ElementBuilderImplementation("i") +private val B: ElementBuilder = ElementBuilderImplementation("b") +private val Small: ElementBuilder = ElementBuilderImplementation("small") + +private val Span: ElementBuilder = ElementBuilderImplementation("span") + +private val Br: ElementBuilder = ElementBuilderImplementation("br") + +private val Ul: ElementBuilder = ElementBuilderImplementation("ul") +private val Ol: ElementBuilder = ElementBuilderImplementation("ol") + +private val Li: ElementBuilder = ElementBuilderImplementation("li") + +private val Img: ElementBuilder = ElementBuilderImplementation("img") +private val Form: ElementBuilder = ElementBuilderImplementation("form") + +private val Select: ElementBuilder = ElementBuilderImplementation("select") +private val Option: ElementBuilder = ElementBuilderImplementation("option") +private val OptGroup: ElementBuilder = ElementBuilderImplementation("optgroup") + +private val Section: ElementBuilder = ElementBuilderImplementation("section") +private val TextArea: ElementBuilder = ElementBuilderImplementation("textarea") +private val Nav: ElementBuilder = ElementBuilderImplementation("nav") +private val Pre: ElementBuilder = ElementBuilderImplementation("pre") +private val Code: ElementBuilder = ElementBuilderImplementation("code") + +private val Main: ElementBuilder = ElementBuilderImplementation("main") +private val Footer: ElementBuilder = ElementBuilderImplementation("footer") +private val Hr: ElementBuilder = ElementBuilderImplementation("hr") +private val Label: ElementBuilder = ElementBuilderImplementation("label") +private val Table: ElementBuilder = ElementBuilderImplementation("table") +private val Caption: ElementBuilder = ElementBuilderImplementation("caption") +private val Col: ElementBuilder = ElementBuilderImplementation("col") +private val Colgroup: ElementBuilder = ElementBuilderImplementation("colgroup") +private val Tr: ElementBuilder = ElementBuilderImplementation("tr") +private val Thead: ElementBuilder = ElementBuilderImplementation("thead") +private val Th: ElementBuilder = ElementBuilderImplementation("th") +private val Td: ElementBuilder = ElementBuilderImplementation("td") +private val Tbody: ElementBuilder = ElementBuilderImplementation("tbody") +private val Tfoot: ElementBuilder = ElementBuilderImplementation("tfoot") + +val Style: ElementBuilder = ElementBuilderImplementation("style") + +fun interface ElementBuilder { + fun create(): TElement + + companion object { + fun createBuilder(tagName: String): ElementBuilder { + return object : ElementBuilderImplementation(tagName) {} + } + } +} + @Composable fun Address( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Address, + elementBuilder = Address, applyAttrs = attrs, content = content ) @@ -73,7 +179,7 @@ fun Article( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Article, + elementBuilder = Article, applyAttrs = attrs, content = content ) @@ -85,7 +191,7 @@ fun Aside( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Aside, + elementBuilder = Aside, applyAttrs = attrs, content = content ) @@ -97,7 +203,7 @@ fun Header( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Header, + elementBuilder = Header, applyAttrs = attrs, content = content ) @@ -109,7 +215,7 @@ fun Area( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Area, + elementBuilder = Area, applyAttrs = attrs, content = content ) @@ -121,7 +227,7 @@ fun Audio( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Audio, + elementBuilder = Audio, applyAttrs = attrs, content = content ) @@ -133,7 +239,7 @@ fun HTMLMap( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Map, + elementBuilder = Map, applyAttrs = attrs, content = content ) @@ -145,7 +251,7 @@ fun Track( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Track, + elementBuilder = Track, applyAttrs = attrs, content = content ) @@ -157,7 +263,7 @@ fun Video( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Video, + elementBuilder = Video, applyAttrs = attrs, content = content ) @@ -169,7 +275,7 @@ fun Datalist( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Datalist, + elementBuilder = Datalist, applyAttrs = attrs, content = content ) @@ -181,7 +287,7 @@ fun Fieldset( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Fieldset, + elementBuilder = Fieldset, applyAttrs = attrs, content = content ) @@ -193,7 +299,7 @@ fun Legend( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Legend, + elementBuilder = Legend, applyAttrs = attrs, content = content ) @@ -205,7 +311,7 @@ fun Meter( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Meter, + elementBuilder = Meter, applyAttrs = attrs, content = content ) @@ -217,7 +323,7 @@ fun Output( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Output, + elementBuilder = Output, applyAttrs = attrs, content = content ) @@ -229,7 +335,7 @@ fun Progress( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Progress, + elementBuilder = Progress, applyAttrs = attrs, content = content ) @@ -241,7 +347,7 @@ fun Embed( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Embed, + elementBuilder = Embed, applyAttrs = attrs, content = content ) @@ -253,7 +359,7 @@ fun Iframe( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Iframe, + elementBuilder = Iframe, applyAttrs = attrs, content = content ) @@ -265,7 +371,7 @@ fun Object( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Object, + elementBuilder = Object, applyAttrs = attrs, content = content ) @@ -277,7 +383,7 @@ fun Param( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Param, + elementBuilder = Param, applyAttrs = attrs, content = content ) @@ -289,7 +395,7 @@ fun Picture( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Picture, + elementBuilder = Picture, applyAttrs = attrs, content = content ) @@ -301,7 +407,7 @@ fun Source( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Source, + elementBuilder = Source, applyAttrs = attrs, content = content ) @@ -323,7 +429,7 @@ fun Div( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Div, + elementBuilder = Div, applyAttrs = attrs, content = content ) @@ -336,7 +442,7 @@ fun A( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.A, + elementBuilder = A, applyAttrs = { if (href != null) { this.href(href) @@ -353,107 +459,107 @@ fun A( fun Button( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Button, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Button, applyAttrs = attrs, content = content) @Composable fun H1( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.H1, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = H1, applyAttrs = attrs, content = content) @Composable fun H2( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.H2, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = H2, applyAttrs = attrs, content = content) @Composable fun H3( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.H3, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = H3, applyAttrs = attrs, content = content) @Composable fun H4( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.H4, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = H4, applyAttrs = attrs, content = content) @Composable fun H5( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.H5, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = H5, applyAttrs = attrs, content = content) @Composable fun H6( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.H6, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = H6, applyAttrs = attrs, content = content) @Composable fun P( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.P, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = P, applyAttrs = attrs, content = content) @Composable fun Em( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Em, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Em, applyAttrs = attrs, content = content) @Composable fun I( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.I, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = I, applyAttrs = attrs, content = content) @Composable fun B( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.B, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = B, applyAttrs = attrs, content = content) @Composable fun Small( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Small, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Small, applyAttrs = attrs, content = content) @Composable fun Span( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Span, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Span, applyAttrs = attrs, content = content) @Composable fun Br(attrs: AttrBuilderContext? = null) = - TagElement(elementBuilder = ElementBuilder.Br, applyAttrs = attrs, content = null) + TagElement(elementBuilder = Br, applyAttrs = attrs, content = null) @Composable fun Ul( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Ul, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Ul, applyAttrs = attrs, content = content) @Composable fun Ol( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Ol, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Ol, applyAttrs = attrs, content = content) @Composable fun DOMScope.Li( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Li, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Li, applyAttrs = attrs, content = content) @Composable fun DOMScope.Li( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null -) = TagElement(elementBuilder = ElementBuilder.Li, applyAttrs = attrs, content = content) +) = TagElement(elementBuilder = Li, applyAttrs = attrs, content = content) @Composable fun Img( @@ -461,7 +567,7 @@ fun Img( alt: String = "", attrs: AttrBuilderContext? = null ) = TagElement( - elementBuilder = ElementBuilder.Img, + elementBuilder = Img, applyAttrs = { src(src).alt(alt) if (attrs != null) { @@ -477,7 +583,7 @@ fun Form( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null ) = TagElement( - elementBuilder = ElementBuilder.Form, + elementBuilder = Form, applyAttrs = { if (!action.isNullOrEmpty()) action(action) if (attrs != null) { @@ -492,7 +598,7 @@ fun Select( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null ) = TagElement( - elementBuilder = ElementBuilder.Select, + elementBuilder = Select, applyAttrs = attrs, content = content ) @@ -503,7 +609,7 @@ fun Option( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null ) = TagElement( - elementBuilder = ElementBuilder.Option, + elementBuilder = Option, applyAttrs = { value(value) if (attrs != null) { @@ -519,7 +625,7 @@ fun OptGroup( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null ) = TagElement( - elementBuilder = ElementBuilder.OptGroup, + elementBuilder = OptGroup, applyAttrs = { label(label) if (attrs != null) { @@ -534,7 +640,7 @@ fun Section( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null ) = TagElement( - elementBuilder = ElementBuilder.Section, + elementBuilder = Section, applyAttrs = attrs, content = content ) @@ -544,7 +650,7 @@ fun TextArea( attrs: (TextAreaAttrsBuilder.() -> Unit)? = null, value: String ) = TagElement( - elementBuilder = ElementBuilder.TextArea, + elementBuilder = TextArea, applyAttrs = { val taab = TextAreaAttrsBuilder() if (attrs != null) { @@ -562,7 +668,7 @@ fun Nav( attrs: AttrBuilderContext? = null, content: ContentBuilder? = null ) = TagElement( - elementBuilder = ElementBuilder.Nav, + elementBuilder = Nav, applyAttrs = attrs, content = content ) @@ -573,7 +679,7 @@ fun Pre( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Pre, + elementBuilder = Pre, applyAttrs = attrs, content = content ) @@ -585,7 +691,7 @@ fun Code( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Code, + elementBuilder = Code, applyAttrs = attrs, content = content ) @@ -597,7 +703,7 @@ fun Main( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Main, + elementBuilder = Main, applyAttrs = attrs, content = content ) @@ -609,7 +715,7 @@ fun Footer( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Footer, + elementBuilder = Footer, applyAttrs = attrs, content = content ) @@ -620,7 +726,7 @@ fun Hr( attrs: AttrBuilderContext? = null ) { TagElement( - elementBuilder = ElementBuilder.Hr, + elementBuilder = Hr, applyAttrs = attrs, content = null ) @@ -633,7 +739,7 @@ fun Label( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Label, + elementBuilder = Label, applyAttrs = { if (forId != null) { forId(forId) @@ -652,7 +758,7 @@ fun Table( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Table, + elementBuilder = Table, applyAttrs = attrs, content = content ) @@ -664,7 +770,7 @@ fun Caption( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Caption, + elementBuilder = Caption, applyAttrs = attrs, content = content ) @@ -675,7 +781,7 @@ fun Col( attrs: AttrBuilderContext? = null ) { TagElement( - elementBuilder = ElementBuilder.Col, + elementBuilder = Col, applyAttrs = attrs, content = null ) @@ -687,7 +793,7 @@ fun Colgroup( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Colgroup, + elementBuilder = Colgroup, applyAttrs = attrs, content = content ) @@ -699,7 +805,7 @@ fun Tr( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Tr, + elementBuilder = Tr, applyAttrs = attrs, content = content ) @@ -711,7 +817,7 @@ fun Thead( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Thead, + elementBuilder = Thead, applyAttrs = attrs, content = content ) @@ -723,7 +829,7 @@ fun Th( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Th, + elementBuilder = Th, applyAttrs = attrs, content = content ) @@ -735,7 +841,7 @@ fun Td( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Td, + elementBuilder = Td, applyAttrs = attrs, content = content ) @@ -747,7 +853,7 @@ fun Tbody( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Tbody, + elementBuilder = Tbody, applyAttrs = attrs, content = content ) @@ -759,8 +865,83 @@ fun Tfoot( content: ContentBuilder? = null ) { TagElement( - elementBuilder = ElementBuilder.Tfoot, + elementBuilder = Tfoot, applyAttrs = attrs, content = content ) } + +/** + * Use this function to mount the