Merge pull request #37 from InsanusMokrassar/0.0.36

0.0.36
This commit is contained in:
InsanusMokrassar 2022-02-18 15:18:00 +06:00 committed by GitHub
commit e3ba921018
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 119 additions and 16 deletions

View File

@ -1,5 +1,13 @@
# Changelog # Changelog
## 0.0.36
* Reorder arguments in `DefaultComment` fun
* Add `Vertical` and `Horizontal` members in margins
* Add `afterHeaderBuilder` and `beforeFooterBuilder` properties in `Dialog` fun
* Add `UIKitCustom` to be able for simple creating of custom modifiers
* Add support of `UIKitForm`
## 0.0.35 ## 0.0.35
* Add `UIKitModal` * Add `UIKitModal`

View File

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

View File

@ -45,16 +45,16 @@ fun Comment(
@Composable @Composable
fun DefaultComment( fun DefaultComment(
rootAttrs: Attrs<HTMLElement> = Attrs.empty(),
headerGridAttrs: Attrs<HTMLDivElement>? = null, headerGridAttrs: Attrs<HTMLDivElement>? = null,
headerAttrs: Attrs<HTMLElement>? = null,
additionalHeaderContent: ContentBuilder<HTMLElement>? = null,
avatarUrl: String? = null, avatarUrl: String? = null,
avatarAttrs: Attrs<HTMLImageElement>? = null, avatarAttrs: Attrs<HTMLImageElement>? = null,
titleAttrs: Attrs<HTMLHeadingElement>? = null, titleAttrs: Attrs<HTMLHeadingElement>? = null,
titleContent: ContentBuilder<HTMLHeadingElement>? = null, titleContent: ContentBuilder<HTMLHeadingElement>? = null,
metaAttrs: Attrs<HTMLUListElement>? = null, metaAttrs: Attrs<HTMLUListElement>? = null,
metaContent: ContentBuilder<HTMLUListElement>? = null, metaContent: ContentBuilder<HTMLUListElement>? = null,
rootAttrs: Attrs<HTMLElement> = Attrs.empty(),
headerAttrs: Attrs<HTMLElement>? = null,
additionalHeaderContent: ContentBuilder<HTMLElement>? = null,
bodyAttrs: Attrs<HTMLDivElement>? = null, bodyAttrs: Attrs<HTMLDivElement>? = null,
bodyContent: ContentBuilder<HTMLDivElement>? = null, bodyContent: ContentBuilder<HTMLDivElement>? = null,
) { ) {

View File

@ -31,6 +31,8 @@ fun Dialog(
dialogAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null, dialogAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null,
headerAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null, headerAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null,
headerBuilder: ContentBuilder<HTMLDivElement>? = null, headerBuilder: ContentBuilder<HTMLDivElement>? = null,
afterHeaderBuilder: ContentBuilder<HTMLDivElement>? = null,
beforeFooterBuilder: ContentBuilder<HTMLDivElement>? = null,
footerAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null, footerAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null,
footerBuilder: ContentBuilder<HTMLDivElement>? = null, footerBuilder: ContentBuilder<HTMLDivElement>? = null,
bodyAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null, bodyAttrsBuilder: AttrBuilderContext<HTMLDivElement>? = null,
@ -62,6 +64,7 @@ fun Dialog(
it() it()
} }
} }
afterHeaderBuilder ?.let { it() }
Div( Div(
{ {
include(UIKitModal.Body) include(UIKitModal.Body)
@ -70,6 +73,7 @@ fun Dialog(
) { ) {
bodyBuilder() bodyBuilder()
} }
beforeFooterBuilder ?.let { it() }
footerBuilder ?.let { footerBuilder ?.let {
Div( Div(
{ {

View File

@ -250,4 +250,12 @@ sealed class Icon(val name: String) {
attributesCustomizer: AttrBuilderContext<out HTMLElement> = {}, attributesCustomizer: AttrBuilderContext<out HTMLElement> = {},
onClick: ((Event) -> Unit)? = null onClick: ((Event) -> Unit)? = null
) = invoke(*modifiers, type = UIKitIconType.Link, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer) ) = invoke(*modifiers, type = UIKitIconType.Link, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer)
@Composable
fun drawAsFormInputPart(
vararg modifiers: UIKitModifier,
ratio: Float? = null,
attributesCustomizer: AttrBuilderContext<out HTMLElement> = {},
onClick: ((Event) -> Unit)? = null
) = invoke(*modifiers, UIKitForm.Icon, ratio = ratio, onClick = onClick, attributesCustomizer = attributesCustomizer)
} }

View File

@ -0,0 +1,6 @@
package dev.inmo.jsuikit.modifiers
class UIKitCustom(
override val classes: Array<String> = emptyArray(),
override val otherAttrs: Map<String, String> = emptyMap()
) : UIKitModifier

View File

@ -0,0 +1,58 @@
package dev.inmo.jsuikit.modifiers
import dev.inmo.jsuikit.utils.buildAttribute
sealed class UIKitForm(
vararg classnames: String,
override val otherAttrs: Map<String, String> = emptyMap()
) : UIKitModifier {
@Suppress("UNCHECKED_CAST")
override val classes: Array<String> = classnames as Array<String>
object Fieldset : UIKitForm("uk-fieldset")
object Legend : UIKitForm("uk-legend")
object Input : UIKitForm("uk-input")
object Select : UIKitForm("uk-select")
object TextArea : UIKitForm("uk-textarea")
object Radio : UIKitForm("uk-radio", otherAttrs = mapOf("type" to "radio"))
object Checkbox : UIKitForm("uk-checkbox", otherAttrs = mapOf("type" to "checkbox"))
object Range : UIKitForm("uk-range", otherAttrs = mapOf("type" to "range"))
sealed class State(vararg classnames: String) : UIKitForm(*classnames) {
object Danger : State("uk-form-danger")
object Success : State("uk-form-success")
}
sealed class Size(vararg classnames: String) : UIKitForm(*classnames) {
object Large : Size("uk-form-large")
object Default : Size() // :)
object Small : Size("uk-form-small")
}
sealed class Width(vararg classnames: String) : UIKitForm(*classnames) {
object Large : Width("uk-form-width-large")
object Medium : Width("uk-form-width-medium")
object Small : Width("uk-form-width-small")
object XSmall : Width("uk-form-width-xsmall")
}
object Blank : UIKitForm("uk-form-blank")
sealed class Layout(vararg classnames: String) : UIKitForm(*classnames) {
object Stacked : Layout("uk-form-stacked")
object Horizontal : Layout("uk-form-horizontal")
object Label : Layout("uk-form-label")
object Controls : Layout("uk-form-controls")
}
object Icon : UIKitForm("uk-form-icon")
class Custom(
target: String = "true"
) : UIKitForm(
otherAttrs = mapOf(
buildAttribute("uk-form-custom") {
"target" to target
}
)
)
}

View File

@ -1,68 +1,87 @@
package dev.inmo.jsuikit.modifiers package dev.inmo.jsuikit.modifiers
sealed class UIKitMargin(val classname: String) : UIKitModifier { sealed class UIKitMargin(vararg classnames: String) : UIKitModifier {
override val classes: Array<String> = arrayOf(classname) @Suppress("UNCHECKED_CAST")
override val classes: Array<String> = classnames as Array<String>
object Top : Small("uk-margin-top") object Top : UIKitMargin("uk-margin-top")
object Bottom : Small("uk-margin-bottom") object Bottom : UIKitMargin("uk-margin-bottom")
object Left : Small("uk-margin-left") object Left : UIKitMargin("uk-margin-left")
object Right : Small("uk-margin-right") object Right : UIKitMargin("uk-margin-right")
object Vertical : UIKitMargin() { override val classes: Array<String> = Top.classes + Bottom.classes }
object Horizontal : UIKitMargin() { override val classes: Array<String> = Left.classes + Right.classes }
companion object : Small("uk-margin") companion object : Small("uk-margin")
sealed class Small(classname: String) : UIKitMargin(classname) { sealed class Small(vararg classnames: String) : UIKitMargin(*classnames) {
object Top : Small("uk-margin-small-top") object Top : Small("uk-margin-small-top")
object Bottom : Small("uk-margin-small-bottom") object Bottom : Small("uk-margin-small-bottom")
object Left : Small("uk-margin-small-left") object Left : Small("uk-margin-small-left")
object Right : Small("uk-margin-small-right") object Right : Small("uk-margin-small-right")
object Vertical : Small() {
override val classes: Array<String> = Top.classes + Bottom.classes
}
object Horizontal : Small() {
override val classes: Array<String> = Left.classes + Right.classes
}
companion object : Small("uk-margin-small") companion object : Small("uk-margin-small")
} }
sealed class Medium(classname: String) : UIKitMargin(classname) { sealed class Medium(vararg classnames: String) : UIKitMargin(*classnames) {
object Top : Medium("uk-margin-medium-top") object Top : Medium("uk-margin-medium-top")
object Bottom : Medium("uk-margin-medium-bottom") object Bottom : Medium("uk-margin-medium-bottom")
object Left : Medium("uk-margin-medium-left") object Left : Medium("uk-margin-medium-left")
object Right : Medium("uk-margin-medium-right") object Right : Medium("uk-margin-medium-right")
object Vertical : Medium() { override val classes: Array<String> = Top.classes + Bottom.classes }
object Horizontal : Medium() { override val classes: Array<String> = Left.classes + Right.classes }
companion object : Medium("uk-margin-medium") companion object : Medium("uk-margin-medium")
} }
sealed class Large(classname: String) : UIKitMargin(classname) { sealed class Large(vararg classnames: String) : UIKitMargin(*classnames) {
object Top : Large("uk-margin-large-top") object Top : Large("uk-margin-large-top")
object Bottom : Large("uk-margin-large-bottom") object Bottom : Large("uk-margin-large-bottom")
object Left : Large("uk-margin-large-left") object Left : Large("uk-margin-large-left")
object Right : Large("uk-margin-large-right") object Right : Large("uk-margin-large-right")
object Vertical : Large() { override val classes: Array<String> = Top.classes + Bottom.classes }
object Horizontal : Large() { override val classes: Array<String> = Left.classes + Right.classes }
companion object : Large("uk-margin-large") companion object : Large("uk-margin-large")
} }
sealed class XLarge(classname: String) : UIKitMargin(classname) { sealed class XLarge(vararg classnames: String) : UIKitMargin(*classnames) {
object Top : XLarge("uk-margin-xlarge-top") object Top : XLarge("uk-margin-xlarge-top")
object Bottom : XLarge("uk-margin-xlarge-bottom") object Bottom : XLarge("uk-margin-xlarge-bottom")
object Left : XLarge("uk-margin-xlarge-left") object Left : XLarge("uk-margin-xlarge-left")
object Right : XLarge("uk-margin-xlarge-right") object Right : XLarge("uk-margin-xlarge-right")
object Vertical : XLarge() { override val classes: Array<String> = Top.classes + Bottom.classes }
object Horizontal : XLarge() { override val classes: Array<String> = Left.classes + Right.classes }
companion object : XLarge("uk-margin-xlarge") companion object : XLarge("uk-margin-xlarge")
} }
sealed class Auto(classname: String) : UIKitMargin(classname) { sealed class Auto(vararg classnames: String) : UIKitMargin(*classnames) {
object Top : Auto("uk-margin-auto-top") object Top : Auto("uk-margin-auto-top")
object Bottom : Auto("uk-margin-auto-bottom") object Bottom : Auto("uk-margin-auto-bottom")
object Left : Auto("uk-margin-auto-left") object Left : Auto("uk-margin-auto-left")
object Right : Auto("uk-margin-auto-right") object Right : Auto("uk-margin-auto-right")
object Vertical : Auto("uk-margin-auto-vertical") object Vertical : Auto("uk-margin-auto-vertical")
object Horizontal : Auto() { override val classes: Array<String> = Left.classes + Right.classes }
companion object : Auto("uk-margin-auto") companion object : Auto("uk-margin-auto")
} }
sealed class Remove(classname: String) : UIKitMargin(classname) { sealed class Remove(vararg classnames: String) : UIKitMargin(*classnames) {
object Top : Remove("uk-margin-remove-top") object Top : Remove("uk-margin-remove-top")
object Bottom : Remove("uk-margin-remove-bottom") object Bottom : Remove("uk-margin-remove-bottom")
object Left : Remove("uk-margin-remove-left") object Left : Remove("uk-margin-remove-left")
object Right : Remove("uk-margin-remove-right") object Right : Remove("uk-margin-remove-right")
object Vertical : Remove("uk-margin-remove-vertical") object Vertical : Remove("uk-margin-remove-vertical")
object Horizontal : Remove() { override val classes: Array<String> = Left.classes + Right.classes }
object Adjacent : Remove("uk-margin-remove-adjacent") object Adjacent : Remove("uk-margin-remove-adjacent")
object FirstChild : Remove("uk-margin-remove-first-child") object FirstChild : Remove("uk-margin-remove-first-child")
object LastChild : Remove("uk-margin-remove-last-child") object LastChild : Remove("uk-margin-remove-last-child")