From c41e2b8495f8c70622bfc75382192b916b81bb6d Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 27 Apr 2022 15:43:55 +0600 Subject: [PATCH 1/5] start 0.0.53 --- CHANGELOG.md | 2 ++ gradle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b60097..2d8e3a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +## 0.0.53 + ## 0.0.52 * Improve work with UIKitModifiers diff --git a/gradle.properties b/gradle.properties index dc6199f..9d7cf4f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,4 +9,4 @@ android.enableJetifier=true # Project data group=dev.inmo -version=0.0.52 +version=0.0.53 From 468f167ac635ca2057025c73cbc115814821ab02 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 27 Apr 2022 15:44:06 +0600 Subject: [PATCH 2/5] Improvements in UIKitPadding --- CHANGELOG.md | 2 ++ .../kotlin/dev/inmo/jsuikit/modifiers/UIKitPadding.kt | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d8e3a7..6785495 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## 0.0.53 +Improvements in `UIKitPadding` + ## 0.0.52 * Improve work with UIKitModifiers diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitPadding.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitPadding.kt index ab7c57f..ab2481f 100644 --- a/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitPadding.kt +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitPadding.kt @@ -8,7 +8,10 @@ sealed class UIKitPadding(suffix: String?) : UIKitModifier { object Small : Size("small") object Large : Size("large") - companion object : Size(null) + companion object : Size(null) { + val Default + get() = this + } } @@ -25,5 +28,6 @@ sealed class UIKitPadding(suffix: String?) : UIKitModifier { } + companion object : Size(null) } From 8adbe8a1ca9281dd1a3953494ae4db8ec883126d Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 27 Apr 2022 16:07:07 +0600 Subject: [PATCH 3/5] Add support of UIKit lists --- CHANGELOG.md | 3 +- .../dev/inmo/jsuikit/modifiers/UIKitList.kt | 46 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitList.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 6785495..d410155 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## 0.0.53 -Improvements in `UIKitPadding` +* Improvements in `UIKitPadding` +* Add support of UIKit lists ## 0.0.52 diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitList.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitList.kt new file mode 100644 index 0000000..b9e7497 --- /dev/null +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/modifiers/UIKitList.kt @@ -0,0 +1,46 @@ +package dev.inmo.jsuikit.modifiers + +sealed class UIKitList( + vararg classes: String, + override val otherAttrs: Map = emptyMap() +) : UIKitModifier { + @Suppress("UNCHECKED_CAST") + override val classes: Array = classes as Array + + sealed class Style(vararg classes: String) : UIKitList(*classes) { + + object Disc : Style("uk-list-disc") + object Circle : Style("uk-list-circle") + object Square : Style("uk-list-square") + object Decimal : Style("uk-list-decimal") + object Hyphen : Style("uk-list-hyphen") + + } + + sealed class Size(vararg classes: String) : UIKitList(*classes) { + + object Large : Size("uk-list-large") + object Collapse : Size("uk-list-collapse") + + } + + sealed class Color(vararg classes: String) : UIKitList(*classes) { + + object Muted : Color("uk-list-muted") + object Emphasis : Color("uk-list-emphasis") + object Primary : Color("uk-list-primary") + object Secondary : Color("uk-list-secondary") + companion object { + val Bullet = UIKitList.Bullet + } + + } + + object Bullet: UIKitList("uk-list-bullet") + + object Divider: UIKitList("uk-list-divider") + + object Striped: UIKitList("uk-list-striped") + + companion object : UIKitList("uk-list") +} From 6daa57fe8f2b9128364c6fa64f88ec514f06be81 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 27 Apr 2022 16:13:58 +0600 Subject: [PATCH 4/5] improve support of List --- .../kotlin/dev/inmo/jsuikit/elements/List.kt | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt index cc9ac3e..e39286f 100644 --- a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt @@ -2,12 +2,30 @@ package dev.inmo.jsuikit.elements import androidx.compose.runtime.Composable import androidx.compose.runtime.snapshots.SnapshotStateList -import dev.inmo.jsuikit.modifiers.UIKitModifier -import dev.inmo.jsuikit.modifiers.include +import dev.inmo.jsuikit.modifiers.* +import dev.inmo.jsuikit.utils.Attrs import org.jetbrains.compose.web.dom.* import org.w3c.dom.HTMLHeadingElement import org.w3c.dom.HTMLUListElement +@Composable +fun List( + data: SnapshotStateList, + ukAttrs: Attrs = Attrs.empty(), + elementAllocator: @Composable ElementScope.(T) -> Unit +) { + Ul( + { + include(UIKitList) + ukAttrs.builder(this) + } + ) { + data.forEach { + elementAllocator(it) + } + } +} + @Composable fun List( title: String, @@ -23,15 +41,5 @@ fun List( Text(title) } besidesTitleAndList ?.invoke() - Ul( - { - classes("uk-list") - include(*ulModifiers) - ulCustomizer() - } - ) { - data.forEach { - elementAllocator(it) - } - } + List(data, Attrs(*ulModifiers) { ulCustomizer(this) }, elementAllocator) } From 5842da03d0f5f867c5fdf6417ac1a2fed243d1e4 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 27 Apr 2022 16:24:57 +0600 Subject: [PATCH 5/5] new function ListWithTitle --- .../kotlin/dev/inmo/jsuikit/elements/List.kt | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt index e39286f..2e1f505 100644 --- a/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt +++ b/src/jsMain/kotlin/dev/inmo/jsuikit/elements/List.kt @@ -27,7 +27,7 @@ fun List( } @Composable -fun List( +fun ListWithTitle( title: String, data: SnapshotStateList, vararg titleModifiers: UIKitModifier, @@ -43,3 +43,25 @@ fun List( besidesTitleAndList ?.invoke() List(data, Attrs(*ulModifiers) { ulCustomizer(this) }, elementAllocator) } + +@Deprecated("Renamed", ReplaceWith("ListWithTitle", "dev.inmo.jsuikit.elements.ListWithTitle")) +@Composable +fun List( + title: String, + data: SnapshotStateList, + vararg titleModifiers: UIKitModifier, + ulModifiers: Array = emptyArray(), + besidesTitleAndList: (@Composable () -> Unit)? = null, + titleCustomizer: AttrBuilderContext = {}, + ulCustomizer: AttrBuilderContext = {}, + elementAllocator: @Composable ElementScope.(T) -> Unit +) = ListWithTitle( + title, + data, + *titleModifiers, + ulModifiers = ulModifiers, + besidesTitleAndList = besidesTitleAndList, + titleCustomizer = titleCustomizer, + ulCustomizer = ulCustomizer, + elementAllocator = elementAllocator +)