mirror of
https://github.com/InsanusMokrassar/KotlinPublicationScriptsBuilder.git
synced 2025-10-15 03:10:02 +00:00
complete restyling
This commit is contained in:
@@ -4,6 +4,7 @@ import androidx.compose.runtime.Composable
|
||||
import dev.inmo.jsuikit.elements.DefaultButton
|
||||
import dev.inmo.jsuikit.modifiers.UIKitButton
|
||||
import dev.inmo.jsuikit.modifiers.UIKitMargin
|
||||
import dev.inmo.jsuikit.modifiers.UIKitTooltipModifier
|
||||
import dev.inmo.jsuikit.modifiers.UIKitUtility
|
||||
import dev.inmo.kmppscriptbuilder.core.models.GpgSigning
|
||||
import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer
|
||||
@@ -14,10 +15,17 @@ actual class GpgSigningOptionDrawer(
|
||||
) : Drawer<GpgSigning> {
|
||||
@Composable
|
||||
override fun GpgSigning.draw() {
|
||||
val tooltipModifier = UIKitTooltipModifier(
|
||||
when (this) {
|
||||
GpgSigning.Disabled -> "Signing will not be added"
|
||||
GpgSigning.Enabled -> "Signing will be always enabled"
|
||||
GpgSigning.Optional -> "Signing will be added, but disabled in case of absence 'signatory.keyId'"
|
||||
}
|
||||
)
|
||||
if (mavenInfoView.gpgSignProperty == this) {
|
||||
DefaultButton(name, UIKitButton.Type.Primary, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded)
|
||||
DefaultButton(name, UIKitButton.Type.Primary, UIKitButton.Size.Small, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded, tooltipModifier)
|
||||
} else {
|
||||
DefaultButton(name, UIKitButton.Type.Default, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded) {
|
||||
DefaultButton(name, UIKitButton.Type.Default, UIKitButton.Size.Small, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded, tooltipModifier) {
|
||||
mavenInfoView.gpgSignProperty = this
|
||||
}
|
||||
}
|
||||
|
@@ -28,34 +28,10 @@ actual object LicensesDrawer : Drawer<LicensesView> {
|
||||
it.title,
|
||||
UIKitButton.Type.Text
|
||||
) { _ ->
|
||||
licensesListState.add(it.toLicenseState())
|
||||
itemsList.add(it.toLicenseState())
|
||||
licenseSearchFilter = ""
|
||||
}
|
||||
Divider.Common()
|
||||
}
|
||||
|
||||
DefaultButton("Add empty license", UIKitButton.Type.Primary, UIKitMargin.Small, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded) {
|
||||
licensesListState.add(LicenseState())
|
||||
}
|
||||
|
||||
licensesListState.forEach { license ->
|
||||
Div(UIKitMargin.Small.builder()) {
|
||||
CommonTextField(
|
||||
license.id,
|
||||
"License ID",
|
||||
) { license.id = it }
|
||||
CommonTextField(
|
||||
license.title,
|
||||
"License title",
|
||||
) { license.title = it }
|
||||
CommonTextField(
|
||||
license.url ?: "",
|
||||
"License URL",
|
||||
) { license.url = it }
|
||||
DefaultButton("Remove", UIKitButton.Type.Default, UIKitMargin.Small, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded) {
|
||||
licensesListState.remove(license)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -6,6 +6,7 @@ import dev.inmo.jsuikit.modifiers.UIKitButton
|
||||
import dev.inmo.jsuikit.modifiers.UIKitMargin
|
||||
import dev.inmo.jsuikit.modifiers.UIKitUtility
|
||||
import dev.inmo.jsuikit.modifiers.builder
|
||||
import dev.inmo.kmppscriptbuilder.core.ui.utils.DefaultBox
|
||||
import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer
|
||||
import dev.inmo.kmppscriptbuilder.core.ui.utils.NoTransform
|
||||
import org.jetbrains.compose.web.dom.Div
|
||||
@@ -13,14 +14,17 @@ import org.jetbrains.compose.web.dom.Div
|
||||
actual class ListViewDrawer<T> : Drawer<ListView<T>> {
|
||||
@Composable
|
||||
override fun ListView<T>.draw() {
|
||||
DefaultButton(addItemText, UIKitButton.Type.Primary, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded ) { itemsList.add(createItem()) }
|
||||
itemsList.forEach { item ->
|
||||
Div(UIKitMargin.Small.builder()) {
|
||||
DefaultBox {
|
||||
buildView(item)
|
||||
DefaultButton(removeItemText, UIKitButton.Type.Default, UIKitMargin.Small, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded) {
|
||||
itemsList.remove(item)
|
||||
}
|
||||
}
|
||||
DefaultButton(addItemText, UIKitButton.Type.Primary, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded ) { itemsList.add(createItem()) }
|
||||
}
|
||||
if (itemsList.isEmpty()) {
|
||||
DefaultButton(addItemText, UIKitButton.Type.Primary, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded ) { itemsList.add(createItem()) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -16,9 +16,9 @@ actual class ProjectTypeDrawer(
|
||||
@Composable
|
||||
override fun ProjectType.draw() {
|
||||
if (projectTypeView.projectType == this) {
|
||||
DefaultButton(name, UIKitButton.Type.Primary, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded)
|
||||
DefaultButton(name, UIKitButton.Type.Primary, UIKitButton.Size.Small, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded)
|
||||
} else {
|
||||
DefaultButton(name, UIKitButton.Type.Default, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded) {
|
||||
DefaultButton(name, UIKitButton.Type.Default, UIKitButton.Size.Small, UIKitMargin.Small.Horizontal, UIKitUtility.NoTransform, UIKitUtility.Border.Rounded) {
|
||||
projectTypeView.projectType = this
|
||||
}
|
||||
}
|
||||
|
@@ -6,10 +6,16 @@ import dev.inmo.jsuikit.elements.NavItemElement
|
||||
import dev.inmo.jsuikit.elements.Navbar
|
||||
import dev.inmo.jsuikit.elements.NavbarNav
|
||||
import dev.inmo.jsuikit.elements.drawAsLink
|
||||
import dev.inmo.jsuikit.modifiers.UIKitBackground
|
||||
import dev.inmo.jsuikit.modifiers.UIKitInverse
|
||||
import dev.inmo.jsuikit.modifiers.UIKitMargin
|
||||
import dev.inmo.jsuikit.modifiers.UIKitModifier
|
||||
import dev.inmo.jsuikit.modifiers.UIKitNavbar
|
||||
import dev.inmo.jsuikit.modifiers.UIKitPadding
|
||||
import dev.inmo.jsuikit.modifiers.UIKitSection
|
||||
import dev.inmo.jsuikit.modifiers.UIKitText
|
||||
import dev.inmo.jsuikit.modifiers.UIKitTooltipModifier
|
||||
import dev.inmo.jsuikit.modifiers.attrsBuilder
|
||||
import dev.inmo.jsuikit.modifiers.builder
|
||||
import dev.inmo.jsuikit.modifiers.include
|
||||
import dev.inmo.jsuikit.utils.AttrsWithContentBuilder
|
||||
@@ -20,6 +26,7 @@ import dev.inmo.kmppscriptbuilder.core.utils.saveConfig
|
||||
import org.jetbrains.compose.web.dom.A
|
||||
import org.jetbrains.compose.web.dom.Div
|
||||
import org.jetbrains.compose.web.dom.Img
|
||||
import org.jetbrains.compose.web.dom.Section
|
||||
import org.jetbrains.compose.web.dom.Text
|
||||
|
||||
@Composable
|
||||
@@ -29,54 +36,57 @@ actual fun TopAppBar(
|
||||
onSaveAvailable: (Boolean) -> Unit,
|
||||
onNewConfig: (Config) -> Unit
|
||||
) {
|
||||
Navbar(
|
||||
leftBuilder = AttrsWithContentBuilder {
|
||||
Div(
|
||||
{
|
||||
onClick {
|
||||
console.log(config)
|
||||
Section(attrsBuilder(UIKitSection.Style.Primary, UIKitInverse.Light)) {
|
||||
Navbar(
|
||||
leftBuilder = AttrsWithContentBuilder {
|
||||
Div(
|
||||
{
|
||||
onClick {
|
||||
console.log(config)
|
||||
}
|
||||
include(UIKitPadding.Size.Small, UIKitText.Style.Lead)
|
||||
}
|
||||
include(UIKitPadding.Size.Small, UIKitText.Style.Lead)
|
||||
) {
|
||||
Text("Kotlin publication scripts builder")
|
||||
}
|
||||
) {
|
||||
Text("Kotlin publication scripts builder")
|
||||
}
|
||||
Div(UIKitMargin.Small.builder()) {
|
||||
A("https://github.com/InsanusMokrassar/KotlinPublicationScriptsBuilder") {
|
||||
Img("https://img.shields.io/github/stars/InsanusMokrassar/KotlinPublicationScriptsBuilder?label=Github&style=plastic")
|
||||
Div(UIKitMargin.Small.builder()) {
|
||||
A("https://github.com/InsanusMokrassar/KotlinPublicationScriptsBuilder") {
|
||||
Img("https://img.shields.io/github/stars/InsanusMokrassar/KotlinPublicationScriptsBuilder?label=Github&style=plastic")
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
rightBuilder = AttrsWithContentBuilder {
|
||||
NavbarNav(
|
||||
AttrsWithContentBuilder {
|
||||
NavItemElement(
|
||||
UIKitTooltipModifier("Open file")
|
||||
) {
|
||||
Icon.Storage.Pull.drawAsLink {
|
||||
openNewConfig(onNewConfig)
|
||||
},
|
||||
rightBuilder = AttrsWithContentBuilder {
|
||||
NavbarNav(
|
||||
AttrsWithContentBuilder {
|
||||
NavItemElement(
|
||||
UIKitTooltipModifier("Open file")
|
||||
) {
|
||||
Icon.Storage.Pull.drawAsLink {
|
||||
openNewConfig(onNewConfig)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
AttrsWithContentBuilder {
|
||||
NavItemElement(
|
||||
UIKitTooltipModifier("Save config")
|
||||
) {
|
||||
Icon.Storage.Push.drawAsLink {
|
||||
saveConfig(config)
|
||||
},
|
||||
AttrsWithContentBuilder {
|
||||
NavItemElement(
|
||||
UIKitTooltipModifier("Save config")
|
||||
) {
|
||||
Icon.Storage.Push.drawAsLink {
|
||||
saveConfig(config)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
AttrsWithContentBuilder {
|
||||
NavItemElement(
|
||||
UIKitTooltipModifier("Export gradle script")
|
||||
) {
|
||||
Icon.Storage.Upload.drawAsLink {
|
||||
exportGradle(config)
|
||||
},
|
||||
AttrsWithContentBuilder {
|
||||
NavItemElement(
|
||||
UIKitTooltipModifier("Export gradle script")
|
||||
) {
|
||||
Icon.Storage.Upload.drawAsLink {
|
||||
exportGradle(config)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
)
|
||||
},
|
||||
)
|
||||
},
|
||||
navModifiers = arrayOf(UIKitNavbar.Transparent)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ package dev.inmo.kmppscriptbuilder.core.ui
|
||||
import androidx.compose.runtime.Composable
|
||||
import dev.inmo.jsuikit.modifiers.UIKitForm
|
||||
import dev.inmo.jsuikit.modifiers.builder
|
||||
import dev.inmo.kmppscriptbuilder.core.ui.utils.DefaultSmallVerticalMargin
|
||||
import org.jetbrains.compose.web.dom.Legend
|
||||
import org.jetbrains.compose.web.dom.Text
|
||||
|
||||
@@ -16,5 +17,7 @@ actual fun View.DrawVertically(title: String, block: @Composable () -> Unit) {
|
||||
Legend(UIKitForm.Legend.builder()) {
|
||||
Text(title)
|
||||
}
|
||||
DefaultSmallVerticalMargin()
|
||||
block()
|
||||
DefaultSmallVerticalMargin()
|
||||
}
|
||||
|
@@ -6,21 +6,17 @@ import dev.inmo.jsuikit.elements.DefaultInput
|
||||
import dev.inmo.jsuikit.elements.Divider
|
||||
import dev.inmo.jsuikit.elements.Flex
|
||||
import dev.inmo.jsuikit.elements.Icon
|
||||
import dev.inmo.jsuikit.elements.Label
|
||||
import dev.inmo.jsuikit.elements.drawAsFormInputPart
|
||||
import dev.inmo.jsuikit.modifiers.UIKitButton
|
||||
import dev.inmo.jsuikit.modifiers.UIKitCustom
|
||||
import dev.inmo.jsuikit.modifiers.UIKitFlex
|
||||
import dev.inmo.jsuikit.modifiers.UIKitForm
|
||||
import dev.inmo.jsuikit.modifiers.UIKitInverse
|
||||
import dev.inmo.jsuikit.modifiers.UIKitMargin
|
||||
import dev.inmo.jsuikit.modifiers.UIKitText
|
||||
import dev.inmo.jsuikit.modifiers.UIKitUtility
|
||||
import dev.inmo.jsuikit.modifiers.attrsBuilder
|
||||
import dev.inmo.jsuikit.modifiers.builder
|
||||
import dev.inmo.jsuikit.modifiers.include
|
||||
import dev.inmo.jsuikit.utils.Attrs
|
||||
import kotlinx.browser.window
|
||||
import kotlinx.coroutines.withTimeout
|
||||
import org.jetbrains.compose.web.attributes.InputType
|
||||
import org.jetbrains.compose.web.dom.Div
|
||||
import org.jetbrains.compose.web.dom.Legend
|
||||
@@ -51,7 +47,7 @@ actual fun CommonText(text: String, onClick: (() -> Unit)?) {
|
||||
@Composable
|
||||
actual fun CommonTextField(
|
||||
presetText: String,
|
||||
hint: String,
|
||||
hint: String?,
|
||||
onFocusChanged: (Boolean) -> Unit,
|
||||
onChange: (String) -> Unit
|
||||
) {
|
||||
@@ -118,3 +114,15 @@ actual fun <T> ButtonsPanel(
|
||||
actual fun DefaultDivider() {
|
||||
Divider.Common()
|
||||
}
|
||||
|
||||
@Composable
|
||||
actual fun DefaultSmallVerticalMargin() {
|
||||
Div(UIKitMargin.Small.Top.builder())
|
||||
}
|
||||
|
||||
@Composable
|
||||
actual fun DefaultBox(block: @Composable () -> Unit) {
|
||||
Div(attrsBuilder(UIKitMargin.Small.Horizontal, UIKitMargin.Small.Vertical)) {
|
||||
block()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user