diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Icon.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Icon.kt index 945e8bb..bde17ba 100644 --- a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Icon.kt +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/Icon.kt @@ -202,60 +202,62 @@ sealed class Icon(val name: String) { object Youtube : Brands("youtube") } - @Composable - operator fun invoke( - vararg modifiers: UIKitModifier, - type: UIKitIconType = UIKitIconType.Default, - ratio: Float? = null, - attributesCustomizer: AttrBuilderContext = {}, - onClick: ((Event) -> Unit)? = null - ) { - val configurer: AttrBuilderContext = { - include(*modifiers, type, UIKitIcon) - attr("uk-icon", "icon: $name${if (ratio != null) { "; ratio: $ratio" } else ""}") - onClick ?.let { _ -> - onClick { onClick(it.nativeEvent) } - } - attributesCustomizer() - } - when (type) { - UIKitIconType.Default -> Span(configurer) - UIKitIconType.Link -> A(href = "#", configurer) - UIKitIconType.Button -> Button(configurer) - } - } - class Custom(name: String) : Icon(name) - @Composable - fun drawAsButton( - vararg modifiers: UIKitModifier, - ratio: Float? = null, - attributesCustomizer: AttrBuilderContext = {}, - onClick: ((Event) -> Unit)? = null - ) = invoke(*modifiers, type = UIKitIconType.Button, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) - - @Composable - fun drawAsIcon( - vararg modifiers: UIKitModifier, - ratio: Float? = null, - attributesCustomizer: AttrBuilderContext = {}, - onClick: ((Event) -> Unit)? = null - ) = invoke(*modifiers, type = UIKitIconType.Default, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) - - @Composable - fun drawAsLink( - vararg modifiers: UIKitModifier, - ratio: Float? = null, - attributesCustomizer: AttrBuilderContext = {}, - onClick: ((Event) -> Unit)? = null - ) = invoke(*modifiers, type = UIKitIconType.Link, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) - - @Composable - fun drawAsFormInputPart( - vararg modifiers: UIKitModifier, - ratio: Float? = null, - attributesCustomizer: AttrBuilderContext = {}, - onClick: ((Event) -> Unit)? = null - ) = invoke(*modifiers, UIKitForm.Icon, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) + companion object { + } } +@Composable +operator fun Icon.invoke( + vararg modifiers: UIKitModifier, + type: UIKitIconType = UIKitIconType.Default, + ratio: Float? = null, + attributesCustomizer: AttrBuilderContext = {}, + onClick: ((Event) -> Unit)? = null +) { + val configurer: AttrBuilderContext = { + include(*modifiers, type, UIKitIcon) + attr("uk-icon", "icon: $name${if (ratio != null) { "; ratio: $ratio" } else ""}") + onClick ?.let { _ -> + onClick { onClick(it.nativeEvent) } + } + attributesCustomizer() + } + when (type) { + UIKitIconType.Default -> Span(configurer) + UIKitIconType.Link -> A(href = "#", configurer) + UIKitIconType.Button -> Button(configurer) + } +} + +@Composable +fun Icon.drawAsButton( + vararg modifiers: UIKitModifier, + ratio: Float? = null, + attributesCustomizer: AttrBuilderContext = {}, + onClick: ((Event) -> Unit)? = null +) = invoke(*modifiers, type = UIKitIconType.Button, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) + +@Composable +fun Icon.drawAsIcon( + vararg modifiers: UIKitModifier, + ratio: Float? = null, + attributesCustomizer: AttrBuilderContext = {}, + onClick: ((Event) -> Unit)? = null +) = invoke(*modifiers, type = UIKitIconType.Default, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) + +@Composable +fun Icon.drawAsLink( + vararg modifiers: UIKitModifier, + ratio: Float? = null, + attributesCustomizer: AttrBuilderContext = {}, + onClick: ((Event) -> Unit)? = null +) = invoke(*modifiers, type = UIKitIconType.Link, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) + +@Composable +fun Icon.drawAsFormInputPart( + vararg modifiers: UIKitModifier, + ratio: Float? = null, + attributesCustomizer: AttrBuilderContext = {}, + onClick: ((Event) -> Unit)? = null +) = invoke(*modifiers, UIKitForm.Icon, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/StandardInput.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/StandardInput.kt index 20d5965..dab38d2 100644 --- a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/StandardInput.kt +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/StandardInput.kt @@ -9,7 +9,7 @@ import org.jetbrains.compose.web.dom.Input import org.w3c.dom.HTMLInputElement @Composable -fun StandardInput( +fun DefaultInput( type: InputType, value: T, disabled: Boolean = false, @@ -49,7 +49,7 @@ fun StandardInput( placeholder: String? = null, vararg modifiers: UIKitModifier, attributesCustomizer: AttrBuilderContext = {}, -) = StandardInput( +) = DefaultInput( type, state.value, disabledState ?.value == true,