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 ccf9f69697..b7f8a66887 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 @@ -88,6 +88,11 @@ interface 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 Div: ElementBuilder = ElementBuilderImplementation("div") val A: ElementBuilder = ElementBuilderImplementation("a") val Input: ElementBuilder = ElementBuilderImplementation("input") 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 1b202fd26f..0a99ce3f71 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 @@ -47,6 +47,54 @@ import org.w3c.dom.Text typealias AttrBuilderContext = AttrsBuilder.() -> Unit typealias ContentBuilder = @Composable ElementScope.() -> Unit +@Composable +fun Address( + attrs: AttrBuilderContext = {}, + content: ContentBuilder? = null +) { + TagElement( + elementBuilder = ElementBuilder.Address, + applyAttrs = attrs, + content = content + ) +} + +@Composable +fun Article( + attrs: AttrBuilderContext = {}, + content: ContentBuilder? = null +) { + TagElement( + elementBuilder = ElementBuilder.Article, + applyAttrs = attrs, + content = content + ) +} + +@Composable +fun Aside( + attrs: AttrBuilderContext = {}, + content: ContentBuilder? = null +) { + TagElement( + elementBuilder = ElementBuilder.Aside, + applyAttrs = attrs, + content = content + ) +} + +@Composable +fun Header( + attrs: AttrBuilderContext = {}, + content: ContentBuilder? = null +) { + TagElement( + elementBuilder = ElementBuilder.Header, + applyAttrs = attrs, + content = content + ) +} + @Composable fun Text(value: String) { ComposeNode( diff --git a/web/core/src/jsTest/kotlin/elements/ElementsTests.kt b/web/core/src/jsTest/kotlin/elements/ElementsTests.kt index 5c3d3a6f3a..a4ed41b57d 100644 --- a/web/core/src/jsTest/kotlin/elements/ElementsTests.kt +++ b/web/core/src/jsTest/kotlin/elements/ElementsTests.kt @@ -9,6 +9,9 @@ import androidx.compose.runtime.Composable import org.jetbrains.compose.web.attributes.AttrsBuilder import org.jetbrains.compose.web.core.tests.runTest import org.jetbrains.compose.web.dom.A +import org.jetbrains.compose.web.dom.Address +import org.jetbrains.compose.web.dom.Article +import org.jetbrains.compose.web.dom.Aside import org.jetbrains.compose.web.dom.B import org.jetbrains.compose.web.dom.Br import org.jetbrains.compose.web.dom.Button @@ -27,6 +30,7 @@ import org.jetbrains.compose.web.dom.H3 import org.jetbrains.compose.web.dom.H4 import org.jetbrains.compose.web.dom.H5 import org.jetbrains.compose.web.dom.H6 +import org.jetbrains.compose.web.dom.Header import org.jetbrains.compose.web.dom.Hr import org.jetbrains.compose.web.dom.I import org.jetbrains.compose.web.dom.Img @@ -58,11 +62,15 @@ import org.w3c.dom.get import kotlin.test.Test import kotlin.test.assertEquals - class ElementsTests { @Test fun nodeNames() = runTest { val nodes = listOf Unit, String>>( + Pair({ Address() }, "ADDRESS"), + Pair({ Article() }, "ARTICLE"), + Pair({ Aside() }, "ASIDE"), + Pair({ Header() }, "HEADER"), + Pair({ Div() }, "DIV"), Pair({ A() }, "A"), Pair({ Button() }, "BUTTON"),