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..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 @@ -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/api/int-ui-standalone.api b/int-ui/int-ui-standalone/api/int-ui-standalone.api index fcd91a722e..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,11 +286,13 @@ 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-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-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 { @@ -488,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; } 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/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/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..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 @@ -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,7 @@ 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 dd63e8799e..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 @@ -65,6 +65,7 @@ import org.jetbrains.jewel.ui.theme.textAreaStyle internal class SwingComparisonTabPanel : BorderLayoutPanel() { private val mainContent = panel { + separator() buttonsRow() separator() labelsRows() 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..bcc837052f --- /dev/null +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/dialog/ComponentShowcaseDialog.kt @@ -0,0 +1,39 @@ +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 + +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 = 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/api/showcase.api b/samples/showcase/api/showcase.api new file mode 100644 index 0000000000..e8ddf4aa2b --- /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/ShowcaseIcons { + public static final field $stable I + 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; + 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/ShowcaseIcons$Components { + public static final field $stable I + 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; + 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/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 +} + +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/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 { + 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/build.gradle.kts b/samples/showcase/build.gradle.kts new file mode 100644 index 0000000000..ef36a77e7a --- /dev/null +++ b/samples/showcase/build.gradle.kts @@ -0,0 +1,20 @@ +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(projects.foundation) + implementation(projects.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/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/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/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/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..fb733edfbf 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 @@ -46,7 +46,7 @@ import org.jetbrains.jewel.ui.component.ToggleableChip import org.jetbrains.jewel.ui.theme.colorPalette @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/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..9b1b1daa87 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 @@ -26,7 +26,7 @@ import org.jetbrains.jewel.ui.icons.AllIconsKeys import org.jetbrains.jewel.ui.theme.simpleListItemStyle @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/view/component/Icons.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Icons.kt similarity index 85% 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..f550bca080 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,17 +26,17 @@ 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), ) { - 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/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 59% 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..e033296ab4 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,32 +10,25 @@ 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.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 -fun Links() { - val isDark = JewelTheme.isDark - val alwaysUnderlinedStyle = - remember(isDark) { - if (isDark) { - LinkStyle.dark(underlineBehavior = LinkUnderlineBehavior.ShowAlways) - } else { - LinkStyle.light(underlineBehavior = LinkUnderlineBehavior.ShowAlways) - } - } - +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 = alwaysUnderlinedStyle) + Link(text = "Always underlined", onClick = {}, style = alwaysUnderline) ExternalLink("ExternalLink", {}) @@ -52,12 +45,19 @@ 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 = alwaysUnderlinedStyle, 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) {} } } + +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/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/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/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..3698db88f6 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 @@ -31,9 +31,6 @@ 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 @@ -47,16 +44,18 @@ 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 @Composable -fun Scrollbars() { +public fun Scrollbars( + 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 = JewelTheme.scrollbarStyle var alwaysVisible by remember { mutableStateOf(hostOs != OS.MacOS) } var clickBehavior by remember { mutableStateOf(baseStyle.trackClickBehavior) } SettingsRow(alwaysVisible, clickBehavior, { alwaysVisible = it }, { clickBehavior = it }) @@ -69,14 +68,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/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/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..cdbbc5b51a --- /dev/null +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ShowcaseIcons.kt @@ -0,0 +1,38 @@ +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/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/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, 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 96% 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 53d137659f..3d6f3c20ea 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 @@ -22,7 +22,6 @@ 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.ui.component.Icon import org.jetbrains.jewel.ui.component.IconButton import org.jetbrains.jewel.ui.component.SimpleTabContent @@ -38,7 +37,7 @@ import org.jetbrains.jewel.ui.theme.editorTabStyle import org.jetbrains.jewel.ui.util.thenIf @Composable -fun Tabs() { +public fun Tabs() { Column { Text("Default tabs", Modifier.fillMaxWidth()) DefaultTabShowcase() @@ -107,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/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( 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 72% 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 ca676b1130..e92c5c95e3 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 @@ -18,18 +18,12 @@ 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.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.standalone.StandaloneSampleIcons import org.jetbrains.jewel.ui.Outline import org.jetbrains.jewel.ui.component.GroupHeader import org.jetbrains.jewel.ui.component.Icon @@ -37,14 +31,12 @@ 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.textFieldStyle @Composable -fun TextFields() { +public fun TextFields() { VerticallyScrollableContainer(Modifier.fillMaxSize()) { Column { TextFieldsRows(readOnly = false) @@ -109,7 +101,7 @@ private fun TextFieldsRows(readOnly: Boolean) { Icon( key = AllIconsKeys.Actions.Find, contentDescription = "SearchIcon", - iconClass = StandaloneSampleIcons::class.java, + iconClass = ShowcaseIcons::class.java, modifier = Modifier.size(16.dp), ) }, @@ -141,39 +133,13 @@ private fun CloseIconButton(isVisible: Boolean, onClick: () -> Unit) { enter = fadeIn() + slideInHorizontally { it / 2 }, exit = fadeOut() + slideOutHorizontally { it / 2 }, ) { - // 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()) } - - 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)) } } } } - -@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, - ) - } 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..f22d5fa00e 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 @@ -18,7 +18,7 @@ import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.Tooltip @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/view/ComponentsView.kt b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsView.kt similarity index 78% 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..e511e45bdf 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 @@ -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 @@ -19,8 +18,6 @@ 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 @@ -32,24 +29,24 @@ import org.jetbrains.jewel.ui.painter.hints.Size import org.jetbrains.jewel.ui.theme.tooltipStyle @Composable -fun ComponentsView() { +public fun ComponentsView(viewModel: ComponentsViewModel, railNavigationModifier: Modifier) { Row(Modifier.trackActivation().fillMaxSize().background(JewelTheme.globalColors.panelBackground)) { - ComponentsToolBar() + ComponentsToolBar(viewModel, railNavigationModifier) Divider(Orientation.Vertical, Modifier.fillMaxHeight()) - ComponentView(ComponentsViewModel.currentView) + ComponentView(viewModel.getCurrentView()) } } @Composable -fun ComponentsToolBar() { +public fun ComponentsToolBar(viewModel: ComponentsViewModel, railNavigationModifier: Modifier) { Column(Modifier.fillMaxHeight().width(40.dp).verticalScroll(rememberScrollState())) { - ComponentsViewModel.views.forEach { + viewModel.getViews().forEach { SelectableIconActionButton( key = it.iconKey, contentDescription = "Show ${it.title}", - selected = ComponentsViewModel.currentView == it, - onClick = { ComponentsViewModel.currentView = it }, - modifier = Modifier.size(40.dp).padding(5.dp), + selected = viewModel.getCurrentView() == it, + onClick = { viewModel.setCurrentView(it) }, + modifier = railNavigationModifier, tooltip = { Text(it.title) }, tooltipStyle = TooltipStyle(JewelTheme.tooltipStyle.colors, TooltipMetrics.defaults(showDelay = 150.milliseconds)), @@ -61,7 +58,7 @@ fun ComponentsToolBar() { } @Composable -fun ComponentView(view: ViewInfo) { +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 new file mode 100644 index 0000000000..9ce6d04980 --- /dev/null +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt @@ -0,0 +1,100 @@ +package org.jetbrains.jewel.samples.showcase.views + +import SplitLayouts +import androidx.compose.runtime.getValue +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.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.showcase.components.Icons +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.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 +import org.jetbrains.jewel.samples.showcase.components.Tooltips +import org.jetbrains.jewel.ui.component.SplitLayoutState +import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility + +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 = ShowcaseIcons.Components.button, content = { Buttons() }), + ViewInfo( + title = "Radio Buttons", + 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 = "Progressbar", + iconKey = ShowcaseIcons.Components.progressBar, + content = { ProgressBar() }, + ), + 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 = ShowcaseIcons.Components.segmentedControls, + content = { SegmentedControls() }, + ), + 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 = "Scrollbars", + iconKey = ShowcaseIcons.Components.scrollbar, + content = { + Scrollbars( + alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, + whenScrollingScrollbarVisibility = whenScrollingScrollbarVisibility, + ) + }, + ), + ViewInfo( + title = "SplitLayout", + iconKey = ShowcaseIcons.Components.splitlayout, + content = { + SplitLayouts(outerSplitState, verticalSplitState, innerSplitState) { + outerSplitState = SplitLayoutState(0.5f) + verticalSplitState = SplitLayoutState(0.5f) + innerSplitState = SplitLayoutState(0.5f) + } + }, + ), + ViewInfo(title = "Banners", iconKey = ShowcaseIcons.Components.banners, content = { Banners() }), + ) + + private var _currentView: ViewInfo by mutableStateOf(views.first()) + + public fun getCurrentView(): ViewInfo = _currentView + + public fun setCurrentView(view: ViewInfo) { + _currentView = view + } +} 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 new file mode 100644 index 0000000000..34d0f3fab8 --- /dev/null +++ b/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ViewInfo.kt @@ -0,0 +1,28 @@ +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 + +@GenerateDataFunctions +public class KeyBinding( + public val macOs: Set = emptySet(), + public val windows: Set = emptySet(), + public val linux: Set = emptySet(), +) + +public fun KeyBinding.forCurrentOs(): Set = + when { + hostOs.isMacOS -> macOs + hostOs.isLinux -> linux + else -> windows + } + +@GenerateDataFunctions +public class ViewInfo( + public val title: String, + public val iconKey: IconKey, + public val keyboardShortcut: KeyBinding? = null, + public val content: @Composable () -> Unit, +) 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/build.gradle.kts b/samples/standalone/build.gradle.kts index 64734a8c55..92978173d8 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) @@ -18,6 +17,9 @@ 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(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") } @@ -62,4 +64,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/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/markdown/JewelReadme.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/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/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt index 5ddc0d580d..2a75f60aab 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/JewelReadme.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/JewelReadme.kt @@ -1,9 +1,9 @@ -package org.jetbrains.jewel.samples.standalone.view.markdown +package org.jetbrains.jewel.samples.standalone.markdown import org.intellij.lang.annotations.Language @Language("Markdown") -internal val JewelReadme = +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/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/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/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownCatalog.kt index 0e6453c726..b5a7a8b0df 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/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.standalone.view.markdown +package org.jetbrains.jewel.samples.standalone.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/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/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/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownEditor.kt index 73252dad60..d457cd5d4b 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/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.standalone.view.markdown +package org.jetbrains.jewel.samples.standalone.markdown import androidx.compose.foundation.background import androidx.compose.foundation.horizontalScroll @@ -34,7 +34,7 @@ import org.jetbrains.jewel.ui.component.TextArea import org.jetbrains.jewel.ui.theme.simpleListItemStyle @Composable -internal 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/view/markdown/MarkdownPreview.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt similarity index 88% rename from samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/markdown/MarkdownPreview.kt rename to samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/markdown/MarkdownPreview.kt index 40a796138b..c73b4af43a 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/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.standalone.view.markdown +package org.jetbrains.jewel.samples.standalone.markdown import androidx.compose.foundation.background import androidx.compose.foundation.layout.PaddingValues @@ -38,7 +38,7 @@ import org.jetbrains.jewel.ui.component.VerticallyScrollableContainer import org.jetbrains.jewel.ui.component.scrollbarContentSafePadding @Composable -internal fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSequence) { +fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSequence) { val isDark = JewelTheme.isDark val markdownStyling = remember(isDark) { if (isDark) MarkdownStyling.dark() else MarkdownStyling.light() } @@ -63,13 +63,15 @@ internal fun MarkdownPreview(modifier: Modifier = Modifier, rawMarkdown: CharSeq remember(markdownStyling, extensions) { if (isDark) { MarkdownBlockRenderer.dark( - styling = markdownStyling, - rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.dark(), markdownStyling)), + styling = MarkdownStyling.dark(), + rendererExtensions = + listOf(GitHubAlertRendererExtension(AlertStyling.dark(), MarkdownStyling.dark())), ) } else { MarkdownBlockRenderer.light( - styling = markdownStyling, - rendererExtensions = listOf(GitHubAlertRendererExtension(AlertStyling.light(), markdownStyling)), + 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 e35cfa48b4..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,9 +9,9 @@ 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.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/view/TitleBarView.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/TitleBarView.kt index 699f680da3..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 @@ -11,10 +11,10 @@ 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.ShowcaseIcons +import org.jetbrains.jewel.samples.showcase.views.forCurrentOs import org.jetbrains.jewel.samples.standalone.IntUiThemes -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons 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 @@ -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,24 @@ 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, - contentDescription = "Dark", - hints = arrayOf(Size(20)), - ) + Icon(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 b81e25bb92..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,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.showcase.components.ShowcaseIcons import org.jetbrains.jewel.samples.standalone.IntUiThemes -import org.jetbrains.jewel.samples.standalone.StandaloneSampleIcons import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel import org.jetbrains.jewel.ui.component.CheckboxRow import org.jetbrains.jewel.ui.component.Icon @@ -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/ComponentsViewModel.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt deleted file mode 100644 index 733d43c4ad..0000000000 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ComponentsViewModel.kt +++ /dev/null @@ -1,102 +0,0 @@ -package org.jetbrains.jewel.samples.standalone.viewmodel - -import SplitLayouts -import androidx.compose.runtime.getValue -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.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 -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 -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 -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 -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 - -object ComponentsViewModel { - 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 = - mutableStateListOf( - ViewInfo(title = "Buttons", iconKey = StandaloneSampleIcons.Components.button, content = { Buttons() }), - ViewInfo( - title = "Radio Buttons", - iconKey = StandaloneSampleIcons.Components.radioButton, - content = { RadioButtons() }, - ), - ViewInfo( - title = "Checkboxes", - iconKey = StandaloneSampleIcons.Components.checkbox, - content = { Checkboxes() }, - ), - ViewInfo( - title = "Dropdowns", - iconKey = StandaloneSampleIcons.Components.comboBox, - content = { Dropdowns() }, - ), - ViewInfo( - title = "Chips and trees", - iconKey = StandaloneSampleIcons.Components.tree, - content = { ChipsAndTrees() }, - ), - ViewInfo( - title = "Progressbar", - iconKey = StandaloneSampleIcons.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 = "Segmented Controls", - iconKey = StandaloneSampleIcons.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 = "TextAreas", - iconKey = StandaloneSampleIcons.Components.textArea, - content = { TextAreas() }, - ), - ViewInfo( - title = "TextFields", - iconKey = StandaloneSampleIcons.Components.textField, - content = { TextFields() }, - ), - ViewInfo( - title = "Scrollbars", - iconKey = StandaloneSampleIcons.Components.scrollbar, - content = { Scrollbars() }, - ), - ViewInfo( - title = "SplitLayout", - iconKey = StandaloneSampleIcons.Components.splitlayout, - content = { - SplitLayouts(outerSplitState, verticalSplitState, innerSplitState) { - outerSplitState = SplitLayoutState(0.5f) - verticalSplitState = SplitLayoutState(0.5f) - innerSplitState = SplitLayoutState(0.5f) - } - }, - ), - ViewInfo(title = "Banners", iconKey = StandaloneSampleIcons.Components.banners, content = { Banners() }), - ) - var currentView by mutableStateOf(views.first()) -} 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..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,17 +1,37 @@ 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 +import org.jetbrains.jewel.samples.showcase.views.ComponentsViewModel +import org.jetbrains.jewel.samples.showcase.views.KeyBinding +import org.jetbrains.jewel.samples.showcase.views.ViewInfo import org.jetbrains.jewel.samples.standalone.IntUiThemes -import org.jetbrains.jewel.samples.standalone.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 +import org.jetbrains.jewel.samples.standalone.viewmodel.MainViewModel.componentsViewModel +import org.jetbrains.jewel.ui.component.styling.ScrollbarVisibility object MainViewModel { + val componentsViewModel: ComponentsViewModel + get() { + val alwaysVisibleScrollbarVisibility = ScrollbarVisibility.AlwaysVisible.default() + val whenScrollingScrollbarVisibility = ScrollbarVisibility.WhenScrolling.default() + return ComponentsViewModel( + alwaysVisibleScrollbarVisibility = alwaysVisibleScrollbarVisibility, + whenScrollingScrollbarVisibility = whenScrollingScrollbarVisibility, + ) + } + fun onNavigateTo(destination: String) { currentView = views.first { viewInfo -> viewInfo.title == destination } } @@ -37,19 +57,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() }, + content = { ComponentsView(viewModel = componentsViewModel, Modifier.size(40.dp).padding(4.dp)) }, ), ViewInfo( title = "Markdown", - iconKey = StandaloneSampleIcons.markdown, + iconKey = ShowcaseIcons.markdown, keyboardShortcut = KeyBinding(macOs = setOf("⌥", "M"), windows = setOf("Alt", "M"), linux = setOf("Alt", "M")), content = { MarkdownDemo() }, diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ViewInfo.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ViewInfo.kt deleted file mode 100644 index dd3dd94c83..0000000000 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/viewmodel/ViewInfo.kt +++ /dev/null @@ -1,25 +0,0 @@ -package org.jetbrains.jewel.samples.standalone.viewmodel - -import androidx.compose.runtime.Composable -import org.jetbrains.jewel.ui.icon.IconKey -import org.jetbrains.skiko.hostOs - -data class KeyBinding( - val macOs: Set = emptySet(), - val windows: Set = emptySet(), - val linux: Set = emptySet(), -) - -fun KeyBinding.forCurrentOs(): Set = - when { - hostOs.isMacOS -> macOs - hostOs.isLinux -> linux - else -> windows - } - -data class ViewInfo( - val title: String, - val iconKey: IconKey, - val keyboardShortcut: KeyBinding? = null, - val content: @Composable () -> Unit, -) 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", diff --git a/ui/api/ui.api b/ui/api/ui.api index 31d18b5235..f6c11afc98 100644 --- a/ui/api/ui.api +++ b/ui/api/ui.api @@ -2771,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 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 }