JSUIKitKBindings/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Labels.kt

42 lines
948 B
Kotlin
Raw Normal View History

2022-01-12 10:27:49 +00:00
package dev.inmo.jsuikit.elements
2021-12-22 08:38:12 +00:00
import androidx.compose.runtime.Composable
2022-01-12 13:58:52 +00:00
import dev.inmo.jsuikit.modifiers.UIKitModifier
import dev.inmo.jsuikit.modifiers.include
import org.jetbrains.compose.web.dom.*
import org.w3c.dom.HTMLSpanElement
2021-12-22 08:38:12 +00:00
sealed interface Label {
val suffix: String
@Composable
fun draw(
2021-12-22 08:38:12 +00:00
text: String,
vararg modifiers: UIKitModifier,
attributesCustomizer: AttrBuilderContext<HTMLSpanElement> = {},
2021-12-22 08:38:12 +00:00
) = Span(
{
classes("uk-label", "uk-label-$suffix")
include(*modifiers)
attributesCustomizer()
2021-12-22 08:38:12 +00:00
}
) {
Text(text)
}
object Success : Label {
override val suffix: String
get() = "success"
}
object Warning : Label {
override val suffix: String
get() = "warning"
}
object Error : Label {
override val suffix: String
get() = "danger"
}
}