From 75fd3c7d7d2c9b50fecc8636aa20341dae0554ab Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 11:44:23 +0100 Subject: [PATCH 01/41] extract Banners Signed-off-by: Ivan Morgillo --- samples/showcase/build.gradle.kts | 19 +++++++++++++++++++ .../samples/showcase/components}/Banners.kt | 4 ++-- samples/standalone/build.gradle.kts | 3 ++- .../viewmodel/ComponentsViewModel.kt | 2 +- settings.gradle.kts | 1 + 5 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 samples/showcase/build.gradle.kts rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Banners.kt (95%) diff --git a/samples/showcase/build.gradle.kts b/samples/showcase/build.gradle.kts new file mode 100644 index 0000000000..fd7bc8a86e --- /dev/null +++ b/samples/showcase/build.gradle.kts @@ -0,0 +1,19 @@ +import org.jetbrains.compose.ComposeBuildConfig + +plugins { + jewel + `jewel-publish` + `jewel-check-public-api` + alias(libs.plugins.composeDesktop) + alias(libs.plugins.compose.compiler) +} + +private val composeVersion + get() = ComposeBuildConfig.composeVersion + +dependencies { + implementation(project(":foundation")) + implementation(project(":ui")) + testImplementation(compose.desktop.uiTestJUnit4) + testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } +} diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Banners.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Banners.kt similarity index 95% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Banners.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Banners.kt index f649c01a71..7ee92bb8b5 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Banners.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Banners.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -18,7 +18,7 @@ import org.jetbrains.jewel.ui.component.WarningBanner import org.jetbrains.jewel.ui.theme.defaultBannerStyle @Composable -internal fun Banners() { +public fun Banners() { Column(Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(8.dp)) { GroupHeader("Default banner (aka editor banners)") diff --git a/samples/standalone/build.gradle.kts b/samples/standalone/build.gradle.kts index 64734a8c55..f376fa838c 100644 --- a/samples/standalone/build.gradle.kts +++ b/samples/standalone/build.gradle.kts @@ -18,6 +18,7 @@ dependencies { implementation(projects.markdown.extension.autolink) implementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } implementation(compose.components.resources) + implementation(project(":samples:showcase")) implementation(libs.intellijPlatform.icons) testImplementation(compose.desktop.uiTestJUnit4) testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } @@ -62,4 +63,4 @@ tasks { setExecutable(javaLauncher.map { it.executablePath.asFile.absolutePath }.get()) } } -} \ No newline at end of file +} diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 733d43c4ad..e6f34c86a4 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -6,8 +6,8 @@ import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.SnapshotStateList +import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons -import org.jetbrains.jewel.samples.standalone.view.component.Banners import org.jetbrains.jewel.samples.standalone.view.component.Borders import org.jetbrains.jewel.samples.standalone.view.component.Buttons import org.jetbrains.jewel.samples.standalone.view.component.Checkboxes diff --git a/settings.gradle.kts b/settings.gradle.kts index 5f3227b3e4..3bde6208d4 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -44,6 +44,7 @@ include( ":markdown:int-ui-standalone-styling", ":markdown:ide-laf-bridge-styling", ":samples:ide-plugin", + ":samples:showcase", ":samples:standalone", ":ui", ":ui-test", From 5225f7de46eb4a3dbc35a20a6c2264bbf4d038c6 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 11:45:22 +0100 Subject: [PATCH 02/41] extract Borders Signed-off-by: Ivan Morgillo --- .../jetbrains/jewel/samples/showcase/components}/Borders.kt | 4 ++-- .../jewel/samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Borders.kt (97%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Borders.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Borders.kt similarity index 97% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Borders.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Borders.kt index a119e14c84..2b2b41a672 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Borders.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Borders.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -28,7 +28,7 @@ import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.theme.colorPalette @Composable -internal fun Borders() { +public fun Borders() { GroupHeader("Group header") Text("This is a group header example") diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index e6f34c86a4..d16ecc7a83 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -8,7 +8,7 @@ import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.SnapshotStateList import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons -import org.jetbrains.jewel.samples.standalone.view.component.Borders +import org.jetbrains.jewel.samples.showcase.components.Borders import org.jetbrains.jewel.samples.standalone.view.component.Buttons import org.jetbrains.jewel.samples.standalone.view.component.Checkboxes import org.jetbrains.jewel.samples.standalone.view.component.ChipsAndTrees From 0a06d86f3489f54f182dd4cfd8bae1df01d6e8bb Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 11:46:07 +0100 Subject: [PATCH 03/41] extract Buttons Signed-off-by: Ivan Morgillo --- .../jetbrains/jewel/samples/showcase/components}/Buttons.kt | 4 ++-- .../jewel/samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Buttons.kt (98%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Buttons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Buttons.kt similarity index 98% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Buttons.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Buttons.kt index 1c9dbc7511..d59240f6c0 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Buttons.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Buttons.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -31,7 +31,7 @@ import org.jetbrains.jewel.ui.painter.hints.Selected import org.jetbrains.jewel.ui.painter.hints.Stroke @Composable -fun Buttons() { +public fun Buttons() { Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { NormalButtons() diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index d16ecc7a83..4911342ffc 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -9,7 +9,7 @@ import androidx.compose.runtime.snapshots.SnapshotStateList import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Borders -import org.jetbrains.jewel.samples.standalone.view.component.Buttons +import org.jetbrains.jewel.samples.showcase.components.Buttons import org.jetbrains.jewel.samples.standalone.view.component.Checkboxes import org.jetbrains.jewel.samples.standalone.view.component.ChipsAndTrees import org.jetbrains.jewel.samples.standalone.view.component.Dropdowns From 34ef555ca81386ac8de92ba8dc9bc2949f4a8f63 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 11:46:40 +0100 Subject: [PATCH 04/41] extract Checkboxes Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components}/Checkboxes.kt | 4 ++-- .../jewel/samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Checkboxes.kt (96%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Checkboxes.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Checkboxes.kt similarity index 96% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Checkboxes.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Checkboxes.kt index 54925fd99d..14fe6b547b 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Checkboxes.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Checkboxes.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row @@ -14,7 +14,7 @@ import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.TriStateCheckboxRow @Composable -fun Checkboxes() { +public fun Checkboxes() { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { var checked by remember { mutableStateOf(ToggleableState.On) } TriStateCheckboxRow( diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 4911342ffc..b30bb73b99 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -10,7 +10,7 @@ import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Borders import org.jetbrains.jewel.samples.showcase.components.Buttons -import org.jetbrains.jewel.samples.standalone.view.component.Checkboxes +import org.jetbrains.jewel.samples.showcase.components.Checkboxes import org.jetbrains.jewel.samples.standalone.view.component.ChipsAndTrees import org.jetbrains.jewel.samples.standalone.view.component.Dropdowns import org.jetbrains.jewel.samples.standalone.view.component.Icons From 9dd00257b616e250b29172ebc5e88333a5fcbeec Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 11:49:58 +0100 Subject: [PATCH 05/41] extract Chips and Trees Signed-off-by: Ivan Morgillo --- .../samples/showcase/components}/ChipsAndTree.kt | 12 ++++++------ .../standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/ChipsAndTree.kt (96%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ChipsAndTree.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ChipsAndTree.kt similarity index 96% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ChipsAndTree.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ChipsAndTree.kt index 6a3847fd9c..64dda4531b 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ChipsAndTree.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ChipsAndTree.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.VerticalScrollbar import androidx.compose.foundation.background @@ -26,7 +26,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import kotlin.random.Random import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.jetbrains.jewel.foundation.lazy.SelectableLazyColumn @@ -44,9 +43,10 @@ import org.jetbrains.jewel.ui.component.RadioButtonChip import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.ToggleableChip import org.jetbrains.jewel.ui.theme.colorPalette +import kotlin.random.Random @Composable -fun ChipsAndTrees() { +public fun ChipsAndTrees() { Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(16.dp)) { Column(Modifier.weight(1f), verticalArrangement = Arrangement.spacedBy(8.dp)) { GroupHeader(text = "Chips", modifier = Modifier.fillMaxWidth()) @@ -66,7 +66,7 @@ fun ChipsAndTrees() { } @Composable -fun SelectableLazyColumnSample() { +public fun SelectableLazyColumnSample() { var listOfItems by remember { mutableStateOf(emptyList()) } LaunchedEffect(Unit) { @@ -112,7 +112,7 @@ fun SelectableLazyColumnSample() { } @Composable -fun ChipsSample(modifier: Modifier = Modifier) { +public fun ChipsSample(modifier: Modifier = Modifier) { Column(modifier, verticalArrangement = Arrangement.spacedBy(8.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { var selectedIndex by remember { mutableStateOf(-1) } @@ -144,7 +144,7 @@ fun ChipsSample(modifier: Modifier = Modifier) { } @Composable -fun TreeSample(modifier: Modifier = Modifier) { +public fun TreeSample(modifier: Modifier = Modifier) { var tree by remember { mutableStateOf( buildTree { diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index b30bb73b99..100a076551 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -11,7 +11,7 @@ import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Borders import org.jetbrains.jewel.samples.showcase.components.Buttons import org.jetbrains.jewel.samples.showcase.components.Checkboxes -import org.jetbrains.jewel.samples.standalone.view.component.ChipsAndTrees +import org.jetbrains.jewel.samples.showcase.components.ChipsAndTrees import org.jetbrains.jewel.samples.standalone.view.component.Dropdowns import org.jetbrains.jewel.samples.standalone.view.component.Icons import org.jetbrains.jewel.samples.standalone.view.component.Links From a1fb38e08fe073a68ef5a714244a468f2d868b7c Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 11:50:51 +0100 Subject: [PATCH 06/41] extract Dropdowns Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components}/Dropdowns.kt | 6 +++--- .../samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Dropdowns.kt (99%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Dropdowns.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Dropdowns.kt similarity index 99% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Dropdowns.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Dropdowns.kt index 8738de61c2..7f99aca42e 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Dropdowns.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Dropdowns.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -12,7 +12,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import kotlin.random.Random import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.Dropdown @@ -24,9 +23,10 @@ import org.jetbrains.jewel.ui.component.Typography import org.jetbrains.jewel.ui.component.separator import org.jetbrains.jewel.ui.icons.AllIconsKeys import org.jetbrains.jewel.ui.theme.simpleListItemStyle +import kotlin.random.Random @Composable -fun Dropdowns() { +public fun Dropdowns() { Column { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { val items = remember { listOf("Light", "Dark", "---", "High Contrast", "Darcula", "IntelliJ Light") } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 100a076551..0e85c0cdc2 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -12,7 +12,7 @@ import org.jetbrains.jewel.samples.showcase.components.Borders import org.jetbrains.jewel.samples.showcase.components.Buttons import org.jetbrains.jewel.samples.showcase.components.Checkboxes import org.jetbrains.jewel.samples.showcase.components.ChipsAndTrees -import org.jetbrains.jewel.samples.standalone.view.component.Dropdowns +import org.jetbrains.jewel.samples.showcase.components.Dropdowns import org.jetbrains.jewel.samples.standalone.view.component.Icons import org.jetbrains.jewel.samples.standalone.view.component.Links import org.jetbrains.jewel.samples.standalone.view.component.ProgressBar From c4d34c8302d642a6e2c7d1695e984c322b881e22 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:05:20 +0100 Subject: [PATCH 07/41] extract Icons Signed-off-by: Ivan Morgillo --- .../samples/showcase/components}/Icons.kt | 5 +-- .../components/StandaloneSampleIcons.kt | 36 ++++++++++++++++++ .../resources/icons/components/banners.svg | 0 .../icons/components/banners_dark.svg | 0 .../resources/icons/components/borders.svg | 0 .../icons/components/borders_dark.svg | 0 .../resources/icons/components/button.svg | 0 .../icons/components/button_dark.svg | 0 .../resources/icons/components/checkBox.svg | 0 .../icons/components/checkBox_dark.svg | 0 .../resources/icons/components/comboBox.svg | 0 .../icons/components/comboBox_dark.svg | 0 .../main/resources/icons/components/links.svg | 0 .../resources/icons/components/links_dark.svg | 0 .../icons/components/progressbar.svg | 0 .../icons/components/progressbar_dark.svg | 0 .../icons/components/radioButton.svg | 0 .../icons/components/radioButton_dark.svg | 0 .../resources/icons/components/scrollbar.svg | 0 .../icons/components/scrollbar_dark.svg | 0 .../icons/components/segmentedControl.svg | 0 .../components/segmentedControl_dark.svg | 0 .../resources/icons/components/slider.svg | 0 .../icons/components/slider_dark.svg | 0 .../icons/components/splitLayout.svg | 0 .../icons/components/splitLayout_dark.svg | 0 .../main/resources/icons/components/tabs.svg | 0 .../resources/icons/components/tabs_dark.svg | 0 .../resources/icons/components/textArea.svg | 0 .../icons/components/textArea_dark.svg | 0 .../resources/icons/components/textField.svg | 0 .../icons/components/textField_dark.svg | 0 .../resources/icons/components/toolbar.svg | 0 .../icons/components/toolbar_dark.svg | 0 .../resources/icons/components/tooltip.svg | 0 .../icons/components/tooltip_dark.svg | 0 .../main/resources/icons/components/tree.svg | 0 .../resources/icons/components/tree_dark.svg | 0 .../src/main/resources/icons/darkTheme.svg | 0 .../main/resources/icons/darkTheme@20x20.svg | 0 .../resources/icons/darkTheme@20x20_dark.svg | 0 .../resources/icons/darkThemeSelected.svg | 0 .../icons/darkThemeSelected_dark.svg | 0 .../main/resources/icons/darkTheme_dark.svg | 0 .../src/main/resources/icons/github.svg | 0 .../src/main/resources/icons/github@20x20.svg | 0 .../resources/icons/github@20x20_dark.svg | 0 .../src/main/resources/icons/github_dark.svg | 0 .../src/main/resources/icons/jewel-logo.svg | 0 .../src/main/resources/icons/lightTheme.svg | 0 .../main/resources/icons/lightTheme@20x20.svg | 0 .../resources/icons/lightTheme@20x20_dark.svg | 0 .../resources/icons/lightThemeSelected.svg | 0 .../icons/lightThemeSelected_dark.svg | 0 .../main/resources/icons/lightTheme_dark.svg | 0 .../icons/lightWithLightHeaderTheme.svg | 0 .../icons/lightWithLightHeaderTheme@20x20.svg | 0 .../lightWithLightHeaderTheme@20x20_dark.svg | 0 .../lightWithLightHeaderThemeSelected.svg | 0 ...lightWithLightHeaderThemeSelected_dark.svg | 0 .../icons/lightWithLightHeaderTheme_dark.svg | 0 .../src/main/resources/icons/markdown.svg | 0 .../main/resources/icons/markdown@20x20.svg | 0 .../resources/icons/markdown@20x20_dark.svg | 0 .../main/resources/icons/markdown_dark.svg | 0 .../src/main/resources/icons/meetNewUi.svg | 0 .../main/resources/icons/meetNewUi@20x20.svg | 0 .../resources/icons/meetNewUi@20x20_dark.svg | 0 .../main/resources/icons/meetNewUi_dark.svg | 0 .../src/main/resources/icons/structure.svg | 0 .../main/resources/icons/structure@20x20.svg | 0 .../resources/icons/structure@20x20_dark.svg | 0 .../main/resources/icons/structure_dark.svg | 0 .../src/main/resources/icons/stub.svg | 0 .../src/main/resources/icons/stub@20x20.svg | 0 .../main/resources/icons/stub@20x20_dark.svg | 0 .../src/main/resources/icons/stub_dark.svg | 0 .../src/main/resources/icons/systemTheme.svg | 0 .../resources/icons/systemTheme@20x20.svg | 0 .../icons/systemTheme@20x20_dark.svg | 0 .../resources/icons/systemThemeSelected.svg | 0 .../icons/systemThemeSelected_dark.svg | 0 .../main/resources/icons/systemTheme_dark.svg | 0 .../standalone/StandaloneSampleIcons.kt | 37 ------------------- .../samples/standalone/view/TitleBarView.kt | 2 +- .../samples/standalone/view/WelcomeView.kt | 2 +- .../samples/standalone/view/component/Tabs.kt | 2 +- .../standalone/view/component/TextFields.kt | 2 +- .../viewmodel/ComponentsViewModel.kt | 4 +- .../standalone/viewmodel/MainViewModel.kt | 2 +- 90 files changed, 45 insertions(+), 47 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Icons.kt (95%) create mode 100644 samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt rename samples/{standalone => showcase}/src/main/resources/icons/components/banners.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/banners_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/borders.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/borders_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/button.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/button_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/checkBox.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/checkBox_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/comboBox.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/comboBox_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/links.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/links_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/progressbar.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/progressbar_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/radioButton.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/radioButton_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/scrollbar.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/scrollbar_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/segmentedControl.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/segmentedControl_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/slider.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/slider_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/splitLayout.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/splitLayout_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/tabs.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/tabs_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/textArea.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/textArea_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/textField.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/textField_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/toolbar.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/toolbar_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/tooltip.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/tooltip_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/tree.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/components/tree_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/darkTheme.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/darkTheme@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/darkTheme@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/darkThemeSelected.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/darkThemeSelected_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/darkTheme_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/github.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/github@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/github@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/github_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/jewel-logo.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightTheme.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightTheme@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightTheme@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightThemeSelected.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightThemeSelected_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightTheme_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightWithLightHeaderTheme.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightWithLightHeaderTheme@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightWithLightHeaderTheme@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightWithLightHeaderThemeSelected.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightWithLightHeaderThemeSelected_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/lightWithLightHeaderTheme_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/markdown.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/markdown@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/markdown@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/markdown_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/meetNewUi.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/meetNewUi@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/meetNewUi@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/meetNewUi_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/structure.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/structure@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/structure@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/structure_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/stub.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/stub@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/stub@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/stub_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/systemTheme.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/systemTheme@20x20.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/systemTheme@20x20_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/systemThemeSelected.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/systemThemeSelected_dark.svg (100%) rename samples/{standalone => showcase}/src/main/resources/icons/systemTheme_dark.svg (100%) delete mode 100644 samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/StandaloneSampleIcons.kt diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Icons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt similarity index 95% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Icons.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt index 53eb142407..9e929a6212 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Icons.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -16,7 +16,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.unit.dp import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.icons.AllIconsKeys @@ -27,7 +26,7 @@ import org.jetbrains.jewel.ui.painter.hints.Stroke import org.jetbrains.jewel.ui.theme.colorPalette @Composable -internal fun Icons() { +public fun Icons() { Row( modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp), diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt new file mode 100644 index 0000000000..2e16860269 --- /dev/null +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt @@ -0,0 +1,36 @@ +package org.jetbrains.jewel.samples.showcase.components + +import org.jetbrains.jewel.ui.icon.PathIconKey + +public object StandaloneSampleIcons { + public val componentsMenu : PathIconKey = PathIconKey("icons/structure.svg", StandaloneSampleIcons::class.java) + public val gitHub : PathIconKey = PathIconKey("icons/github.svg", StandaloneSampleIcons::class.java) + public val jewelLogo : PathIconKey = PathIconKey("icons/jewel-logo.svg", StandaloneSampleIcons::class.java) + public val markdown : PathIconKey = PathIconKey("icons/markdown.svg", StandaloneSampleIcons::class.java) + public val themeDark : PathIconKey = PathIconKey("icons/darkTheme.svg", StandaloneSampleIcons::class.java) + public val themeLight : PathIconKey = PathIconKey("icons/lightTheme.svg", StandaloneSampleIcons::class.java) + public val themeLightWithLightHeader : PathIconKey = PathIconKey("icons/lightWithLightHeaderTheme.svg", StandaloneSampleIcons::class.java) + public val themeSystem : PathIconKey = PathIconKey("icons/systemTheme.svg", StandaloneSampleIcons::class.java) + public val welcome : PathIconKey = PathIconKey("icons/meetNewUi.svg", StandaloneSampleIcons::class.java) + + public object Components { + public val banners : PathIconKey = PathIconKey("icons/components/banners.svg", StandaloneSampleIcons::class.java) + public val borders : PathIconKey = PathIconKey("icons/components/borders.svg", StandaloneSampleIcons::class.java) + public val button : PathIconKey = PathIconKey("icons/components/button.svg", StandaloneSampleIcons::class.java) + public val checkbox : PathIconKey = PathIconKey("icons/components/checkBox.svg", StandaloneSampleIcons::class.java) + public val comboBox : PathIconKey = PathIconKey("icons/components/comboBox.svg", StandaloneSampleIcons::class.java) + public val links : PathIconKey = PathIconKey("icons/components/links.svg", StandaloneSampleIcons::class.java) + public val progressBar : PathIconKey = PathIconKey("icons/components/progressbar.svg", StandaloneSampleIcons::class.java) + public val radioButton : PathIconKey = PathIconKey("icons/components/radioButton.svg", StandaloneSampleIcons::class.java) + public val scrollbar : PathIconKey = PathIconKey("icons/components/scrollbar.svg", StandaloneSampleIcons::class.java) + public val segmentedControls : PathIconKey = PathIconKey("icons/components/segmentedControl.svg", StandaloneSampleIcons::class.java) + public val slider : PathIconKey = PathIconKey("icons/components/slider.svg", StandaloneSampleIcons::class.java) + public val splitlayout : PathIconKey = PathIconKey("icons/components/splitLayout.svg", StandaloneSampleIcons::class.java) + public val tabs : PathIconKey = PathIconKey("icons/components/tabs.svg", StandaloneSampleIcons::class.java) + public val textArea : PathIconKey = PathIconKey("icons/components/textArea.svg", StandaloneSampleIcons::class.java) + public val textField : PathIconKey = PathIconKey("icons/components/textField.svg", StandaloneSampleIcons::class.java) + public val toolbar : PathIconKey = PathIconKey("icons/components/toolbar.svg", StandaloneSampleIcons::class.java) + public val tooltip : PathIconKey = PathIconKey("icons/components/tooltip.svg", StandaloneSampleIcons::class.java) + public val tree : PathIconKey = PathIconKey("icons/components/tree.svg", StandaloneSampleIcons::class.java) + } +} diff --git a/samples/standalone/src/main/resources/icons/components/banners.svg b/samples/showcase/src/main/resources/icons/components/banners.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/banners.svg rename to samples/showcase/src/main/resources/icons/components/banners.svg diff --git a/samples/standalone/src/main/resources/icons/components/banners_dark.svg b/samples/showcase/src/main/resources/icons/components/banners_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/banners_dark.svg rename to samples/showcase/src/main/resources/icons/components/banners_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/borders.svg b/samples/showcase/src/main/resources/icons/components/borders.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/borders.svg rename to samples/showcase/src/main/resources/icons/components/borders.svg diff --git a/samples/standalone/src/main/resources/icons/components/borders_dark.svg b/samples/showcase/src/main/resources/icons/components/borders_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/borders_dark.svg rename to samples/showcase/src/main/resources/icons/components/borders_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/button.svg b/samples/showcase/src/main/resources/icons/components/button.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/button.svg rename to samples/showcase/src/main/resources/icons/components/button.svg diff --git a/samples/standalone/src/main/resources/icons/components/button_dark.svg b/samples/showcase/src/main/resources/icons/components/button_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/button_dark.svg rename to samples/showcase/src/main/resources/icons/components/button_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/checkBox.svg b/samples/showcase/src/main/resources/icons/components/checkBox.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/checkBox.svg rename to samples/showcase/src/main/resources/icons/components/checkBox.svg diff --git a/samples/standalone/src/main/resources/icons/components/checkBox_dark.svg b/samples/showcase/src/main/resources/icons/components/checkBox_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/checkBox_dark.svg rename to samples/showcase/src/main/resources/icons/components/checkBox_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/comboBox.svg b/samples/showcase/src/main/resources/icons/components/comboBox.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/comboBox.svg rename to samples/showcase/src/main/resources/icons/components/comboBox.svg diff --git a/samples/standalone/src/main/resources/icons/components/comboBox_dark.svg b/samples/showcase/src/main/resources/icons/components/comboBox_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/comboBox_dark.svg rename to samples/showcase/src/main/resources/icons/components/comboBox_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/links.svg b/samples/showcase/src/main/resources/icons/components/links.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/links.svg rename to samples/showcase/src/main/resources/icons/components/links.svg diff --git a/samples/standalone/src/main/resources/icons/components/links_dark.svg b/samples/showcase/src/main/resources/icons/components/links_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/links_dark.svg rename to samples/showcase/src/main/resources/icons/components/links_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/progressbar.svg b/samples/showcase/src/main/resources/icons/components/progressbar.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/progressbar.svg rename to samples/showcase/src/main/resources/icons/components/progressbar.svg diff --git a/samples/standalone/src/main/resources/icons/components/progressbar_dark.svg b/samples/showcase/src/main/resources/icons/components/progressbar_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/progressbar_dark.svg rename to samples/showcase/src/main/resources/icons/components/progressbar_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/radioButton.svg b/samples/showcase/src/main/resources/icons/components/radioButton.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/radioButton.svg rename to samples/showcase/src/main/resources/icons/components/radioButton.svg diff --git a/samples/standalone/src/main/resources/icons/components/radioButton_dark.svg b/samples/showcase/src/main/resources/icons/components/radioButton_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/radioButton_dark.svg rename to samples/showcase/src/main/resources/icons/components/radioButton_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/scrollbar.svg b/samples/showcase/src/main/resources/icons/components/scrollbar.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/scrollbar.svg rename to samples/showcase/src/main/resources/icons/components/scrollbar.svg diff --git a/samples/standalone/src/main/resources/icons/components/scrollbar_dark.svg b/samples/showcase/src/main/resources/icons/components/scrollbar_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/scrollbar_dark.svg rename to samples/showcase/src/main/resources/icons/components/scrollbar_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/segmentedControl.svg b/samples/showcase/src/main/resources/icons/components/segmentedControl.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/segmentedControl.svg rename to samples/showcase/src/main/resources/icons/components/segmentedControl.svg diff --git a/samples/standalone/src/main/resources/icons/components/segmentedControl_dark.svg b/samples/showcase/src/main/resources/icons/components/segmentedControl_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/segmentedControl_dark.svg rename to samples/showcase/src/main/resources/icons/components/segmentedControl_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/slider.svg b/samples/showcase/src/main/resources/icons/components/slider.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/slider.svg rename to samples/showcase/src/main/resources/icons/components/slider.svg diff --git a/samples/standalone/src/main/resources/icons/components/slider_dark.svg b/samples/showcase/src/main/resources/icons/components/slider_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/slider_dark.svg rename to samples/showcase/src/main/resources/icons/components/slider_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/splitLayout.svg b/samples/showcase/src/main/resources/icons/components/splitLayout.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/splitLayout.svg rename to samples/showcase/src/main/resources/icons/components/splitLayout.svg diff --git a/samples/standalone/src/main/resources/icons/components/splitLayout_dark.svg b/samples/showcase/src/main/resources/icons/components/splitLayout_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/splitLayout_dark.svg rename to samples/showcase/src/main/resources/icons/components/splitLayout_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/tabs.svg b/samples/showcase/src/main/resources/icons/components/tabs.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/tabs.svg rename to samples/showcase/src/main/resources/icons/components/tabs.svg diff --git a/samples/standalone/src/main/resources/icons/components/tabs_dark.svg b/samples/showcase/src/main/resources/icons/components/tabs_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/tabs_dark.svg rename to samples/showcase/src/main/resources/icons/components/tabs_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/textArea.svg b/samples/showcase/src/main/resources/icons/components/textArea.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/textArea.svg rename to samples/showcase/src/main/resources/icons/components/textArea.svg diff --git a/samples/standalone/src/main/resources/icons/components/textArea_dark.svg b/samples/showcase/src/main/resources/icons/components/textArea_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/textArea_dark.svg rename to samples/showcase/src/main/resources/icons/components/textArea_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/textField.svg b/samples/showcase/src/main/resources/icons/components/textField.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/textField.svg rename to samples/showcase/src/main/resources/icons/components/textField.svg diff --git a/samples/standalone/src/main/resources/icons/components/textField_dark.svg b/samples/showcase/src/main/resources/icons/components/textField_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/textField_dark.svg rename to samples/showcase/src/main/resources/icons/components/textField_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/toolbar.svg b/samples/showcase/src/main/resources/icons/components/toolbar.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/toolbar.svg rename to samples/showcase/src/main/resources/icons/components/toolbar.svg diff --git a/samples/standalone/src/main/resources/icons/components/toolbar_dark.svg b/samples/showcase/src/main/resources/icons/components/toolbar_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/toolbar_dark.svg rename to samples/showcase/src/main/resources/icons/components/toolbar_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/tooltip.svg b/samples/showcase/src/main/resources/icons/components/tooltip.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/tooltip.svg rename to samples/showcase/src/main/resources/icons/components/tooltip.svg diff --git a/samples/standalone/src/main/resources/icons/components/tooltip_dark.svg b/samples/showcase/src/main/resources/icons/components/tooltip_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/tooltip_dark.svg rename to samples/showcase/src/main/resources/icons/components/tooltip_dark.svg diff --git a/samples/standalone/src/main/resources/icons/components/tree.svg b/samples/showcase/src/main/resources/icons/components/tree.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/tree.svg rename to samples/showcase/src/main/resources/icons/components/tree.svg diff --git a/samples/standalone/src/main/resources/icons/components/tree_dark.svg b/samples/showcase/src/main/resources/icons/components/tree_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/components/tree_dark.svg rename to samples/showcase/src/main/resources/icons/components/tree_dark.svg diff --git a/samples/standalone/src/main/resources/icons/darkTheme.svg b/samples/showcase/src/main/resources/icons/darkTheme.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/darkTheme.svg rename to samples/showcase/src/main/resources/icons/darkTheme.svg diff --git a/samples/standalone/src/main/resources/icons/darkTheme@20x20.svg b/samples/showcase/src/main/resources/icons/darkTheme@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/darkTheme@20x20.svg rename to samples/showcase/src/main/resources/icons/darkTheme@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/darkTheme@20x20_dark.svg b/samples/showcase/src/main/resources/icons/darkTheme@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/darkTheme@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/darkTheme@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/darkThemeSelected.svg b/samples/showcase/src/main/resources/icons/darkThemeSelected.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/darkThemeSelected.svg rename to samples/showcase/src/main/resources/icons/darkThemeSelected.svg diff --git a/samples/standalone/src/main/resources/icons/darkThemeSelected_dark.svg b/samples/showcase/src/main/resources/icons/darkThemeSelected_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/darkThemeSelected_dark.svg rename to samples/showcase/src/main/resources/icons/darkThemeSelected_dark.svg diff --git a/samples/standalone/src/main/resources/icons/darkTheme_dark.svg b/samples/showcase/src/main/resources/icons/darkTheme_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/darkTheme_dark.svg rename to samples/showcase/src/main/resources/icons/darkTheme_dark.svg diff --git a/samples/standalone/src/main/resources/icons/github.svg b/samples/showcase/src/main/resources/icons/github.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/github.svg rename to samples/showcase/src/main/resources/icons/github.svg diff --git a/samples/standalone/src/main/resources/icons/github@20x20.svg b/samples/showcase/src/main/resources/icons/github@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/github@20x20.svg rename to samples/showcase/src/main/resources/icons/github@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/github@20x20_dark.svg b/samples/showcase/src/main/resources/icons/github@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/github@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/github@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/github_dark.svg b/samples/showcase/src/main/resources/icons/github_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/github_dark.svg rename to samples/showcase/src/main/resources/icons/github_dark.svg diff --git a/samples/standalone/src/main/resources/icons/jewel-logo.svg b/samples/showcase/src/main/resources/icons/jewel-logo.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/jewel-logo.svg rename to samples/showcase/src/main/resources/icons/jewel-logo.svg diff --git a/samples/standalone/src/main/resources/icons/lightTheme.svg b/samples/showcase/src/main/resources/icons/lightTheme.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightTheme.svg rename to samples/showcase/src/main/resources/icons/lightTheme.svg diff --git a/samples/standalone/src/main/resources/icons/lightTheme@20x20.svg b/samples/showcase/src/main/resources/icons/lightTheme@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightTheme@20x20.svg rename to samples/showcase/src/main/resources/icons/lightTheme@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/lightTheme@20x20_dark.svg b/samples/showcase/src/main/resources/icons/lightTheme@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightTheme@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/lightTheme@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/lightThemeSelected.svg b/samples/showcase/src/main/resources/icons/lightThemeSelected.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightThemeSelected.svg rename to samples/showcase/src/main/resources/icons/lightThemeSelected.svg diff --git a/samples/standalone/src/main/resources/icons/lightThemeSelected_dark.svg b/samples/showcase/src/main/resources/icons/lightThemeSelected_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightThemeSelected_dark.svg rename to samples/showcase/src/main/resources/icons/lightThemeSelected_dark.svg diff --git a/samples/standalone/src/main/resources/icons/lightTheme_dark.svg b/samples/showcase/src/main/resources/icons/lightTheme_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightTheme_dark.svg rename to samples/showcase/src/main/resources/icons/lightTheme_dark.svg diff --git a/samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme.svg b/samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme.svg rename to samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme.svg diff --git a/samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme@20x20.svg b/samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme@20x20.svg rename to samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme@20x20_dark.svg b/samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/lightWithLightHeaderThemeSelected.svg b/samples/showcase/src/main/resources/icons/lightWithLightHeaderThemeSelected.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightWithLightHeaderThemeSelected.svg rename to samples/showcase/src/main/resources/icons/lightWithLightHeaderThemeSelected.svg diff --git a/samples/standalone/src/main/resources/icons/lightWithLightHeaderThemeSelected_dark.svg b/samples/showcase/src/main/resources/icons/lightWithLightHeaderThemeSelected_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightWithLightHeaderThemeSelected_dark.svg rename to samples/showcase/src/main/resources/icons/lightWithLightHeaderThemeSelected_dark.svg diff --git a/samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme_dark.svg b/samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/lightWithLightHeaderTheme_dark.svg rename to samples/showcase/src/main/resources/icons/lightWithLightHeaderTheme_dark.svg diff --git a/samples/standalone/src/main/resources/icons/markdown.svg b/samples/showcase/src/main/resources/icons/markdown.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/markdown.svg rename to samples/showcase/src/main/resources/icons/markdown.svg diff --git a/samples/standalone/src/main/resources/icons/markdown@20x20.svg b/samples/showcase/src/main/resources/icons/markdown@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/markdown@20x20.svg rename to samples/showcase/src/main/resources/icons/markdown@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/markdown@20x20_dark.svg b/samples/showcase/src/main/resources/icons/markdown@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/markdown@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/markdown@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/markdown_dark.svg b/samples/showcase/src/main/resources/icons/markdown_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/markdown_dark.svg rename to samples/showcase/src/main/resources/icons/markdown_dark.svg diff --git a/samples/standalone/src/main/resources/icons/meetNewUi.svg b/samples/showcase/src/main/resources/icons/meetNewUi.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/meetNewUi.svg rename to samples/showcase/src/main/resources/icons/meetNewUi.svg diff --git a/samples/standalone/src/main/resources/icons/meetNewUi@20x20.svg b/samples/showcase/src/main/resources/icons/meetNewUi@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/meetNewUi@20x20.svg rename to samples/showcase/src/main/resources/icons/meetNewUi@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/meetNewUi@20x20_dark.svg b/samples/showcase/src/main/resources/icons/meetNewUi@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/meetNewUi@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/meetNewUi@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/meetNewUi_dark.svg b/samples/showcase/src/main/resources/icons/meetNewUi_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/meetNewUi_dark.svg rename to samples/showcase/src/main/resources/icons/meetNewUi_dark.svg diff --git a/samples/standalone/src/main/resources/icons/structure.svg b/samples/showcase/src/main/resources/icons/structure.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/structure.svg rename to samples/showcase/src/main/resources/icons/structure.svg diff --git a/samples/standalone/src/main/resources/icons/structure@20x20.svg b/samples/showcase/src/main/resources/icons/structure@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/structure@20x20.svg rename to samples/showcase/src/main/resources/icons/structure@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/structure@20x20_dark.svg b/samples/showcase/src/main/resources/icons/structure@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/structure@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/structure@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/structure_dark.svg b/samples/showcase/src/main/resources/icons/structure_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/structure_dark.svg rename to samples/showcase/src/main/resources/icons/structure_dark.svg diff --git a/samples/standalone/src/main/resources/icons/stub.svg b/samples/showcase/src/main/resources/icons/stub.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/stub.svg rename to samples/showcase/src/main/resources/icons/stub.svg diff --git a/samples/standalone/src/main/resources/icons/stub@20x20.svg b/samples/showcase/src/main/resources/icons/stub@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/stub@20x20.svg rename to samples/showcase/src/main/resources/icons/stub@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/stub@20x20_dark.svg b/samples/showcase/src/main/resources/icons/stub@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/stub@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/stub@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/stub_dark.svg b/samples/showcase/src/main/resources/icons/stub_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/stub_dark.svg rename to samples/showcase/src/main/resources/icons/stub_dark.svg diff --git a/samples/standalone/src/main/resources/icons/systemTheme.svg b/samples/showcase/src/main/resources/icons/systemTheme.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/systemTheme.svg rename to samples/showcase/src/main/resources/icons/systemTheme.svg diff --git a/samples/standalone/src/main/resources/icons/systemTheme@20x20.svg b/samples/showcase/src/main/resources/icons/systemTheme@20x20.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/systemTheme@20x20.svg rename to samples/showcase/src/main/resources/icons/systemTheme@20x20.svg diff --git a/samples/standalone/src/main/resources/icons/systemTheme@20x20_dark.svg b/samples/showcase/src/main/resources/icons/systemTheme@20x20_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/systemTheme@20x20_dark.svg rename to samples/showcase/src/main/resources/icons/systemTheme@20x20_dark.svg diff --git a/samples/standalone/src/main/resources/icons/systemThemeSelected.svg b/samples/showcase/src/main/resources/icons/systemThemeSelected.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/systemThemeSelected.svg rename to samples/showcase/src/main/resources/icons/systemThemeSelected.svg diff --git a/samples/standalone/src/main/resources/icons/systemThemeSelected_dark.svg b/samples/showcase/src/main/resources/icons/systemThemeSelected_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/systemThemeSelected_dark.svg rename to samples/showcase/src/main/resources/icons/systemThemeSelected_dark.svg diff --git a/samples/standalone/src/main/resources/icons/systemTheme_dark.svg b/samples/showcase/src/main/resources/icons/systemTheme_dark.svg similarity index 100% rename from samples/standalone/src/main/resources/icons/systemTheme_dark.svg rename to samples/showcase/src/main/resources/icons/systemTheme_dark.svg diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/StandaloneSampleIcons.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/StandaloneSampleIcons.kt deleted file mode 100644 index 848012f60b..0000000000 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/StandaloneSampleIcons.kt +++ /dev/null @@ -1,37 +0,0 @@ -package org.jetbrains.jewel.samples.standalone - -import org.jetbrains.jewel.ui.icon.PathIconKey - -object StandaloneSampleIcons { - val componentsMenu = PathIconKey("icons/structure.svg", StandaloneSampleIcons::class.java) - val gitHub = PathIconKey("icons/github.svg", StandaloneSampleIcons::class.java) - val jewelLogo = PathIconKey("icons/jewel-logo.svg", StandaloneSampleIcons::class.java) - val markdown = PathIconKey("icons/markdown.svg", StandaloneSampleIcons::class.java) - val themeDark = PathIconKey("icons/darkTheme.svg", StandaloneSampleIcons::class.java) - val themeLight = PathIconKey("icons/lightTheme.svg", StandaloneSampleIcons::class.java) - val themeLightWithLightHeader = - PathIconKey("icons/lightWithLightHeaderTheme.svg", StandaloneSampleIcons::class.java) - val themeSystem = PathIconKey("icons/systemTheme.svg", StandaloneSampleIcons::class.java) - val welcome = PathIconKey("icons/meetNewUi.svg", StandaloneSampleIcons::class.java) - - object Components { - val banners = PathIconKey("icons/components/banners.svg", StandaloneSampleIcons::class.java) - val borders = PathIconKey("icons/components/borders.svg", StandaloneSampleIcons::class.java) - val button = PathIconKey("icons/components/button.svg", StandaloneSampleIcons::class.java) - val checkbox = PathIconKey("icons/components/checkBox.svg", StandaloneSampleIcons::class.java) - val comboBox = PathIconKey("icons/components/comboBox.svg", StandaloneSampleIcons::class.java) - val links = PathIconKey("icons/components/links.svg", StandaloneSampleIcons::class.java) - val progressBar = PathIconKey("icons/components/progressbar.svg", StandaloneSampleIcons::class.java) - val radioButton = PathIconKey("icons/components/radioButton.svg", StandaloneSampleIcons::class.java) - val scrollbar = PathIconKey("icons/components/scrollbar.svg", StandaloneSampleIcons::class.java) - val segmentedControls = PathIconKey("icons/components/segmentedControl.svg", StandaloneSampleIcons::class.java) - val slider = PathIconKey("icons/components/slider.svg", StandaloneSampleIcons::class.java) - val splitlayout = PathIconKey("icons/components/splitLayout.svg", StandaloneSampleIcons::class.java) - val tabs = PathIconKey("icons/components/tabs.svg", StandaloneSampleIcons::class.java) - val textArea = PathIconKey("icons/components/textArea.svg", StandaloneSampleIcons::class.java) - val textField = PathIconKey("icons/components/textField.svg", StandaloneSampleIcons::class.java) - val toolbar = PathIconKey("icons/components/toolbar.svg", StandaloneSampleIcons::class.java) - val tooltip = PathIconKey("icons/components/tooltip.svg", StandaloneSampleIcons::class.java) - val tree = PathIconKey("icons/components/tree.svg", StandaloneSampleIcons::class.java) - } -} diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt index 699f680da3..e6c8875909 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt @@ -12,7 +12,7 @@ import androidx.compose.ui.unit.dp import java.awt.Desktop import java.net.URI import org.jetbrains.jewel.samples.standalone.IntUiThemes -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel import org.jetbrains.jewel.samples.standalone.viewmodel.forCurrentOs import org.jetbrains.jewel.ui.component.Dropdown diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt index b81e25bb92..73b93bf0c6 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt @@ -15,7 +15,7 @@ import androidx.compose.ui.unit.dp import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.samples.standalone.IntUiThemes -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel import org.jetbrains.jewel.ui.component.CheckboxRow import org.jetbrains.jewel.ui.component.Icon diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tabs.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tabs.kt index 53d137659f..8787abf0c7 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tabs.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tabs.kt @@ -22,7 +22,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import kotlin.math.max import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.IconButton import org.jetbrains.jewel.ui.component.SimpleTabContent diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextFields.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextFields.kt index ca676b1130..f744f28707 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextFields.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextFields.kt @@ -29,7 +29,7 @@ import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.intui.standalone.styling.dark import org.jetbrains.jewel.intui.standalone.styling.defaults import org.jetbrains.jewel.intui.standalone.styling.light -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.GroupHeader import org.jetbrains.jewel.ui.component.Icon diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 0e85c0cdc2..909cff8822 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -7,13 +7,13 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.SnapshotStateList import org.jetbrains.jewel.samples.showcase.components.Banners -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Borders import org.jetbrains.jewel.samples.showcase.components.Buttons import org.jetbrains.jewel.samples.showcase.components.Checkboxes import org.jetbrains.jewel.samples.showcase.components.ChipsAndTrees import org.jetbrains.jewel.samples.showcase.components.Dropdowns -import org.jetbrains.jewel.samples.standalone.view.component.Icons +import org.jetbrains.jewel.samples.showcase.components.Icons +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.standalone.view.component.Links import org.jetbrains.jewel.samples.standalone.view.component.ProgressBar import org.jetbrains.jewel.samples.standalone.view.component.RadioButtons diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index 784de75fb3..b36ed481c0 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -6,7 +6,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.graphics.Color import org.jetbrains.jewel.samples.standalone.IntUiThemes -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.standalone.view.ComponentsView import org.jetbrains.jewel.samples.standalone.view.MarkdownDemo import org.jetbrains.jewel.samples.standalone.view.WelcomeView From cafe158f9f8086e918ce3aa4aeb268720d703d5f Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:08:16 +0100 Subject: [PATCH 08/41] extract Links Signed-off-by: Ivan Morgillo --- .../samples/showcase/components}/Links.kt | 16 +---- .../components/StandaloneSampleIcons.kt | 64 +++++++++++-------- .../viewmodel/ComponentsViewModel.kt | 16 ++++- 3 files changed, 54 insertions(+), 42 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Links.kt (77%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Links.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt similarity index 77% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Links.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt index 22afcb4ca0..d3a05e73a6 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Links.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row @@ -10,27 +10,17 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.unit.dp import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.intui.standalone.styling.dark -import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.ui.component.DropdownLink import org.jetbrains.jewel.ui.component.ExternalLink import org.jetbrains.jewel.ui.component.Link import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.separator import org.jetbrains.jewel.ui.component.styling.LinkStyle -import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior @Composable -fun Links() { +public fun Links(dark: LinkStyle, light: LinkStyle) { val isDark = JewelTheme.isDark - val alwaysUnderlinedStyle = - remember(isDark) { - if (isDark) { - LinkStyle.dark(underlineBehavior = LinkUnderlineBehavior.ShowAlways) - } else { - LinkStyle.light(underlineBehavior = LinkUnderlineBehavior.ShowAlways) - } - } + val alwaysUnderlinedStyle = remember(isDark) { if (isDark) dark else light } Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { Link("Link", {}) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt index 2e16860269..e23bc703cc 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt @@ -3,34 +3,44 @@ package org.jetbrains.jewel.samples.showcase.components import org.jetbrains.jewel.ui.icon.PathIconKey public object StandaloneSampleIcons { - public val componentsMenu : PathIconKey = PathIconKey("icons/structure.svg", StandaloneSampleIcons::class.java) - public val gitHub : PathIconKey = PathIconKey("icons/github.svg", StandaloneSampleIcons::class.java) - public val jewelLogo : PathIconKey = PathIconKey("icons/jewel-logo.svg", StandaloneSampleIcons::class.java) - public val markdown : PathIconKey = PathIconKey("icons/markdown.svg", StandaloneSampleIcons::class.java) - public val themeDark : PathIconKey = PathIconKey("icons/darkTheme.svg", StandaloneSampleIcons::class.java) - public val themeLight : PathIconKey = PathIconKey("icons/lightTheme.svg", StandaloneSampleIcons::class.java) - public val themeLightWithLightHeader : PathIconKey = PathIconKey("icons/lightWithLightHeaderTheme.svg", StandaloneSampleIcons::class.java) - public val themeSystem : PathIconKey = PathIconKey("icons/systemTheme.svg", StandaloneSampleIcons::class.java) - public val welcome : PathIconKey = PathIconKey("icons/meetNewUi.svg", StandaloneSampleIcons::class.java) + public val componentsMenu: PathIconKey = PathIconKey("icons/structure.svg", StandaloneSampleIcons::class.java) + public val gitHub: PathIconKey = PathIconKey("icons/github.svg", StandaloneSampleIcons::class.java) + public val jewelLogo: PathIconKey = PathIconKey("icons/jewel-logo.svg", StandaloneSampleIcons::class.java) + public val markdown: PathIconKey = PathIconKey("icons/markdown.svg", StandaloneSampleIcons::class.java) + public val themeDark: PathIconKey = PathIconKey("icons/darkTheme.svg", StandaloneSampleIcons::class.java) + public val themeLight: PathIconKey = PathIconKey("icons/lightTheme.svg", StandaloneSampleIcons::class.java) + public val themeLightWithLightHeader: PathIconKey = + PathIconKey("icons/lightWithLightHeaderTheme.svg", StandaloneSampleIcons::class.java) + public val themeSystem: PathIconKey = PathIconKey("icons/systemTheme.svg", StandaloneSampleIcons::class.java) + public val welcome: PathIconKey = PathIconKey("icons/meetNewUi.svg", StandaloneSampleIcons::class.java) public object Components { - public val banners : PathIconKey = PathIconKey("icons/components/banners.svg", StandaloneSampleIcons::class.java) - public val borders : PathIconKey = PathIconKey("icons/components/borders.svg", StandaloneSampleIcons::class.java) - public val button : PathIconKey = PathIconKey("icons/components/button.svg", StandaloneSampleIcons::class.java) - public val checkbox : PathIconKey = PathIconKey("icons/components/checkBox.svg", StandaloneSampleIcons::class.java) - public val comboBox : PathIconKey = PathIconKey("icons/components/comboBox.svg", StandaloneSampleIcons::class.java) - public val links : PathIconKey = PathIconKey("icons/components/links.svg", StandaloneSampleIcons::class.java) - public val progressBar : PathIconKey = PathIconKey("icons/components/progressbar.svg", StandaloneSampleIcons::class.java) - public val radioButton : PathIconKey = PathIconKey("icons/components/radioButton.svg", StandaloneSampleIcons::class.java) - public val scrollbar : PathIconKey = PathIconKey("icons/components/scrollbar.svg", StandaloneSampleIcons::class.java) - public val segmentedControls : PathIconKey = PathIconKey("icons/components/segmentedControl.svg", StandaloneSampleIcons::class.java) - public val slider : PathIconKey = PathIconKey("icons/components/slider.svg", StandaloneSampleIcons::class.java) - public val splitlayout : PathIconKey = PathIconKey("icons/components/splitLayout.svg", StandaloneSampleIcons::class.java) - public val tabs : PathIconKey = PathIconKey("icons/components/tabs.svg", StandaloneSampleIcons::class.java) - public val textArea : PathIconKey = PathIconKey("icons/components/textArea.svg", StandaloneSampleIcons::class.java) - public val textField : PathIconKey = PathIconKey("icons/components/textField.svg", StandaloneSampleIcons::class.java) - public val toolbar : PathIconKey = PathIconKey("icons/components/toolbar.svg", StandaloneSampleIcons::class.java) - public val tooltip : PathIconKey = PathIconKey("icons/components/tooltip.svg", StandaloneSampleIcons::class.java) - public val tree : PathIconKey = PathIconKey("icons/components/tree.svg", StandaloneSampleIcons::class.java) + public val banners: PathIconKey = PathIconKey("icons/components/banners.svg", StandaloneSampleIcons::class.java) + public val borders: PathIconKey = PathIconKey("icons/components/borders.svg", StandaloneSampleIcons::class.java) + public val button: PathIconKey = PathIconKey("icons/components/button.svg", StandaloneSampleIcons::class.java) + public val checkbox: PathIconKey = + PathIconKey("icons/components/checkBox.svg", StandaloneSampleIcons::class.java) + public val comboBox: PathIconKey = + PathIconKey("icons/components/comboBox.svg", StandaloneSampleIcons::class.java) + public val links: PathIconKey = PathIconKey("icons/components/links.svg", StandaloneSampleIcons::class.java) + public val progressBar: PathIconKey = + PathIconKey("icons/components/progressbar.svg", StandaloneSampleIcons::class.java) + public val radioButton: PathIconKey = + PathIconKey("icons/components/radioButton.svg", StandaloneSampleIcons::class.java) + public val scrollbar: PathIconKey = + PathIconKey("icons/components/scrollbar.svg", StandaloneSampleIcons::class.java) + public val segmentedControls: PathIconKey = + PathIconKey("icons/components/segmentedControl.svg", StandaloneSampleIcons::class.java) + public val slider: PathIconKey = PathIconKey("icons/components/slider.svg", StandaloneSampleIcons::class.java) + public val splitlayout: PathIconKey = + PathIconKey("icons/components/splitLayout.svg", StandaloneSampleIcons::class.java) + public val tabs: PathIconKey = PathIconKey("icons/components/tabs.svg", StandaloneSampleIcons::class.java) + public val textArea: PathIconKey = + PathIconKey("icons/components/textArea.svg", StandaloneSampleIcons::class.java) + public val textField: PathIconKey = + PathIconKey("icons/components/textField.svg", StandaloneSampleIcons::class.java) + public val toolbar: PathIconKey = PathIconKey("icons/components/toolbar.svg", StandaloneSampleIcons::class.java) + public val tooltip: PathIconKey = PathIconKey("icons/components/tooltip.svg", StandaloneSampleIcons::class.java) + public val tree: PathIconKey = PathIconKey("icons/components/tree.svg", StandaloneSampleIcons::class.java) } } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 909cff8822..c1d6a76aff 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -6,6 +6,8 @@ import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.SnapshotStateList +import org.jetbrains.jewel.intui.standalone.styling.dark +import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.showcase.components.Borders import org.jetbrains.jewel.samples.showcase.components.Buttons @@ -13,8 +15,8 @@ import org.jetbrains.jewel.samples.showcase.components.Checkboxes import org.jetbrains.jewel.samples.showcase.components.ChipsAndTrees import org.jetbrains.jewel.samples.showcase.components.Dropdowns import org.jetbrains.jewel.samples.showcase.components.Icons +import org.jetbrains.jewel.samples.showcase.components.Links import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons -import org.jetbrains.jewel.samples.standalone.view.component.Links import org.jetbrains.jewel.samples.standalone.view.component.ProgressBar import org.jetbrains.jewel.samples.standalone.view.component.RadioButtons import org.jetbrains.jewel.samples.standalone.view.component.Scrollbars @@ -25,6 +27,8 @@ import org.jetbrains.jewel.samples.standalone.view.component.TextAreas import org.jetbrains.jewel.samples.standalone.view.component.TextFields import org.jetbrains.jewel.samples.standalone.view.component.Tooltips import org.jetbrains.jewel.ui.component.SplitLayoutState +import org.jetbrains.jewel.ui.component.styling.LinkStyle +import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior object ComponentsViewModel { private var outerSplitState by mutableStateOf(SplitLayoutState(0.5f)) @@ -60,7 +64,15 @@ object ComponentsViewModel { content = { ProgressBar() }, ), ViewInfo(title = "Icons", iconKey = StandaloneSampleIcons.Components.toolbar, content = { Icons() }), - ViewInfo(title = "Links", iconKey = StandaloneSampleIcons.Components.links, content = { Links() }), + ViewInfo( + title = "Links", + iconKey = StandaloneSampleIcons.Components.links, + content = { + val dark = LinkStyle.dark(underlineBehavior = LinkUnderlineBehavior.ShowAlways) + val light = LinkStyle.light(underlineBehavior = LinkUnderlineBehavior.ShowAlways) + Links(dark, light) + }, + ), ViewInfo(title = "Borders", iconKey = StandaloneSampleIcons.Components.borders, content = { Borders() }), ViewInfo( title = "Segmented Controls", From 5fe1e2b0ab0d3ce79c754563263b87d40e8dd0ee Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:09:09 +0100 Subject: [PATCH 09/41] extract ProgressBar Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components}/ProgressBar.kt | 4 ++-- .../jewel/samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/ProgressBar.kt (98%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ProgressBar.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ProgressBar.kt similarity index 98% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ProgressBar.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ProgressBar.kt index 44579af96e..6cd28e5f01 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ProgressBar.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ProgressBar.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.animation.core.animateFloat import androidx.compose.animation.core.infiniteRepeatable @@ -25,7 +25,7 @@ import org.jetbrains.jewel.ui.component.IndeterminateHorizontalProgressBar import org.jetbrains.jewel.ui.component.Text @Composable -fun ProgressBar() { +public fun ProgressBar() { val transition = rememberInfiniteTransition() val currentOffset by transition.animateFloat( diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index c1d6a76aff..d205c13b54 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -17,7 +17,7 @@ import org.jetbrains.jewel.samples.showcase.components.Dropdowns import org.jetbrains.jewel.samples.showcase.components.Icons import org.jetbrains.jewel.samples.showcase.components.Links import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons -import org.jetbrains.jewel.samples.standalone.view.component.ProgressBar +import org.jetbrains.jewel.samples.showcase.components.ProgressBar import org.jetbrains.jewel.samples.standalone.view.component.RadioButtons import org.jetbrains.jewel.samples.standalone.view.component.Scrollbars import org.jetbrains.jewel.samples.standalone.view.component.SegmentedControls From a13867dd4b0019ea6896e66b349cda8787ce3404 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:09:43 +0100 Subject: [PATCH 10/41] extract RadioButtons Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components}/RadioButtons.kt | 4 ++-- .../jewel/samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/RadioButtons.kt (92%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/RadioButtons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/RadioButtons.kt similarity index 92% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/RadioButtons.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/RadioButtons.kt index 4d5c401778..6a6e920214 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/RadioButtons.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/RadioButtons.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row @@ -13,7 +13,7 @@ import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.RadioButtonRow @Composable -fun RadioButtons() { +public fun RadioButtons() { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { var index by remember { mutableStateOf(0) } RadioButtonRow(text = "Default", selected = index == 0, onClick = { index = 0 }) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index d205c13b54..9ca46b01ad 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -18,7 +18,7 @@ import org.jetbrains.jewel.samples.showcase.components.Icons import org.jetbrains.jewel.samples.showcase.components.Links import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.ProgressBar -import org.jetbrains.jewel.samples.standalone.view.component.RadioButtons +import org.jetbrains.jewel.samples.showcase.components.RadioButtons import org.jetbrains.jewel.samples.standalone.view.component.Scrollbars import org.jetbrains.jewel.samples.standalone.view.component.SegmentedControls import org.jetbrains.jewel.samples.standalone.view.component.Sliders From 8220da144d2e73ec4c1e534c22d4fd9267a04cfc Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:15:14 +0100 Subject: [PATCH 11/41] extract Scrollbars Signed-off-by: Ivan Morgillo --- .../showcase/components}/Scrollbars.kt | 20 ++++++++++--------- .../viewmodel/ComponentsViewModel.kt | 20 ++++++++++++++++--- 2 files changed, 28 insertions(+), 12 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Scrollbars.kt (94%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Scrollbars.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt similarity index 94% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Scrollbars.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt index 53d016648c..b557fdedf7 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Scrollbars.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -27,13 +27,9 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import java.util.Locale import org.jetbrains.jewel.foundation.Stroke import org.jetbrains.jewel.foundation.modifier.border import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.intui.standalone.styling.dark -import org.jetbrains.jewel.intui.standalone.styling.default -import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.component.CheckboxRow import org.jetbrains.jewel.ui.component.Divider @@ -50,12 +46,18 @@ import org.jetbrains.jewel.ui.component.styling.TrackClickBehavior import org.jetbrains.jewel.ui.theme.textAreaStyle import org.jetbrains.skiko.OS import org.jetbrains.skiko.hostOs +import java.util.Locale @Composable -fun Scrollbars() { +public fun Scrollbars( + dark: ScrollbarStyle, + light: ScrollbarStyle, + alwaysVisibleScrollbarVisibility: ScrollbarVisibility, + whenScrollingScrollbarVisibility: ScrollbarVisibility +) { Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { val isDark = JewelTheme.isDark - val baseStyle = remember(isDark) { if (isDark) ScrollbarStyle.dark() else ScrollbarStyle.light() } + val baseStyle = remember(isDark) { if (isDark) dark else light } var alwaysVisible by remember { mutableStateOf(hostOs != OS.MacOS) } var clickBehavior by remember { mutableStateOf(baseStyle.trackClickBehavior) } @@ -69,14 +71,14 @@ fun Scrollbars() { colors = baseStyle.colors, metrics = baseStyle.metrics, trackClickBehavior = clickBehavior, - scrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default(), + scrollbarVisibility = alwaysVisibleScrollbarVisibility, ) } else { ScrollbarStyle( colors = baseStyle.colors, metrics = baseStyle.metrics, trackClickBehavior = clickBehavior, - scrollbarVisibility = ScrollbarVisibility.WhenScrolling.default(), + scrollbarVisibility = whenScrollingScrollbarVisibility, ) } ) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 9ca46b01ad..b61457df97 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -7,6 +7,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.SnapshotStateList import org.jetbrains.jewel.intui.standalone.styling.dark +import org.jetbrains.jewel.intui.standalone.styling.default import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.showcase.components.Borders @@ -16,10 +17,10 @@ import org.jetbrains.jewel.samples.showcase.components.ChipsAndTrees import org.jetbrains.jewel.samples.showcase.components.Dropdowns import org.jetbrains.jewel.samples.showcase.components.Icons import org.jetbrains.jewel.samples.showcase.components.Links -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.ProgressBar import org.jetbrains.jewel.samples.showcase.components.RadioButtons -import org.jetbrains.jewel.samples.standalone.view.component.Scrollbars +import org.jetbrains.jewel.samples.showcase.components.Scrollbars +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.standalone.view.component.SegmentedControls import org.jetbrains.jewel.samples.standalone.view.component.Sliders import org.jetbrains.jewel.samples.standalone.view.component.Tabs @@ -29,6 +30,8 @@ import org.jetbrains.jewel.samples.standalone.view.component.Tooltips import org.jetbrains.jewel.ui.component.SplitLayoutState import org.jetbrains.jewel.ui.component.styling.LinkStyle import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior +import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle +import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility object ComponentsViewModel { private var outerSplitState by mutableStateOf(SplitLayoutState(0.5f)) @@ -95,7 +98,18 @@ object ComponentsViewModel { ViewInfo( title = "Scrollbars", iconKey = StandaloneSampleIcons.Components.scrollbar, - content = { Scrollbars() }, + content = { + val dark = ScrollbarStyle.dark() + val light = ScrollbarStyle.light() + val alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default() + val whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.default() + Scrollbars( + dark = dark, + light = light, + alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, + whenScrollingScrollbarVisibility = whenScrollingScrollbarVisibility, + ) + }, ), ViewInfo( title = "SplitLayout", From 5739c41bf74332e7639a699400442d39b5ccce24 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:20:14 +0100 Subject: [PATCH 12/41] extract SegmentedControls Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components}/SegmentedControls.kt | 4 ++-- .../jewel/samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/SegmentedControls.kt (93%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/SegmentedControls.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/SegmentedControls.kt similarity index 93% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/SegmentedControls.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/SegmentedControls.kt index 5ba8646f3d..3990c798dd 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/SegmentedControls.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/SegmentedControls.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -13,7 +13,7 @@ import org.jetbrains.jewel.ui.component.SegmentedControlButtonData import org.jetbrains.jewel.ui.component.Text @Composable -fun SegmentedControls() { +public fun SegmentedControls() { var selectedButtonIndex by remember { mutableStateOf(0) } val buttonIds = listOf(0, 1, 2, 3) val buttons = diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index b61457df97..e1e540a731 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -20,8 +20,8 @@ import org.jetbrains.jewel.samples.showcase.components.Links import org.jetbrains.jewel.samples.showcase.components.ProgressBar import org.jetbrains.jewel.samples.showcase.components.RadioButtons import org.jetbrains.jewel.samples.showcase.components.Scrollbars +import org.jetbrains.jewel.samples.showcase.components.SegmentedControls import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons -import org.jetbrains.jewel.samples.standalone.view.component.SegmentedControls import org.jetbrains.jewel.samples.standalone.view.component.Sliders import org.jetbrains.jewel.samples.standalone.view.component.Tabs import org.jetbrains.jewel.samples.standalone.view.component.TextAreas From c9dd544f8cc55cd95549510aabcf1fae267a1f36 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:25:39 +0100 Subject: [PATCH 13/41] extract Sliders Signed-off-by: Ivan Morgillo --- .../jetbrains/jewel/samples/showcase/components}/Slider.kt | 4 ++-- .../jewel/samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Slider.kt (91%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Slider.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Slider.kt similarity index 91% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Slider.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Slider.kt index 7f428f04ce..c642d0afe6 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Slider.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Slider.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -8,7 +8,7 @@ import androidx.compose.runtime.setValue import org.jetbrains.jewel.ui.component.Slider @Composable -fun Sliders() { +public fun Sliders() { var value1 by remember { mutableStateOf(.45f) } Slider(value = value1, onValueChange = { value1 = it }) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index e1e540a731..693813ce75 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -22,7 +22,7 @@ import org.jetbrains.jewel.samples.showcase.components.RadioButtons import org.jetbrains.jewel.samples.showcase.components.Scrollbars import org.jetbrains.jewel.samples.showcase.components.SegmentedControls import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons -import org.jetbrains.jewel.samples.standalone.view.component.Sliders +import org.jetbrains.jewel.samples.showcase.components.Sliders import org.jetbrains.jewel.samples.standalone.view.component.Tabs import org.jetbrains.jewel.samples.standalone.view.component.TextAreas import org.jetbrains.jewel.samples.standalone.view.component.TextFields From d20b11a247bd0ce2b067a6698121a7ac060aeaf5 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:27:21 +0100 Subject: [PATCH 14/41] extract SplitLayouts Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components}/SplitLayouts.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/SplitLayouts.kt (99%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/SplitLayouts.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/SplitLayouts.kt similarity index 99% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/SplitLayouts.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/SplitLayouts.kt index b70f9d26db..bfc9fbb21c 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/SplitLayouts.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/SplitLayouts.kt @@ -25,7 +25,7 @@ import org.jetbrains.jewel.ui.component.TextField import org.jetbrains.jewel.ui.component.VerticalSplitLayout @Composable -fun SplitLayouts( +public fun SplitLayouts( outerSplitState: SplitLayoutState, verticalSplitState: SplitLayoutState, innerSplitState: SplitLayoutState, From fb6f1f49e0caf00450f109a8e987d28d0e28ac9f Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:36:03 +0100 Subject: [PATCH 15/41] extract Tabs Signed-off-by: Ivan Morgillo --- .../jetbrains/jewel/samples/showcase/components}/Tabs.kt | 7 +++---- .../samples/standalone/viewmodel/ComponentsViewModel.kt | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Tabs.kt (97%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tabs.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt similarity index 97% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tabs.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt index 8787abf0c7..974eca257a 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tabs.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt @@ -1,6 +1,6 @@ @file:Suppress("MagicNumber") -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -20,9 +20,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithCache import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import kotlin.math.max import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.IconButton import org.jetbrains.jewel.ui.component.SimpleTabContent @@ -36,9 +34,10 @@ import org.jetbrains.jewel.ui.painter.rememberResourcePainterProvider import org.jetbrains.jewel.ui.theme.defaultTabStyle import org.jetbrains.jewel.ui.theme.editorTabStyle import org.jetbrains.jewel.ui.util.thenIf +import kotlin.math.max @Composable -fun Tabs() { +public fun Tabs() { Column { Text("Default tabs", Modifier.fillMaxWidth()) DefaultTabShowcase() diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 693813ce75..ab77fa4a54 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -23,8 +23,8 @@ import org.jetbrains.jewel.samples.showcase.components.Scrollbars import org.jetbrains.jewel.samples.showcase.components.SegmentedControls import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Sliders -import org.jetbrains.jewel.samples.standalone.view.component.Tabs -import org.jetbrains.jewel.samples.standalone.view.component.TextAreas +import org.jetbrains.jewel.samples.showcase.components.Tabs +import org.jetbrains.jewel.samples.showcase.components.TextAreas import org.jetbrains.jewel.samples.standalone.view.component.TextFields import org.jetbrains.jewel.samples.standalone.view.component.Tooltips import org.jetbrains.jewel.ui.component.SplitLayoutState From f7895c044a470af83f55906ade0d19a08977a121 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:36:12 +0100 Subject: [PATCH 16/41] extract TextAreas Signed-off-by: Ivan Morgillo --- .../jetbrains/jewel/samples/showcase/components}/TextAreas.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/TextAreas.kt (98%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextAreas.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextAreas.kt similarity index 98% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextAreas.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextAreas.kt index b0a15a13a7..474f5a1d73 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextAreas.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextAreas.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -34,7 +34,7 @@ private const val LOREM_IPSUM = "Sed nec sapien nec dui rhoncus bibendum. Sed blandit bibendum libero." @Composable -fun TextAreas() { +public fun TextAreas() { VerticallyScrollableContainer(Modifier.fillMaxSize()) { Column(Modifier.padding(vertical = 4.dp)) { Row( From 080b403d217dcd58ebb6cad0e7a8119ac1fa0531 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:43:14 +0100 Subject: [PATCH 17/41] extract TextFields Signed-off-by: Ivan Morgillo --- .../showcase/components}/TextFields.kt | 76 ++++++++++--------- .../viewmodel/ComponentsViewModel.kt | 33 +++++++- 2 files changed, 71 insertions(+), 38 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/TextFields.kt (78%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt similarity index 78% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextFields.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index f744f28707..50cb83c0a1 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.fadeIn @@ -21,15 +21,10 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.PointerIcon import androidx.compose.ui.input.pointer.pointerHoverIcon import androidx.compose.ui.unit.dp import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.intui.standalone.styling.dark -import org.jetbrains.jewel.intui.standalone.styling.defaults -import org.jetbrains.jewel.intui.standalone.styling.light -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.GroupHeader import org.jetbrains.jewel.ui.component.Icon @@ -44,10 +39,19 @@ import org.jetbrains.jewel.ui.icons.AllIconsKeys import org.jetbrains.jewel.ui.painter.hints.Stateful @Composable -fun TextFields() { +public fun TextFields( + iconMetrics: IconButtonMetrics, + iconColorsDark: IconButtonColors, + iconColorsLight: IconButtonColors, +) { VerticallyScrollableContainer(Modifier.fillMaxSize()) { Column { - TextFieldsRows(readOnly = false) + TextFieldsRows( + readOnly = false, + iconMetrics = iconMetrics, + iconColorsDark = iconColorsDark, + iconColorsLight = iconColorsLight, + ) Spacer(Modifier.height(16.dp)) @@ -55,13 +59,23 @@ fun TextFields() { Spacer(Modifier.height(16.dp)) - TextFieldsRows(readOnly = true) + TextFieldsRows( + readOnly = true, + iconMetrics = iconMetrics, + iconColorsDark = iconColorsDark, + iconColorsLight = iconColorsLight, + ) } } } @Composable -private fun TextFieldsRows(readOnly: Boolean) { +private fun TextFieldsRows( + readOnly: Boolean, + iconMetrics: IconButtonMetrics, + iconColorsDark: IconButtonColors, + iconColorsLight: IconButtonColors, +) { Column(modifier = Modifier.padding(vertical = 4.dp), verticalArrangement = Arrangement.spacedBy(10.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { val state1 = rememberTextFieldState("TextField") @@ -125,6 +139,9 @@ private fun TextFieldsRows(readOnly: Boolean) { CloseIconButton( isVisible = state2.text.isNotEmpty(), onClick = { state2.setTextAndPlaceCursorAtEnd("") }, + metrics = iconMetrics, + iconColorsDark = iconColorsDark, + iconColorsLight = iconColorsLight, ) }, readOnly = readOnly, @@ -134,7 +151,13 @@ private fun TextFieldsRows(readOnly: Boolean) { } @Composable -private fun CloseIconButton(isVisible: Boolean, onClick: () -> Unit) { +private fun CloseIconButton( + isVisible: Boolean, + onClick: () -> Unit, + metrics: IconButtonMetrics, + iconColorsDark: IconButtonColors, + iconColorsLight: IconButtonColors, +) { Box(Modifier.size(16.dp)) { AnimatedVisibility( visible = isVisible, @@ -144,8 +167,8 @@ private fun CloseIconButton(isVisible: Boolean, onClick: () -> Unit) { // TODO replace when IconButton supports no-background style val isDark = JewelTheme.isDark - val colors = noBackgroundIconButtonColors(isDark) - val style = remember(isDark, colors) { IconButtonStyle(colors, IconButtonMetrics.defaults()) } + val colors = noBackgroundIconButtonColors(isDark, iconColorsDark, iconColorsLight) + val style = remember(isDark, colors) { IconButtonStyle(colors, metrics) } IconButton(onClick, style = style, modifier = Modifier.pointerHoverIcon(PointerIcon.Default)) { state -> Icon(AllIconsKeys.General.Close, contentDescription = "Clear", hint = Stateful(state)) @@ -155,25 +178,8 @@ private fun CloseIconButton(isVisible: Boolean, onClick: () -> Unit) { } @Composable -private fun noBackgroundIconButtonColors(isDark: Boolean) = - if (isDark) { - IconButtonColors.dark( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) - } else { - IconButtonColors.light( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) - } +private fun noBackgroundIconButtonColors( + isDark: Boolean, + iconColorsDark: IconButtonColors, + iconColorsLight: IconButtonColors, +) = if (isDark) iconColorsDark else iconColorsLight diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index ab77fa4a54..55017c5f31 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -6,8 +6,10 @@ import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.SnapshotStateList +import androidx.compose.ui.graphics.Color import org.jetbrains.jewel.intui.standalone.styling.dark import org.jetbrains.jewel.intui.standalone.styling.default +import org.jetbrains.jewel.intui.standalone.styling.defaults import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.showcase.components.Borders @@ -21,13 +23,15 @@ import org.jetbrains.jewel.samples.showcase.components.ProgressBar import org.jetbrains.jewel.samples.showcase.components.RadioButtons import org.jetbrains.jewel.samples.showcase.components.Scrollbars import org.jetbrains.jewel.samples.showcase.components.SegmentedControls -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Sliders +import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Tabs import org.jetbrains.jewel.samples.showcase.components.TextAreas -import org.jetbrains.jewel.samples.standalone.view.component.TextFields +import org.jetbrains.jewel.samples.showcase.components.TextFields import org.jetbrains.jewel.samples.standalone.view.component.Tooltips import org.jetbrains.jewel.ui.component.SplitLayoutState +import org.jetbrains.jewel.ui.component.styling.IconButtonColors +import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics import org.jetbrains.jewel.ui.component.styling.LinkStyle import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle @@ -93,7 +97,30 @@ object ComponentsViewModel { ViewInfo( title = "TextFields", iconKey = StandaloneSampleIcons.Components.textField, - content = { TextFields() }, + content = { + val iconMetrics = IconButtonMetrics.defaults() + val iconColorsDark = + IconButtonColors.dark( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) + val iconColorsLight = + IconButtonColors.light( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) + TextFields(iconMetrics, iconColorsDark, iconColorsLight) + }, ), ViewInfo( title = "Scrollbars", From 53ff4497e132f8147278ca22b3fa02806e81eb1f Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 12:43:51 +0100 Subject: [PATCH 18/41] extract Tooltips Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components}/Tooltips.kt | 6 +++--- .../samples/standalone/viewmodel/ComponentsViewModel.kt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components}/Tooltips.kt (94%) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tooltips.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tooltips.kt similarity index 94% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tooltips.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tooltips.kt index 29fc533ff3..e20cce1be8 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/Tooltips.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tooltips.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.component +package org.jetbrains.jewel.samples.showcase.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row @@ -10,15 +10,15 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.unit.dp -import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.delay import org.jetbrains.jewel.ui.component.CheckboxRow import org.jetbrains.jewel.ui.component.DefaultButton import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.Tooltip +import kotlin.time.Duration.Companion.seconds @Composable -fun Tooltips() { +public fun Tooltips() { var toggleEnabled by remember { mutableStateOf(true) } var enabled by remember { mutableStateOf(true) } LaunchedEffect(toggleEnabled) { diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt index 55017c5f31..bb4cdfce74 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt @@ -28,7 +28,7 @@ import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.components.Tabs import org.jetbrains.jewel.samples.showcase.components.TextAreas import org.jetbrains.jewel.samples.showcase.components.TextFields -import org.jetbrains.jewel.samples.standalone.view.component.Tooltips +import org.jetbrains.jewel.samples.showcase.components.Tooltips import org.jetbrains.jewel.ui.component.SplitLayoutState import org.jetbrains.jewel.ui.component.styling.IconButtonColors import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics From d047024480973dd637abf6ade68d5e5775e2ad4a Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 7 Jan 2025 13:20:31 +0100 Subject: [PATCH 19/41] extract MarkdownDemo Signed-off-by: Ivan Morgillo --- samples/showcase/build.gradle.kts | 4 ++ .../samples/showcase}/markdown/JewelReadme.kt | 5 +- .../showcase}/markdown/MarkdownCatalog.kt | 2 +- .../showcase}/markdown/MarkdownEditor.kt | 5 +- .../showcase}/markdown/MarkdownPreview.kt | 62 ++++++++++++------- samples/standalone/build.gradle.kts | 1 - .../samples/standalone/view/MarkdownView.kt | 33 ++++++++-- 7 files changed, 78 insertions(+), 34 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase}/markdown/JewelReadme.kt (99%) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase}/markdown/MarkdownCatalog.kt (99%) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase}/markdown/MarkdownEditor.kt (96%) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase}/markdown/MarkdownPreview.kt (68%) diff --git a/samples/showcase/build.gradle.kts b/samples/showcase/build.gradle.kts index fd7bc8a86e..e2feffecfc 100644 --- a/samples/showcase/build.gradle.kts +++ b/samples/showcase/build.gradle.kts @@ -14,6 +14,10 @@ private val composeVersion dependencies { implementation(project(":foundation")) implementation(project(":ui")) + implementation("com.darkrockstudios:mpfilepicker:3.1.0") + implementation(project(":markdown:core")) + implementation(project(":markdown:extension:gfm-alerts")) + implementation(project(":markdown:extension:autolink")) testImplementation(compose.desktop.uiTestJUnit4) testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/JewelReadme.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/JewelReadme.kt similarity index 99% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/JewelReadme.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/JewelReadme.kt index 5ddc0d580d..1bb84922b0 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/JewelReadme.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/JewelReadme.kt @@ -1,9 +1,8 @@ -package org.jetbrains.jewel.samples.standalone.view.markdown +package org.jetbrains.jewel.samples.showcase.markdown import org.intellij.lang.annotations.Language -@Language("Markdown") -internal val JewelReadme = +@Language("Markdown") public val JewelReadme: String = """ # Jewel: a Compose for Desktop theme diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownCatalog.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownCatalog.kt similarity index 99% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownCatalog.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownCatalog.kt index 0e6453c726..5509980194 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownCatalog.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownCatalog.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.markdown +package org.jetbrains.jewel.samples.showcase.markdown import org.intellij.lang.annotations.Language diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownEditor.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownEditor.kt similarity index 96% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownEditor.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownEditor.kt index 73252dad60..ffbc02b88e 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownEditor.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownEditor.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view.markdown +package org.jetbrains.jewel.samples.showcase.markdown import androidx.compose.foundation.background import androidx.compose.foundation.horizontalScroll @@ -33,8 +33,7 @@ import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.TextArea import org.jetbrains.jewel.ui.theme.simpleListItemStyle -@Composable -internal fun MarkdownEditor(state: TextFieldState, modifier: Modifier = Modifier) { +@Composable public fun MarkdownEditor(state: TextFieldState, modifier: Modifier = Modifier) { Column(modifier) { ControlsRow( modifier = Modifier.fillMaxWidth().background(JewelTheme.globalColors.panelBackground).padding(8.dp), diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownPreview.kt similarity index 68% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownPreview.kt index 40a796138b..1f2188cf76 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownPreview.kt @@ -1,9 +1,10 @@ -package org.jetbrains.jewel.samples.standalone.view.markdown +package org.jetbrains.jewel.samples.showcase.markdown import androidx.compose.foundation.background import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -12,36 +13,40 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import java.awt.Desktop -import java.net.URI import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import org.jetbrains.jewel.foundation.ExperimentalJewelApi +import org.jetbrains.jewel.foundation.code.highlighting.CodeHighlighter +import org.jetbrains.jewel.foundation.code.highlighting.LocalCodeHighlighter import org.jetbrains.jewel.foundation.code.highlighting.NoOpCodeHighlighter import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.intui.markdown.standalone.ProvideMarkdownStyling -import org.jetbrains.jewel.intui.markdown.standalone.dark -import org.jetbrains.jewel.intui.markdown.standalone.light -import org.jetbrains.jewel.intui.markdown.standalone.styling.dark -import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark -import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light -import org.jetbrains.jewel.intui.markdown.standalone.styling.light import org.jetbrains.jewel.markdown.LazyMarkdown import org.jetbrains.jewel.markdown.MarkdownBlock import org.jetbrains.jewel.markdown.extension.autolink.AutolinkProcessorExtension -import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling +import org.jetbrains.jewel.markdown.extensions.LocalMarkdownBlockRenderer +import org.jetbrains.jewel.markdown.extensions.LocalMarkdownProcessor +import org.jetbrains.jewel.markdown.extensions.LocalMarkdownStyling import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertProcessorExtension -import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension import org.jetbrains.jewel.markdown.processing.MarkdownProcessor import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.ui.component.VerticallyScrollableContainer import org.jetbrains.jewel.ui.component.scrollbarContentSafePadding +import java.awt.Desktop +import java.net.URI @Composable -internal fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSequence) { +public fun MarkdownPreview( + modifier: Modifier = Modifier, + rawMarkdown: CharSequence, + darkStyling: MarkdownStyling, + lightStyling: MarkdownStyling, + darkRenderer: MarkdownBlockRenderer, + lightRenderer: MarkdownBlockRenderer, +) { val isDark = JewelTheme.isDark - val markdownStyling = remember(isDark) { if (isDark) MarkdownStyling.dark() else MarkdownStyling.light() } + val markdownStyling = remember(isDark) { if (isDark) darkStyling else lightStyling } var markdownBlocks by remember { mutableStateOf(emptyList()) } val extensions = remember { listOf(GitHubAlertProcessorExtension, AutolinkProcessorExtension) } @@ -62,15 +67,9 @@ internal fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSeq val blockRenderer = remember(markdownStyling, extensions) { if (isDark) { - MarkdownBlockRenderer.dark( - styling = markdownStyling, - rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.dark(), markdownStyling)), - ) + darkRenderer } else { - MarkdownBlockRenderer.light( - styling = markdownStyling, - rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.light(), markdownStyling)), - ) + lightRenderer } } @@ -92,3 +91,22 @@ internal fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSeq } } } + +@ExperimentalJewelApi +@Composable +public fun ProvideMarkdownStyling( + markdownStyling: MarkdownStyling, + markdownBlockRenderer: MarkdownBlockRenderer, + codeHighlighter: CodeHighlighter, + markdownProcessor: MarkdownProcessor = remember { MarkdownProcessor() }, + content: @Composable () -> Unit, +) { + CompositionLocalProvider( + LocalMarkdownStyling provides markdownStyling, + LocalMarkdownProcessor provides markdownProcessor, + LocalMarkdownBlockRenderer provides markdownBlockRenderer, + LocalCodeHighlighter provides codeHighlighter, + ) { + content() + } +} diff --git a/samples/standalone/build.gradle.kts b/samples/standalone/build.gradle.kts index f376fa838c..d20d51c8ba 100644 --- a/samples/standalone/build.gradle.kts +++ b/samples/standalone/build.gradle.kts @@ -10,7 +10,6 @@ plugins { dependencies { implementation(libs.kotlin.reflect) - implementation(libs.filePicker) implementation(projects.intUi.intUiStandalone) implementation(projects.intUi.intUiDecoratedWindow) implementation(projects.markdown.intUiStandaloneStyling) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt index e35cfa48b4..bf4502a5f9 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt @@ -9,9 +9,19 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.standalone.view.markdown.JewelReadme -import org.jetbrains.jewel.samples.standalone.view.markdown.MarkdownEditor -import org.jetbrains.jewel.samples.standalone.view.markdown.MarkdownPreview +import org.jetbrains.jewel.intui.markdown.standalone.dark +import org.jetbrains.jewel.intui.markdown.standalone.light +import org.jetbrains.jewel.intui.markdown.standalone.styling.dark +import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark +import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light +import org.jetbrains.jewel.intui.markdown.standalone.styling.light +import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling +import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension +import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer +import org.jetbrains.jewel.markdown.rendering.MarkdownStyling +import org.jetbrains.jewel.samples.showcase.markdown.JewelReadme +import org.jetbrains.jewel.samples.showcase.markdown.MarkdownEditor +import org.jetbrains.jewel.samples.showcase.markdown.MarkdownPreview import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.component.Divider @@ -23,6 +33,21 @@ fun MarkdownDemo() { Divider(Orientation.Vertical, Modifier.fillMaxHeight()) - MarkdownPreview(modifier = Modifier.fillMaxHeight().weight(1f), rawMarkdown = editorState.text) + MarkdownPreview( + modifier = Modifier + .fillMaxHeight() + .weight(1f), + rawMarkdown = editorState.text, + darkStyling = MarkdownStyling.dark(), + darkRenderer = MarkdownBlockRenderer.dark( + styling = MarkdownStyling.dark(), + rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.dark(), MarkdownStyling.dark())), + ), + lightStyling = MarkdownStyling.light(), + lightRenderer = MarkdownBlockRenderer.light( + styling = MarkdownStyling.light(), + rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.light(), MarkdownStyling.light())), + ) + ) } } From a91bcb3bd82354ac313dbc20b19fa0c4cb7e5749 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Wed, 8 Jan 2025 11:42:15 +0100 Subject: [PATCH 20/41] workout dependencies in IDE plugin Signed-off-by: Ivan Morgillo --- samples/ide-plugin/build.gradle.kts | 1 + .../jewel/samples/ideplugin/ComponentShowcaseTab.kt | 3 +++ samples/showcase/build.gradle.kts | 11 ++++++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/samples/ide-plugin/build.gradle.kts b/samples/ide-plugin/build.gradle.kts index 5de4859a9d..8c3e3b03fd 100644 --- a/samples/ide-plugin/build.gradle.kts +++ b/samples/ide-plugin/build.gradle.kts @@ -44,6 +44,7 @@ dependencies { exclude(group = "org.jetbrains.compose.material") exclude(group = "org.jetbrains.kotlinx") } + implementation(project(":samples:showcase")) { exclude(group = "org.jetbrains.kotlinx") } } intellijPlatform { diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt index b4eb64937d..73c92ab701 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt @@ -45,6 +45,7 @@ import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.foundation.theme.LocalContentColor import org.jetbrains.jewel.intui.markdown.bridge.ProvideMarkdownStyling import org.jetbrains.jewel.markdown.Markdown +import org.jetbrains.jewel.samples.showcase.components.Buttons import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.CheckboxRow @@ -223,6 +224,8 @@ private fun RowScope.ColumnOne() { else -> InformationBanner("This is an information banner in Compose") } } + + Buttons() } } diff --git a/samples/showcase/build.gradle.kts b/samples/showcase/build.gradle.kts index e2feffecfc..a045e9c044 100644 --- a/samples/showcase/build.gradle.kts +++ b/samples/showcase/build.gradle.kts @@ -12,12 +12,13 @@ private val composeVersion get() = ComposeBuildConfig.composeVersion dependencies { - implementation(project(":foundation")) - implementation(project(":ui")) + implementation(projects.foundation) + implementation(projects.ui) + implementation(projects.markdown.core) + implementation(projects.markdown.extension.gfmAlerts) + implementation(projects.markdown.extension.autolink) implementation("com.darkrockstudios:mpfilepicker:3.1.0") - implementation(project(":markdown:core")) - implementation(project(":markdown:extension:gfm-alerts")) - implementation(project(":markdown:extension:autolink")) + testImplementation(compose.desktop.uiTestJUnit4) testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } } From 36d8c698836d913ff90558d9cd242bdcaf4a9a1a Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Wed, 8 Jan 2025 11:49:52 +0100 Subject: [PATCH 21/41] extract MarkdownView Signed-off-by: Ivan Morgillo --- .../samples/showcase/views/MarkdownView.kt | 42 +++++++++++++++ .../samples/standalone/view/MarkdownView.kt | 53 ------------------- .../standalone/viewmodel/MainViewModel.kt | 33 ++++++++++-- 3 files changed, 72 insertions(+), 56 deletions(-) create mode 100644 samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/MarkdownView.kt delete mode 100644 samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/MarkdownView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/MarkdownView.kt new file mode 100644 index 0000000000..9ba57dd2de --- /dev/null +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/MarkdownView.kt @@ -0,0 +1,42 @@ +package org.jetbrains.jewel.samples.showcase.views + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.text.input.rememberTextFieldState +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import org.jetbrains.jewel.foundation.modifier.trackActivation +import org.jetbrains.jewel.foundation.theme.JewelTheme +import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer +import org.jetbrains.jewel.markdown.rendering.MarkdownStyling +import org.jetbrains.jewel.samples.showcase.markdown.JewelReadme +import org.jetbrains.jewel.samples.showcase.markdown.MarkdownEditor +import org.jetbrains.jewel.samples.showcase.markdown.MarkdownPreview +import org.jetbrains.jewel.ui.Orientation +import org.jetbrains.jewel.ui.component.Divider + +@Composable +public fun MarkdownDemo( + darkStyling: MarkdownStyling, + darkRenderer: MarkdownBlockRenderer, + lightStyling: MarkdownStyling, + lightRenderer: MarkdownBlockRenderer, +) { + Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { + val editorState = rememberTextFieldState(JewelReadme) + MarkdownEditor(state = editorState, modifier = Modifier.fillMaxHeight().weight(1f)) + + Divider(Orientation.Vertical, Modifier.fillMaxHeight()) + + MarkdownPreview( + modifier = Modifier.fillMaxHeight().weight(1f), + rawMarkdown = editorState.text, + darkStyling = darkStyling, + darkRenderer = darkRenderer, + lightStyling = lightStyling, + lightRenderer = lightRenderer, + ) + } +} diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt deleted file mode 100644 index bf4502a5f9..0000000000 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt +++ /dev/null @@ -1,53 +0,0 @@ -package org.jetbrains.jewel.samples.standalone.view - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.text.input.rememberTextFieldState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import org.jetbrains.jewel.foundation.modifier.trackActivation -import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.intui.markdown.standalone.dark -import org.jetbrains.jewel.intui.markdown.standalone.light -import org.jetbrains.jewel.intui.markdown.standalone.styling.dark -import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark -import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light -import org.jetbrains.jewel.intui.markdown.standalone.styling.light -import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling -import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension -import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer -import org.jetbrains.jewel.markdown.rendering.MarkdownStyling -import org.jetbrains.jewel.samples.showcase.markdown.JewelReadme -import org.jetbrains.jewel.samples.showcase.markdown.MarkdownEditor -import org.jetbrains.jewel.samples.showcase.markdown.MarkdownPreview -import org.jetbrains.jewel.ui.Orientation -import org.jetbrains.jewel.ui.component.Divider - -@Composable -fun MarkdownDemo() { - Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { - val editorState = rememberTextFieldState(JewelReadme) - MarkdownEditor(state = editorState, modifier = Modifier.fillMaxHeight().weight(1f)) - - Divider(Orientation.Vertical, Modifier.fillMaxHeight()) - - MarkdownPreview( - modifier = Modifier - .fillMaxHeight() - .weight(1f), - rawMarkdown = editorState.text, - darkStyling = MarkdownStyling.dark(), - darkRenderer = MarkdownBlockRenderer.dark( - styling = MarkdownStyling.dark(), - rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.dark(), MarkdownStyling.dark())), - ), - lightStyling = MarkdownStyling.light(), - lightRenderer = MarkdownBlockRenderer.light( - styling = MarkdownStyling.light(), - rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.light(), MarkdownStyling.light())), - ) - ) - } -} diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index b36ed481c0..14bcc89636 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -5,10 +5,20 @@ import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.graphics.Color -import org.jetbrains.jewel.samples.standalone.IntUiThemes +import org.jetbrains.jewel.intui.markdown.standalone.dark +import org.jetbrains.jewel.intui.markdown.standalone.light +import org.jetbrains.jewel.intui.markdown.standalone.styling.dark +import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark +import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light +import org.jetbrains.jewel.intui.markdown.standalone.styling.light +import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling +import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension +import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer +import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.views.MarkdownDemo +import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.standalone.view.ComponentsView -import org.jetbrains.jewel.samples.standalone.view.MarkdownDemo import org.jetbrains.jewel.samples.standalone.view.WelcomeView object MainViewModel { @@ -52,6 +62,23 @@ private val mainMenuItems = iconKey = StandaloneSampleIcons.markdown, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "M"), windows = setOf("Alt", "M"), linux = setOf("Alt", "M")), - content = { MarkdownDemo() }, + content = { + MarkdownDemo( + darkStyling = MarkdownStyling.dark(), + darkRenderer = + MarkdownBlockRenderer.dark( + styling = MarkdownStyling.dark(), + rendererExtensions = + listOf(GitHubAlertRendererExtension(AlertStyling.dark(), MarkdownStyling.dark())), + ), + lightStyling = MarkdownStyling.light(), + lightRenderer = + MarkdownBlockRenderer.light( + styling = MarkdownStyling.light(), + rendererExtensions = + listOf(GitHubAlertRendererExtension(AlertStyling.light(), MarkdownStyling.light())), + ), + ) + }, ), ) From 90f0a0003bcdf57d8d039ca3d9be85013baaee0b Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Wed, 8 Jan 2025 12:04:29 +0100 Subject: [PATCH 22/41] extract ComponentsView Signed-off-by: Ivan Morgillo --- .../styling/IntUiIconButtonStyling.kt | 2 - .../samples/showcase/views}/ComponentsView.kt | 22 +++---- .../showcase/views}/ComponentsViewModel.kt | 61 ++++++------------- .../jewel/samples/showcase/views}/ViewInfo.kt | 8 +-- .../samples/standalone/view/TitleBarView.kt | 2 +- .../samples/standalone/view/WelcomeView.kt | 2 +- .../standalone/viewmodel/MainViewModel.kt | 57 ++++++++++++++++- 7 files changed, 89 insertions(+), 65 deletions(-) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views}/ComponentsView.kt (82%) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views}/ComponentsViewModel.kt (68%) rename samples/{standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel => showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views}/ViewInfo.kt (75%) diff --git a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt index cdb9c53c7c..b37787811f 100644 --- a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt +++ b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt @@ -25,7 +25,6 @@ public fun IconButtonStyle.Companion.dark( metrics: IconButtonMetrics = IconButtonMetrics.defaults(), ): IconButtonStyle = IconButtonStyle(colors, metrics) -@Composable public fun IconButtonColors.Companion.light( foregroundSelectedActivated: Color = IntUiLightTheme.colors.gray(14), background: Color = Color.Unspecified, @@ -61,7 +60,6 @@ public fun IconButtonColors.Companion.light( borderHovered = borderHovered, ) -@Composable public fun IconButtonColors.Companion.dark( foregroundSelectedActivated: Color = IntUiDarkTheme.colors.gray(14), background: Color = Color.Unspecified, diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt similarity index 82% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/ComponentsView.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt index 1845fee4a3..3669d8bf0a 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/ComponentsView.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.view +package org.jetbrains.jewel.samples.showcase.views import androidx.compose.foundation.TooltipPlacement import androidx.compose.foundation.background @@ -16,11 +16,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import kotlin.time.Duration.Companion.milliseconds import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.standalone.viewmodel.ComponentsViewModel -import org.jetbrains.jewel.samples.standalone.viewmodel.ViewInfo import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.component.Divider import org.jetbrains.jewel.ui.component.SelectableIconActionButton @@ -30,25 +27,26 @@ import org.jetbrains.jewel.ui.component.styling.TooltipMetrics import org.jetbrains.jewel.ui.component.styling.TooltipStyle import org.jetbrains.jewel.ui.painter.hints.Size import org.jetbrains.jewel.ui.theme.tooltipStyle +import kotlin.time.Duration.Companion.milliseconds @Composable -fun ComponentsView() { +public fun ComponentsView(viewModel: ComponentsViewModel) { Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { - ComponentsToolBar() + ComponentsToolBar(viewModel) Divider(Orientation.Vertical, Modifier.fillMaxHeight()) - ComponentView(ComponentsViewModel.currentView) + ComponentView(viewModel.currentView) } } @Composable -fun ComponentsToolBar() { +public fun ComponentsToolBar(viewModel: ComponentsViewModel) { Column(Modifier.fillMaxHeight().width(40.dp).verticalScroll(rememberScrollState())) { - ComponentsViewModel.views.forEach { + viewModel.views.forEach { SelectableIconActionButton( key = it.iconKey, contentDescription = "Show ${it.title}", - selected = ComponentsViewModel.currentView == it, - onClick = { ComponentsViewModel.currentView = it }, + selected = viewModel.currentView == it, + onClick = { viewModel.currentView = it }, modifier = Modifier.size(40.dp).padding(5.dp), tooltip = { Text(it.title) }, tooltipStyle = @@ -61,7 +59,7 @@ fun ComponentsToolBar() { } @Composable -fun ComponentView(view: ViewInfo) { +public fun ComponentView(view: ViewInfo) { Column(Modifier.fillMaxSize().padding(24.dp), verticalArrangement = Arrangement.spacedBy(24.dp)) { Text(view.title, style = Typography.h1TextStyle()) view.content() diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt similarity index 68% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt index bb4cdfce74..5993026bb6 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.standalone.viewmodel +package org.jetbrains.jewel.samples.showcase.views import SplitLayouts import androidx.compose.runtime.getValue @@ -6,11 +6,6 @@ import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.SnapshotStateList -import androidx.compose.ui.graphics.Color -import org.jetbrains.jewel.intui.standalone.styling.dark -import org.jetbrains.jewel.intui.standalone.styling.default -import org.jetbrains.jewel.intui.standalone.styling.defaults -import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.samples.showcase.components.Banners import org.jetbrains.jewel.samples.showcase.components.Borders import org.jetbrains.jewel.samples.showcase.components.Buttons @@ -33,16 +28,25 @@ import org.jetbrains.jewel.ui.component.SplitLayoutState import org.jetbrains.jewel.ui.component.styling.IconButtonColors import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics import org.jetbrains.jewel.ui.component.styling.LinkStyle -import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility -object ComponentsViewModel { +public class ComponentsViewModel( + darkLinkStyle: LinkStyle, + linkStyleLight: LinkStyle, + iconButtonMetrics: IconButtonMetrics, + scrollbarDark: ScrollbarStyle, + scrollbarLight: ScrollbarStyle, + alwaysVisibleScrollbarVisibility: ScrollbarVisibility.AlwaysVisible, + whenScrollingScrollbarVisibility: ScrollbarVisibility.WhenScrolling, + textFieldIconColorsDark: IconButtonColors, + textFieldIconColorsLight: IconButtonColors, +) { private var outerSplitState by mutableStateOf(SplitLayoutState(0.5f)) private var verticalSplitState by mutableStateOf(SplitLayoutState(0.5f)) private var innerSplitState by mutableStateOf(SplitLayoutState(0.5f)) - val views: SnapshotStateList = + public val views: SnapshotStateList = mutableStateListOf( ViewInfo(title = "Buttons", iconKey = StandaloneSampleIcons.Components.button, content = { Buttons() }), ViewInfo( @@ -74,11 +78,7 @@ object ComponentsViewModel { ViewInfo( title = "Links", iconKey = StandaloneSampleIcons.Components.links, - content = { - val dark = LinkStyle.dark(underlineBehavior = LinkUnderlineBehavior.ShowAlways) - val light = LinkStyle.light(underlineBehavior = LinkUnderlineBehavior.ShowAlways) - Links(dark, light) - }, + content = { Links(darkLinkStyle, linkStyleLight) }, ), ViewInfo(title = "Borders", iconKey = StandaloneSampleIcons.Components.borders, content = { Borders() }), ViewInfo( @@ -98,41 +98,16 @@ object ComponentsViewModel { title = "TextFields", iconKey = StandaloneSampleIcons.Components.textField, content = { - val iconMetrics = IconButtonMetrics.defaults() - val iconColorsDark = - IconButtonColors.dark( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) - val iconColorsLight = - IconButtonColors.light( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) - TextFields(iconMetrics, iconColorsDark, iconColorsLight) + TextFields(iconButtonMetrics, textFieldIconColorsDark, textFieldIconColorsLight) }, ), ViewInfo( title = "Scrollbars", iconKey = StandaloneSampleIcons.Components.scrollbar, content = { - val dark = ScrollbarStyle.dark() - val light = ScrollbarStyle.light() - val alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default() - val whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.default() Scrollbars( - dark = dark, - light = light, + dark = scrollbarDark, + light = scrollbarLight, alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, whenScrollingScrollbarVisibility = whenScrollingScrollbarVisibility, ) @@ -151,5 +126,5 @@ object ComponentsViewModel { ), ViewInfo(title = "Banners", iconKey = StandaloneSampleIcons.Components.banners, content = { Banners() }), ) - var currentView by mutableStateOf(views.first()) + public var currentView: ViewInfo by mutableStateOf(views.first()) } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ViewInfo.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt similarity index 75% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ViewInfo.kt rename to samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt index dd3dd94c83..d5b24ff529 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ViewInfo.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt @@ -1,23 +1,23 @@ -package org.jetbrains.jewel.samples.standalone.viewmodel +package org.jetbrains.jewel.samples.showcase.views import androidx.compose.runtime.Composable import org.jetbrains.jewel.ui.icon.IconKey import org.jetbrains.skiko.hostOs -data class KeyBinding( +public data class KeyBinding( val macOs: Set = emptySet(), val windows: Set = emptySet(), val linux: Set = emptySet(), ) -fun KeyBinding.forCurrentOs(): Set = +public fun KeyBinding.forCurrentOs(): Set = when { hostOs.isMacOS -> macOs hostOs.isLinux -> linux else -> windows } -data class ViewInfo( +public data class ViewInfo( val title: String, val iconKey: IconKey, val keyboardShortcut: KeyBinding? = null, diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt index e6c8875909..0a535e022e 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt @@ -13,8 +13,8 @@ import java.awt.Desktop import java.net.URI import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.views.forCurrentOs import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel -import org.jetbrains.jewel.samples.standalone.viewmodel.forCurrentOs import org.jetbrains.jewel.ui.component.Dropdown import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.IconButton diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt index 73b93bf0c6..2c6c9e3e01 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt @@ -14,8 +14,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel import org.jetbrains.jewel.ui.component.CheckboxRow import org.jetbrains.jewel.ui.component.Icon diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index 14bcc89636..cf549bc1d2 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -11,17 +11,70 @@ import org.jetbrains.jewel.intui.markdown.standalone.styling.dark import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light import org.jetbrains.jewel.intui.markdown.standalone.styling.light +import org.jetbrains.jewel.intui.standalone.styling.dark +import org.jetbrains.jewel.intui.standalone.styling.default +import org.jetbrains.jewel.intui.standalone.styling.defaults +import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.views.ComponentsView +import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel +import org.jetbrains.jewel.samples.showcase.views.KeyBinding import org.jetbrains.jewel.samples.showcase.views.MarkdownDemo +import org.jetbrains.jewel.samples.showcase.views.ViewInfo import org.jetbrains.jewel.samples.standalone.IntUiThemes -import org.jetbrains.jewel.samples.standalone.view.ComponentsView import org.jetbrains.jewel.samples.standalone.view.WelcomeView +import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel.componentsViewModel +import org.jetbrains.jewel.ui.component.styling.IconButtonColors +import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics +import org.jetbrains.jewel.ui.component.styling.LinkStyle +import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior +import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle +import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility object MainViewModel { + val componentsViewModel: ComponentsViewModel + get() { + val scrollbarDark = ScrollbarStyle.dark() + val scrollbarLight = ScrollbarStyle.light() + val alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default() + val whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.default() + val textFieldIconColorsDark = + IconButtonColors.dark( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) + val textFieldIconColorsLight = + IconButtonColors.light( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) + return ComponentsViewModel( + darkLinkStyle = LinkStyle.dark(underlineBehavior = LinkUnderlineBehavior.ShowAlways), + linkStyleLight = LinkStyle.light(underlineBehavior = LinkUnderlineBehavior.ShowAlways), + iconButtonMetrics = IconButtonMetrics.defaults(), + scrollbarDark = scrollbarDark, + scrollbarLight = scrollbarLight, + alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, + whenScrollingScrollbarVisibility = whenScrollingScrollbarVisibility, + textFieldIconColorsDark = textFieldIconColorsDark, + textFieldIconColorsLight = textFieldIconColorsLight, + ) + } + fun onNavigateTo(destination: String) { currentView = views.first { viewInfo -> viewInfo.title == destination } } @@ -55,7 +108,7 @@ private val mainMenuItems = title = "Components", iconKey = StandaloneSampleIcons.componentsMenu, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "C"), windows = setOf("Alt", "C")), - content = { ComponentsView() }, + content = { ComponentsView(viewModel = componentsViewModel) }, ), ViewInfo( title = "Markdown", From 5787a9c898f1350921009e632f16daf8910c4001 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Thu, 9 Jan 2025 16:16:06 +0100 Subject: [PATCH 23/41] add Showcase dialog in IDE plugin Signed-off-by: Ivan Morgillo --- .../samples/ideplugin/ComponentShowcaseTab.kt | 3 -- .../ideplugin/SwingComparisonTabPanel.kt | 38 +++++++++++++++++-- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt index 73c92ab701..b4eb64937d 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt @@ -45,7 +45,6 @@ import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.foundation.theme.LocalContentColor import org.jetbrains.jewel.intui.markdown.bridge.ProvideMarkdownStyling import org.jetbrains.jewel.markdown.Markdown -import org.jetbrains.jewel.samples.showcase.components.Buttons import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.CheckboxRow @@ -224,8 +223,6 @@ private fun RowScope.ColumnOne() { else -> InformationBanner("This is an information banner in Compose") } } - - Buttons() } } diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt index dd63e8799e..d31d4272d0 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI import com.intellij.openapi.ui.ComboBox +import com.intellij.openapi.ui.DialogWrapper import com.intellij.ui.JBColor import com.intellij.ui.components.JBLabel import com.intellij.ui.components.JBScrollPane @@ -42,10 +43,6 @@ import com.intellij.util.ui.JBUI import com.intellij.util.ui.components.BorderLayoutPanel import icons.IdeSampleIconKeys import icons.JewelIcons -import javax.swing.BoxLayout -import javax.swing.DefaultComboBoxModel -import javax.swing.JLabel -import javax.swing.JPanel import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.medium import org.jetbrains.jewel.foundation.theme.JewelTheme @@ -61,10 +58,28 @@ import org.jetbrains.jewel.ui.component.TextField import org.jetbrains.jewel.ui.component.Typography import org.jetbrains.jewel.ui.theme.simpleListItemStyle import org.jetbrains.jewel.ui.theme.textAreaStyle +import java.awt.BorderLayout +import java.awt.Dimension +import javax.swing.BoxLayout +import javax.swing.DefaultComboBoxModel +import javax.swing.JButton +import javax.swing.JComponent +import javax.swing.JLabel +import javax.swing.JPanel internal class SwingComparisonTabPanel : BorderLayoutPanel() { + private val testButton = + JButton("Open Dialog").apply { + addActionListener { + if (ComponentShowcaseDialog().showAndGet()) { + // user pressed OK + } + } + } private val mainContent = panel { + row { cell(testButton) } + separator() buttonsRow() separator() labelsRows() @@ -400,3 +415,18 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() { private fun Row.compose(modifier: Modifier = Modifier.padding(8.dp), content: @Composable () -> Unit) = cell(JewelComposePanel { Box(modifier) { content() } }.apply { isOpaque = false }) } + +private class ComponentShowcaseDialog : DialogWrapper(true) { + init { + title = "Component Showcase" + init() + } + + override fun createCenterPanel(): JComponent { + val dialogPanel = JPanel(BorderLayout()) + val label = JLabel("Component Showcase") + label.preferredSize = Dimension(600, 600) + dialogPanel.add(label, BorderLayout.CENTER) + return dialogPanel + } +} From a2fbd5b11e1eadc99e452f470ae8200c34a9a01c Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 13 Jan 2025 11:52:46 +0100 Subject: [PATCH 24/41] add ComponentsView to SwingComparisonTabPanel Signed-off-by: Ivan Morgillo --- .../ideplugin/SwingComparisonTabPanel.kt | 30 +++++++++++-------- .../showcase/views/ComponentsViewModel.kt | 19 ++---------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt index d31d4272d0..cc7bfc7f49 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt @@ -45,7 +45,10 @@ import icons.IdeSampleIconKeys import icons.JewelIcons import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.medium +import org.jetbrains.jewel.bridge.theme.macOs import org.jetbrains.jewel.foundation.theme.JewelTheme +import org.jetbrains.jewel.samples.showcase.views.ComponentsView +import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.ui.component.DefaultButton import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.ListComboBox @@ -56,9 +59,9 @@ import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.TextArea import org.jetbrains.jewel.ui.component.TextField import org.jetbrains.jewel.ui.component.Typography +import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility import org.jetbrains.jewel.ui.theme.simpleListItemStyle import org.jetbrains.jewel.ui.theme.textAreaStyle -import java.awt.BorderLayout import java.awt.Dimension import javax.swing.BoxLayout import javax.swing.DefaultComboBoxModel @@ -68,17 +71,13 @@ import javax.swing.JLabel import javax.swing.JPanel internal class SwingComparisonTabPanel : BorderLayoutPanel() { - private val testButton = - JButton("Open Dialog").apply { - addActionListener { - if (ComponentShowcaseDialog().showAndGet()) { - // user pressed OK - } - } + private val openComponentsShowcaseButton = + JButton("Components Showcase").apply { + addActionListener { ComponentShowcaseDialog().show() } } private val mainContent = panel { - row { cell(testButton) } + row { cell(openComponentsShowcaseButton) } separator() buttonsRow() separator() @@ -423,10 +422,15 @@ private class ComponentShowcaseDialog : DialogWrapper(true) { } override fun createCenterPanel(): JComponent { - val dialogPanel = JPanel(BorderLayout()) - val label = JLabel("Component Showcase") - label.preferredSize = Dimension(600, 600) - dialogPanel.add(label, BorderLayout.CENTER) + val dialogPanel = JewelComposePanel { + ComponentsView( + ComponentsViewModel( + alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.macOs(), + whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), + ) + ) + } + dialogPanel.preferredSize = Dimension(800, 600) return dialogPanel } } diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt index 5993026bb6..dc8fac9b16 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt @@ -25,22 +25,11 @@ import org.jetbrains.jewel.samples.showcase.components.TextAreas import org.jetbrains.jewel.samples.showcase.components.TextFields import org.jetbrains.jewel.samples.showcase.components.Tooltips import org.jetbrains.jewel.ui.component.SplitLayoutState -import org.jetbrains.jewel.ui.component.styling.IconButtonColors -import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics -import org.jetbrains.jewel.ui.component.styling.LinkStyle -import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility public class ComponentsViewModel( - darkLinkStyle: LinkStyle, - linkStyleLight: LinkStyle, - iconButtonMetrics: IconButtonMetrics, - scrollbarDark: ScrollbarStyle, - scrollbarLight: ScrollbarStyle, alwaysVisibleScrollbarVisibility: ScrollbarVisibility.AlwaysVisible, whenScrollingScrollbarVisibility: ScrollbarVisibility.WhenScrolling, - textFieldIconColorsDark: IconButtonColors, - textFieldIconColorsLight: IconButtonColors, ) { private var outerSplitState by mutableStateOf(SplitLayoutState(0.5f)) private var verticalSplitState by mutableStateOf(SplitLayoutState(0.5f)) @@ -78,7 +67,7 @@ public class ComponentsViewModel( ViewInfo( title = "Links", iconKey = StandaloneSampleIcons.Components.links, - content = { Links(darkLinkStyle, linkStyleLight) }, + content = { Links() }, ), ViewInfo(title = "Borders", iconKey = StandaloneSampleIcons.Components.borders, content = { Borders() }), ViewInfo( @@ -97,17 +86,13 @@ public class ComponentsViewModel( ViewInfo( title = "TextFields", iconKey = StandaloneSampleIcons.Components.textField, - content = { - TextFields(iconButtonMetrics, textFieldIconColorsDark, textFieldIconColorsLight) - }, + content = { TextFields() }, ), ViewInfo( title = "Scrollbars", iconKey = StandaloneSampleIcons.Components.scrollbar, content = { Scrollbars( - dark = scrollbarDark, - light = scrollbarLight, alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, whenScrollingScrollbarVisibility = whenScrollingScrollbarVisibility, ) From 14982f9971a1b01f209c91fac883de07db880977 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 14 Jan 2025 10:14:06 +0100 Subject: [PATCH 25/41] rollback a bunch of stuff Signed-off-by: Ivan Morgillo --- .../jewel/bridge/theme/IntUiBridge.kt | 3 +- .../jewel/bridge/theme/IntUiBridgeButton.kt | 23 +++++++++++ .../styling/IntUiIconButtonStyling.kt | 27 +++++++++++++ .../intui/standalone/theme/IntUiTheme.kt | 5 +++ samples/showcase/build.gradle.kts | 4 -- .../samples/showcase/components/Links.kt | 21 +++++++--- .../samples/showcase/components/Scrollbars.kt | 7 +--- .../samples/showcase/components/TextFields.kt | 37 ++++++------------ samples/standalone/build.gradle.kts | 2 + .../standalone}/markdown/JewelReadme.kt | 2 +- .../standalone}/markdown/MarkdownCatalog.kt | 2 +- .../standalone}/markdown/MarkdownEditor.kt | 2 +- .../standalone}/markdown/MarkdownPreview.kt | 2 +- .../samples/standalone/view}/MarkdownView.kt | 8 ++-- .../standalone/viewmodel/MainViewModel.kt | 39 +------------------ .../jewel/ui/DefaultComponentStyling.kt | 4 ++ .../ui/component/styling/IconButtonStyling.kt | 11 ++++++ .../jetbrains/jewel/ui/theme/JewelTheme.kt | 5 +++ 18 files changed, 116 insertions(+), 88 deletions(-) rename samples/{showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase => standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone}/markdown/JewelReadme.kt (99%) rename samples/{showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase => standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone}/markdown/MarkdownCatalog.kt (99%) rename samples/{showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase => standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone}/markdown/MarkdownEditor.kt (98%) rename samples/{showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase => standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone}/markdown/MarkdownPreview.kt (98%) rename samples/{showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views => standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view}/MarkdownView.kt (85%) diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt index 996bcc1e18..69270ce1bd 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt @@ -5,7 +5,6 @@ import androidx.compose.ui.text.TextStyle import com.intellij.ide.ui.laf.darcula.DarculaUIUtil import com.intellij.ui.JBColor import com.intellij.util.ui.DirProvider -import javax.swing.UIManager import org.jetbrains.jewel.bridge.dp import org.jetbrains.jewel.bridge.lafName import org.jetbrains.jewel.bridge.readFromLaF @@ -18,6 +17,7 @@ import org.jetbrains.jewel.foundation.theme.ThemeIconData import org.jetbrains.jewel.foundation.util.JewelLogger import org.jetbrains.jewel.ui.ComponentStyling import org.jetbrains.jewel.ui.DefaultComponentStyling +import javax.swing.UIManager private val logger = JewelLogger.getInstance("JewelIntUiBridge") @@ -92,6 +92,7 @@ internal fun createBridgeComponentStyling(theme: ThemeDefinition): ComponentStyl sliderStyle = readSliderStyle(theme.isDark), textAreaStyle = readTextAreaStyle(textFieldStyle.metrics), textFieldStyle = textFieldStyle, + textFieldIconButtonStyle = readTextFieldIconButtonStyle(), tooltipStyle = readTooltipStyle(), undecoratedDropdownStyle = readUndecoratedDropdownStyle(menuStyle), ) diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt index 2a5e6f6813..384a5da48b 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt @@ -25,6 +25,7 @@ import org.jetbrains.jewel.ui.component.styling.IconButtonStyle import org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonColors import org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonMetrics import org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle +import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle internal fun readDefaultButtonStyle(): ButtonStyle { val normalBackground = @@ -202,3 +203,25 @@ internal fun readIconButtonStyle(): IconButtonStyle = borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), ), ) + +internal fun readTextFieldIconButtonStyle(): TextFieldIconButtonStyle = + TextFieldIconButtonStyle( + colors = + IconButtonColors( + foregroundSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedForeground"), + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + border = Color.Unspecified, + borderDisabled = Color.Unspecified, + borderSelected = retrieveColorOrUnspecified("ActionButton.pressedBackground"), + borderSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedBackground"), + borderFocused = Color.Unspecified, + borderPressed = retrieveColorOrUnspecified("ActionButton.pressedBorderColor"), + borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), + ), + ) diff --git a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt index b37787811f..04a110cc93 100644 --- a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt +++ b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt @@ -12,6 +12,7 @@ import org.jetbrains.jewel.intui.core.theme.IntUiLightTheme import org.jetbrains.jewel.ui.component.styling.IconButtonColors import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics import org.jetbrains.jewel.ui.component.styling.IconButtonStyle +import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle @Composable public fun IconButtonStyle.Companion.light( @@ -25,6 +26,32 @@ public fun IconButtonStyle.Companion.dark( metrics: IconButtonMetrics = IconButtonMetrics.defaults(), ): IconButtonStyle = IconButtonStyle(colors, metrics) +@Composable +public fun TextFieldIconButtonStyle.Companion.light( + colors: IconButtonColors = IconButtonColors.light( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ), +): TextFieldIconButtonStyle = TextFieldIconButtonStyle(colors) + +@Composable +public fun TextFieldIconButtonStyle.Companion.dark( + colors: IconButtonColors = IconButtonColors.dark( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ), +): TextFieldIconButtonStyle = TextFieldIconButtonStyle(colors) + public fun IconButtonColors.Companion.light( foregroundSelectedActivated: Color = IntUiLightTheme.colors.gray(14), background: Color = Color.Unspecified, diff --git a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt index 138117fcd2..2877ca96a3 100644 --- a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt +++ b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt @@ -46,6 +46,7 @@ import org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle import org.jetbrains.jewel.ui.component.styling.SliderStyle import org.jetbrains.jewel.ui.component.styling.TabStyle import org.jetbrains.jewel.ui.component.styling.TextAreaStyle +import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldStyle import org.jetbrains.jewel.ui.component.styling.TooltipStyle import org.jetbrains.jewel.ui.icon.LocalNewUiChecker @@ -135,6 +136,7 @@ public fun ComponentStyling.dark( simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.dark(), textAreaStyle: TextAreaStyle = TextAreaStyle.dark(), textFieldStyle: TextFieldStyle = TextFieldStyle.dark(), + textFieldIconButtonStyle: TextFieldIconButtonStyle = TextFieldIconButtonStyle.dark(), tooltipStyle: TooltipStyle = TooltipStyle.dark(), undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.dark(), ): ComponentStyling = @@ -167,6 +169,7 @@ public fun ComponentStyling.dark( sliderStyle = sliderStyle, textAreaStyle = textAreaStyle, textFieldStyle = textFieldStyle, + textFieldIconButtonStyle = textFieldIconButtonStyle, tooltipStyle = tooltipStyle, undecoratedDropdownStyle = undecoratedDropdownStyle, ) @@ -201,6 +204,7 @@ public fun ComponentStyling.light( simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.light(), textAreaStyle: TextAreaStyle = TextAreaStyle.light(), textFieldStyle: TextFieldStyle = TextFieldStyle.light(), + textFieldIconButtonStyle: TextFieldIconButtonStyle = TextFieldIconButtonStyle.light(), tooltipStyle: TooltipStyle = TooltipStyle.light(), undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.light(), ): ComponentStyling = @@ -233,6 +237,7 @@ public fun ComponentStyling.light( simpleListItemStyle = simpleListItemStyle, textAreaStyle = textAreaStyle, textFieldStyle = textFieldStyle, + textFieldIconButtonStyle = textFieldIconButtonStyle, tooltipStyle = tooltipStyle, undecoratedDropdownStyle = undecoratedDropdownStyle, ) diff --git a/samples/showcase/build.gradle.kts b/samples/showcase/build.gradle.kts index a045e9c044..ef36a77e7a 100644 --- a/samples/showcase/build.gradle.kts +++ b/samples/showcase/build.gradle.kts @@ -14,10 +14,6 @@ private val composeVersion dependencies { implementation(projects.foundation) implementation(projects.ui) - implementation(projects.markdown.core) - implementation(projects.markdown.extension.gfmAlerts) - implementation(projects.markdown.extension.autolink) - implementation("com.darkrockstudios:mpfilepicker:3.1.0") testImplementation(compose.desktop.uiTestJUnit4) testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt index d3a05e73a6..f6daa9a361 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt @@ -15,17 +15,19 @@ import org.jetbrains.jewel.ui.component.ExternalLink import org.jetbrains.jewel.ui.component.Link import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.separator +import org.jetbrains.jewel.ui.component.styling.LinkColors +import org.jetbrains.jewel.ui.component.styling.LinkIcons +import org.jetbrains.jewel.ui.component.styling.LinkMetrics import org.jetbrains.jewel.ui.component.styling.LinkStyle +import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior +import org.jetbrains.jewel.ui.theme.linkStyle @Composable -public fun Links(dark: LinkStyle, light: LinkStyle) { - val isDark = JewelTheme.isDark - val alwaysUnderlinedStyle = remember(isDark) { if (isDark) dark else light } - +public fun Links() { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { Link("Link", {}) - Link("Always underlined", {}, style = alwaysUnderlinedStyle) + Link("Always underlined", {}, style = JewelTheme.linkStyle.copy(underlineBehavior = LinkUnderlineBehavior.ShowAlways)) ExternalLink("ExternalLink", {}) @@ -44,10 +46,17 @@ public fun Links(dark: LinkStyle, light: LinkStyle) { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { Link("Link", {}, enabled = false) - Link("Always underlined", {}, style = alwaysUnderlinedStyle, enabled = false) + Link("Always underlined", {}, style = JewelTheme.linkStyle, enabled = false) ExternalLink("ExternalLink", {}, enabled = false) DropdownLink("DropdownLink", enabled = false) {} } } + +private fun LinkStyle.copy( + colors: LinkColors = this.colors, + metrics: LinkMetrics = this.metrics, + icons: LinkIcons = this.icons, + underlineBehavior: LinkUnderlineBehavior = this.underlineBehavior, +): LinkStyle = LinkStyle(colors, metrics, icons, underlineBehavior) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt index b557fdedf7..8b7c3f8f78 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt @@ -43,6 +43,7 @@ import org.jetbrains.jewel.ui.component.scrollbarContentSafePadding import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility import org.jetbrains.jewel.ui.component.styling.TrackClickBehavior +import org.jetbrains.jewel.ui.theme.scrollbarStyle import org.jetbrains.jewel.ui.theme.textAreaStyle import org.jetbrains.skiko.OS import org.jetbrains.skiko.hostOs @@ -50,15 +51,11 @@ import java.util.Locale @Composable public fun Scrollbars( - dark: ScrollbarStyle, - light: ScrollbarStyle, alwaysVisibleScrollbarVisibility: ScrollbarVisibility, whenScrollingScrollbarVisibility: ScrollbarVisibility ) { Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { - val isDark = JewelTheme.isDark - val baseStyle = remember(isDark) { if (isDark) dark else light } - + val baseStyle = JewelTheme.scrollbarStyle var alwaysVisible by remember { mutableStateOf(hostOs != OS.MacOS) } var clickBehavior by remember { mutableStateOf(baseStyle.trackClickBehavior) } SettingsRow(alwaysVisible, clickBehavior, { alwaysVisible = it }, { clickBehavior = it }) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index 50cb83c0a1..e025e5f87c 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -37,20 +37,17 @@ import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics import org.jetbrains.jewel.ui.component.styling.IconButtonStyle import org.jetbrains.jewel.ui.icons.AllIconsKeys import org.jetbrains.jewel.ui.painter.hints.Stateful +import org.jetbrains.jewel.ui.theme.iconButtonStyle +import org.jetbrains.jewel.ui.theme.textFieldIconButtonStyle @Composable -public fun TextFields( - iconMetrics: IconButtonMetrics, - iconColorsDark: IconButtonColors, - iconColorsLight: IconButtonColors, -) { +public fun TextFields() { VerticallyScrollableContainer(Modifier.fillMaxSize()) { Column { TextFieldsRows( readOnly = false, - iconMetrics = iconMetrics, - iconColorsDark = iconColorsDark, - iconColorsLight = iconColorsLight, + iconMetrics = JewelTheme.iconButtonStyle.metrics, + iconColors = JewelTheme.textFieldIconButtonStyle.colors, ) Spacer(Modifier.height(16.dp)) @@ -61,9 +58,8 @@ public fun TextFields( TextFieldsRows( readOnly = true, - iconMetrics = iconMetrics, - iconColorsDark = iconColorsDark, - iconColorsLight = iconColorsLight, + iconMetrics = JewelTheme.iconButtonStyle.metrics, + iconColors = JewelTheme.textFieldIconButtonStyle.colors, ) } } @@ -73,8 +69,7 @@ public fun TextFields( private fun TextFieldsRows( readOnly: Boolean, iconMetrics: IconButtonMetrics, - iconColorsDark: IconButtonColors, - iconColorsLight: IconButtonColors, + iconColors: IconButtonColors, ) { Column(modifier = Modifier.padding(vertical = 4.dp), verticalArrangement = Arrangement.spacedBy(10.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { @@ -140,8 +135,7 @@ private fun TextFieldsRows( isVisible = state2.text.isNotEmpty(), onClick = { state2.setTextAndPlaceCursorAtEnd("") }, metrics = iconMetrics, - iconColorsDark = iconColorsDark, - iconColorsLight = iconColorsLight, + iconColors = iconColors, ) }, readOnly = readOnly, @@ -155,8 +149,7 @@ private fun CloseIconButton( isVisible: Boolean, onClick: () -> Unit, metrics: IconButtonMetrics, - iconColorsDark: IconButtonColors, - iconColorsLight: IconButtonColors, + iconColors: IconButtonColors, ) { Box(Modifier.size(16.dp)) { AnimatedVisibility( @@ -167,8 +160,7 @@ private fun CloseIconButton( // TODO replace when IconButton supports no-background style val isDark = JewelTheme.isDark - val colors = noBackgroundIconButtonColors(isDark, iconColorsDark, iconColorsLight) - val style = remember(isDark, colors) { IconButtonStyle(colors, metrics) } + val style = remember(isDark, iconColors) { IconButtonStyle(iconColors, metrics) } IconButton(onClick, style = style, modifier = Modifier.pointerHoverIcon(PointerIcon.Default)) { state -> Icon(AllIconsKeys.General.Close, contentDescription = "Clear", hint = Stateful(state)) @@ -176,10 +168,3 @@ private fun CloseIconButton( } } } - -@Composable -private fun noBackgroundIconButtonColors( - isDark: Boolean, - iconColorsDark: IconButtonColors, - iconColorsLight: IconButtonColors, -) = if (isDark) iconColorsDark else iconColorsLight diff --git a/samples/standalone/build.gradle.kts b/samples/standalone/build.gradle.kts index d20d51c8ba..92978173d8 100644 --- a/samples/standalone/build.gradle.kts +++ b/samples/standalone/build.gradle.kts @@ -18,6 +18,8 @@ dependencies { implementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } implementation(compose.components.resources) implementation(project(":samples:showcase")) + implementation(projects.markdown.core) + implementation("com.darkrockstudios:mpfilepicker:3.1.0") implementation(libs.intellijPlatform.icons) testImplementation(compose.desktop.uiTestJUnit4) testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/JewelReadme.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt similarity index 99% rename from samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/JewelReadme.kt rename to samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt index 1bb84922b0..569556bd08 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/JewelReadme.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.showcase.markdown +package org.jetbrains.jewel.samples.standalone.markdown import org.intellij.lang.annotations.Language diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownCatalog.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownCatalog.kt similarity index 99% rename from samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownCatalog.kt rename to samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownCatalog.kt index 5509980194..b5a7a8b0df 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownCatalog.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownCatalog.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.showcase.markdown +package org.jetbrains.jewel.samples.standalone.markdown import org.intellij.lang.annotations.Language diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownEditor.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt similarity index 98% rename from samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownEditor.kt rename to samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt index ffbc02b88e..ac526c0bae 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownEditor.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.showcase.markdown +package org.jetbrains.jewel.samples.standalone.markdown import androidx.compose.foundation.background import androidx.compose.foundation.horizontalScroll diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt similarity index 98% rename from samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownPreview.kt rename to samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt index 1f2188cf76..32a1c6de03 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/markdown/MarkdownPreview.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.showcase.markdown +package org.jetbrains.jewel.samples.standalone.markdown import androidx.compose.foundation.background import androidx.compose.foundation.layout.PaddingValues diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/MarkdownView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt similarity index 85% rename from samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/MarkdownView.kt rename to samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt index 9ba57dd2de..02f51746aa 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/MarkdownView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt @@ -1,4 +1,4 @@ -package org.jetbrains.jewel.samples.showcase.views +package org.jetbrains.jewel.samples.standalone.view import androidx.compose.foundation.background import androidx.compose.foundation.layout.Row @@ -11,9 +11,9 @@ import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling -import org.jetbrains.jewel.samples.showcase.markdown.JewelReadme -import org.jetbrains.jewel.samples.showcase.markdown.MarkdownEditor -import org.jetbrains.jewel.samples.showcase.markdown.MarkdownPreview +import org.jetbrains.jewel.samples.standalone.markdown.JewelReadme +import org.jetbrains.jewel.samples.standalone.markdown.MarkdownEditor +import org.jetbrains.jewel.samples.standalone.markdown.MarkdownPreview import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.component.Divider diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index cf549bc1d2..beb9242c5e 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -11,10 +11,7 @@ import org.jetbrains.jewel.intui.markdown.standalone.styling.dark import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light import org.jetbrains.jewel.intui.markdown.standalone.styling.light -import org.jetbrains.jewel.intui.standalone.styling.dark import org.jetbrains.jewel.intui.standalone.styling.default -import org.jetbrains.jewel.intui.standalone.styling.defaults -import org.jetbrains.jewel.intui.standalone.styling.light import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer @@ -23,55 +20,21 @@ import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.views.ComponentsView import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.samples.showcase.views.KeyBinding -import org.jetbrains.jewel.samples.showcase.views.MarkdownDemo +import org.jetbrains.jewel.samples.standalone.view.MarkdownDemo import org.jetbrains.jewel.samples.showcase.views.ViewInfo import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.standalone.view.WelcomeView import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel.componentsViewModel -import org.jetbrains.jewel.ui.component.styling.IconButtonColors -import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics -import org.jetbrains.jewel.ui.component.styling.LinkStyle -import org.jetbrains.jewel.ui.component.styling.LinkUnderlineBehavior -import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility object MainViewModel { val componentsViewModel: ComponentsViewModel get() { - val scrollbarDark = ScrollbarStyle.dark() - val scrollbarLight = ScrollbarStyle.light() val alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default() val whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.default() - val textFieldIconColorsDark = - IconButtonColors.dark( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) - val textFieldIconColorsLight = - IconButtonColors.light( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) return ComponentsViewModel( - darkLinkStyle = LinkStyle.dark(underlineBehavior = LinkUnderlineBehavior.ShowAlways), - linkStyleLight = LinkStyle.light(underlineBehavior = LinkUnderlineBehavior.ShowAlways), - iconButtonMetrics = IconButtonMetrics.defaults(), - scrollbarDark = scrollbarDark, - scrollbarLight = scrollbarLight, alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, whenScrollingScrollbarVisibility = whenScrollingScrollbarVisibility, - textFieldIconColorsDark = textFieldIconColorsDark, - textFieldIconColorsLight = textFieldIconColorsLight, ) } diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt index 1cbbe96599..d8128fda0b 100644 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt +++ b/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt @@ -45,6 +45,7 @@ import org.jetbrains.jewel.ui.component.styling.LocalSelectableLazyColumnStyle import org.jetbrains.jewel.ui.component.styling.LocalSimpleListItemStyleStyle import org.jetbrains.jewel.ui.component.styling.LocalSliderStyle import org.jetbrains.jewel.ui.component.styling.LocalTextAreaStyle +import org.jetbrains.jewel.ui.component.styling.LocalTextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.LocalTextFieldStyle import org.jetbrains.jewel.ui.component.styling.LocalTooltipStyle import org.jetbrains.jewel.ui.component.styling.LocalUndecoratedDropdownStyle @@ -59,6 +60,7 @@ import org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle import org.jetbrains.jewel.ui.component.styling.SliderStyle import org.jetbrains.jewel.ui.component.styling.TabStyle import org.jetbrains.jewel.ui.component.styling.TextAreaStyle +import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldStyle import org.jetbrains.jewel.ui.component.styling.TooltipStyle @@ -92,6 +94,7 @@ public class DefaultComponentStyling( public val sliderStyle: SliderStyle, public val textAreaStyle: TextAreaStyle, public val textFieldStyle: TextFieldStyle, + public val textFieldIconButtonStyle: TextFieldIconButtonStyle, public val tooltipStyle: TooltipStyle, public val undecoratedDropdownStyle: DropdownStyle, ) : ComponentStyling { @@ -125,6 +128,7 @@ public class DefaultComponentStyling( LocalSimpleListItemStyleStyle provides simpleListItemStyle, LocalSliderStyle provides sliderStyle, LocalTextAreaStyle provides textAreaStyle, + LocalTextFieldIconButtonStyle provides textFieldIconButtonStyle, LocalTextFieldStyle provides textFieldStyle, LocalTooltipStyle provides tooltipStyle, LocalUndecoratedDropdownStyle provides undecoratedDropdownStyle, diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt index d26bb0f522..4b180bc089 100644 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt +++ b/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt @@ -24,6 +24,12 @@ public class IconButtonStyle(public val colors: IconButtonColors, public val met public companion object } +@Stable +@GenerateDataFunctions +public class TextFieldIconButtonStyle(public val colors: IconButtonColors) { + public companion object +} + @Immutable @GenerateDataFunctions public class IconButtonColors( @@ -158,3 +164,8 @@ public class IconButtonMetrics( public val LocalIconButtonStyle: ProvidableCompositionLocal = staticCompositionLocalOf { error("No IconButtonStyle provided. Have you forgotten the theme?") } + +public val LocalTextFieldIconButtonStyle: ProvidableCompositionLocal = + staticCompositionLocalOf { + error("No TextFieldIconButtonStyle provided. Have you forgotten the theme?") + } diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt index d5a2b5d6df..30be43b6bf 100644 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt +++ b/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt @@ -49,6 +49,7 @@ import org.jetbrains.jewel.ui.component.styling.LocalSelectableLazyColumnStyle import org.jetbrains.jewel.ui.component.styling.LocalSimpleListItemStyleStyle import org.jetbrains.jewel.ui.component.styling.LocalSliderStyle import org.jetbrains.jewel.ui.component.styling.LocalTextAreaStyle +import org.jetbrains.jewel.ui.component.styling.LocalTextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.LocalTextFieldStyle import org.jetbrains.jewel.ui.component.styling.LocalTooltipStyle import org.jetbrains.jewel.ui.component.styling.MenuStyle @@ -62,6 +63,7 @@ import org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle import org.jetbrains.jewel.ui.component.styling.SliderStyle import org.jetbrains.jewel.ui.component.styling.TabStyle import org.jetbrains.jewel.ui.component.styling.TextAreaStyle +import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldStyle import org.jetbrains.jewel.ui.component.styling.TooltipStyle @@ -156,6 +158,9 @@ public val JewelTheme.Companion.tooltipStyle: TooltipStyle public val JewelTheme.Companion.iconButtonStyle: IconButtonStyle @Composable @ReadOnlyComposable get() = LocalIconButtonStyle.current +public val JewelTheme.Companion.textFieldIconButtonStyle: TextFieldIconButtonStyle + @Composable @ReadOnlyComposable get() = LocalTextFieldIconButtonStyle.current + public val JewelTheme.Companion.sliderStyle: SliderStyle @Composable @ReadOnlyComposable get() = LocalSliderStyle.current From 03d3587b3eb102936db61f15e58e9d13eb17440d Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 14 Jan 2025 11:35:50 +0100 Subject: [PATCH 26/41] improve encapsulation in ComponentsViewModel Signed-off-by: Ivan Morgillo --- .../samples/ideplugin/SwingComparisonTabPanel.kt | 10 +++++----- .../jewel/samples/showcase/views/ComponentsView.kt | 8 ++++---- .../samples/showcase/views/ComponentsViewModel.kt | 11 +++++++++-- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt index cc7bfc7f49..a2f2a9b2a4 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt @@ -45,6 +45,7 @@ import icons.IdeSampleIconKeys import icons.JewelIcons import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.medium +import org.jetbrains.jewel.bridge.theme.default import org.jetbrains.jewel.bridge.theme.macOs import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.samples.showcase.views.ComponentsView @@ -423,12 +424,11 @@ private class ComponentShowcaseDialog : DialogWrapper(true) { override fun createCenterPanel(): JComponent { val dialogPanel = JewelComposePanel { - ComponentsView( - ComponentsViewModel( - alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.macOs(), - whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), - ) + val viewModel = ComponentsViewModel( + alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default(), + whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), ) + ComponentsView(viewModel) } dialogPanel.preferredSize = Dimension(800, 600) return dialogPanel diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt index 3669d8bf0a..d405ebe896 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt @@ -34,19 +34,19 @@ public fun ComponentsView(viewModel: ComponentsViewModel) { Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { ComponentsToolBar(viewModel) Divider(Orientation.Vertical, Modifier.fillMaxHeight()) - ComponentView(viewModel.currentView) + ComponentView(viewModel.getCurrentView()) } } @Composable public fun ComponentsToolBar(viewModel: ComponentsViewModel) { Column(Modifier.fillMaxHeight().width(40.dp).verticalScroll(rememberScrollState())) { - viewModel.views.forEach { + viewModel.getViews().forEach { SelectableIconActionButton( key = it.iconKey, contentDescription = "Show ${it.title}", - selected = viewModel.currentView == it, - onClick = { viewModel.currentView = it }, + selected = viewModel.getCurrentView() == it, + onClick = { viewModel.setCurrentView(it) }, modifier = Modifier.size(40.dp).padding(5.dp), tooltip = { Text(it.title) }, tooltipStyle = diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt index dc8fac9b16..c54eba9c22 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt @@ -31,11 +31,13 @@ public class ComponentsViewModel( alwaysVisibleScrollbarVisibility: ScrollbarVisibility.AlwaysVisible, whenScrollingScrollbarVisibility: ScrollbarVisibility.WhenScrolling, ) { + private var outerSplitState by mutableStateOf(SplitLayoutState(0.5f)) private var verticalSplitState by mutableStateOf(SplitLayoutState(0.5f)) private var innerSplitState by mutableStateOf(SplitLayoutState(0.5f)) - public val views: SnapshotStateList = + public fun getViews(): SnapshotStateList = views + private val views: SnapshotStateList = mutableStateListOf( ViewInfo(title = "Buttons", iconKey = StandaloneSampleIcons.Components.button, content = { Buttons() }), ViewInfo( @@ -111,5 +113,10 @@ public class ComponentsViewModel( ), ViewInfo(title = "Banners", iconKey = StandaloneSampleIcons.Components.banners, content = { Banners() }), ) - public var currentView: ViewInfo by mutableStateOf(views.first()) + + private var _currentView: ViewInfo by mutableStateOf(views.first()) + public fun getCurrentView(): ViewInfo = _currentView + public fun setCurrentView(view: ViewInfo) { + _currentView = view + } } From 62a453e0b8b157072dd739724756f98b2061217e Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 14 Jan 2025 14:46:30 +0100 Subject: [PATCH 27/41] move ComponentShowcaseDialog button to ComponentShowcaseTab Signed-off-by: Ivan Morgillo --- .../samples/ideplugin/ComponentShowcaseTab.kt | 6 ++++ .../ideplugin/SwingComparisonTabPanel.kt | 33 ------------------- .../dialog/ComponentShowcaseDialog.kt | 30 +++++++++++++++++ 3 files changed, 36 insertions(+), 33 deletions(-) create mode 100644 samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt index b4eb64937d..ce28fc9a30 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt @@ -45,6 +45,7 @@ import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.foundation.theme.LocalContentColor import org.jetbrains.jewel.intui.markdown.bridge.ProvideMarkdownStyling import org.jetbrains.jewel.markdown.Markdown +import org.jetbrains.jewel.samples.ideplugin.dialog.ComponentShowcaseDialog import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.CheckboxRow @@ -105,6 +106,11 @@ private fun RowScope.ColumnOne() { Modifier.onActivated { activated = it }, style = Typography.h3TextStyle(), ) + DefaultButton(onClick = { + ComponentShowcaseDialog().show() + }) { + Text("Open Component Showcase") + } var selectedItem by remember { mutableIntStateOf(-1) } Dropdown( diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt index a2f2a9b2a4..3d1d1a3784 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt @@ -28,7 +28,6 @@ import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI import com.intellij.openapi.ui.ComboBox -import com.intellij.openapi.ui.DialogWrapper import com.intellij.ui.JBColor import com.intellij.ui.components.JBLabel import com.intellij.ui.components.JBScrollPane @@ -45,11 +44,7 @@ import icons.IdeSampleIconKeys import icons.JewelIcons import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.medium -import org.jetbrains.jewel.bridge.theme.default -import org.jetbrains.jewel.bridge.theme.macOs import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.showcase.views.ComponentsView -import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.ui.component.DefaultButton import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.ListComboBox @@ -60,25 +55,16 @@ import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.TextArea import org.jetbrains.jewel.ui.component.TextField import org.jetbrains.jewel.ui.component.Typography -import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility import org.jetbrains.jewel.ui.theme.simpleListItemStyle import org.jetbrains.jewel.ui.theme.textAreaStyle -import java.awt.Dimension import javax.swing.BoxLayout import javax.swing.DefaultComboBoxModel -import javax.swing.JButton -import javax.swing.JComponent import javax.swing.JLabel import javax.swing.JPanel internal class SwingComparisonTabPanel : BorderLayoutPanel() { - private val openComponentsShowcaseButton = - JButton("Components Showcase").apply { - addActionListener { ComponentShowcaseDialog().show() } - } private val mainContent = panel { - row { cell(openComponentsShowcaseButton) } separator() buttonsRow() separator() @@ -415,22 +401,3 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() { private fun Row.compose(modifier: Modifier = Modifier.padding(8.dp), content: @Composable () -> Unit) = cell(JewelComposePanel { Box(modifier) { content() } }.apply { isOpaque = false }) } - -private class ComponentShowcaseDialog : DialogWrapper(true) { - init { - title = "Component Showcase" - init() - } - - override fun createCenterPanel(): JComponent { - val dialogPanel = JewelComposePanel { - val viewModel = ComponentsViewModel( - alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default(), - whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), - ) - ComponentsView(viewModel) - } - dialogPanel.preferredSize = Dimension(800, 600) - return dialogPanel - } -} diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt new file mode 100644 index 0000000000..83edb5b482 --- /dev/null +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt @@ -0,0 +1,30 @@ +package org.jetbrains.jewel.samples.ideplugin.dialog + +import com.intellij.openapi.ui.DialogWrapper +import org.jetbrains.jewel.bridge.JewelComposePanel +import org.jetbrains.jewel.bridge.theme.default +import org.jetbrains.jewel.bridge.theme.macOs +import org.jetbrains.jewel.samples.showcase.views.ComponentsView +import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel +import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility +import java.awt.Dimension +import javax.swing.JComponent + +internal class ComponentShowcaseDialog : DialogWrapper(true) { + init { + title = "Component Showcase" + init() + } + + override fun createCenterPanel(): JComponent { + val dialogPanel = JewelComposePanel { + val viewModel = ComponentsViewModel( + alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default(), + whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), + ) + ComponentsView(viewModel) + } + dialogPanel.preferredSize = Dimension(800, 600) + return dialogPanel + } +} From 838b93a545c773af33a5ac2f82b8339a16487000 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 14 Jan 2025 14:52:25 +0100 Subject: [PATCH 28/41] tune navigation rail padding Signed-off-by: Ivan Morgillo --- .../jetbrains/jewel/samples/showcase/views/ComponentsView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt index d405ebe896..a6d66441e1 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt @@ -47,7 +47,7 @@ public fun ComponentsToolBar(viewModel: ComponentsViewModel) { contentDescription = "Show ${it.title}", selected = viewModel.getCurrentView() == it, onClick = { viewModel.setCurrentView(it) }, - modifier = Modifier.size(40.dp).padding(5.dp), + modifier = Modifier.size(40.dp).padding(start = 0.dp, end = 4.dp, top = 4.dp, bottom = 4.dp), tooltip = { Text(it.title) }, tooltipStyle = TooltipStyle(JewelTheme.tooltipStyle.colors, TooltipMetrics.defaults(showDelay = 150.milliseconds)), From 027838318c5e51bdf92fca1bfec5b829f44a282c Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 14 Jan 2025 16:14:38 +0100 Subject: [PATCH 29/41] make linter happy Signed-off-by: Ivan Morgillo --- .../samples/showcase/views/ComponentsView.kt | 3 +-- .../jewel/samples/showcase/views/ViewInfo.kt | 21 +++++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt index a6d66441e1..8b208086fb 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt @@ -58,8 +58,7 @@ public fun ComponentsToolBar(viewModel: ComponentsViewModel) { } } -@Composable -public fun ComponentView(view: ViewInfo) { +@Composable internal fun ComponentView(view: ViewInfo) { Column(Modifier.fillMaxSize().padding(24.dp), verticalArrangement = Arrangement.spacedBy(24.dp)) { Text(view.title, style = Typography.h1TextStyle()) view.content() diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt index d5b24ff529..34d0f3fab8 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt @@ -1,13 +1,15 @@ package org.jetbrains.jewel.samples.showcase.views import androidx.compose.runtime.Composable +import org.jetbrains.jewel.foundation.GenerateDataFunctions import org.jetbrains.jewel.ui.icon.IconKey import org.jetbrains.skiko.hostOs -public data class KeyBinding( - val macOs: Set = emptySet(), - val windows: Set = emptySet(), - val linux: Set = emptySet(), +@GenerateDataFunctions +public class KeyBinding( + public val macOs: Set = emptySet(), + public val windows: Set = emptySet(), + public val linux: Set = emptySet(), ) public fun KeyBinding.forCurrentOs(): Set = @@ -17,9 +19,10 @@ public fun KeyBinding.forCurrentOs(): Set = else -> windows } -public data class ViewInfo( - val title: String, - val iconKey: IconKey, - val keyboardShortcut: KeyBinding? = null, - val content: @Composable () -> Unit, +@GenerateDataFunctions +public class ViewInfo( + public val title: String, + public val iconKey: IconKey, + public val keyboardShortcut: KeyBinding? = null, + public val content: @Composable () -> Unit, ) From 82b1d914dd4a6c8c492931e4a1d3ae938c108367 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Tue, 14 Jan 2025 16:18:02 +0100 Subject: [PATCH 30/41] make linter happy --- .../jewel/bridge/theme/IntUiBridge.kt | 2 +- .../jewel/bridge/theme/IntUiBridgeButton.kt | 2 +- .../api/int-ui-standalone.api | 12 +- .../styling/IntUiIconButtonStyling.kt | 38 +- .../samples/ideplugin/ComponentShowcaseTab.kt | 6 +- .../ideplugin/SwingComparisonTabPanel.kt | 8 +- .../dialog/ComponentShowcaseDialog.kt | 13 +- samples/showcase/api/showcase.api | 345 ++++++++++++++++++ .../showcase/components/ChipsAndTree.kt | 2 +- .../samples/showcase/components/Dropdowns.kt | 2 +- .../samples/showcase/components/Links.kt | 6 +- .../samples/showcase/components/Scrollbars.kt | 4 +- .../jewel/samples/showcase/components/Tabs.kt | 2 +- .../samples/showcase/components/TextFields.kt | 6 +- .../samples/showcase/components/Tooltips.kt | 2 +- .../samples/showcase/views/ComponentsView.kt | 5 +- .../showcase/views/ComponentsViewModel.kt | 10 +- .../standalone/markdown/JewelReadme.kt | 3 +- .../standalone/markdown/MarkdownEditor.kt | 3 +- .../standalone/markdown/MarkdownPreview.kt | 4 +- .../samples/standalone/view/TitleBarView.kt | 2 +- .../standalone/viewmodel/MainViewModel.kt | 2 +- ui/api/ui.api | 18 +- 23 files changed, 431 insertions(+), 66 deletions(-) create mode 100644 samples/showcase/api/showcase.api diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt index 69270ce1bd..b751d6b166 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt @@ -5,6 +5,7 @@ import androidx.compose.ui.text.TextStyle import com.intellij.ide.ui.laf.darcula.DarculaUIUtil import com.intellij.ui.JBColor import com.intellij.util.ui.DirProvider +import javax.swing.UIManager import org.jetbrains.jewel.bridge.dp import org.jetbrains.jewel.bridge.lafName import org.jetbrains.jewel.bridge.readFromLaF @@ -17,7 +18,6 @@ import org.jetbrains.jewel.foundation.theme.ThemeIconData import org.jetbrains.jewel.foundation.util.JewelLogger import org.jetbrains.jewel.ui.ComponentStyling import org.jetbrains.jewel.ui.DefaultComponentStyling -import javax.swing.UIManager private val logger = JewelLogger.getInstance("JewelIntUiBridge") diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt index 384a5da48b..e49d63da80 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt @@ -223,5 +223,5 @@ internal fun readTextFieldIconButtonStyle(): TextFieldIconButtonStyle = borderFocused = Color.Unspecified, borderPressed = retrieveColorOrUnspecified("ActionButton.pressedBorderColor"), borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), - ), + ) ) diff --git a/int-ui/int-ui-standalone/api/int-ui-standalone.api b/int-ui/int-ui-standalone/api/int-ui-standalone.api index fcd91a722e..9e2de9dfcf 100644 --- a/int-ui/int-ui-standalone/api/int-ui-standalone.api +++ b/int-ui/int-ui-standalone/api/int-ui-standalone.api @@ -286,11 +286,15 @@ public final class org/jetbrains/jewel/intui/standalone/styling/IntUiHorizontalP public final class org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStylingKt { public static final fun dark (Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle; - public static final fun dark-8v1krLo (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJLandroidx/compose/runtime/Composer;III)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; + public static final fun dark (Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; + public static final fun dark-7HESe_I (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJ)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; + public static synthetic fun dark-7HESe_I$default (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJILjava/lang/Object;)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; public static final fun defaults-ij7-PLE (Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics$Companion;Landroidx/compose/foundation/shape/CornerSize;FLandroidx/compose/foundation/layout/PaddingValues;J)Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics; public static synthetic fun defaults-ij7-PLE$default (Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics$Companion;Landroidx/compose/foundation/shape/CornerSize;FLandroidx/compose/foundation/layout/PaddingValues;JILjava/lang/Object;)Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics; public static final fun light (Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle; - public static final fun light-8v1krLo (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJLandroidx/compose/runtime/Composer;III)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; + public static final fun light (Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; + public static final fun light-7HESe_I (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJ)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; + public static synthetic fun light-7HESe_I$default (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJILjava/lang/Object;)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; } public final class org/jetbrains/jewel/intui/standalone/styling/IntUiLazyTreeStylingKt { @@ -550,10 +554,10 @@ public final class org/jetbrains/jewel/intui/standalone/theme/IntUiGlobalMetrics public final class org/jetbrains/jewel/intui/standalone/theme/IntUiThemeKt { public static final fun IntUiTheme (Lorg/jetbrains/jewel/foundation/theme/ThemeDefinition;Lorg/jetbrains/jewel/ui/ComponentStyling;ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V public static final fun IntUiTheme (ZZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V - public static final fun dark (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIII)Lorg/jetbrains/jewel/ui/ComponentStyling; + public static final fun dark (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIIII)Lorg/jetbrains/jewel/ui/ComponentStyling; public static final fun darkThemeDefinition-VRxQTpk (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Lorg/jetbrains/jewel/foundation/GlobalColors;Lorg/jetbrains/jewel/foundation/GlobalMetrics;Lorg/jetbrains/jewel/foundation/theme/ThemeColorPalette;Lorg/jetbrains/jewel/foundation/theme/ThemeIconData;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;JLandroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/foundation/theme/ThemeDefinition; public static final fun default (Lorg/jetbrains/jewel/ui/ComponentStyling;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/ComponentStyling; - public static final fun light (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIII)Lorg/jetbrains/jewel/ui/ComponentStyling; + public static final fun light (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIIII)Lorg/jetbrains/jewel/ui/ComponentStyling; public static final fun lightThemeDefinition-VRxQTpk (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Lorg/jetbrains/jewel/foundation/GlobalColors;Lorg/jetbrains/jewel/foundation/GlobalMetrics;Lorg/jetbrains/jewel/foundation/theme/ThemeColorPalette;Lorg/jetbrains/jewel/foundation/theme/ThemeIconData;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;JLandroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/foundation/theme/ThemeDefinition; } diff --git a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt index 04a110cc93..95e818b02a 100644 --- a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt +++ b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt @@ -28,28 +28,30 @@ public fun IconButtonStyle.Companion.dark( @Composable public fun TextFieldIconButtonStyle.Companion.light( - colors: IconButtonColors = IconButtonColors.light( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ), + colors: IconButtonColors = + IconButtonColors.light( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) ): TextFieldIconButtonStyle = TextFieldIconButtonStyle(colors) @Composable public fun TextFieldIconButtonStyle.Companion.dark( - colors: IconButtonColors = IconButtonColors.dark( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ), + colors: IconButtonColors = + IconButtonColors.dark( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) ): TextFieldIconButtonStyle = TextFieldIconButtonStyle(colors) public fun IconButtonColors.Companion.light( diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt index ce28fc9a30..68f97bbc62 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/ComponentShowcaseTab.kt @@ -106,11 +106,7 @@ private fun RowScope.ColumnOne() { Modifier.onActivated { activated = it }, style = Typography.h3TextStyle(), ) - DefaultButton(onClick = { - ComponentShowcaseDialog().show() - }) { - Text("Open Component Showcase") - } + DefaultButton(onClick = { ComponentShowcaseDialog().show() }) { Text("Open Component Showcase") } var selectedItem by remember { mutableIntStateOf(-1) } Dropdown( diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt index 3d1d1a3784..d41a650910 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt @@ -42,6 +42,10 @@ import com.intellij.util.ui.JBUI import com.intellij.util.ui.components.BorderLayoutPanel import icons.IdeSampleIconKeys import icons.JewelIcons +import javax.swing.BoxLayout +import javax.swing.DefaultComboBoxModel +import javax.swing.JLabel +import javax.swing.JPanel import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.medium import org.jetbrains.jewel.foundation.theme.JewelTheme @@ -57,10 +61,6 @@ import org.jetbrains.jewel.ui.component.TextField import org.jetbrains.jewel.ui.component.Typography import org.jetbrains.jewel.ui.theme.simpleListItemStyle import org.jetbrains.jewel.ui.theme.textAreaStyle -import javax.swing.BoxLayout -import javax.swing.DefaultComboBoxModel -import javax.swing.JLabel -import javax.swing.JPanel internal class SwingComparisonTabPanel : BorderLayoutPanel() { private val mainContent = diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt index 83edb5b482..802e02a68e 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt @@ -1,14 +1,14 @@ package org.jetbrains.jewel.samples.ideplugin.dialog import com.intellij.openapi.ui.DialogWrapper +import java.awt.Dimension +import javax.swing.JComponent import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.theme.default import org.jetbrains.jewel.bridge.theme.macOs import org.jetbrains.jewel.samples.showcase.views.ComponentsView import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility -import java.awt.Dimension -import javax.swing.JComponent internal class ComponentShowcaseDialog : DialogWrapper(true) { init { @@ -18,10 +18,11 @@ internal class ComponentShowcaseDialog : DialogWrapper(true) { override fun createCenterPanel(): JComponent { val dialogPanel = JewelComposePanel { - val viewModel = ComponentsViewModel( - alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default(), - whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), - ) + val viewModel = + ComponentsViewModel( + alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default(), + whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), + ) ComponentsView(viewModel) } dialogPanel.preferredSize = Dimension(800, 600) diff --git a/samples/showcase/api/showcase.api b/samples/showcase/api/showcase.api new file mode 100644 index 0000000000..d28eff084c --- /dev/null +++ b/samples/showcase/api/showcase.api @@ -0,0 +1,345 @@ +public final class ComposableSingletons$SplitLayoutsKt { + public static final field INSTANCE LComposableSingletons$SplitLayoutsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function2; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-7$showcase ()Lkotlin/jvm/functions/Function2; +} + +public final class SplitLayoutsKt { + public static final fun SplitLayouts (Lorg/jetbrains/jewel/ui/component/SplitLayoutState;Lorg/jetbrains/jewel/ui/component/SplitLayoutState;Lorg/jetbrains/jewel/ui/component/SplitLayoutState;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/BannersKt { + public static final fun Banners (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/BordersKt { + public static final fun Borders (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/ButtonsKt { + public static final fun Buttons (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/CheckboxesKt { + public static final fun Checkboxes (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/ChipsAndTreeKt { + public static final fun ChipsAndTrees (Landroidx/compose/runtime/Composer;I)V + public static final fun ChipsSample (Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V + public static final fun SelectableLazyColumnSample (Landroidx/compose/runtime/Composer;I)V + public static final fun TreeSample (Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$BordersKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$BordersKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public static field lambda-4 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function3; +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$ButtonsKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$ButtonsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-10 Lkotlin/jvm/functions/Function2; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public static field lambda-4 Lkotlin/jvm/functions/Function3; + public static field lambda-5 Lkotlin/jvm/functions/Function4; + public static field lambda-6 Lkotlin/jvm/functions/Function4; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public static field lambda-8 Lkotlin/jvm/functions/Function2; + public static field lambda-9 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-10$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-5$showcase ()Lkotlin/jvm/functions/Function4; + public final fun getLambda-6$showcase ()Lkotlin/jvm/functions/Function4; + public final fun getLambda-7$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-8$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-9$showcase ()Lkotlin/jvm/functions/Function2; +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$ChipsAndTreeKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$ChipsAndTreeKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public static field lambda-7 Lkotlin/jvm/functions/Function4; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-7$showcase ()Lkotlin/jvm/functions/Function4; +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$DropdownsKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$DropdownsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public static field lambda-7 Lkotlin/jvm/functions/Function7; + public static field lambda-8 Lkotlin/jvm/functions/Function7; + public static field lambda-9 Lkotlin/jvm/functions/Function7; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-7$showcase ()Lkotlin/jvm/functions/Function7; + public final fun getLambda-8$showcase ()Lkotlin/jvm/functions/Function7; + public final fun getLambda-9$showcase ()Lkotlin/jvm/functions/Function7; +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TabsKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TabsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function4; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function4; +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TextAreasKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TextAreasKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$showcase ()Lkotlin/jvm/functions/Function2; +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TextFieldsKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TextFieldsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function2; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public static field lambda-8 Lkotlin/jvm/functions/Function4; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-7$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-8$showcase ()Lkotlin/jvm/functions/Function4; +} + +public final class org/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TooltipsKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ComposableSingletons$TooltipsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function2; +} + +public final class org/jetbrains/jewel/samples/showcase/components/DropdownsKt { + public static final fun Dropdowns (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/IconsKt { + public static final fun Icons (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/LinksKt { + public static final fun Links (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/ProgressBarKt { + public static final fun ProgressBar (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/RadioButtonsKt { + public static final fun RadioButtons (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/ScrollbarsKt { + public static final fun Scrollbars (Lorg/jetbrains/jewel/ui/component/styling/ScrollbarVisibility;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarVisibility;Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/SegmentedControlsKt { + public static final fun SegmentedControls (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/SliderKt { + public static final fun Sliders (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons { + public static final field $stable I + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons; + public final fun getComponentsMenu ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getGitHub ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getJewelLogo ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getMarkdown ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getThemeDark ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getThemeLight ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getThemeLightWithLightHeader ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getThemeSystem ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getWelcome ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; +} + +public final class org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons$Components { + public static final field $stable I + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons$Components; + public final fun getBanners ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getBorders ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getButton ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getCheckbox ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getComboBox ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getLinks ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getProgressBar ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getRadioButton ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getScrollbar ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getSegmentedControls ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getSlider ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getSplitlayout ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getTabs ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getTextArea ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getTextField ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getToolbar ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getTooltip ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; + public final fun getTree ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; +} + +public final class org/jetbrains/jewel/samples/showcase/components/TabsKt { + public static final fun Tabs (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/TextAreasKt { + public static final fun TextAreas (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/TextFieldsKt { + public static final fun TextFields (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/components/TooltipsKt { + public static final fun Tooltips (Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/views/ComponentsViewKt { + public static final fun ComponentsToolBar (Lorg/jetbrains/jewel/samples/showcase/views/ComponentsViewModel;Landroidx/compose/runtime/Composer;I)V + public static final fun ComponentsView (Lorg/jetbrains/jewel/samples/showcase/views/ComponentsViewModel;Landroidx/compose/runtime/Composer;I)V +} + +public final class org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel { + public static final field $stable I + public fun (Lorg/jetbrains/jewel/ui/component/styling/ScrollbarVisibility$AlwaysVisible;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarVisibility$WhenScrolling;)V + public final fun getCurrentView ()Lorg/jetbrains/jewel/samples/showcase/views/ViewInfo; + public final fun getViews ()Landroidx/compose/runtime/snapshots/SnapshotStateList; + public final fun setCurrentView (Lorg/jetbrains/jewel/samples/showcase/views/ViewInfo;)V +} + +public final class org/jetbrains/jewel/samples/showcase/views/ComposableSingletons$ComponentsViewModelKt { + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/views/ComposableSingletons$ComponentsViewModelKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public static field lambda-10 Lkotlin/jvm/functions/Function2; + public static field lambda-11 Lkotlin/jvm/functions/Function2; + public static field lambda-12 Lkotlin/jvm/functions/Function2; + public static field lambda-13 Lkotlin/jvm/functions/Function2; + public static field lambda-14 Lkotlin/jvm/functions/Function2; + public static field lambda-15 Lkotlin/jvm/functions/Function2; + public static field lambda-16 Lkotlin/jvm/functions/Function2; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function2; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public static field lambda-8 Lkotlin/jvm/functions/Function2; + public static field lambda-9 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-10$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-11$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-12$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-13$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-14$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-15$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-16$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-2$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-7$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-8$showcase ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-9$showcase ()Lkotlin/jvm/functions/Function2; +} + +public final class org/jetbrains/jewel/samples/showcase/views/KeyBinding { + public static final field $stable I + public fun ()V + public fun (Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;)V + public synthetic fun (Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getLinux ()Ljava/util/Set; + public final fun getMacOs ()Ljava/util/Set; + public final fun getWindows ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/jewel/samples/showcase/views/ViewInfo { + public static final field $stable I + public fun (Ljava/lang/String;Lorg/jetbrains/jewel/ui/icon/IconKey;Lorg/jetbrains/jewel/samples/showcase/views/KeyBinding;Lkotlin/jvm/functions/Function2;)V + public synthetic fun (Ljava/lang/String;Lorg/jetbrains/jewel/ui/icon/IconKey;Lorg/jetbrains/jewel/samples/showcase/views/KeyBinding;Lkotlin/jvm/functions/Function2;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getContent ()Lkotlin/jvm/functions/Function2; + public final fun getIconKey ()Lorg/jetbrains/jewel/ui/icon/IconKey; + public final fun getKeyboardShortcut ()Lorg/jetbrains/jewel/samples/showcase/views/KeyBinding; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/jewel/samples/showcase/views/ViewInfoKt { + public static final fun forCurrentOs (Lorg/jetbrains/jewel/samples/showcase/views/KeyBinding;)Ljava/util/Set; +} + diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ChipsAndTree.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ChipsAndTree.kt index 64dda4531b..fb733edfbf 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ChipsAndTree.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ChipsAndTree.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp +import kotlin.random.Random import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.jetbrains.jewel.foundation.lazy.SelectableLazyColumn @@ -43,7 +44,6 @@ import org.jetbrains.jewel.ui.component.RadioButtonChip import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.ToggleableChip import org.jetbrains.jewel.ui.theme.colorPalette -import kotlin.random.Random @Composable public fun ChipsAndTrees() { diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Dropdowns.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Dropdowns.kt index 7f99aca42e..9b1b1daa87 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Dropdowns.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Dropdowns.kt @@ -12,6 +12,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp +import kotlin.random.Random import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.Dropdown @@ -23,7 +24,6 @@ import org.jetbrains.jewel.ui.component.Typography import org.jetbrains.jewel.ui.component.separator import org.jetbrains.jewel.ui.icons.AllIconsKeys import org.jetbrains.jewel.ui.theme.simpleListItemStyle -import kotlin.random.Random @Composable public fun Dropdowns() { diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt index f6daa9a361..e18c8c1d8a 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt @@ -27,7 +27,11 @@ public fun Links() { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { Link("Link", {}) - Link("Always underlined", {}, style = JewelTheme.linkStyle.copy(underlineBehavior = LinkUnderlineBehavior.ShowAlways)) + Link( + "Always underlined", + {}, + style = JewelTheme.linkStyle.copy(underlineBehavior = LinkUnderlineBehavior.ShowAlways), + ) ExternalLink("ExternalLink", {}) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt index 8b7c3f8f78..3698db88f6 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Scrollbars.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import java.util.Locale import org.jetbrains.jewel.foundation.Stroke import org.jetbrains.jewel.foundation.modifier.border import org.jetbrains.jewel.foundation.theme.JewelTheme @@ -47,12 +48,11 @@ import org.jetbrains.jewel.ui.theme.scrollbarStyle import org.jetbrains.jewel.ui.theme.textAreaStyle import org.jetbrains.skiko.OS import org.jetbrains.skiko.hostOs -import java.util.Locale @Composable public fun Scrollbars( alwaysVisibleScrollbarVisibility: ScrollbarVisibility, - whenScrollingScrollbarVisibility: ScrollbarVisibility + whenScrollingScrollbarVisibility: ScrollbarVisibility, ) { Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { val baseStyle = JewelTheme.scrollbarStyle diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt index 974eca257a..04cd36e851 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt @@ -20,6 +20,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithCache import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp +import kotlin.math.max import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.IconButton @@ -34,7 +35,6 @@ import org.jetbrains.jewel.ui.painter.rememberResourcePainterProvider import org.jetbrains.jewel.ui.theme.defaultTabStyle import org.jetbrains.jewel.ui.theme.editorTabStyle import org.jetbrains.jewel.ui.util.thenIf -import kotlin.math.max @Composable public fun Tabs() { diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index e025e5f87c..6143123692 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -66,11 +66,7 @@ public fun TextFields() { } @Composable -private fun TextFieldsRows( - readOnly: Boolean, - iconMetrics: IconButtonMetrics, - iconColors: IconButtonColors, -) { +private fun TextFieldsRows(readOnly: Boolean, iconMetrics: IconButtonMetrics, iconColors: IconButtonColors) { Column(modifier = Modifier.padding(vertical = 4.dp), verticalArrangement = Arrangement.spacedBy(10.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { val state1 = rememberTextFieldState("TextField") diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tooltips.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tooltips.kt index e20cce1be8..f22d5fa00e 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tooltips.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tooltips.kt @@ -10,12 +10,12 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.unit.dp +import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.delay import org.jetbrains.jewel.ui.component.CheckboxRow import org.jetbrains.jewel.ui.component.DefaultButton import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.Tooltip -import kotlin.time.Duration.Companion.seconds @Composable public fun Tooltips() { diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt index 8b208086fb..e532332f02 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt @@ -16,6 +16,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp +import kotlin.time.Duration.Companion.milliseconds import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.ui.Orientation @@ -27,7 +28,6 @@ import org.jetbrains.jewel.ui.component.styling.TooltipMetrics import org.jetbrains.jewel.ui.component.styling.TooltipStyle import org.jetbrains.jewel.ui.painter.hints.Size import org.jetbrains.jewel.ui.theme.tooltipStyle -import kotlin.time.Duration.Companion.milliseconds @Composable public fun ComponentsView(viewModel: ComponentsViewModel) { @@ -58,7 +58,8 @@ public fun ComponentsToolBar(viewModel: ComponentsViewModel) { } } -@Composable internal fun ComponentView(view: ViewInfo) { +@Composable +internal fun ComponentView(view: ViewInfo) { Column(Modifier.fillMaxSize().padding(24.dp), verticalArrangement = Arrangement.spacedBy(24.dp)) { Text(view.title, style = Typography.h1TextStyle()) view.content() diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt index c54eba9c22..211b9fdaee 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt @@ -31,12 +31,12 @@ public class ComponentsViewModel( alwaysVisibleScrollbarVisibility: ScrollbarVisibility.AlwaysVisible, whenScrollingScrollbarVisibility: ScrollbarVisibility.WhenScrolling, ) { - private var outerSplitState by mutableStateOf(SplitLayoutState(0.5f)) private var verticalSplitState by mutableStateOf(SplitLayoutState(0.5f)) private var innerSplitState by mutableStateOf(SplitLayoutState(0.5f)) public fun getViews(): SnapshotStateList = views + private val views: SnapshotStateList = mutableStateListOf( ViewInfo(title = "Buttons", iconKey = StandaloneSampleIcons.Components.button, content = { Buttons() }), @@ -66,11 +66,7 @@ public class ComponentsViewModel( content = { ProgressBar() }, ), ViewInfo(title = "Icons", iconKey = StandaloneSampleIcons.Components.toolbar, content = { Icons() }), - ViewInfo( - title = "Links", - iconKey = StandaloneSampleIcons.Components.links, - content = { Links() }, - ), + ViewInfo(title = "Links", iconKey = StandaloneSampleIcons.Components.links, content = { Links() }), ViewInfo(title = "Borders", iconKey = StandaloneSampleIcons.Components.borders, content = { Borders() }), ViewInfo( title = "Segmented Controls", @@ -115,7 +111,9 @@ public class ComponentsViewModel( ) private var _currentView: ViewInfo by mutableStateOf(views.first()) + public fun getCurrentView(): ViewInfo = _currentView + public fun setCurrentView(view: ViewInfo) { _currentView = view } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt index 569556bd08..2a75f60aab 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt @@ -2,7 +2,8 @@ package org.jetbrains.jewel.samples.standalone.markdown import org.intellij.lang.annotations.Language -@Language("Markdown") public val JewelReadme: String = +@Language("Markdown") +public val JewelReadme: String = """ # Jewel: a Compose for Desktop theme diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt index ac526c0bae..3d8a6c9cbc 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt @@ -33,7 +33,8 @@ import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.TextArea import org.jetbrains.jewel.ui.theme.simpleListItemStyle -@Composable public fun MarkdownEditor(state: TextFieldState, modifier: Modifier = Modifier) { +@Composable +public fun MarkdownEditor(state: TextFieldState, modifier: Modifier = Modifier) { Column(modifier) { ControlsRow( modifier = Modifier.fillMaxWidth().background(JewelTheme.globalColors.panelBackground).padding(8.dp), diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt index 32a1c6de03..1c269a163a 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt @@ -13,6 +13,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp +import java.awt.Desktop +import java.net.URI import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.jetbrains.jewel.foundation.ExperimentalJewelApi @@ -32,8 +34,6 @@ import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.ui.component.VerticallyScrollableContainer import org.jetbrains.jewel.ui.component.scrollbarContentSafePadding -import java.awt.Desktop -import java.net.URI @Composable public fun MarkdownPreview( diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt index 0a535e022e..8c0ab47cad 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt @@ -11,9 +11,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import java.awt.Desktop import java.net.URI -import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.views.forCurrentOs +import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel import org.jetbrains.jewel.ui.component.Dropdown import org.jetbrains.jewel.ui.component.Icon diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index beb9242c5e..2911d9c280 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -20,9 +20,9 @@ import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons import org.jetbrains.jewel.samples.showcase.views.ComponentsView import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.samples.showcase.views.KeyBinding -import org.jetbrains.jewel.samples.standalone.view.MarkdownDemo import org.jetbrains.jewel.samples.showcase.views.ViewInfo import org.jetbrains.jewel.samples.standalone.IntUiThemes +import org.jetbrains.jewel.samples.standalone.view.MarkdownDemo import org.jetbrains.jewel.samples.standalone.view.WelcomeView import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel.componentsViewModel import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility diff --git a/ui/api/ui.api b/ui/api/ui.api index 31d18b5235..fa1e9da64c 100644 --- a/ui/api/ui.api +++ b/ui/api/ui.api @@ -25,7 +25,7 @@ public final class org/jetbrains/jewel/ui/ComponentStyling$DefaultImpls { public final class org/jetbrains/jewel/ui/DefaultComponentStyling : org/jetbrains/jewel/ui/ComponentStyling { public static final field $stable I - public fun (Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;)V + public fun (Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;)V public fun equals (Ljava/lang/Object;)Z public final fun getCheckboxStyle ()Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle; public final fun getChipStyle ()Lorg/jetbrains/jewel/ui/component/styling/ChipStyle; @@ -53,6 +53,7 @@ public final class org/jetbrains/jewel/ui/DefaultComponentStyling : org/jetbrain public final fun getSimpleListItemStyle ()Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle; public final fun getSliderStyle ()Lorg/jetbrains/jewel/ui/component/styling/SliderStyle; public final fun getTextAreaStyle ()Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle; + public final fun getTextFieldIconButtonStyle ()Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; public final fun getTextFieldStyle ()Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; public final fun getTooltipStyle ()Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle; public final fun getUndecoratedDropdownStyle ()Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle; @@ -1741,6 +1742,7 @@ public final class org/jetbrains/jewel/ui/component/styling/IconButtonStyle$Comp public final class org/jetbrains/jewel/ui/component/styling/IconButtonStylingKt { public static final fun getLocalIconButtonStyle ()Landroidx/compose/runtime/ProvidableCompositionLocal; + public static final fun getLocalTextFieldIconButtonStyle ()Landroidx/compose/runtime/ProvidableCompositionLocal; } public abstract interface class org/jetbrains/jewel/ui/component/styling/InputFieldColors { @@ -2752,6 +2754,19 @@ public final class org/jetbrains/jewel/ui/component/styling/TextFieldColors : or public final class org/jetbrains/jewel/ui/component/styling/TextFieldColors$Companion { } +public final class org/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle { + public static final field $stable I + public static final field Companion Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion; + public fun (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getColors ()Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion { +} + public final class org/jetbrains/jewel/ui/component/styling/TextFieldMetrics : org/jetbrains/jewel/ui/component/styling/InputFieldMetrics { public static final field $stable I public static final field Companion Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics$Companion; @@ -4735,6 +4750,7 @@ public final class org/jetbrains/jewel/ui/theme/JewelThemeKt { public static final fun getSimpleListItemStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle; public static final fun getSliderStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/SliderStyle; public static final fun getTextAreaStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle; + public static final fun getTextFieldIconButtonStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; public static final fun getTextFieldStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; public static final fun getTooltipStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle; public static final fun getTreeStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle; From 3a436850e0a4d728919183efd15fdf7092eff613 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Fri, 17 Jan 2025 15:03:28 +0100 Subject: [PATCH 31/41] rename ShowcaseIcons Signed-off-by: Ivan Morgillo --- .../samples/showcase/components/Icons.kt | 10 ++-- .../showcase/components/ShowcaseIcons.kt | 46 +++++++++++++++++++ .../components/StandaloneSampleIcons.kt | 46 ------------------- .../jewel/samples/showcase/components/Tabs.kt | 2 +- .../showcase/views/ComponentsViewModel.kt | 38 +++++++-------- .../samples/standalone/view/TitleBarView.kt | 12 ++--- .../samples/standalone/view/WelcomeView.kt | 12 ++--- .../standalone/viewmodel/MainViewModel.kt | 8 ++-- 8 files changed, 87 insertions(+), 87 deletions(-) create mode 100644 samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt delete mode 100644 samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt index 9e929a6212..f550bca080 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt @@ -31,12 +31,12 @@ public fun Icons() { modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp), ) { - Icon(StandaloneSampleIcons.jewelLogo, "Jewel Logo", Modifier.size(16.dp)) - Icon(StandaloneSampleIcons.jewelLogo, "Jewel Logo", Modifier.size(32.dp)) - Icon(StandaloneSampleIcons.jewelLogo, "Jewel Logo", Modifier.size(64.dp)) - Icon(StandaloneSampleIcons.jewelLogo, "Jewel Logo", Modifier.size(128.dp)) + Icon(ShowcaseIcons.jewelLogo, "Jewel Logo", Modifier.size(16.dp)) + Icon(ShowcaseIcons.jewelLogo, "Jewel Logo", Modifier.size(32.dp)) + Icon(ShowcaseIcons.jewelLogo, "Jewel Logo", Modifier.size(64.dp)) + Icon(ShowcaseIcons.jewelLogo, "Jewel Logo", Modifier.size(128.dp)) Icon( - key = StandaloneSampleIcons.jewelLogo, + key = ShowcaseIcons.jewelLogo, contentDescription = "Jewel Logo", modifier = Modifier.size(128.dp), colorFilter = ColorFilter.tint(Color.Magenta, BlendMode.Multiply), diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt new file mode 100644 index 0000000000..a35d1e0141 --- /dev/null +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt @@ -0,0 +1,46 @@ +package org.jetbrains.jewel.samples.showcase.components + +import org.jetbrains.jewel.ui.icon.PathIconKey + +public object ShowcaseIcons { + public val componentsMenu: PathIconKey = PathIconKey("icons/structure.svg", ShowcaseIcons::class.java) + public val gitHub: PathIconKey = PathIconKey("icons/github.svg", ShowcaseIcons::class.java) + public val jewelLogo: PathIconKey = PathIconKey("icons/jewel-logo.svg", ShowcaseIcons::class.java) + public val markdown: PathIconKey = PathIconKey("icons/markdown.svg", ShowcaseIcons::class.java) + public val themeDark: PathIconKey = PathIconKey("icons/darkTheme.svg", ShowcaseIcons::class.java) + public val themeLight: PathIconKey = PathIconKey("icons/lightTheme.svg", ShowcaseIcons::class.java) + public val themeLightWithLightHeader: PathIconKey = + PathIconKey("icons/lightWithLightHeaderTheme.svg", ShowcaseIcons::class.java) + public val themeSystem: PathIconKey = PathIconKey("icons/systemTheme.svg", ShowcaseIcons::class.java) + public val welcome: PathIconKey = PathIconKey("icons/meetNewUi.svg", ShowcaseIcons::class.java) + + public object Components { + public val banners: PathIconKey = PathIconKey("icons/components/banners.svg", ShowcaseIcons::class.java) + public val borders: PathIconKey = PathIconKey("icons/components/borders.svg", ShowcaseIcons::class.java) + public val button: PathIconKey = PathIconKey("icons/components/button.svg", ShowcaseIcons::class.java) + public val checkbox: PathIconKey = + PathIconKey("icons/components/checkBox.svg", ShowcaseIcons::class.java) + public val comboBox: PathIconKey = + PathIconKey("icons/components/comboBox.svg", ShowcaseIcons::class.java) + public val links: PathIconKey = PathIconKey("icons/components/links.svg", ShowcaseIcons::class.java) + public val progressBar: PathIconKey = + PathIconKey("icons/components/progressbar.svg", ShowcaseIcons::class.java) + public val radioButton: PathIconKey = + PathIconKey("icons/components/radioButton.svg", ShowcaseIcons::class.java) + public val scrollbar: PathIconKey = + PathIconKey("icons/components/scrollbar.svg", ShowcaseIcons::class.java) + public val segmentedControls: PathIconKey = + PathIconKey("icons/components/segmentedControl.svg", ShowcaseIcons::class.java) + public val slider: PathIconKey = PathIconKey("icons/components/slider.svg", ShowcaseIcons::class.java) + public val splitlayout: PathIconKey = + PathIconKey("icons/components/splitLayout.svg", ShowcaseIcons::class.java) + public val tabs: PathIconKey = PathIconKey("icons/components/tabs.svg", ShowcaseIcons::class.java) + public val textArea: PathIconKey = + PathIconKey("icons/components/textArea.svg", ShowcaseIcons::class.java) + public val textField: PathIconKey = + PathIconKey("icons/components/textField.svg", ShowcaseIcons::class.java) + public val toolbar: PathIconKey = PathIconKey("icons/components/toolbar.svg", ShowcaseIcons::class.java) + public val tooltip: PathIconKey = PathIconKey("icons/components/tooltip.svg", ShowcaseIcons::class.java) + public val tree: PathIconKey = PathIconKey("icons/components/tree.svg", ShowcaseIcons::class.java) + } +} diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt deleted file mode 100644 index e23bc703cc..0000000000 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons.kt +++ /dev/null @@ -1,46 +0,0 @@ -package org.jetbrains.jewel.samples.showcase.components - -import org.jetbrains.jewel.ui.icon.PathIconKey - -public object StandaloneSampleIcons { - public val componentsMenu: PathIconKey = PathIconKey("icons/structure.svg", StandaloneSampleIcons::class.java) - public val gitHub: PathIconKey = PathIconKey("icons/github.svg", StandaloneSampleIcons::class.java) - public val jewelLogo: PathIconKey = PathIconKey("icons/jewel-logo.svg", StandaloneSampleIcons::class.java) - public val markdown: PathIconKey = PathIconKey("icons/markdown.svg", StandaloneSampleIcons::class.java) - public val themeDark: PathIconKey = PathIconKey("icons/darkTheme.svg", StandaloneSampleIcons::class.java) - public val themeLight: PathIconKey = PathIconKey("icons/lightTheme.svg", StandaloneSampleIcons::class.java) - public val themeLightWithLightHeader: PathIconKey = - PathIconKey("icons/lightWithLightHeaderTheme.svg", StandaloneSampleIcons::class.java) - public val themeSystem: PathIconKey = PathIconKey("icons/systemTheme.svg", StandaloneSampleIcons::class.java) - public val welcome: PathIconKey = PathIconKey("icons/meetNewUi.svg", StandaloneSampleIcons::class.java) - - public object Components { - public val banners: PathIconKey = PathIconKey("icons/components/banners.svg", StandaloneSampleIcons::class.java) - public val borders: PathIconKey = PathIconKey("icons/components/borders.svg", StandaloneSampleIcons::class.java) - public val button: PathIconKey = PathIconKey("icons/components/button.svg", StandaloneSampleIcons::class.java) - public val checkbox: PathIconKey = - PathIconKey("icons/components/checkBox.svg", StandaloneSampleIcons::class.java) - public val comboBox: PathIconKey = - PathIconKey("icons/components/comboBox.svg", StandaloneSampleIcons::class.java) - public val links: PathIconKey = PathIconKey("icons/components/links.svg", StandaloneSampleIcons::class.java) - public val progressBar: PathIconKey = - PathIconKey("icons/components/progressbar.svg", StandaloneSampleIcons::class.java) - public val radioButton: PathIconKey = - PathIconKey("icons/components/radioButton.svg", StandaloneSampleIcons::class.java) - public val scrollbar: PathIconKey = - PathIconKey("icons/components/scrollbar.svg", StandaloneSampleIcons::class.java) - public val segmentedControls: PathIconKey = - PathIconKey("icons/components/segmentedControl.svg", StandaloneSampleIcons::class.java) - public val slider: PathIconKey = PathIconKey("icons/components/slider.svg", StandaloneSampleIcons::class.java) - public val splitlayout: PathIconKey = - PathIconKey("icons/components/splitLayout.svg", StandaloneSampleIcons::class.java) - public val tabs: PathIconKey = PathIconKey("icons/components/tabs.svg", StandaloneSampleIcons::class.java) - public val textArea: PathIconKey = - PathIconKey("icons/components/textArea.svg", StandaloneSampleIcons::class.java) - public val textField: PathIconKey = - PathIconKey("icons/components/textField.svg", StandaloneSampleIcons::class.java) - public val toolbar: PathIconKey = PathIconKey("icons/components/toolbar.svg", StandaloneSampleIcons::class.java) - public val tooltip: PathIconKey = PathIconKey("icons/components/tooltip.svg", StandaloneSampleIcons::class.java) - public val tree: PathIconKey = PathIconKey("icons/components/tree.svg", StandaloneSampleIcons::class.java) - } -} diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt index 04cd36e851..3d6f3c20ea 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Tabs.kt @@ -106,7 +106,7 @@ private fun EditorTabShowcase() { Icon( key = AllIconsKeys.Actions.Find, contentDescription = null, - iconClass = StandaloneSampleIcons::class.java, + iconClass = ShowcaseIcons::class.java, modifier = Modifier.size(16.dp).tabContentAlpha(state = tabState), tint = Color.Magenta, ) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt index 211b9fdaee..8e68462d76 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt @@ -19,7 +19,7 @@ import org.jetbrains.jewel.samples.showcase.components.RadioButtons import org.jetbrains.jewel.samples.showcase.components.Scrollbars import org.jetbrains.jewel.samples.showcase.components.SegmentedControls import org.jetbrains.jewel.samples.showcase.components.Sliders -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.ShowcaseIcons import org.jetbrains.jewel.samples.showcase.components.Tabs import org.jetbrains.jewel.samples.showcase.components.TextAreas import org.jetbrains.jewel.samples.showcase.components.TextFields @@ -39,56 +39,56 @@ public class ComponentsViewModel( private val views: SnapshotStateList = mutableStateListOf( - ViewInfo(title = "Buttons", iconKey = StandaloneSampleIcons.Components.button, content = { Buttons() }), + ViewInfo(title = "Buttons", iconKey = ShowcaseIcons.Components.button, content = { Buttons() }), ViewInfo( title = "Radio Buttons", - iconKey = StandaloneSampleIcons.Components.radioButton, + iconKey = ShowcaseIcons.Components.radioButton, content = { RadioButtons() }, ), ViewInfo( title = "Checkboxes", - iconKey = StandaloneSampleIcons.Components.checkbox, + iconKey = ShowcaseIcons.Components.checkbox, content = { Checkboxes() }, ), ViewInfo( title = "Dropdowns", - iconKey = StandaloneSampleIcons.Components.comboBox, + iconKey = ShowcaseIcons.Components.comboBox, content = { Dropdowns() }, ), ViewInfo( title = "Chips and trees", - iconKey = StandaloneSampleIcons.Components.tree, + iconKey = ShowcaseIcons.Components.tree, content = { ChipsAndTrees() }, ), ViewInfo( title = "Progressbar", - iconKey = StandaloneSampleIcons.Components.progressBar, + iconKey = ShowcaseIcons.Components.progressBar, content = { ProgressBar() }, ), - ViewInfo(title = "Icons", iconKey = StandaloneSampleIcons.Components.toolbar, content = { Icons() }), - ViewInfo(title = "Links", iconKey = StandaloneSampleIcons.Components.links, content = { Links() }), - ViewInfo(title = "Borders", iconKey = StandaloneSampleIcons.Components.borders, content = { Borders() }), + ViewInfo(title = "Icons", iconKey = ShowcaseIcons.Components.toolbar, content = { Icons() }), + ViewInfo(title = "Links", iconKey = ShowcaseIcons.Components.links, content = { Links() }), + ViewInfo(title = "Borders", iconKey = ShowcaseIcons.Components.borders, content = { Borders() }), ViewInfo( title = "Segmented Controls", - iconKey = StandaloneSampleIcons.Components.segmentedControls, + iconKey = ShowcaseIcons.Components.segmentedControls, content = { SegmentedControls() }, ), - ViewInfo(title = "Sliders", iconKey = StandaloneSampleIcons.Components.slider, content = { Sliders() }), - ViewInfo(title = "Tabs", iconKey = StandaloneSampleIcons.Components.tabs, content = { Tabs() }), - ViewInfo(title = "Tooltips", iconKey = StandaloneSampleIcons.Components.tooltip, content = { Tooltips() }), + ViewInfo(title = "Sliders", iconKey = ShowcaseIcons.Components.slider, content = { Sliders() }), + ViewInfo(title = "Tabs", iconKey = ShowcaseIcons.Components.tabs, content = { Tabs() }), + ViewInfo(title = "Tooltips", iconKey = ShowcaseIcons.Components.tooltip, content = { Tooltips() }), ViewInfo( title = "TextAreas", - iconKey = StandaloneSampleIcons.Components.textArea, + iconKey = ShowcaseIcons.Components.textArea, content = { TextAreas() }, ), ViewInfo( title = "TextFields", - iconKey = StandaloneSampleIcons.Components.textField, + iconKey = ShowcaseIcons.Components.textField, content = { TextFields() }, ), ViewInfo( title = "Scrollbars", - iconKey = StandaloneSampleIcons.Components.scrollbar, + iconKey = ShowcaseIcons.Components.scrollbar, content = { Scrollbars( alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, @@ -98,7 +98,7 @@ public class ComponentsViewModel( ), ViewInfo( title = "SplitLayout", - iconKey = StandaloneSampleIcons.Components.splitlayout, + iconKey = ShowcaseIcons.Components.splitlayout, content = { SplitLayouts(outerSplitState, verticalSplitState, innerSplitState) { outerSplitState = SplitLayoutState(0.5f) @@ -107,7 +107,7 @@ public class ComponentsViewModel( } }, ), - ViewInfo(title = "Banners", iconKey = StandaloneSampleIcons.Components.banners, content = { Banners() }), + ViewInfo(title = "Banners", iconKey = ShowcaseIcons.Components.banners, content = { Banners() }), ) private var _currentView: ViewInfo by mutableStateOf(views.first()) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt index 8c0ab47cad..be2f3d86a0 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt @@ -11,7 +11,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import java.awt.Desktop import java.net.URI -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.ShowcaseIcons import org.jetbrains.jewel.samples.showcase.views.forCurrentOs import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel @@ -72,7 +72,7 @@ fun DecoratedWindowScope.TitleBarView() { { Desktop.getDesktop().browse(URI.create("https://github.com/JetBrains/jewel")) }, Modifier.size(40.dp).padding(5.dp), ) { - Icon(StandaloneSampleIcons.gitHub, "Github") + Icon(ShowcaseIcons.gitHub, "Github") } } @@ -99,28 +99,28 @@ fun DecoratedWindowScope.TitleBarView() { when (MainViewModel.theme) { IntUiThemes.Light -> Icon( - key = StandaloneSampleIcons.themeLight, + key = ShowcaseIcons.themeLight, contentDescription = "Light", hints = arrayOf(Size(20)), ) IntUiThemes.LightWithLightHeader -> Icon( - key = StandaloneSampleIcons.themeLightWithLightHeader, + key = ShowcaseIcons.themeLightWithLightHeader, contentDescription = "Light with light header", hints = arrayOf(Size(20)), ) IntUiThemes.Dark -> Icon( - key = StandaloneSampleIcons.themeDark, + key = ShowcaseIcons.themeDark, contentDescription = "Dark", hints = arrayOf(Size(20)), ) IntUiThemes.System -> Icon( - key = StandaloneSampleIcons.themeSystem, + key = ShowcaseIcons.themeSystem, contentDescription = "System", hints = arrayOf(Size(20)), ) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt index 2c6c9e3e01..a4f46283b7 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/WelcomeView.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.ShowcaseIcons import org.jetbrains.jewel.samples.standalone.IntUiThemes import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel import org.jetbrains.jewel.ui.component.CheckboxRow @@ -34,7 +34,7 @@ fun WelcomeView() { Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground).padding(24.dp), verticalArrangement = Arrangement.spacedBy(24.dp), ) { - Icon(key = StandaloneSampleIcons.jewelLogo, contentDescription = null, modifier = Modifier.size(200.dp)) + Icon(key = ShowcaseIcons.jewelLogo, contentDescription = null, modifier = Modifier.size(200.dp)) Text("Meet Jewel", style = Typography.h1TextStyle()) @@ -45,17 +45,17 @@ fun WelcomeView() { horizontalArrangement = Arrangement.spacedBy(8.dp), verticalArrangement = Arrangement.spacedBy(8.dp), ) { - ThemeSelectionChip(IntUiThemes.Dark, "Dark", StandaloneSampleIcons.themeDark) + ThemeSelectionChip(IntUiThemes.Dark, "Dark", ShowcaseIcons.themeDark) - ThemeSelectionChip(IntUiThemes.Light, "Light", StandaloneSampleIcons.themeLight) + ThemeSelectionChip(IntUiThemes.Light, "Light", ShowcaseIcons.themeLight) ThemeSelectionChip( IntUiThemes.LightWithLightHeader, "Light with Light Header", - StandaloneSampleIcons.themeLightWithLightHeader, + ShowcaseIcons.themeLightWithLightHeader, ) - ThemeSelectionChip(IntUiThemes.System, "System", StandaloneSampleIcons.themeSystem) + ThemeSelectionChip(IntUiThemes.System, "System", ShowcaseIcons.themeSystem) } } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index 2911d9c280..c974c0f029 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -16,7 +16,7 @@ import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling -import org.jetbrains.jewel.samples.showcase.components.StandaloneSampleIcons +import org.jetbrains.jewel.samples.showcase.components.ShowcaseIcons import org.jetbrains.jewel.samples.showcase.views.ComponentsView import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.samples.showcase.views.KeyBinding @@ -63,19 +63,19 @@ private val mainMenuItems = mutableStateListOf( ViewInfo( title = "Welcome", - iconKey = StandaloneSampleIcons.welcome, + iconKey = ShowcaseIcons.welcome, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "W"), windows = setOf("Alt", "W")), content = { WelcomeView() }, ), ViewInfo( title = "Components", - iconKey = StandaloneSampleIcons.componentsMenu, + iconKey = ShowcaseIcons.componentsMenu, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "C"), windows = setOf("Alt", "C")), content = { ComponentsView(viewModel = componentsViewModel) }, ), ViewInfo( title = "Markdown", - iconKey = StandaloneSampleIcons.markdown, + iconKey = ShowcaseIcons.markdown, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "M"), windows = setOf("Alt", "M"), linux = setOf("Alt", "M")), content = { From 62b438ca58989c6195036d0b95bbf39ef8670816 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Fri, 17 Jan 2025 15:04:06 +0100 Subject: [PATCH 32/41] tune Links showcase named params and style Signed-off-by: Ivan Morgillo --- .../jewel/samples/showcase/components/Links.kt | 17 +++++++---------- .../samples/showcase/components/TextFields.kt | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt index e18c8c1d8a..e033296ab4 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Links.kt @@ -24,14 +24,11 @@ import org.jetbrains.jewel.ui.theme.linkStyle @Composable public fun Links() { + val alwaysUnderline = JewelTheme.linkStyle.copy(underlineBehavior = LinkUnderlineBehavior.ShowAlways) Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { - Link("Link", {}) + Link(text = "Link", onClick = {}) - Link( - "Always underlined", - {}, - style = JewelTheme.linkStyle.copy(underlineBehavior = LinkUnderlineBehavior.ShowAlways), - ) + Link(text = "Always underlined", onClick = {}, style = alwaysUnderline) ExternalLink("ExternalLink", {}) @@ -48,13 +45,13 @@ public fun Links() { } } Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { - Link("Link", {}, enabled = false) + Link(text = "Link", onClick = {}, enabled = false) - Link("Always underlined", {}, style = JewelTheme.linkStyle, enabled = false) + Link(text = "Always underlined", onClick = {}, style = alwaysUnderline, enabled = false) - ExternalLink("ExternalLink", {}, enabled = false) + ExternalLink(text = "ExternalLink", onClick = {}, enabled = false) - DropdownLink("DropdownLink", enabled = false) {} + DropdownLink(text = "DropdownLink", enabled = false) {} } } diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index 6143123692..6f0dd95256 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -114,7 +114,7 @@ private fun TextFieldsRows(readOnly: Boolean, iconMetrics: IconButtonMetrics, ic Icon( key = AllIconsKeys.Actions.Find, contentDescription = "SearchIcon", - iconClass = StandaloneSampleIcons::class.java, + iconClass = ShowcaseIcons::class.java, modifier = Modifier.size(16.dp), ) }, From 677ec9a60fc2f1f01092d109ce76a20655e71e15 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Fri, 17 Jan 2025 15:06:59 +0100 Subject: [PATCH 33/41] remove redundant params in TextFields Signed-off-by: Ivan Morgillo --- .../samples/showcase/components/TextFields.kt | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index 6f0dd95256..fc2450b154 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -44,11 +44,7 @@ import org.jetbrains.jewel.ui.theme.textFieldIconButtonStyle public fun TextFields() { VerticallyScrollableContainer(Modifier.fillMaxSize()) { Column { - TextFieldsRows( - readOnly = false, - iconMetrics = JewelTheme.iconButtonStyle.metrics, - iconColors = JewelTheme.textFieldIconButtonStyle.colors, - ) + TextFieldsRows(readOnly = false) Spacer(Modifier.height(16.dp)) @@ -56,17 +52,13 @@ public fun TextFields() { Spacer(Modifier.height(16.dp)) - TextFieldsRows( - readOnly = true, - iconMetrics = JewelTheme.iconButtonStyle.metrics, - iconColors = JewelTheme.textFieldIconButtonStyle.colors, - ) + TextFieldsRows(readOnly = true) } } } @Composable -private fun TextFieldsRows(readOnly: Boolean, iconMetrics: IconButtonMetrics, iconColors: IconButtonColors) { +private fun TextFieldsRows(readOnly: Boolean) { Column(modifier = Modifier.padding(vertical = 4.dp), verticalArrangement = Arrangement.spacedBy(10.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), verticalAlignment = Alignment.CenterVertically) { val state1 = rememberTextFieldState("TextField") @@ -130,8 +122,8 @@ private fun TextFieldsRows(readOnly: Boolean, iconMetrics: IconButtonMetrics, ic CloseIconButton( isVisible = state2.text.isNotEmpty(), onClick = { state2.setTextAndPlaceCursorAtEnd("") }, - metrics = iconMetrics, - iconColors = iconColors, + metrics = JewelTheme.iconButtonStyle.metrics, + iconColors = JewelTheme.textFieldIconButtonStyle.colors, ) }, readOnly = readOnly, From 07be2a8950e5ec640d368ee190126e878bac55a3 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Fri, 17 Jan 2025 15:11:36 +0100 Subject: [PATCH 34/41] rework visibility for composables in Markdown* Signed-off-by: Ivan Morgillo --- .../jewel/samples/standalone/markdown/MarkdownEditor.kt | 2 +- .../jewel/samples/standalone/markdown/MarkdownPreview.kt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt index 3d8a6c9cbc..d457cd5d4b 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt @@ -34,7 +34,7 @@ import org.jetbrains.jewel.ui.component.TextArea import org.jetbrains.jewel.ui.theme.simpleListItemStyle @Composable -public fun MarkdownEditor(state: TextFieldState, modifier: Modifier = Modifier) { +fun MarkdownEditor(state: TextFieldState, modifier: Modifier = Modifier) { Column(modifier) { ControlsRow( modifier = Modifier.fillMaxWidth().background(JewelTheme.globalColors.panelBackground).padding(8.dp), diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt index 1c269a163a..ffe5b10211 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt @@ -13,8 +13,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import java.awt.Desktop -import java.net.URI import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.jetbrains.jewel.foundation.ExperimentalJewelApi @@ -34,9 +32,11 @@ import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.ui.component.VerticallyScrollableContainer import org.jetbrains.jewel.ui.component.scrollbarContentSafePadding +import java.awt.Desktop +import java.net.URI @Composable -public fun MarkdownPreview( +fun MarkdownPreview( modifier: Modifier = Modifier, rawMarkdown: CharSequence, darkStyling: MarkdownStyling, @@ -94,7 +94,7 @@ public fun MarkdownPreview( @ExperimentalJewelApi @Composable -public fun ProvideMarkdownStyling( +fun ProvideMarkdownStyling( markdownStyling: MarkdownStyling, markdownBlockRenderer: MarkdownBlockRenderer, codeHighlighter: CodeHighlighter, From 225a72e218d4aaaaedccd7344b768a2dcfb9994b Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Fri, 17 Jan 2025 15:16:53 +0100 Subject: [PATCH 35/41] removing DI in Markdown* knowing that it only exists in Standalone Signed-off-by: Ivan Morgillo --- .../standalone/markdown/MarkdownPreview.kt | 31 ++++++++++++------- .../samples/standalone/view/MarkdownView.kt | 18 ++--------- .../standalone/viewmodel/MainViewModel.kt | 29 +---------------- 3 files changed, 23 insertions(+), 55 deletions(-) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt index ffe5b10211..0cf98642a6 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt @@ -20,13 +20,21 @@ import org.jetbrains.jewel.foundation.code.highlighting.CodeHighlighter import org.jetbrains.jewel.foundation.code.highlighting.LocalCodeHighlighter import org.jetbrains.jewel.foundation.code.highlighting.NoOpCodeHighlighter import org.jetbrains.jewel.foundation.theme.JewelTheme +import org.jetbrains.jewel.intui.markdown.standalone.dark +import org.jetbrains.jewel.intui.markdown.standalone.light +import org.jetbrains.jewel.intui.markdown.standalone.styling.dark +import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark +import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light +import org.jetbrains.jewel.intui.markdown.standalone.styling.light import org.jetbrains.jewel.markdown.LazyMarkdown import org.jetbrains.jewel.markdown.MarkdownBlock import org.jetbrains.jewel.markdown.extension.autolink.AutolinkProcessorExtension import org.jetbrains.jewel.markdown.extensions.LocalMarkdownBlockRenderer import org.jetbrains.jewel.markdown.extensions.LocalMarkdownProcessor import org.jetbrains.jewel.markdown.extensions.LocalMarkdownStyling +import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertProcessorExtension +import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension import org.jetbrains.jewel.markdown.processing.MarkdownProcessor import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling @@ -36,17 +44,10 @@ import java.awt.Desktop import java.net.URI @Composable -fun MarkdownPreview( - modifier: Modifier = Modifier, - rawMarkdown: CharSequence, - darkStyling: MarkdownStyling, - lightStyling: MarkdownStyling, - darkRenderer: MarkdownBlockRenderer, - lightRenderer: MarkdownBlockRenderer, -) { +fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSequence) { val isDark = JewelTheme.isDark - val markdownStyling = remember(isDark) { if (isDark) darkStyling else lightStyling } + val markdownStyling = remember(isDark) { if (isDark) MarkdownStyling.dark() else MarkdownStyling.light() } var markdownBlocks by remember { mutableStateOf(emptyList()) } val extensions = remember { listOf(GitHubAlertProcessorExtension, AutolinkProcessorExtension) } @@ -67,9 +68,17 @@ fun MarkdownPreview( val blockRenderer = remember(markdownStyling, extensions) { if (isDark) { - darkRenderer + MarkdownBlockRenderer.dark( + styling = MarkdownStyling.dark(), + rendererExtensions = + listOf(GitHubAlertRendererExtension(AlertStyling.dark(), MarkdownStyling.dark())), + ) } else { - lightRenderer + MarkdownBlockRenderer.light( + styling = MarkdownStyling.light(), + rendererExtensions = + listOf(GitHubAlertRendererExtension(AlertStyling.light(), MarkdownStyling.light())), + ) } } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt index 02f51746aa..e11def2107 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/MarkdownView.kt @@ -9,8 +9,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme -import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer -import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.samples.standalone.markdown.JewelReadme import org.jetbrains.jewel.samples.standalone.markdown.MarkdownEditor import org.jetbrains.jewel.samples.standalone.markdown.MarkdownPreview @@ -18,25 +16,13 @@ import org.jetbrains.jewel.ui.Orientation import org.jetbrains.jewel.ui.component.Divider @Composable -public fun MarkdownDemo( - darkStyling: MarkdownStyling, - darkRenderer: MarkdownBlockRenderer, - lightStyling: MarkdownStyling, - lightRenderer: MarkdownBlockRenderer, -) { +fun MarkdownDemo() { Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { val editorState = rememberTextFieldState(JewelReadme) MarkdownEditor(state = editorState, modifier = Modifier.fillMaxHeight().weight(1f)) Divider(Orientation.Vertical, Modifier.fillMaxHeight()) - MarkdownPreview( - modifier = Modifier.fillMaxHeight().weight(1f), - rawMarkdown = editorState.text, - darkStyling = darkStyling, - darkRenderer = darkRenderer, - lightStyling = lightStyling, - lightRenderer = lightRenderer, - ) + MarkdownPreview(modifier = Modifier.fillMaxHeight().weight(1f), rawMarkdown = editorState.text) } } diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index c974c0f029..d83d5f6eaa 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -5,17 +5,7 @@ import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.graphics.Color -import org.jetbrains.jewel.intui.markdown.standalone.dark -import org.jetbrains.jewel.intui.markdown.standalone.light -import org.jetbrains.jewel.intui.markdown.standalone.styling.dark -import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.dark -import org.jetbrains.jewel.intui.markdown.standalone.styling.extensions.github.alerts.light -import org.jetbrains.jewel.intui.markdown.standalone.styling.light import org.jetbrains.jewel.intui.standalone.styling.default -import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling -import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension -import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer -import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.samples.showcase.components.ShowcaseIcons import org.jetbrains.jewel.samples.showcase.views.ComponentsView import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel @@ -78,23 +68,6 @@ private val mainMenuItems = iconKey = ShowcaseIcons.markdown, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "M"), windows = setOf("Alt", "M"), linux = setOf("Alt", "M")), - content = { - MarkdownDemo( - darkStyling = MarkdownStyling.dark(), - darkRenderer = - MarkdownBlockRenderer.dark( - styling = MarkdownStyling.dark(), - rendererExtensions = - listOf(GitHubAlertRendererExtension(AlertStyling.dark(), MarkdownStyling.dark())), - ), - lightStyling = MarkdownStyling.light(), - lightRenderer = - MarkdownBlockRenderer.light( - styling = MarkdownStyling.light(), - rendererExtensions = - listOf(GitHubAlertRendererExtension(AlertStyling.light(), MarkdownStyling.light())), - ), - ) - }, + content = { MarkdownDemo() }, ), ) From 2922387f8d9449b1cd7c9f1ca30edb070c37ade3 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 20 Jan 2025 10:23:03 +0100 Subject: [PATCH 36/41] tune navigation rail padding Signed-off-by: Ivan Morgillo --- .../ideplugin/dialog/ComponentShowcaseDialog.kt | 13 ++++++++++--- .../jewel/samples/showcase/views/ComponentsView.kt | 11 +++++------ .../samples/standalone/viewmodel/MainViewModel.kt | 6 +++++- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt index 802e02a68e..d88f257d26 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt @@ -1,14 +1,18 @@ package org.jetbrains.jewel.samples.ideplugin.dialog +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import com.intellij.openapi.ui.DialogWrapper -import java.awt.Dimension -import javax.swing.JComponent import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.theme.default import org.jetbrains.jewel.bridge.theme.macOs import org.jetbrains.jewel.samples.showcase.views.ComponentsView import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility +import java.awt.Dimension +import javax.swing.JComponent internal class ComponentShowcaseDialog : DialogWrapper(true) { init { @@ -23,7 +27,10 @@ internal class ComponentShowcaseDialog : DialogWrapper(true) { alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default(), whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.macOs(), ) - ComponentsView(viewModel) + ComponentsView( + viewModel = viewModel, + railNavigationModifier = Modifier.size(40.dp).padding(start = 0.dp, end = 4.dp, top = 4.dp, bottom = 4.dp) + ) } dialogPanel.preferredSize = Dimension(800, 600) return dialogPanel diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt index e532332f02..d777d15fbf 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt @@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -16,7 +15,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import kotlin.time.Duration.Companion.milliseconds import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.ui.Orientation @@ -28,18 +26,19 @@ import org.jetbrains.jewel.ui.component.styling.TooltipMetrics import org.jetbrains.jewel.ui.component.styling.TooltipStyle import org.jetbrains.jewel.ui.painter.hints.Size import org.jetbrains.jewel.ui.theme.tooltipStyle +import kotlin.time.Duration.Companion.milliseconds @Composable -public fun ComponentsView(viewModel: ComponentsViewModel) { +public fun ComponentsView(viewModel: ComponentsViewModel, railNavigationModifier: Modifier) { Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { - ComponentsToolBar(viewModel) + ComponentsToolBar(viewModel, railNavigationModifier) Divider(Orientation.Vertical, Modifier.fillMaxHeight()) ComponentView(viewModel.getCurrentView()) } } @Composable -public fun ComponentsToolBar(viewModel: ComponentsViewModel) { +public fun ComponentsToolBar(viewModel: ComponentsViewModel, railNavigationModifier: Modifier) { Column(Modifier.fillMaxHeight().width(40.dp).verticalScroll(rememberScrollState())) { viewModel.getViews().forEach { SelectableIconActionButton( @@ -47,7 +46,7 @@ public fun ComponentsToolBar(viewModel: ComponentsViewModel) { contentDescription = "Show ${it.title}", selected = viewModel.getCurrentView() == it, onClick = { viewModel.setCurrentView(it) }, - modifier = Modifier.size(40.dp).padding(start = 0.dp, end = 4.dp, top = 4.dp, bottom = 4.dp), + modifier = railNavigationModifier, tooltip = { Text(it.title) }, tooltipStyle = TooltipStyle(JewelTheme.tooltipStyle.colors, TooltipMetrics.defaults(showDelay = 150.milliseconds)), diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt index d83d5f6eaa..42fe032f4a 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/MainViewModel.kt @@ -1,10 +1,14 @@ package org.jetbrains.jewel.samples.standalone.viewmodel +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp import org.jetbrains.jewel.intui.standalone.styling.default import org.jetbrains.jewel.samples.showcase.components.ShowcaseIcons import org.jetbrains.jewel.samples.showcase.views.ComponentsView @@ -61,7 +65,7 @@ private val mainMenuItems = title = "Components", iconKey = ShowcaseIcons.componentsMenu, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "C"), windows = setOf("Alt", "C")), - content = { ComponentsView(viewModel = componentsViewModel) }, + content = { ComponentsView(viewModel = componentsViewModel, Modifier.size(40.dp).padding(4.dp)) }, ), ViewInfo( title = "Markdown", From 651144dacbdd40cb2b2e2fa8c88bdcf4d204a8ff Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 20 Jan 2025 10:36:04 +0100 Subject: [PATCH 37/41] rework TextFieldStyle reference https://github.com/JetBrains/jewel/pull/742#discussion_r1920322955 Signed-off-by: Ivan Morgillo --- .../jewel/bridge/theme/IntUiBridge.kt | 3 +- .../jewel/bridge/theme/IntUiBridgeButton.kt | 23 -------------- .../bridge/theme/IntUiBridgeTextField.kt | 30 ++++++++++++++++++ .../styling/IntUiIconButtonStyling.kt | 29 ----------------- .../styling/IntUiTextFieldStyling.kt | 31 +++++++++++++++++-- .../intui/standalone/theme/IntUiTheme.kt | 5 --- .../samples/showcase/components/TextFields.kt | 4 +-- .../jewel/ui/DefaultComponentStyling.kt | 4 --- .../ui/component/styling/IconButtonStyling.kt | 11 ------- .../ui/component/styling/TextFieldStyling.kt | 7 +++-- .../jetbrains/jewel/ui/theme/JewelTheme.kt | 5 --- 11 files changed, 67 insertions(+), 85 deletions(-) diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt index b751d6b166..ffb0dafd57 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt @@ -5,7 +5,6 @@ import androidx.compose.ui.text.TextStyle import com.intellij.ide.ui.laf.darcula.DarculaUIUtil import com.intellij.ui.JBColor import com.intellij.util.ui.DirProvider -import javax.swing.UIManager import org.jetbrains.jewel.bridge.dp import org.jetbrains.jewel.bridge.lafName import org.jetbrains.jewel.bridge.readFromLaF @@ -18,6 +17,7 @@ import org.jetbrains.jewel.foundation.theme.ThemeIconData import org.jetbrains.jewel.foundation.util.JewelLogger import org.jetbrains.jewel.ui.ComponentStyling import org.jetbrains.jewel.ui.DefaultComponentStyling +import javax.swing.UIManager private val logger = JewelLogger.getInstance("JewelIntUiBridge") @@ -92,7 +92,6 @@ internal fun createBridgeComponentStyling(theme: ThemeDefinition): ComponentStyl sliderStyle = readSliderStyle(theme.isDark), textAreaStyle = readTextAreaStyle(textFieldStyle.metrics), textFieldStyle = textFieldStyle, - textFieldIconButtonStyle = readTextFieldIconButtonStyle(), tooltipStyle = readTooltipStyle(), undecoratedDropdownStyle = readUndecoratedDropdownStyle(menuStyle), ) diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt index e49d63da80..2a5e6f6813 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeButton.kt @@ -25,7 +25,6 @@ import org.jetbrains.jewel.ui.component.styling.IconButtonStyle import org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonColors import org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonMetrics import org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle -import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle internal fun readDefaultButtonStyle(): ButtonStyle { val normalBackground = @@ -203,25 +202,3 @@ internal fun readIconButtonStyle(): IconButtonStyle = borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), ), ) - -internal fun readTextFieldIconButtonStyle(): TextFieldIconButtonStyle = - TextFieldIconButtonStyle( - colors = - IconButtonColors( - foregroundSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedForeground"), - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - border = Color.Unspecified, - borderDisabled = Color.Unspecified, - borderSelected = retrieveColorOrUnspecified("ActionButton.pressedBackground"), - borderSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedBackground"), - borderFocused = Color.Unspecified, - borderPressed = retrieveColorOrUnspecified("ActionButton.pressedBorderColor"), - borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), - ) - ) diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt index cad6f257af..cfe118b084 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt @@ -11,6 +11,9 @@ import org.jetbrains.jewel.bridge.dp import org.jetbrains.jewel.bridge.retrieveColorOrUnspecified import org.jetbrains.jewel.bridge.toComposeColor import org.jetbrains.jewel.bridge.toDpSize +import org.jetbrains.jewel.ui.component.styling.IconButtonColors +import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics +import org.jetbrains.jewel.ui.component.styling.IconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldColors import org.jetbrains.jewel.ui.component.styling.TextFieldMetrics import org.jetbrains.jewel.ui.component.styling.TextFieldStyle @@ -57,5 +60,32 @@ internal fun readTextFieldStyle(): TextFieldStyle { minSize = DpSize(144.dp, minimumSize.height), borderWidth = DarculaUIUtil.LW.dp, ), + iconButtonStyle = readIconButtonStyle().copy( + colors = IconButtonColors( + foregroundSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedForeground"), + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + border = Color.Unspecified, + borderDisabled = Color.Unspecified, + borderSelected = retrieveColorOrUnspecified("ActionButton.pressedBackground"), + borderSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedBackground"), + borderFocused = Color.Unspecified, + borderPressed = retrieveColorOrUnspecified("ActionButton.pressedBorderColor"), + borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), + ) + ), ) } + +private fun IconButtonStyle.copy( + metrics: IconButtonMetrics = this.metrics, + colors: IconButtonColors = this.colors, +) = IconButtonStyle( + metrics = metrics, + colors = colors +) diff --git a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt index 95e818b02a..b37787811f 100644 --- a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt +++ b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStyling.kt @@ -12,7 +12,6 @@ import org.jetbrains.jewel.intui.core.theme.IntUiLightTheme import org.jetbrains.jewel.ui.component.styling.IconButtonColors import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics import org.jetbrains.jewel.ui.component.styling.IconButtonStyle -import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle @Composable public fun IconButtonStyle.Companion.light( @@ -26,34 +25,6 @@ public fun IconButtonStyle.Companion.dark( metrics: IconButtonMetrics = IconButtonMetrics.defaults(), ): IconButtonStyle = IconButtonStyle(colors, metrics) -@Composable -public fun TextFieldIconButtonStyle.Companion.light( - colors: IconButtonColors = - IconButtonColors.light( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) -): TextFieldIconButtonStyle = TextFieldIconButtonStyle(colors) - -@Composable -public fun TextFieldIconButtonStyle.Companion.dark( - colors: IconButtonColors = - IconButtonColors.dark( - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - ) -): TextFieldIconButtonStyle = TextFieldIconButtonStyle(colors) - public fun IconButtonColors.Companion.light( foregroundSelectedActivated: Color = IntUiLightTheme.colors.gray(14), background: Color = Color.Unspecified, diff --git a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiTextFieldStyling.kt b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiTextFieldStyling.kt index 4e2c6ee8cc..e8ecef7617 100644 --- a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiTextFieldStyling.kt +++ b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiTextFieldStyling.kt @@ -9,6 +9,8 @@ import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.dp import org.jetbrains.jewel.intui.core.theme.IntUiDarkTheme import org.jetbrains.jewel.intui.core.theme.IntUiLightTheme +import org.jetbrains.jewel.ui.component.styling.IconButtonColors +import org.jetbrains.jewel.ui.component.styling.IconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldColors import org.jetbrains.jewel.ui.component.styling.TextFieldMetrics import org.jetbrains.jewel.ui.component.styling.TextFieldStyle @@ -17,13 +19,38 @@ import org.jetbrains.jewel.ui.component.styling.TextFieldStyle public fun TextFieldStyle.Companion.light( colors: TextFieldColors = TextFieldColors.light(), metrics: TextFieldMetrics = TextFieldMetrics.defaults(), -): TextFieldStyle = TextFieldStyle(colors, metrics) + iconButtonStyle: IconButtonStyle = + IconButtonStyle.light( + colors = + IconButtonColors.light( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) + ), +): TextFieldStyle = TextFieldStyle(colors, metrics, iconButtonStyle) @Composable public fun TextFieldStyle.Companion.dark( colors: TextFieldColors = TextFieldColors.dark(), metrics: TextFieldMetrics = TextFieldMetrics.defaults(), -): TextFieldStyle = TextFieldStyle(colors, metrics) + iconButtonStyle: IconButtonStyle = + IconButtonStyle.dark( + IconButtonColors.dark( + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + ) + ), +): TextFieldStyle = TextFieldStyle(colors, metrics, iconButtonStyle) @Composable public fun TextFieldColors.Companion.light( diff --git a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt index 2877ca96a3..138117fcd2 100644 --- a/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt +++ b/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt @@ -46,7 +46,6 @@ import org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle import org.jetbrains.jewel.ui.component.styling.SliderStyle import org.jetbrains.jewel.ui.component.styling.TabStyle import org.jetbrains.jewel.ui.component.styling.TextAreaStyle -import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldStyle import org.jetbrains.jewel.ui.component.styling.TooltipStyle import org.jetbrains.jewel.ui.icon.LocalNewUiChecker @@ -136,7 +135,6 @@ public fun ComponentStyling.dark( simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.dark(), textAreaStyle: TextAreaStyle = TextAreaStyle.dark(), textFieldStyle: TextFieldStyle = TextFieldStyle.dark(), - textFieldIconButtonStyle: TextFieldIconButtonStyle = TextFieldIconButtonStyle.dark(), tooltipStyle: TooltipStyle = TooltipStyle.dark(), undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.dark(), ): ComponentStyling = @@ -169,7 +167,6 @@ public fun ComponentStyling.dark( sliderStyle = sliderStyle, textAreaStyle = textAreaStyle, textFieldStyle = textFieldStyle, - textFieldIconButtonStyle = textFieldIconButtonStyle, tooltipStyle = tooltipStyle, undecoratedDropdownStyle = undecoratedDropdownStyle, ) @@ -204,7 +201,6 @@ public fun ComponentStyling.light( simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.light(), textAreaStyle: TextAreaStyle = TextAreaStyle.light(), textFieldStyle: TextFieldStyle = TextFieldStyle.light(), - textFieldIconButtonStyle: TextFieldIconButtonStyle = TextFieldIconButtonStyle.light(), tooltipStyle: TooltipStyle = TooltipStyle.light(), undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.light(), ): ComponentStyling = @@ -237,7 +233,6 @@ public fun ComponentStyling.light( simpleListItemStyle = simpleListItemStyle, textAreaStyle = textAreaStyle, textFieldStyle = textFieldStyle, - textFieldIconButtonStyle = textFieldIconButtonStyle, tooltipStyle = tooltipStyle, undecoratedDropdownStyle = undecoratedDropdownStyle, ) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index fc2450b154..b057b86c93 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -38,7 +38,7 @@ import org.jetbrains.jewel.ui.component.styling.IconButtonStyle import org.jetbrains.jewel.ui.icons.AllIconsKeys import org.jetbrains.jewel.ui.painter.hints.Stateful import org.jetbrains.jewel.ui.theme.iconButtonStyle -import org.jetbrains.jewel.ui.theme.textFieldIconButtonStyle +import org.jetbrains.jewel.ui.theme.textFieldStyle @Composable public fun TextFields() { @@ -123,7 +123,7 @@ private fun TextFieldsRows(readOnly: Boolean) { isVisible = state2.text.isNotEmpty(), onClick = { state2.setTextAndPlaceCursorAtEnd("") }, metrics = JewelTheme.iconButtonStyle.metrics, - iconColors = JewelTheme.textFieldIconButtonStyle.colors, + iconColors = JewelTheme.textFieldStyle.iconButtonStyle.colors, ) }, readOnly = readOnly, diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt index d8128fda0b..1cbbe96599 100644 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt +++ b/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt @@ -45,7 +45,6 @@ import org.jetbrains.jewel.ui.component.styling.LocalSelectableLazyColumnStyle import org.jetbrains.jewel.ui.component.styling.LocalSimpleListItemStyleStyle import org.jetbrains.jewel.ui.component.styling.LocalSliderStyle import org.jetbrains.jewel.ui.component.styling.LocalTextAreaStyle -import org.jetbrains.jewel.ui.component.styling.LocalTextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.LocalTextFieldStyle import org.jetbrains.jewel.ui.component.styling.LocalTooltipStyle import org.jetbrains.jewel.ui.component.styling.LocalUndecoratedDropdownStyle @@ -60,7 +59,6 @@ import org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle import org.jetbrains.jewel.ui.component.styling.SliderStyle import org.jetbrains.jewel.ui.component.styling.TabStyle import org.jetbrains.jewel.ui.component.styling.TextAreaStyle -import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldStyle import org.jetbrains.jewel.ui.component.styling.TooltipStyle @@ -94,7 +92,6 @@ public class DefaultComponentStyling( public val sliderStyle: SliderStyle, public val textAreaStyle: TextAreaStyle, public val textFieldStyle: TextFieldStyle, - public val textFieldIconButtonStyle: TextFieldIconButtonStyle, public val tooltipStyle: TooltipStyle, public val undecoratedDropdownStyle: DropdownStyle, ) : ComponentStyling { @@ -128,7 +125,6 @@ public class DefaultComponentStyling( LocalSimpleListItemStyleStyle provides simpleListItemStyle, LocalSliderStyle provides sliderStyle, LocalTextAreaStyle provides textAreaStyle, - LocalTextFieldIconButtonStyle provides textFieldIconButtonStyle, LocalTextFieldStyle provides textFieldStyle, LocalTooltipStyle provides tooltipStyle, LocalUndecoratedDropdownStyle provides undecoratedDropdownStyle, diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt index 4b180bc089..d26bb0f522 100644 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt +++ b/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/IconButtonStyling.kt @@ -24,12 +24,6 @@ public class IconButtonStyle(public val colors: IconButtonColors, public val met public companion object } -@Stable -@GenerateDataFunctions -public class TextFieldIconButtonStyle(public val colors: IconButtonColors) { - public companion object -} - @Immutable @GenerateDataFunctions public class IconButtonColors( @@ -164,8 +158,3 @@ public class IconButtonMetrics( public val LocalIconButtonStyle: ProvidableCompositionLocal = staticCompositionLocalOf { error("No IconButtonStyle provided. Have you forgotten the theme?") } - -public val LocalTextFieldIconButtonStyle: ProvidableCompositionLocal = - staticCompositionLocalOf { - error("No TextFieldIconButtonStyle provided. Have you forgotten the theme?") - } diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/TextFieldStyling.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/TextFieldStyling.kt index 1f2e6c8db9..ff7372cdd3 100644 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/TextFieldStyling.kt +++ b/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/TextFieldStyling.kt @@ -13,8 +13,11 @@ import org.jetbrains.jewel.foundation.GenerateDataFunctions @Stable @GenerateDataFunctions -public class TextFieldStyle(override val colors: TextFieldColors, override val metrics: TextFieldMetrics) : - InputFieldStyle { +public class TextFieldStyle( + override val colors: TextFieldColors, + override val metrics: TextFieldMetrics, + public val iconButtonStyle: IconButtonStyle, +) : InputFieldStyle { public companion object } diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt index 30be43b6bf..d5a2b5d6df 100644 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt +++ b/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt @@ -49,7 +49,6 @@ import org.jetbrains.jewel.ui.component.styling.LocalSelectableLazyColumnStyle import org.jetbrains.jewel.ui.component.styling.LocalSimpleListItemStyleStyle import org.jetbrains.jewel.ui.component.styling.LocalSliderStyle import org.jetbrains.jewel.ui.component.styling.LocalTextAreaStyle -import org.jetbrains.jewel.ui.component.styling.LocalTextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.LocalTextFieldStyle import org.jetbrains.jewel.ui.component.styling.LocalTooltipStyle import org.jetbrains.jewel.ui.component.styling.MenuStyle @@ -63,7 +62,6 @@ import org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle import org.jetbrains.jewel.ui.component.styling.SliderStyle import org.jetbrains.jewel.ui.component.styling.TabStyle import org.jetbrains.jewel.ui.component.styling.TextAreaStyle -import org.jetbrains.jewel.ui.component.styling.TextFieldIconButtonStyle import org.jetbrains.jewel.ui.component.styling.TextFieldStyle import org.jetbrains.jewel.ui.component.styling.TooltipStyle @@ -158,9 +156,6 @@ public val JewelTheme.Companion.tooltipStyle: TooltipStyle public val JewelTheme.Companion.iconButtonStyle: IconButtonStyle @Composable @ReadOnlyComposable get() = LocalIconButtonStyle.current -public val JewelTheme.Companion.textFieldIconButtonStyle: TextFieldIconButtonStyle - @Composable @ReadOnlyComposable get() = LocalTextFieldIconButtonStyle.current - public val JewelTheme.Companion.sliderStyle: SliderStyle @Composable @ReadOnlyComposable get() = LocalSliderStyle.current From 3eb2b4a3f20c2bebe946e6de8437d8ef8d3310ef Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 20 Jan 2025 10:38:04 +0100 Subject: [PATCH 38/41] clean up MarkdownPreview reference https://github.com/JetBrains/jewel/pull/742#discussion_r1920272965 Signed-off-by: Ivan Morgillo --- .../standalone/markdown/MarkdownPreview.kt | 27 +------------------ 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt index 0cf98642a6..d23526b4dc 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt @@ -4,7 +4,6 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -15,11 +14,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -import org.jetbrains.jewel.foundation.ExperimentalJewelApi -import org.jetbrains.jewel.foundation.code.highlighting.CodeHighlighter -import org.jetbrains.jewel.foundation.code.highlighting.LocalCodeHighlighter import org.jetbrains.jewel.foundation.code.highlighting.NoOpCodeHighlighter import org.jetbrains.jewel.foundation.theme.JewelTheme +import org.jetbrains.jewel.intui.markdown.standalone.ProvideMarkdownStyling import org.jetbrains.jewel.intui.markdown.standalone.dark import org.jetbrains.jewel.intui.markdown.standalone.light import org.jetbrains.jewel.intui.markdown.standalone.styling.dark @@ -29,9 +26,6 @@ import org.jetbrains.jewel.intui.markdown.standalone.styling.light import org.jetbrains.jewel.markdown.LazyMarkdown import org.jetbrains.jewel.markdown.MarkdownBlock import org.jetbrains.jewel.markdown.extension.autolink.AutolinkProcessorExtension -import org.jetbrains.jewel.markdown.extensions.LocalMarkdownBlockRenderer -import org.jetbrains.jewel.markdown.extensions.LocalMarkdownProcessor -import org.jetbrains.jewel.markdown.extensions.LocalMarkdownStyling import org.jetbrains.jewel.markdown.extensions.github.alerts.AlertStyling import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertProcessorExtension import org.jetbrains.jewel.markdown.extensions.github.alerts.GitHubAlertRendererExtension @@ -100,22 +94,3 @@ fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSequence) { } } } - -@ExperimentalJewelApi -@Composable -fun ProvideMarkdownStyling( - markdownStyling: MarkdownStyling, - markdownBlockRenderer: MarkdownBlockRenderer, - codeHighlighter: CodeHighlighter, - markdownProcessor: MarkdownProcessor = remember { MarkdownProcessor() }, - content: @Composable () -> Unit, -) { - CompositionLocalProvider( - LocalMarkdownStyling provides markdownStyling, - LocalMarkdownProcessor provides markdownProcessor, - LocalMarkdownBlockRenderer provides markdownBlockRenderer, - LocalCodeHighlighter provides codeHighlighter, - ) { - content() - } -} From c656bf9a27ac9774901e79cb1dca660e8a41b9a4 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 20 Jan 2025 10:53:21 +0100 Subject: [PATCH 39/41] make linter happy --- .../jewel/bridge/theme/IntUiBridge.kt | 2 +- .../bridge/theme/IntUiBridgeTextField.kt | 52 +++++++++---------- .../api/int-ui-standalone.api | 10 ++-- .../dialog/ComponentShowcaseDialog.kt | 7 +-- samples/showcase/api/showcase.api | 20 +++---- .../showcase/components/ShowcaseIcons.kt | 24 +++------ .../samples/showcase/views/ComponentsView.kt | 2 +- .../showcase/views/ComponentsViewModel.kt | 32 +++--------- .../standalone/markdown/MarkdownPreview.kt | 4 +- .../samples/standalone/view/TitleBarView.kt | 6 +-- ui/api/ui.api | 21 ++------ 11 files changed, 66 insertions(+), 114 deletions(-) diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt index ffb0dafd57..996bcc1e18 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt @@ -5,6 +5,7 @@ import androidx.compose.ui.text.TextStyle import com.intellij.ide.ui.laf.darcula.DarculaUIUtil import com.intellij.ui.JBColor import com.intellij.util.ui.DirProvider +import javax.swing.UIManager import org.jetbrains.jewel.bridge.dp import org.jetbrains.jewel.bridge.lafName import org.jetbrains.jewel.bridge.readFromLaF @@ -17,7 +18,6 @@ import org.jetbrains.jewel.foundation.theme.ThemeIconData import org.jetbrains.jewel.foundation.util.JewelLogger import org.jetbrains.jewel.ui.ComponentStyling import org.jetbrains.jewel.ui.DefaultComponentStyling -import javax.swing.UIManager private val logger = JewelLogger.getInstance("JewelIntUiBridge") diff --git a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt index cfe118b084..2f33d71490 100644 --- a/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt +++ b/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeTextField.kt @@ -60,32 +60,32 @@ internal fun readTextFieldStyle(): TextFieldStyle { minSize = DpSize(144.dp, minimumSize.height), borderWidth = DarculaUIUtil.LW.dp, ), - iconButtonStyle = readIconButtonStyle().copy( - colors = IconButtonColors( - foregroundSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedForeground"), - background = Color.Unspecified, - backgroundDisabled = Color.Unspecified, - backgroundSelected = Color.Unspecified, - backgroundSelectedActivated = Color.Unspecified, - backgroundFocused = Color.Unspecified, - backgroundPressed = Color.Unspecified, - backgroundHovered = Color.Unspecified, - border = Color.Unspecified, - borderDisabled = Color.Unspecified, - borderSelected = retrieveColorOrUnspecified("ActionButton.pressedBackground"), - borderSelectedActivated = retrieveColorOrUnspecified("ToolWindow.Button.selectedBackground"), - borderFocused = Color.Unspecified, - borderPressed = retrieveColorOrUnspecified("ActionButton.pressedBorderColor"), - borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), - ) - ), + iconButtonStyle = + readIconButtonStyle() + .copy( + colors = + IconButtonColors( + foregroundSelectedActivated = + retrieveColorOrUnspecified("ToolWindow.Button.selectedForeground"), + background = Color.Unspecified, + backgroundDisabled = Color.Unspecified, + backgroundSelected = Color.Unspecified, + backgroundSelectedActivated = Color.Unspecified, + backgroundFocused = Color.Unspecified, + backgroundPressed = Color.Unspecified, + backgroundHovered = Color.Unspecified, + border = Color.Unspecified, + borderDisabled = Color.Unspecified, + borderSelected = retrieveColorOrUnspecified("ActionButton.pressedBackground"), + borderSelectedActivated = + retrieveColorOrUnspecified("ToolWindow.Button.selectedBackground"), + borderFocused = Color.Unspecified, + borderPressed = retrieveColorOrUnspecified("ActionButton.pressedBorderColor"), + borderHovered = retrieveColorOrUnspecified("ActionButton.hoverBorderColor"), + ) + ), ) } -private fun IconButtonStyle.copy( - metrics: IconButtonMetrics = this.metrics, - colors: IconButtonColors = this.colors, -) = IconButtonStyle( - metrics = metrics, - colors = colors -) +private fun IconButtonStyle.copy(metrics: IconButtonMetrics = this.metrics, colors: IconButtonColors = this.colors) = + IconButtonStyle(metrics = metrics, colors = colors) diff --git a/int-ui/int-ui-standalone/api/int-ui-standalone.api b/int-ui/int-ui-standalone/api/int-ui-standalone.api index 9e2de9dfcf..d0bbecba52 100644 --- a/int-ui/int-ui-standalone/api/int-ui-standalone.api +++ b/int-ui/int-ui-standalone/api/int-ui-standalone.api @@ -286,13 +286,11 @@ public final class org/jetbrains/jewel/intui/standalone/styling/IntUiHorizontalP public final class org/jetbrains/jewel/intui/standalone/styling/IntUiIconButtonStylingKt { public static final fun dark (Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle; - public static final fun dark (Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; public static final fun dark-7HESe_I (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJ)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; public static synthetic fun dark-7HESe_I$default (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJILjava/lang/Object;)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; public static final fun defaults-ij7-PLE (Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics$Companion;Landroidx/compose/foundation/shape/CornerSize;FLandroidx/compose/foundation/layout/PaddingValues;J)Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics; public static synthetic fun defaults-ij7-PLE$default (Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics$Companion;Landroidx/compose/foundation/shape/CornerSize;FLandroidx/compose/foundation/layout/PaddingValues;JILjava/lang/Object;)Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics; public static final fun light (Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Lorg/jetbrains/jewel/ui/component/styling/IconButtonMetrics;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle; - public static final fun light (Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; public static final fun light-7HESe_I (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJ)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; public static synthetic fun light-7HESe_I$default (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors$Companion;JJJJJJJJJJJJJJJILjava/lang/Object;)Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; } @@ -492,11 +490,11 @@ public final class org/jetbrains/jewel/intui/standalone/styling/IntUiTextAreaSty } public final class org/jetbrains/jewel/intui/standalone/styling/IntUiTextFieldStylingKt { - public static final fun dark (Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors;Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; + public static final fun dark (Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors;Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; public static final fun dark-a3tHFA8 (Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors$Companion;JJJJJJJJJJJJJJJJJJJJJLandroidx/compose/runtime/Composer;IIII)Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors; public static final fun defaults-H1KY9o8 (Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics$Companion;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/layout/PaddingValues;JF)Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics; public static synthetic fun defaults-H1KY9o8$default (Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics$Companion;Landroidx/compose/foundation/shape/CornerSize;Landroidx/compose/foundation/layout/PaddingValues;JFILjava/lang/Object;)Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics; - public static final fun light (Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors;Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; + public static final fun light (Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle$Companion;Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors;Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Landroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; public static final fun light-a3tHFA8 (Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors$Companion;JJJJJJJJJJJJJJJJJJJJJLandroidx/compose/runtime/Composer;IIII)Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors; } @@ -554,10 +552,10 @@ public final class org/jetbrains/jewel/intui/standalone/theme/IntUiGlobalMetrics public final class org/jetbrains/jewel/intui/standalone/theme/IntUiThemeKt { public static final fun IntUiTheme (Lorg/jetbrains/jewel/foundation/theme/ThemeDefinition;Lorg/jetbrains/jewel/ui/ComponentStyling;ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V public static final fun IntUiTheme (ZZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V - public static final fun dark (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIIII)Lorg/jetbrains/jewel/ui/ComponentStyling; + public static final fun dark (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIII)Lorg/jetbrains/jewel/ui/ComponentStyling; public static final fun darkThemeDefinition-VRxQTpk (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Lorg/jetbrains/jewel/foundation/GlobalColors;Lorg/jetbrains/jewel/foundation/GlobalMetrics;Lorg/jetbrains/jewel/foundation/theme/ThemeColorPalette;Lorg/jetbrains/jewel/foundation/theme/ThemeIconData;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;JLandroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/foundation/theme/ThemeDefinition; public static final fun default (Lorg/jetbrains/jewel/ui/ComponentStyling;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/ComponentStyling; - public static final fun light (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIIII)Lorg/jetbrains/jewel/ui/ComponentStyling; + public static final fun light (Lorg/jetbrains/jewel/ui/ComponentStyling;Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Landroidx/compose/runtime/Composer;IIII)Lorg/jetbrains/jewel/ui/ComponentStyling; public static final fun lightThemeDefinition-VRxQTpk (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Lorg/jetbrains/jewel/foundation/GlobalColors;Lorg/jetbrains/jewel/foundation/GlobalMetrics;Lorg/jetbrains/jewel/foundation/theme/ThemeColorPalette;Lorg/jetbrains/jewel/foundation/theme/ThemeIconData;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;JLandroidx/compose/runtime/Composer;II)Lorg/jetbrains/jewel/foundation/theme/ThemeDefinition; } diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt index d88f257d26..bcc837052f 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt @@ -5,14 +5,14 @@ import androidx.compose.foundation.layout.size import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.intellij.openapi.ui.DialogWrapper +import java.awt.Dimension +import javax.swing.JComponent import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.theme.default import org.jetbrains.jewel.bridge.theme.macOs import org.jetbrains.jewel.samples.showcase.views.ComponentsView import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility -import java.awt.Dimension -import javax.swing.JComponent internal class ComponentShowcaseDialog : DialogWrapper(true) { init { @@ -29,7 +29,8 @@ internal class ComponentShowcaseDialog : DialogWrapper(true) { ) ComponentsView( viewModel = viewModel, - railNavigationModifier = Modifier.size(40.dp).padding(start = 0.dp, end = 4.dp, top = 4.dp, bottom = 4.dp) + railNavigationModifier = + Modifier.size(40.dp).padding(start = 0.dp, end = 4.dp, top = 4.dp, bottom = 4.dp), ) } dialogPanel.preferredSize = Dimension(800, 600) diff --git a/samples/showcase/api/showcase.api b/samples/showcase/api/showcase.api index d28eff084c..e8ddf4aa2b 100644 --- a/samples/showcase/api/showcase.api +++ b/samples/showcase/api/showcase.api @@ -206,13 +206,9 @@ public final class org/jetbrains/jewel/samples/showcase/components/SegmentedCont public static final fun SegmentedControls (Landroidx/compose/runtime/Composer;I)V } -public final class org/jetbrains/jewel/samples/showcase/components/SliderKt { - public static final fun Sliders (Landroidx/compose/runtime/Composer;I)V -} - -public final class org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons { +public final class org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons { public static final field $stable I - public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons; + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ShowcaseIcons; public final fun getComponentsMenu ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; public final fun getGitHub ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; public final fun getJewelLogo ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; @@ -224,9 +220,9 @@ public final class org/jetbrains/jewel/samples/showcase/components/StandaloneSam public final fun getWelcome ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; } -public final class org/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons$Components { +public final class org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons$Components { public static final field $stable I - public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/StandaloneSampleIcons$Components; + public static final field INSTANCE Lorg/jetbrains/jewel/samples/showcase/components/ShowcaseIcons$Components; public final fun getBanners ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; public final fun getBorders ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; public final fun getButton ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; @@ -247,6 +243,10 @@ public final class org/jetbrains/jewel/samples/showcase/components/StandaloneSam public final fun getTree ()Lorg/jetbrains/jewel/ui/icon/PathIconKey; } +public final class org/jetbrains/jewel/samples/showcase/components/SliderKt { + public static final fun Sliders (Landroidx/compose/runtime/Composer;I)V +} + public final class org/jetbrains/jewel/samples/showcase/components/TabsKt { public static final fun Tabs (Landroidx/compose/runtime/Composer;I)V } @@ -264,8 +264,8 @@ public final class org/jetbrains/jewel/samples/showcase/components/TooltipsKt { } public final class org/jetbrains/jewel/samples/showcase/views/ComponentsViewKt { - public static final fun ComponentsToolBar (Lorg/jetbrains/jewel/samples/showcase/views/ComponentsViewModel;Landroidx/compose/runtime/Composer;I)V - public static final fun ComponentsView (Lorg/jetbrains/jewel/samples/showcase/views/ComponentsViewModel;Landroidx/compose/runtime/Composer;I)V + public static final fun ComponentsToolBar (Lorg/jetbrains/jewel/samples/showcase/views/ComponentsViewModel;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public static final fun ComponentsView (Lorg/jetbrains/jewel/samples/showcase/views/ComponentsViewModel;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V } public final class org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel { diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt index a35d1e0141..cdbbc5b51a 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt @@ -18,27 +18,19 @@ public object ShowcaseIcons { public val banners: PathIconKey = PathIconKey("icons/components/banners.svg", ShowcaseIcons::class.java) public val borders: PathIconKey = PathIconKey("icons/components/borders.svg", ShowcaseIcons::class.java) public val button: PathIconKey = PathIconKey("icons/components/button.svg", ShowcaseIcons::class.java) - public val checkbox: PathIconKey = - PathIconKey("icons/components/checkBox.svg", ShowcaseIcons::class.java) - public val comboBox: PathIconKey = - PathIconKey("icons/components/comboBox.svg", ShowcaseIcons::class.java) + public val checkbox: PathIconKey = PathIconKey("icons/components/checkBox.svg", ShowcaseIcons::class.java) + public val comboBox: PathIconKey = PathIconKey("icons/components/comboBox.svg", ShowcaseIcons::class.java) public val links: PathIconKey = PathIconKey("icons/components/links.svg", ShowcaseIcons::class.java) - public val progressBar: PathIconKey = - PathIconKey("icons/components/progressbar.svg", ShowcaseIcons::class.java) - public val radioButton: PathIconKey = - PathIconKey("icons/components/radioButton.svg", ShowcaseIcons::class.java) - public val scrollbar: PathIconKey = - PathIconKey("icons/components/scrollbar.svg", ShowcaseIcons::class.java) + public val progressBar: PathIconKey = PathIconKey("icons/components/progressbar.svg", ShowcaseIcons::class.java) + public val radioButton: PathIconKey = PathIconKey("icons/components/radioButton.svg", ShowcaseIcons::class.java) + public val scrollbar: PathIconKey = PathIconKey("icons/components/scrollbar.svg", ShowcaseIcons::class.java) public val segmentedControls: PathIconKey = PathIconKey("icons/components/segmentedControl.svg", ShowcaseIcons::class.java) public val slider: PathIconKey = PathIconKey("icons/components/slider.svg", ShowcaseIcons::class.java) - public val splitlayout: PathIconKey = - PathIconKey("icons/components/splitLayout.svg", ShowcaseIcons::class.java) + public val splitlayout: PathIconKey = PathIconKey("icons/components/splitLayout.svg", ShowcaseIcons::class.java) public val tabs: PathIconKey = PathIconKey("icons/components/tabs.svg", ShowcaseIcons::class.java) - public val textArea: PathIconKey = - PathIconKey("icons/components/textArea.svg", ShowcaseIcons::class.java) - public val textField: PathIconKey = - PathIconKey("icons/components/textField.svg", ShowcaseIcons::class.java) + public val textArea: PathIconKey = PathIconKey("icons/components/textArea.svg", ShowcaseIcons::class.java) + public val textField: PathIconKey = PathIconKey("icons/components/textField.svg", ShowcaseIcons::class.java) public val toolbar: PathIconKey = PathIconKey("icons/components/toolbar.svg", ShowcaseIcons::class.java) public val tooltip: PathIconKey = PathIconKey("icons/components/tooltip.svg", ShowcaseIcons::class.java) public val tree: PathIconKey = PathIconKey("icons/components/tree.svg", ShowcaseIcons::class.java) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt index d777d15fbf..e511e45bdf 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt @@ -15,6 +15,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp +import kotlin.time.Duration.Companion.milliseconds import org.jetbrains.jewel.foundation.modifier.trackActivation import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.ui.Orientation @@ -26,7 +27,6 @@ import org.jetbrains.jewel.ui.component.styling.TooltipMetrics import org.jetbrains.jewel.ui.component.styling.TooltipStyle import org.jetbrains.jewel.ui.painter.hints.Size import org.jetbrains.jewel.ui.theme.tooltipStyle -import kotlin.time.Duration.Companion.milliseconds @Composable public fun ComponentsView(viewModel: ComponentsViewModel, railNavigationModifier: Modifier) { diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt index 8e68462d76..9ce6d04980 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt @@ -18,8 +18,8 @@ import org.jetbrains.jewel.samples.showcase.components.ProgressBar import org.jetbrains.jewel.samples.showcase.components.RadioButtons import org.jetbrains.jewel.samples.showcase.components.Scrollbars import org.jetbrains.jewel.samples.showcase.components.SegmentedControls -import org.jetbrains.jewel.samples.showcase.components.Sliders import org.jetbrains.jewel.samples.showcase.components.ShowcaseIcons +import org.jetbrains.jewel.samples.showcase.components.Sliders import org.jetbrains.jewel.samples.showcase.components.Tabs import org.jetbrains.jewel.samples.showcase.components.TextAreas import org.jetbrains.jewel.samples.showcase.components.TextFields @@ -45,21 +45,9 @@ public class ComponentsViewModel( iconKey = ShowcaseIcons.Components.radioButton, content = { RadioButtons() }, ), - ViewInfo( - title = "Checkboxes", - iconKey = ShowcaseIcons.Components.checkbox, - content = { Checkboxes() }, - ), - ViewInfo( - title = "Dropdowns", - iconKey = ShowcaseIcons.Components.comboBox, - content = { Dropdowns() }, - ), - ViewInfo( - title = "Chips and trees", - iconKey = ShowcaseIcons.Components.tree, - content = { ChipsAndTrees() }, - ), + ViewInfo(title = "Checkboxes", iconKey = ShowcaseIcons.Components.checkbox, content = { Checkboxes() }), + ViewInfo(title = "Dropdowns", iconKey = ShowcaseIcons.Components.comboBox, content = { Dropdowns() }), + ViewInfo(title = "Chips and trees", iconKey = ShowcaseIcons.Components.tree, content = { ChipsAndTrees() }), ViewInfo( title = "Progressbar", iconKey = ShowcaseIcons.Components.progressBar, @@ -76,16 +64,8 @@ public class ComponentsViewModel( ViewInfo(title = "Sliders", iconKey = ShowcaseIcons.Components.slider, content = { Sliders() }), ViewInfo(title = "Tabs", iconKey = ShowcaseIcons.Components.tabs, content = { Tabs() }), ViewInfo(title = "Tooltips", iconKey = ShowcaseIcons.Components.tooltip, content = { Tooltips() }), - ViewInfo( - title = "TextAreas", - iconKey = ShowcaseIcons.Components.textArea, - content = { TextAreas() }, - ), - ViewInfo( - title = "TextFields", - iconKey = ShowcaseIcons.Components.textField, - content = { TextFields() }, - ), + ViewInfo(title = "TextAreas", iconKey = ShowcaseIcons.Components.textArea, content = { TextAreas() }), + ViewInfo(title = "TextFields", iconKey = ShowcaseIcons.Components.textField, content = { TextFields() }), ViewInfo( title = "Scrollbars", iconKey = ShowcaseIcons.Components.scrollbar, diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt index d23526b4dc..c73b4af43a 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt @@ -12,6 +12,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp +import java.awt.Desktop +import java.net.URI import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.jetbrains.jewel.foundation.code.highlighting.NoOpCodeHighlighter @@ -34,8 +36,6 @@ import org.jetbrains.jewel.markdown.rendering.MarkdownBlockRenderer import org.jetbrains.jewel.markdown.rendering.MarkdownStyling import org.jetbrains.jewel.ui.component.VerticallyScrollableContainer import org.jetbrains.jewel.ui.component.scrollbarContentSafePadding -import java.awt.Desktop -import java.net.URI @Composable fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSequence) { diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt index be2f3d86a0..24145cbaec 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt @@ -112,11 +112,7 @@ fun DecoratedWindowScope.TitleBarView() { ) IntUiThemes.Dark -> - Icon( - key = ShowcaseIcons.themeDark, - contentDescription = "Dark", - hints = arrayOf(Size(20)), - ) + Icon(key = ShowcaseIcons.themeDark, contentDescription = "Dark", hints = arrayOf(Size(20))) IntUiThemes.System -> Icon( diff --git a/ui/api/ui.api b/ui/api/ui.api index fa1e9da64c..f6c11afc98 100644 --- a/ui/api/ui.api +++ b/ui/api/ui.api @@ -25,7 +25,7 @@ public final class org/jetbrains/jewel/ui/ComponentStyling$DefaultImpls { public final class org/jetbrains/jewel/ui/DefaultComponentStyling : org/jetbrains/jewel/ui/ComponentStyling { public static final field $stable I - public fun (Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;)V + public fun (Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle;Lorg/jetbrains/jewel/ui/component/styling/ChipStyle;Lorg/jetbrains/jewel/ui/component/styling/CircularProgressStyle;Lorg/jetbrains/jewel/ui/component/styling/DefaultBannerStyles;Lorg/jetbrains/jewel/ui/component/styling/ComboBoxStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/DividerStyle;Lorg/jetbrains/jewel/ui/component/styling/TabStyle;Lorg/jetbrains/jewel/ui/component/styling/GroupHeaderStyle;Lorg/jetbrains/jewel/ui/component/styling/HorizontalProgressBarStyle;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle;Lorg/jetbrains/jewel/ui/component/styling/LinkStyle;Lorg/jetbrains/jewel/ui/component/styling/MenuStyle;Lorg/jetbrains/jewel/ui/component/styling/ButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/PopupContainerStyle;Lorg/jetbrains/jewel/ui/component/styling/RadioButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/ScrollbarStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlButtonStyle;Lorg/jetbrains/jewel/ui/component/styling/SegmentedControlStyle;Lorg/jetbrains/jewel/ui/component/styling/SelectableLazyColumnStyle;Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle;Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle;Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle;Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle;)V public fun equals (Ljava/lang/Object;)Z public final fun getCheckboxStyle ()Lorg/jetbrains/jewel/ui/component/styling/CheckboxStyle; public final fun getChipStyle ()Lorg/jetbrains/jewel/ui/component/styling/ChipStyle; @@ -53,7 +53,6 @@ public final class org/jetbrains/jewel/ui/DefaultComponentStyling : org/jetbrain public final fun getSimpleListItemStyle ()Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle; public final fun getSliderStyle ()Lorg/jetbrains/jewel/ui/component/styling/SliderStyle; public final fun getTextAreaStyle ()Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle; - public final fun getTextFieldIconButtonStyle ()Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; public final fun getTextFieldStyle ()Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; public final fun getTooltipStyle ()Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle; public final fun getUndecoratedDropdownStyle ()Lorg/jetbrains/jewel/ui/component/styling/DropdownStyle; @@ -1742,7 +1741,6 @@ public final class org/jetbrains/jewel/ui/component/styling/IconButtonStyle$Comp public final class org/jetbrains/jewel/ui/component/styling/IconButtonStylingKt { public static final fun getLocalIconButtonStyle ()Landroidx/compose/runtime/ProvidableCompositionLocal; - public static final fun getLocalTextFieldIconButtonStyle ()Landroidx/compose/runtime/ProvidableCompositionLocal; } public abstract interface class org/jetbrains/jewel/ui/component/styling/InputFieldColors { @@ -2754,19 +2752,6 @@ public final class org/jetbrains/jewel/ui/component/styling/TextFieldColors : or public final class org/jetbrains/jewel/ui/component/styling/TextFieldColors$Companion { } -public final class org/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle { - public static final field $stable I - public static final field Companion Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion; - public fun (Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors;)V - public fun equals (Ljava/lang/Object;)Z - public final fun getColors ()Lorg/jetbrains/jewel/ui/component/styling/IconButtonColors; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class org/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle$Companion { -} - public final class org/jetbrains/jewel/ui/component/styling/TextFieldMetrics : org/jetbrains/jewel/ui/component/styling/InputFieldMetrics { public static final field $stable I public static final field Companion Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics$Companion; @@ -2786,10 +2771,11 @@ public final class org/jetbrains/jewel/ui/component/styling/TextFieldMetrics$Com public final class org/jetbrains/jewel/ui/component/styling/TextFieldStyle : org/jetbrains/jewel/ui/component/styling/InputFieldStyle { public static final field $stable I public static final field Companion Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle$Companion; - public fun (Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors;Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics;)V + public fun (Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors;Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics;Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle;)V public fun equals (Ljava/lang/Object;)Z public synthetic fun getColors ()Lorg/jetbrains/jewel/ui/component/styling/InputFieldColors; public fun getColors ()Lorg/jetbrains/jewel/ui/component/styling/TextFieldColors; + public final fun getIconButtonStyle ()Lorg/jetbrains/jewel/ui/component/styling/IconButtonStyle; public synthetic fun getMetrics ()Lorg/jetbrains/jewel/ui/component/styling/InputFieldMetrics; public fun getMetrics ()Lorg/jetbrains/jewel/ui/component/styling/TextFieldMetrics; public fun hashCode ()I @@ -4750,7 +4736,6 @@ public final class org/jetbrains/jewel/ui/theme/JewelThemeKt { public static final fun getSimpleListItemStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/SimpleListItemStyle; public static final fun getSliderStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/SliderStyle; public static final fun getTextAreaStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TextAreaStyle; - public static final fun getTextFieldIconButtonStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TextFieldIconButtonStyle; public static final fun getTextFieldStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TextFieldStyle; public static final fun getTooltipStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/TooltipStyle; public static final fun getTreeStyle (Lorg/jetbrains/jewel/foundation/theme/JewelTheme$Companion;Landroidx/compose/runtime/Composer;I)Lorg/jetbrains/jewel/ui/component/styling/LazyTreeStyle; From e64638935647bfdff8a35f75cf8a766de16af2e0 Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 20 Jan 2025 12:00:26 +0100 Subject: [PATCH 40/41] fine-tune TextFields reference https://github.com/JetBrains/jewel/pull/742#discussion_r1922187260 Signed-off-by: Ivan Morgillo --- .../samples/showcase/components/TextFields.kt | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index b057b86c93..97c7ebecfe 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -18,7 +18,6 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.foundation.text.input.setTextAndPlaceCursorAtEnd import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.input.pointer.PointerIcon @@ -32,12 +31,8 @@ import org.jetbrains.jewel.ui.component.IconButton import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.TextField import org.jetbrains.jewel.ui.component.VerticallyScrollableContainer -import org.jetbrains.jewel.ui.component.styling.IconButtonColors -import org.jetbrains.jewel.ui.component.styling.IconButtonMetrics -import org.jetbrains.jewel.ui.component.styling.IconButtonStyle import org.jetbrains.jewel.ui.icons.AllIconsKeys import org.jetbrains.jewel.ui.painter.hints.Stateful -import org.jetbrains.jewel.ui.theme.iconButtonStyle import org.jetbrains.jewel.ui.theme.textFieldStyle @Composable @@ -122,8 +117,6 @@ private fun TextFieldsRows(readOnly: Boolean) { CloseIconButton( isVisible = state2.text.isNotEmpty(), onClick = { state2.setTextAndPlaceCursorAtEnd("") }, - metrics = JewelTheme.iconButtonStyle.metrics, - iconColors = JewelTheme.textFieldStyle.iconButtonStyle.colors, ) }, readOnly = readOnly, @@ -136,8 +129,6 @@ private fun TextFieldsRows(readOnly: Boolean) { private fun CloseIconButton( isVisible: Boolean, onClick: () -> Unit, - metrics: IconButtonMetrics, - iconColors: IconButtonColors, ) { Box(Modifier.size(16.dp)) { AnimatedVisibility( @@ -145,12 +136,11 @@ private fun CloseIconButton( enter = fadeIn() + slideInHorizontally { it / 2 }, exit = fadeOut() + slideOutHorizontally { it / 2 }, ) { - // TODO replace when IconButton supports no-background style - val isDark = JewelTheme.isDark - - val style = remember(isDark, iconColors) { IconButtonStyle(iconColors, metrics) } - - IconButton(onClick, style = style, modifier = Modifier.pointerHoverIcon(PointerIcon.Default)) { state -> + IconButton( + onClick, + style = JewelTheme.textFieldStyle.iconButtonStyle, + modifier = Modifier.pointerHoverIcon(PointerIcon.Default), + ) { state -> Icon(AllIconsKeys.General.Close, contentDescription = "Clear", hint = Stateful(state)) } } From 1743f72d087824cf8a5817ba2995d76f951d405e Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 20 Jan 2025 12:01:54 +0100 Subject: [PATCH 41/41] make linter happy --- .../jewel/samples/showcase/components/TextFields.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt index 97c7ebecfe..e92c5c95e3 100644 --- a/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/TextFields.kt @@ -126,10 +126,7 @@ private fun TextFieldsRows(readOnly: Boolean) { } @Composable -private fun CloseIconButton( - isVisible: Boolean, - onClick: () -> Unit, -) { +private fun CloseIconButton(isVisible: Boolean, onClick: () -> Unit) { Box(Modifier.size(16.dp)) { AnimatedVisibility( visible = isVisible,