Compare commits

..

4 Commits

Author SHA1 Message Date
fafb7e7e04
Merge pull request #59 from InsanusMokrassar/0.1.4
0.1.4
2022-05-22 23:46:13 +06:00
5afa92ef37 UIKitSticky 2022-05-22 23:45:21 +06:00
4377ec3969 improvements 2022-05-22 23:21:25 +06:00
674fbbd4d5 start 0.1.4 2022-05-22 23:21:10 +06:00
4 changed files with 84 additions and 11 deletions

View File

@ -1,5 +1,10 @@
# Changelog # Changelog
## 0.1.4
* Improvements in `UIKitGrid`
* Add support of `UIKitSticky`
## 0.1.3 ## 0.1.3
* Add support of sections * Add support of sections

View File

@ -9,4 +9,4 @@ android.enableJetifier=true
# Project data # Project data
group=dev.inmo group=dev.inmo
version=0.1.3 version=0.1.4

View File

@ -1,20 +1,41 @@
package dev.inmo.jsuikit.modifiers package dev.inmo.jsuikit.modifiers
sealed class UIKitGrid(suffix: String) : UIKitModifier { import dev.inmo.jsuikit.utils.buildAttribute
override val classes: Array<String> = arrayOf("uk-grid-$suffix")
sealed class Gap(suffix: String) : UIKitGrid(suffix) { sealed class UIKitGrid(vararg classnames: String) : UIKitModifier {
override val classes: Array<String> = classnames as Array<String>
object Small : Gap("small") sealed class Gap(classname: String) : UIKitGrid(classname) {
object Medium : Gap("medium")
object Large : Gap("large") object Small : Gap("uk-grid-small")
object Collapse : Gap("collapse") object Medium : Gap("uk-grid-medium")
object Large : Gap("uk-grid-large")
object Collapse : Gap("uk-grid-collapse")
} }
object Divider : UIKitGrid("divider") object Divider : UIKitGrid("uk-grid-divider")
object MatchHeight : UIKitGrid("match") object MatchHeight : UIKitGrid("uk-grid-match")
object ItemMatchHeight : UIKitGrid("item-match") object ItemMatchHeight : UIKitGrid("uk-grid-item-match")
class Custom internal constructor(override val otherAttrs: Map<String, String>) : UIKitGrid()
companion object : UIKitGrid("uk-grid") {
operator fun invoke(
margin: UIKitMargin? = null,
firstColumnClass: String? = null,
masonry: Boolean? = null,
parallax: UInt? = null
) = Custom(
mapOf(
buildAttribute("uk-grid") {
margin to margin ?.classes ?.joinToString(" ")
"first-column" to firstColumnClass
"masonry" to masonry
"parallax" to parallax
}
)
)
}
} }

View File

@ -0,0 +1,47 @@
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
sealed 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"
}
}
}