diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Badge.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Badge.kt new file mode 100644 index 0000000..6fb0b35 --- /dev/null +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Badge.kt @@ -0,0 +1,25 @@ +package dev.inmo.jsuikit.elements + +import androidx.compose.runtime.Composable +import dev.inmo.jsuikit.modifiers.UIKitBadge +import dev.inmo.jsuikit.modifiers.include +import org.jetbrains.compose.web.dom.AttrBuilderContext +import org.jetbrains.compose.web.dom.ContentBuilder +import org.jetbrains.compose.web.dom.Span +import org.jetbrains.compose.web.dom.Text +import org.w3c.dom.HTMLSpanElement + +@Composable +fun Badge( + text: String, + onAfterText: ContentBuilder? = null, + onBeforeText: ContentBuilder? = null, + attrs: AttrBuilderContext? = null +) = Span({ + include(UIKitBadge) + attrs ?.invoke(this) +}) { + onAfterText ?.invoke(this) + Text(text) + onBeforeText ?.invoke(this) +} diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitBadge.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitBadge.kt new file mode 100644 index 0000000..8c32e6c --- /dev/null +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitBadge.kt @@ -0,0 +1,7 @@ +package dev.inmo.jsuikit.modifiers + +sealed class UIKitBadge(classname: String) : UIKitModifier { + override val classes: Array = arrayOf(classname) + + companion object : UIKitBadge("uk-badge") +}