mirror of
https://github.com/InsanusMokrassar/JSUIKitKBindings.git
synced 2024-11-16 21:33:50 +00:00
48 lines
1.5 KiB
Kotlin
48 lines
1.5 KiB
Kotlin
package dev.inmo.jsuikit.modifiers
|
|
|
|
import dev.inmo.jsuikit.utils.buildAttribute
|
|
import org.jetbrains.compose.web.css.CSSUnitLengthOrPercentage
|
|
import org.jetbrains.compose.web.css.CSSUnitValueTyped
|
|
|
|
class UIKitSticky(
|
|
position: Position? = null,
|
|
start: String? = null,
|
|
end: String? = null,
|
|
offset: CSSUnitValueTyped<CSSUnitLengthOrPercentage>? = null,
|
|
overflowFlip: Boolean? = null,
|
|
animation: UIKitAnimation? = null,
|
|
classForActiveItems: String? = null,
|
|
classForInactiveItems: String? = null,
|
|
showOnUp: Boolean? = null,
|
|
media: String? = null,
|
|
targetOffset: CSSUnitValueTyped<CSSUnitLengthOrPercentage>? = null
|
|
) : UIKitModifier {
|
|
override val otherAttrs: Map<String, String> = mapOf(
|
|
buildAttribute("uk-sticky") {
|
|
"position" to position ?.name
|
|
"start" to start
|
|
"end" to end
|
|
"offset" to offset ?.toString()
|
|
"overflow-flip" to overflowFlip
|
|
"animation" to animation
|
|
"cls-active" to classForActiveItems
|
|
"cls-inactive" to classForInactiveItems
|
|
"show-on-up" to showOnUp
|
|
"media" to media
|
|
"target-offset" to targetOffset ?.toString()
|
|
}
|
|
)
|
|
|
|
sealed interface Position {
|
|
val name: String
|
|
object Top : Position {
|
|
override val name: String
|
|
get() = "top"
|
|
}
|
|
object Bottom : Position {
|
|
override val name: String
|
|
get() = "bottom"
|
|
}
|
|
}
|
|
}
|