diff --git a/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/Attrs.kt b/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/Attrs.kt index 6dc26a0bdd..7c7c425e15 100644 --- a/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/Attrs.kt +++ b/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/Attrs.kt @@ -1,327 +1,300 @@ package org.jetbrains.compose.web.attributes +import org.w3c.dom.HTMLAnchorElement +import org.w3c.dom.HTMLButtonElement +import org.w3c.dom.HTMLFormElement +import org.w3c.dom.HTMLImageElement import org.w3c.dom.HTMLInputElement - -interface Tag { - object Div : Tag - object A : Tag - object Button : Tag - object Form : Tag - object Input : Tag - object Select : Tag - object Option : Tag - object OptGroup : Tag - object H : Tag - object Hr : Tag - object Ul : Tag - object Ol : Tag - object Li : Tag - object Img : Tag - object TextArea : Tag - object Nav : Tag - object Span : Tag - object P : Tag - object Br : Tag - object Style : Tag - object Pre : Tag - object Code : Tag - object Label : Tag - object Table : Tag - object Caption : Tag - object Col : Tag - object Colgroup : Tag - object Tr : Tag - object Thead : Tag - object Th : Tag - object Td : Tag - object Tbody : Tag - object Tfoot : Tag -} - -/* Anchor attributes */ - -fun AttrsBuilder.href(value: String?) = +import org.w3c.dom.HTMLLabelElement +import org.w3c.dom.HTMLOptGroupElement +import org.w3c.dom.HTMLOptionElement +import org.w3c.dom.HTMLSelectElement +import org.w3c.dom.HTMLTableCellElement +import org.w3c.dom.HTMLTableColElement +import org.w3c.dom.HTMLTextAreaElement + +fun AttrsBuilder.href(value: String?) = attr("href", value) -fun AttrsBuilder.target(value: ATarget = ATarget.Self) = +fun AttrsBuilder.target(value: ATarget = ATarget.Self) = attr("target", value.targetStr) -fun AttrsBuilder.ref(value: ARel) = +fun AttrsBuilder.ref(value: ARel) = attr("rel", value.relStr) -fun AttrsBuilder.ping(value: String) = +fun AttrsBuilder.ping(value: String) = attr("ping", value) -fun AttrsBuilder.ping(vararg urls: String) = +fun AttrsBuilder.ping(vararg urls: String) = attr("ping", urls.joinToString(" ")) -fun AttrsBuilder.hreflang(value: String) = +fun AttrsBuilder.hreflang(value: String) = attr("hreflang", value) -fun AttrsBuilder.download(value: String = "") = +fun AttrsBuilder.download(value: String = "") = attr("download", value) /* Button attributes */ -fun AttrsBuilder.autoFocus(value: Boolean = true) = +fun AttrsBuilder.autoFocus(value: Boolean = true) = attr("autofocus", if (value) "" else null) -fun AttrsBuilder.disabled(value: Boolean = true) = +fun AttrsBuilder.disabled(value: Boolean = true) = attr("disabled", if (value) "" else null) -fun AttrsBuilder.form(formId: String) = +fun AttrsBuilder.form(formId: String) = attr("form", formId) -fun AttrsBuilder.formAction(url: String) = +fun AttrsBuilder.formAction(url: String) = attr("formaction", url) -fun AttrsBuilder.formEncType(value: ButtonFormEncType) = +fun AttrsBuilder.formEncType(value: ButtonFormEncType) = attr("formenctype", value.typeStr) -fun AttrsBuilder.formMethod(value: ButtonFormMethod) = +fun AttrsBuilder.formMethod(value: ButtonFormMethod) = attr("formmethod", value.methodStr) -fun AttrsBuilder.formNoValidate(value: Boolean = true) = +fun AttrsBuilder.formNoValidate(value: Boolean = true) = attr("formnovalidate", if (value) "" else null) -fun AttrsBuilder.formTarget(value: ButtonFormTarget) = +fun AttrsBuilder.formTarget(value: ButtonFormTarget) = attr("formtarget", value.targetStr) -fun AttrsBuilder.name(value: String) = +fun AttrsBuilder.name(value: String) = attr("name", value) -fun AttrsBuilder.type(value: ButtonType) = +fun AttrsBuilder.type(value: ButtonType) = attr("type", value.str) -fun AttrsBuilder.value(value: String) = +fun AttrsBuilder.value(value: String) = attr("value", value) /* Form attributes */ -fun AttrsBuilder.action(value: String) = +fun AttrsBuilder.action(value: String) = attr("action", value) -fun AttrsBuilder.acceptCharset(value: String) = +fun AttrsBuilder.acceptCharset(value: String) = attr("accept-charset", value) -fun AttrsBuilder.autoComplete(value: Boolean) = +fun AttrsBuilder.autoComplete(value: Boolean) = attr("autocomplete", if (value) "" else null) -fun AttrsBuilder.encType(value: FormEncType) = +fun AttrsBuilder.encType(value: FormEncType) = attr("enctype", value.typeStr) -fun AttrsBuilder.method(value: FormMethod) = +fun AttrsBuilder.method(value: FormMethod) = attr("method", value.methodStr) -fun AttrsBuilder.noValidate(value: Boolean = true) = +fun AttrsBuilder.noValidate(value: Boolean = true) = attr("novalidate", if (value) "" else null) -fun AttrsBuilder.target(value: FormTarget) = +fun AttrsBuilder.target(value: FormTarget) = attr("target", value.targetStr) /* Input attributes */ -fun AttrsBuilder.type(value: InputType) = +fun AttrsBuilder.type(value: InputType) = attr("type", value.typeStr) -fun AttrsBuilder.accept(value: String) = +fun AttrsBuilder.accept(value: String) = attr("accept", value) // type: file only -fun AttrsBuilder.alt(value: String) = +fun AttrsBuilder.alt(value: String) = attr("alt", value) // type: image only -fun AttrsBuilder.autoComplete(value: Boolean = true) = +fun AttrsBuilder.autoComplete(value: Boolean = true) = attr("autocomplete", if (value) "" else null) -fun AttrsBuilder.autoFocus(value: Boolean = true) = +fun AttrsBuilder.autoFocus(value: Boolean = true) = attr("autofocus", if (value) "" else null) -fun AttrsBuilder.capture(value: String) = +fun AttrsBuilder.capture(value: String) = attr("capture", value) // type: file only -fun AttrsBuilder.checked(value: Boolean = true) = +fun AttrsBuilder.checked(value: Boolean = true) = attr("checked", if (value) "" else null) // radio, checkbox -fun AttrsBuilder.dirName(value: String) = +fun AttrsBuilder.dirName(value: String) = attr("dirname", value) // text, search -fun AttrsBuilder.disabled(value: Boolean = true) = +fun AttrsBuilder.disabled(value: Boolean = true) = attr("disabled", if (value) "" else null) -fun AttrsBuilder.form(id: String) = +fun AttrsBuilder.form(id: String) = attr("form", id) -fun AttrsBuilder.formAction(url: String) = +fun AttrsBuilder.formAction(url: String) = attr("formaction", url) -fun AttrsBuilder.formEncType(value: InputFormEncType) = +fun AttrsBuilder.formEncType(value: InputFormEncType) = attr("formenctype", value.typeStr) -fun AttrsBuilder.formMethod(value: InputFormMethod) = +fun AttrsBuilder.formMethod(value: InputFormMethod) = attr("formmethod", value.methodStr) -fun AttrsBuilder.formNoValidate(value: Boolean = true) = +fun AttrsBuilder.formNoValidate(value: Boolean = true) = attr("formnovalidate", if (value) "" else null) -fun AttrsBuilder.formTarget(value: InputFormTarget) = +fun AttrsBuilder.formTarget(value: InputFormTarget) = attr("formtarget", value.targetStr) -fun AttrsBuilder.height(value: Int) = +fun AttrsBuilder.height(value: Int) = attr("height", value.toString()) // image only -fun AttrsBuilder.width(value: Int) = +fun AttrsBuilder.width(value: Int) = attr("width", value.toString()) // image only -fun AttrsBuilder.list(dataListId: String) = +fun AttrsBuilder.list(dataListId: String) = attr("list", dataListId) -fun AttrsBuilder.max(value: String) = +fun AttrsBuilder.max(value: String) = attr("max", value) -fun AttrsBuilder.maxLength(value: Int) = +fun AttrsBuilder.maxLength(value: Int) = attr("maxlength", value.toString()) -fun AttrsBuilder.min(value: String) = +fun AttrsBuilder.min(value: String) = attr("min", value) -fun AttrsBuilder.minLength(value: Int) = +fun AttrsBuilder.minLength(value: Int) = attr("minlength", value.toString()) -fun AttrsBuilder.multiple(value: Boolean = true) = +fun AttrsBuilder.multiple(value: Boolean = true) = attr("multiple", if (value) "" else null) -fun AttrsBuilder.name(value: String) = +fun AttrsBuilder.name(value: String) = attr("name", value) -fun AttrsBuilder.pattern(value: String) = +fun AttrsBuilder.pattern(value: String) = attr("pattern", value) -fun AttrsBuilder.placeholder(value: String) = +fun AttrsBuilder.placeholder(value: String) = attr("placeholder", value) -fun AttrsBuilder.readOnly(value: Boolean = true) = +fun AttrsBuilder.readOnly(value: Boolean = true) = attr("readonly", if (value) "" else null) -fun AttrsBuilder.required(value: Boolean = true) = +fun AttrsBuilder.required(value: Boolean = true) = attr("required", value.toString()) -fun AttrsBuilder.size(value: Int) = +fun AttrsBuilder.size(value: Int) = attr("size", value.toString()) -fun AttrsBuilder.src(value: String) = +fun AttrsBuilder.src(value: String) = attr("src", value.toString()) // image only -fun AttrsBuilder.step(value: Int) = +fun AttrsBuilder.step(value: Int) = attr("step", value.toString()) // numeric types only -fun AttrsBuilder.valueAttr(value: String) = +fun AttrsBuilder.valueAttr(value: String) = attr("value", value) -fun AttrsBuilder.value(value: String): AttrsBuilder { +fun AttrsBuilder.value(value: String): AttrsBuilder { prop(setInputValue, value) return this } /* Option attributes */ -fun AttrsBuilder.value(value: String) = +fun AttrsBuilder.value(value: String) = attr("value", value) -fun AttrsBuilder.disabled(value: Boolean = true) = +fun AttrsBuilder.disabled(value: Boolean = true) = attr("disabled", if (value) "" else null) -fun AttrsBuilder.selected(value: Boolean = true) = +fun AttrsBuilder.selected(value: Boolean = true) = attr("selected", if (value) "" else null) -fun AttrsBuilder.label(value: String) = +fun AttrsBuilder.label(value: String) = attr("label", value) /* Select attributes */ -fun AttrsBuilder.autocomplete(value: String) = +fun AttrsBuilder.autocomplete(value: String) = attr("autocomplete", value) -fun AttrsBuilder.autofocus(value: Boolean = true) = +fun AttrsBuilder.autofocus(value: Boolean = true) = attr("autofocus", if (value) "" else null) -fun AttrsBuilder.disabled(value: Boolean = true) = +fun AttrsBuilder.disabled(value: Boolean = true) = attr("disabled", if (value) "" else null) -fun AttrsBuilder.form(formId: String) = +fun AttrsBuilder.form(formId: String) = attr("form", formId) -fun AttrsBuilder.multiple(value: Boolean = true) = +fun AttrsBuilder.multiple(value: Boolean = true) = attr("multiple", if (value) "" else null) -fun AttrsBuilder.name(value: String) = +fun AttrsBuilder.name(value: String) = attr("name", value) -fun AttrsBuilder.required(value: Boolean = true) = +fun AttrsBuilder.required(value: Boolean = true) = attr("required", if (value) "" else null) -fun AttrsBuilder.size(numberOfRows: Int) = +fun AttrsBuilder.size(numberOfRows: Int) = attr("size", numberOfRows.toString()) /* OptGroup attributes */ -fun AttrsBuilder.label(value: String) = +fun AttrsBuilder.label(value: String) = attr("label", value) -fun AttrsBuilder.disabled(value: Boolean = true) = +fun AttrsBuilder.disabled(value: Boolean = true) = attr("disabled", if (value) "" else null) /* TextArea attributes */ -fun AttrsBuilder.autoComplete(value: Boolean = true) = +fun AttrsBuilder.autoComplete(value: Boolean = true) = attr("autocomplete", if (value) "on" else "off") -fun AttrsBuilder.autoFocus(value: Boolean = true) = +fun AttrsBuilder.autoFocus(value: Boolean = true) = attr("autofocus", if (value) "" else null) -fun AttrsBuilder.cols(value: Int) = +fun AttrsBuilder.cols(value: Int) = attr("cols", value.toString()) -fun AttrsBuilder.disabled(value: Boolean = true) = +fun AttrsBuilder.disabled(value: Boolean = true) = attr("disabled", if (value) "" else null) -fun AttrsBuilder.form(formId: String) = +fun AttrsBuilder.form(formId: String) = attr("form", formId) -fun AttrsBuilder.maxLength(value: Int) = +fun AttrsBuilder.maxLength(value: Int) = attr("maxlength", value.toString()) -fun AttrsBuilder.minLength(value: Int) = +fun AttrsBuilder.minLength(value: Int) = attr("minlength", value.toString()) -fun AttrsBuilder.name(value: String) = +fun AttrsBuilder.name(value: String) = attr("name", value) -fun AttrsBuilder.placeholder(value: String) = +fun AttrsBuilder.placeholder(value: String) = attr("placeholder", value) -fun AttrsBuilder.readOnly(value: Boolean = true) = +fun AttrsBuilder.readOnly(value: Boolean = true) = attr("readonly", if (value) "" else null) -fun AttrsBuilder.required(value: Boolean = true) = +fun AttrsBuilder.required(value: Boolean = true) = attr("required", if (value) "" else null) -fun AttrsBuilder.rows(value: Int) = +fun AttrsBuilder.rows(value: Int) = attr("rows", value.toString()) -fun AttrsBuilder.wrap(value: TextAreaWrap) = +fun AttrsBuilder.wrap(value: TextAreaWrap) = attr("wrap", value.str) -fun AttrsBuilder.value(value: String): AttrsBuilder { +fun AttrsBuilder.value(value: String): AttrsBuilder { prop(setInputValue, value) return this } /* Img attributes */ -fun AttrsBuilder.src(value: String?): AttrsBuilder = +fun AttrsBuilder.src(value: String?): AttrsBuilder = attr("src", value) -fun AttrsBuilder.alt(value: String?): AttrsBuilder = +fun AttrsBuilder.alt(value: String?): AttrsBuilder = attr("alt", value) private val setInputValue: (HTMLInputElement, String) -> Unit = { e, v -> @@ -329,24 +302,19 @@ private val setInputValue: (HTMLInputElement, String) -> Unit = { e, v -> } /* Img attributes */ -fun AttrsBuilder.forId(value: String?): AttrsBuilder = +fun AttrsBuilder.forId(value: String?): AttrsBuilder = attr("for", value) /* Table attributes */ -fun AttrsBuilder.scope(value: Scope?): AttrsBuilder = - attr("scope", value?.str) - -fun AttrsBuilder.span(value: Int): AttrsBuilder = +fun AttrsBuilder.span(value: Int): AttrsBuilder = attr("span", value.toString()) -fun AttrsBuilder.colspan(value: Int): AttrsBuilder = - attr("colspan", value.toString()) - -fun AttrsBuilder.rowspan(value: Int): AttrsBuilder = - attr("rowspan", value.toString()) +fun AttrsBuilder.scope(value: Scope?): AttrsBuilder = + attr("scope", value?.str) -fun AttrsBuilder.colspan(value: Int): AttrsBuilder = +fun AttrsBuilder.colspan(value: Int): AttrsBuilder = attr("colspan", value.toString()) -fun AttrsBuilder.rowspan(value: Int): AttrsBuilder = +fun AttrsBuilder.rowspan(value: Int): AttrsBuilder = attr("rowspan", value.toString()) + diff --git a/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/AttrsBuilder.kt b/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/AttrsBuilder.kt index a649fabf50..4fd6d190ae 100644 --- a/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/AttrsBuilder.kt +++ b/web/core/src/jsMain/kotlin/androidx/compose/web/attributes/AttrsBuilder.kt @@ -7,7 +7,7 @@ import org.jetbrains.compose.web.css.StyleBuilderImpl import org.w3c.dom.Element import org.w3c.dom.HTMLElement -class AttrsBuilder : EventsListenerBuilder() { +class AttrsBuilder : EventsListenerBuilder() { private val attributesMap = mutableMapOf() val styleBuilder = StyleBuilderImpl() @@ -34,7 +34,7 @@ class AttrsBuilder : EventsListenerBuilder() { this.refEffect = effect } - fun attr(attr: String, value: String?): AttrsBuilder { + fun attr(attr: String, value: String?): AttrsBuilder { if (value == null) { attributesMap.remove(attr) } else { 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 95c16c7b4a..ccf9f69697 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 @@ -13,7 +13,6 @@ import androidx.compose.runtime.remember import org.jetbrains.compose.web.DomApplier import org.jetbrains.compose.web.DomElementWrapper import org.jetbrains.compose.web.attributes.AttrsBuilder -import org.jetbrains.compose.web.attributes.Tag import kotlinx.browser.document import org.w3c.dom.Element import org.w3c.dom.HTMLAnchorElement @@ -23,7 +22,6 @@ import org.w3c.dom.HTMLDivElement import org.w3c.dom.HTMLElement import org.w3c.dom.HTMLFormElement import org.w3c.dom.HTMLHRElement -import org.w3c.dom.HTMLHeadElement import org.w3c.dom.HTMLHeadingElement import org.w3c.dom.HTMLImageElement import org.w3c.dom.HTMLInputElement @@ -151,9 +149,9 @@ interface ElementBuilder { } @Composable -fun TagElement( +fun TagElement( elementBuilder: ElementBuilder, - applyAttrs: AttrsBuilder.() -> Unit, + applyAttrs: AttrsBuilder.() -> Unit, content: (@Composable ElementScope.() -> Unit)? ) { val scope = remember { ElementScopeImpl() } @@ -166,7 +164,7 @@ fun TagElement( } }, attrsSkippableUpdate = { - val attrsApplied = AttrsBuilder().also { it.applyAttrs() } + val attrsApplied = AttrsBuilder().also { it.applyAttrs() } refEffect.effect = attrsApplied.refEffect val attrsCollected = attrsApplied.collect() val events = attrsApplied.collectListeners() @@ -188,9 +186,9 @@ fun TagElement( } @Composable -fun TagElement( +fun TagElement( tagName: String, - applyAttrs: AttrsBuilder.() -> Unit, + applyAttrs: AttrsBuilder.() -> Unit, content: (@Composable ElementScope.() -> Unit)? ) = TagElement( elementBuilder = ElementBuilder.createBuilder(tagName), 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 8674469f40..1b202fd26f 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 @@ -6,7 +6,6 @@ import org.jetbrains.compose.web.DomApplier import org.jetbrains.compose.web.DomNodeWrapper import org.jetbrains.compose.web.attributes.AttrsBuilder import org.jetbrains.compose.web.attributes.InputType -import org.jetbrains.compose.web.attributes.Tag import org.jetbrains.compose.web.attributes.action import org.jetbrains.compose.web.attributes.alt import org.jetbrains.compose.web.attributes.forId @@ -60,7 +59,7 @@ fun Text(value: String) { @Composable fun Div( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -73,10 +72,10 @@ fun Div( @Composable fun A( href: String? = null, - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.A, applyAttrs = { href(href) @@ -90,9 +89,9 @@ fun A( fun Input( type: InputType = InputType.Text, value: String = "", - attrs: AttrBuilderContext = {} + attrs: AttrBuilderContext = {} ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.Input, applyAttrs = { type(type) @@ -105,107 +104,107 @@ fun Input( @Composable fun Button( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Button, applyAttrs = attrs, content = content) @Composable fun H1( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.H1, applyAttrs = attrs, content = content) @Composable fun H2( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.H2, applyAttrs = attrs, content = content) @Composable fun H3( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.H3, applyAttrs = attrs, content = content) @Composable fun H4( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.H4, applyAttrs = attrs, content = content) @Composable fun H5( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.H5, applyAttrs = attrs, content = content) @Composable fun H6( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.H6, applyAttrs = attrs, content = content) @Composable fun P( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.P, applyAttrs = attrs, content = content) @Composable fun Em( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Em, applyAttrs = attrs, content = content) @Composable fun I( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.I, applyAttrs = attrs, content = content) @Composable fun B( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.B, applyAttrs = attrs, content = content) @Composable fun Small( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Small, applyAttrs = attrs, content = content) @Composable fun Span( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Span, applyAttrs = attrs, content = content) @Composable -fun Br(attrs: AttrBuilderContext = {}) = - TagElement(elementBuilder = ElementBuilder.Br, applyAttrs = attrs, content = null) +fun Br(attrs: AttrBuilderContext = {}) = + TagElement(elementBuilder = ElementBuilder.Br, applyAttrs = attrs, content = null) @Composable fun Ul( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Ul, applyAttrs = attrs, content = content) @Composable fun Ol( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Ol, applyAttrs = attrs, content = content) @Composable fun DOMScope.Li( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Li, applyAttrs = attrs, content = content) @Composable fun DOMScope.Li( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement(elementBuilder = ElementBuilder.Li, applyAttrs = attrs, content = content) @@ -213,8 +212,8 @@ fun DOMScope.Li( fun Img( src: String, alt: String = "", - attrs: AttrBuilderContext = {} -) = TagElement( + attrs: AttrBuilderContext = {} +) = TagElement( elementBuilder = ElementBuilder.Img, applyAttrs = { src(src).alt(alt) @@ -226,9 +225,9 @@ fun Img( @Composable fun Form( action: String? = null, - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null -) = TagElement( +) = TagElement( elementBuilder = ElementBuilder.Form, applyAttrs = { if (!action.isNullOrEmpty()) action(action) @@ -239,7 +238,7 @@ fun Form( @Composable fun Select( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement( elementBuilder = ElementBuilder.Select, @@ -250,9 +249,9 @@ fun Select( @Composable fun Option( value: String, - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null -) = TagElement( +) = TagElement( elementBuilder = ElementBuilder.Option, applyAttrs = { value(value) @@ -264,9 +263,9 @@ fun Option( @Composable fun OptGroup( label: String, - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null -) = TagElement( +) = TagElement( elementBuilder = ElementBuilder.OptGroup, applyAttrs = { label(label) @@ -277,7 +276,7 @@ fun OptGroup( @Composable fun Section( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement( elementBuilder = ElementBuilder.Section, @@ -287,9 +286,9 @@ fun Section( @Composable fun TextArea( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, value: String -) = TagElement( +) = TagElement( elementBuilder = ElementBuilder.TextArea, applyAttrs = { value(value) @@ -301,7 +300,7 @@ fun TextArea( @Composable fun Nav( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) = TagElement( elementBuilder = ElementBuilder.Nav, @@ -311,7 +310,7 @@ fun Nav( @Composable fun Pre( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -323,7 +322,7 @@ fun Pre( @Composable fun Code( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -335,10 +334,10 @@ fun Code( @Composable fun Main( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.Main, applyAttrs = attrs, content = content @@ -347,10 +346,10 @@ fun Main( @Composable fun Footer( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.Footer, applyAttrs = attrs, content = content @@ -359,9 +358,9 @@ fun Footer( @Composable fun Hr( - attrs: AttrBuilderContext = {} + attrs: AttrBuilderContext = {} ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.Hr, applyAttrs = attrs, content = null @@ -371,10 +370,10 @@ fun Hr( @Composable fun Label( forId: String? = null, - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.Label, applyAttrs = { forId(forId) @@ -386,7 +385,7 @@ fun Label( @Composable fun Table( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -398,7 +397,7 @@ fun Table( @Composable fun Caption( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -410,9 +409,9 @@ fun Caption( @Composable fun Col( - attrs: AttrBuilderContext = {} + attrs: AttrBuilderContext = {} ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.Col, applyAttrs = attrs, content = null @@ -421,7 +420,7 @@ fun Col( @Composable fun Colgroup( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -433,7 +432,7 @@ fun Colgroup( @Composable fun Tr( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -445,7 +444,7 @@ fun Tr( @Composable fun Thead( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -457,7 +456,7 @@ fun Thead( @Composable fun Th( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -469,7 +468,7 @@ fun Th( @Composable fun Td( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -481,7 +480,7 @@ fun Td( @Composable fun Tbody( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( @@ -493,7 +492,7 @@ fun Tbody( @Composable fun Tfoot( - attrs: AttrBuilderContext = {}, + attrs: AttrBuilderContext = {}, content: ContentBuilder? = null ) { TagElement( diff --git a/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Style.kt b/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Style.kt index d2aefff0a5..0eef2d88bf 100644 --- a/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Style.kt +++ b/web/core/src/jsMain/kotlin/androidx/compose/web/elements/Style.kt @@ -2,7 +2,6 @@ package org.jetbrains.compose.web.dom import androidx.compose.runtime.Composable import org.jetbrains.compose.web.attributes.AttrsBuilder -import org.jetbrains.compose.web.attributes.Tag import org.w3c.dom.HTMLStyleElement import org.w3c.dom.css.CSSGroupingRule import org.w3c.dom.css.CSSRule @@ -18,7 +17,7 @@ import org.jetbrains.compose.web.css.* */ @Composable inline fun Style( - crossinline applyAttrs: AttrsBuilder.() -> Unit = {}, + crossinline applyAttrs: AttrsBuilder.() -> Unit = {}, rulesBuild: StyleSheetBuilder.() -> Unit ) { val builder = StyleSheetBuilderImpl() @@ -34,10 +33,10 @@ inline fun Style( */ @Composable inline fun Style( - crossinline applyAttrs: AttrsBuilder.() -> Unit = {}, + crossinline applyAttrs: AttrsBuilder.() -> Unit = {}, cssRules: CSSRuleDeclarationList ) { - TagElement( + TagElement( elementBuilder = ElementBuilder.Style, applyAttrs = { applyAttrs() diff --git a/web/core/src/jsTest/kotlin/elements/ElementsTests.kt b/web/core/src/jsTest/kotlin/elements/ElementsTests.kt index 7253ced335..5c3d3a6f3a 100644 --- a/web/core/src/jsTest/kotlin/elements/ElementsTests.kt +++ b/web/core/src/jsTest/kotlin/elements/ElementsTests.kt @@ -7,7 +7,6 @@ package org.jetbrains.compose.web.core.tests.elements import androidx.compose.runtime.Composable import org.jetbrains.compose.web.attributes.AttrsBuilder -import org.jetbrains.compose.web.attributes.Tag import org.jetbrains.compose.web.core.tests.runTest import org.jetbrains.compose.web.dom.A import org.jetbrains.compose.web.dom.B @@ -130,7 +129,7 @@ class ElementsTests { fun rawCreation() = runTest { @Composable fun CustomElement( - attrs: AttrsBuilder.() -> Unit, + attrs: AttrsBuilder.() -> Unit, content: ContentBuilder? = null ) { TagElement(