diff --git a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt
index 9f41d0c669c88..a998d9eea1d59 100644
--- a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt
+++ b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt
@@ -104,6 +104,7 @@ internal fun createBridgeComponentStyling(theme: ThemeDefinition): ComponentStyl
undecoratedDropdownStyle = readUndecoratedDropdownStyle(menuStyle),
speedSearchStyle = readSpeedSearchStyle(),
searchMatchStyle = readSearchMatchStyle(theme.isDark),
+ popupAdStyle = readPopupAdStyle(),
)
}
diff --git a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgePopupAd.kt b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgePopupAd.kt
new file mode 100644
index 0000000000000..6e89b18445daa
--- /dev/null
+++ b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgePopupAd.kt
@@ -0,0 +1,42 @@
+package org.jetbrains.jewel.bridge.theme
+
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.ui.graphics.takeOrElse
+import androidx.compose.ui.unit.dp
+import com.intellij.ui.NewUiValue
+import com.intellij.util.ui.JBUI
+import org.jetbrains.jewel.bridge.retrieveColorOrUnspecified
+import org.jetbrains.jewel.bridge.retrieveInsetsAsPaddingValuesOrNull
+import org.jetbrains.jewel.bridge.toComposeColor
+import org.jetbrains.jewel.ui.component.styling.PopupAdColors
+import org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
+import org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+
+internal fun readPopupAdStyle(): PopupAdStyle {
+ // Get colors from LaF following JBUI.CurrentTheme.Advertiser pattern
+ // Uses Popup.Advertiser.* keys with fallback to SearchEverywhere.Advertiser.*
+ val backgroundColor =
+ retrieveColorOrUnspecified("Popup.Advertiser.background").takeOrElse {
+ retrieveColorOrUnspecified("SearchEverywhere.Advertiser.background").takeOrElse {
+ JBUI.CurrentTheme.Advertiser.background().toComposeColor()
+ }
+ }
+
+ val colors = PopupAdColors(background = backgroundColor)
+
+ // Get border insets from LaF following JBUI.CurrentTheme.Advertiser.borderInsets() pattern
+ // For new UI: insets(6, 20), for legacy UI: insets(5, 10, 5, 15)
+ val borderInsets =
+ retrieveInsetsAsPaddingValuesOrNull("Popup.Advertiser.borderInsets")
+ ?: if (NewUiValue.isEnabled()) {
+ // New UI default
+ PaddingValues(horizontal = 20.dp, vertical = 6.dp)
+ } else {
+ // Legacy UI default
+ PaddingValues(start = 10.dp, top = 5.dp, end = 15.dp, bottom = 5.dp)
+ }
+
+ val metrics = PopupAdMetrics(padding = borderInsets, minHeight = 20.dp)
+
+ return PopupAdStyle(colors = colors, metrics = metrics)
+}
diff --git a/platform/jewel/int-ui/int-ui-standalone/api-dump.txt b/platform/jewel/int-ui/int-ui-standalone/api-dump.txt
index 7ee937012b2f5..1c57687147845 100644
--- a/platform/jewel/int-ui/int-ui-standalone/api-dump.txt
+++ b/platform/jewel/int-ui/int-ui-standalone/api-dump.txt
@@ -394,6 +394,19 @@ f:org.jetbrains.jewel.intui.standalone.styling.IntUiOutlinedSplitButtonStyleFact
- bs:dark-NqQqPsg$default(org.jetbrains.jewel.intui.standalone.styling.IntUiOutlinedSplitButtonStyleFactory,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DividerMetrics,J,J,F,J,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.SplitButtonStyle
- f:light-NqQqPsg(org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DividerMetrics,J,J,F,J):org.jetbrains.jewel.ui.component.styling.SplitButtonStyle
- bs:light-NqQqPsg$default(org.jetbrains.jewel.intui.standalone.styling.IntUiOutlinedSplitButtonStyleFactory,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DividerMetrics,J,J,F,J,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.SplitButtonStyle
+f:org.jetbrains.jewel.intui.standalone.styling.IntUiPopupAdStylingKt
+- sf:dark(org.jetbrains.jewel.ui.component.styling.PopupAdStyle$Companion,org.jetbrains.jewel.ui.component.styling.PopupAdColors,org.jetbrains.jewel.ui.component.styling.PopupAdMetrics):org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+- bs:dark$default(org.jetbrains.jewel.ui.component.styling.PopupAdStyle$Companion,org.jetbrains.jewel.ui.component.styling.PopupAdColors,org.jetbrains.jewel.ui.component.styling.PopupAdMetrics,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+- sf:dark-4WTKRHQ(org.jetbrains.jewel.ui.component.styling.PopupAdColors$Companion,J):org.jetbrains.jewel.ui.component.styling.PopupAdColors
+- bs:dark-4WTKRHQ$default(org.jetbrains.jewel.ui.component.styling.PopupAdColors$Companion,J,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.PopupAdColors
+- sf:dark-wH6b6FI(org.jetbrains.jewel.ui.component.styling.PopupAdMetrics$Companion,androidx.compose.foundation.layout.PaddingValues,F):org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
+- bs:dark-wH6b6FI$default(org.jetbrains.jewel.ui.component.styling.PopupAdMetrics$Companion,androidx.compose.foundation.layout.PaddingValues,F,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
+- sf:light(org.jetbrains.jewel.ui.component.styling.PopupAdStyle$Companion,org.jetbrains.jewel.ui.component.styling.PopupAdColors,org.jetbrains.jewel.ui.component.styling.PopupAdMetrics):org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+- bs:light$default(org.jetbrains.jewel.ui.component.styling.PopupAdStyle$Companion,org.jetbrains.jewel.ui.component.styling.PopupAdColors,org.jetbrains.jewel.ui.component.styling.PopupAdMetrics,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+- sf:light-4WTKRHQ(org.jetbrains.jewel.ui.component.styling.PopupAdColors$Companion,J):org.jetbrains.jewel.ui.component.styling.PopupAdColors
+- bs:light-4WTKRHQ$default(org.jetbrains.jewel.ui.component.styling.PopupAdColors$Companion,J,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.PopupAdColors
+- sf:light-wH6b6FI(org.jetbrains.jewel.ui.component.styling.PopupAdMetrics$Companion,androidx.compose.foundation.layout.PaddingValues,F):org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
+- bs:light-wH6b6FI$default(org.jetbrains.jewel.ui.component.styling.PopupAdMetrics$Companion,androidx.compose.foundation.layout.PaddingValues,F,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
f:org.jetbrains.jewel.intui.standalone.styling.IntUiPopupContainerStylingKt
- sf:dark(org.jetbrains.jewel.ui.component.styling.PopupContainerStyle$Companion,org.jetbrains.jewel.ui.component.styling.PopupContainerColors,org.jetbrains.jewel.ui.component.styling.PopupContainerMetrics):org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
- bs:dark$default(org.jetbrains.jewel.ui.component.styling.PopupContainerStyle$Companion,org.jetbrains.jewel.ui.component.styling.PopupContainerColors,org.jetbrains.jewel.ui.component.styling.PopupContainerMetrics,I,java.lang.Object):org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
@@ -679,10 +692,12 @@ f:org.jetbrains.jewel.intui.standalone.theme.IntUiThemeKt
- sf:IntUiTheme(org.jetbrains.jewel.foundation.theme.ThemeDefinition,org.jetbrains.jewel.ui.ComponentStyling,Z,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
- sf:IntUiTheme(Z,Z,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
- bsf:dark(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle):org.jetbrains.jewel.ui.ComponentStyling
-- sf:dark(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle):org.jetbrains.jewel.ui.ComponentStyling
+- bsf:dark(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle):org.jetbrains.jewel.ui.ComponentStyling
+- sf:dark(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle,org.jetbrains.jewel.ui.component.styling.PopupAdStyle):org.jetbrains.jewel.ui.ComponentStyling
- bsf:dark(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle):org.jetbrains.jewel.ui.ComponentStyling
- bs:dark$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,I,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
- bs:dark$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle,I,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
+- bs:dark$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle,org.jetbrains.jewel.ui.component.styling.PopupAdStyle,I,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
- bs:dark$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
- bsf:darkThemeDefinition-aKPr-nQ(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,org.jetbrains.jewel.foundation.GlobalColors,org.jetbrains.jewel.foundation.GlobalMetrics,org.jetbrains.jewel.foundation.theme.ThemeColorPalette,org.jetbrains.jewel.foundation.theme.ThemeIconData,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,J):org.jetbrains.jewel.foundation.theme.ThemeDefinition
- bs:darkThemeDefinition-aKPr-nQ$default(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,org.jetbrains.jewel.foundation.GlobalColors,org.jetbrains.jewel.foundation.GlobalMetrics,org.jetbrains.jewel.foundation.theme.ThemeColorPalette,org.jetbrains.jewel.foundation.theme.ThemeIconData,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,J,I,java.lang.Object):org.jetbrains.jewel.foundation.theme.ThemeDefinition
@@ -690,10 +705,12 @@ f:org.jetbrains.jewel.intui.standalone.theme.IntUiThemeKt
- bs:darkThemeDefinition-uyGnus8$default(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,org.jetbrains.jewel.foundation.GlobalColors,org.jetbrains.jewel.foundation.GlobalMetrics,org.jetbrains.jewel.foundation.theme.ThemeColorPalette,org.jetbrains.jewel.foundation.theme.ThemeIconData,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,J,org.jetbrains.jewel.foundation.DisabledAppearanceValues,I,java.lang.Object):org.jetbrains.jewel.foundation.theme.ThemeDefinition
- sf:default(org.jetbrains.jewel.ui.ComponentStyling,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.ComponentStyling
- bsf:light(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle):org.jetbrains.jewel.ui.ComponentStyling
-- sf:light(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle):org.jetbrains.jewel.ui.ComponentStyling
+- bsf:light(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle):org.jetbrains.jewel.ui.ComponentStyling
+- sf:light(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle,org.jetbrains.jewel.ui.component.styling.PopupAdStyle):org.jetbrains.jewel.ui.ComponentStyling
- bsf:light(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle):org.jetbrains.jewel.ui.ComponentStyling
- bs:light$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,I,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
- bs:light$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle,I,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
+- bs:light$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle,org.jetbrains.jewel.ui.component.styling.PopupAdStyle,I,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
- bs:light$default(org.jetbrains.jewel.ui.ComponentStyling,org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,I,java.lang.Object):org.jetbrains.jewel.ui.ComponentStyling
- bsf:lightThemeDefinition-aKPr-nQ(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,org.jetbrains.jewel.foundation.GlobalColors,org.jetbrains.jewel.foundation.GlobalMetrics,org.jetbrains.jewel.foundation.theme.ThemeColorPalette,org.jetbrains.jewel.foundation.theme.ThemeIconData,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,J):org.jetbrains.jewel.foundation.theme.ThemeDefinition
- bs:lightThemeDefinition-aKPr-nQ$default(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,org.jetbrains.jewel.foundation.GlobalColors,org.jetbrains.jewel.foundation.GlobalMetrics,org.jetbrains.jewel.foundation.theme.ThemeColorPalette,org.jetbrains.jewel.foundation.theme.ThemeIconData,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,androidx.compose.ui.text.TextStyle,J,I,java.lang.Object):org.jetbrains.jewel.foundation.theme.ThemeDefinition
diff --git a/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiPopupAdStyling.kt b/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiPopupAdStyling.kt
new file mode 100644
index 0000000000000..15c683d8c2a13
--- /dev/null
+++ b/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiPopupAdStyling.kt
@@ -0,0 +1,38 @@
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.jewel.intui.standalone.styling
+
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import org.jetbrains.jewel.intui.core.theme.IntUiDarkTheme
+import org.jetbrains.jewel.ui.component.styling.PopupAdColors
+import org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
+import org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+
+public fun PopupAdStyle.Companion.light(
+ colors: PopupAdColors = PopupAdColors.light(),
+ metrics: PopupAdMetrics = PopupAdMetrics.light(),
+): PopupAdStyle = PopupAdStyle(colors = colors, metrics = metrics)
+
+public fun PopupAdColors.Companion.light(background: Color = Color(0xFFF2F2F2)): PopupAdColors =
+ PopupAdColors(background = background)
+
+public fun PopupAdMetrics.Companion.light(
+ padding: PaddingValues = PaddingValues(horizontal = 20.dp, vertical = 6.dp),
+ minHeight: Dp = 20.dp,
+): PopupAdMetrics = PopupAdMetrics(padding = padding, minHeight = minHeight)
+
+public fun PopupAdStyle.Companion.dark(
+ colors: PopupAdColors = PopupAdColors.dark(),
+ metrics: PopupAdMetrics = PopupAdMetrics.dark(),
+): PopupAdStyle = PopupAdStyle(colors = colors, metrics = metrics)
+
+public fun PopupAdColors.Companion.dark(
+ background: Color = IntUiDarkTheme.colors.grayOrNull(2) ?: Color(0xFF2B2B2B)
+): PopupAdColors = PopupAdColors(background = background)
+
+public fun PopupAdMetrics.Companion.dark(
+ padding: PaddingValues = PaddingValues(horizontal = 20.dp, vertical = 6.dp),
+ minHeight: Dp = 20.dp,
+): PopupAdMetrics = PopupAdMetrics(padding = padding, minHeight = minHeight)
diff --git a/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt b/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt
index 22e0ea17b1711..534e74efb5958 100644
--- a/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt
+++ b/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt
@@ -50,6 +50,7 @@ import org.jetbrains.jewel.ui.component.styling.InlineBannerStyles
import org.jetbrains.jewel.ui.component.styling.LazyTreeStyle
import org.jetbrains.jewel.ui.component.styling.LinkStyle
import org.jetbrains.jewel.ui.component.styling.MenuStyle
+import org.jetbrains.jewel.ui.component.styling.PopupAdStyle
import org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
import org.jetbrains.jewel.ui.component.styling.RadioButtonStyle
import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle
@@ -278,6 +279,7 @@ public fun ComponentStyling.dark(
undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.dark(),
speedSearchStyle: SpeedSearchStyle = SpeedSearchStyle.dark(),
searchMatchStyle: SearchMatchStyle = SearchMatchStyle.dark(),
+ popupAdStyle: PopupAdStyle = PopupAdStyle.dark(),
): ComponentStyling =
DefaultComponentStyling(
checkboxStyle = checkboxStyle,
@@ -315,6 +317,85 @@ public fun ComponentStyling.dark(
undecoratedDropdownStyle = undecoratedDropdownStyle,
speedSearchStyle = speedSearchStyle,
searchMatchStyle = searchMatchStyle,
+ popupAdStyle = popupAdStyle,
+ )
+
+@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
+@Deprecated("Use the variant with popupAdTextStyle.", level = DeprecationLevel.HIDDEN)
+public fun ComponentStyling.dark(
+ checkboxStyle: CheckboxStyle = CheckboxStyle.dark(),
+ chipStyle: ChipStyle = ChipStyle.dark(),
+ circularProgressStyle: CircularProgressStyle = CircularProgressStyle.dark(),
+ defaultBannerStyle: DefaultBannerStyles = DefaultBannerStyles.Default.dark(),
+ comboBoxStyle: ComboBoxStyle = ComboBoxStyle.Default.dark(),
+ defaultButtonStyle: ButtonStyle = ButtonStyle.Default.dark(),
+ defaultSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Default.dark(),
+ defaultTabStyle: TabStyle = TabStyle.Default.dark(),
+ dividerStyle: DividerStyle = DividerStyle.dark(),
+ dropdownStyle: DropdownStyle = DropdownStyle.Default.dark(),
+ editorTabStyle: TabStyle = TabStyle.Editor.dark(),
+ groupHeaderStyle: GroupHeaderStyle = GroupHeaderStyle.dark(),
+ horizontalProgressBarStyle: HorizontalProgressBarStyle = HorizontalProgressBarStyle.dark(),
+ iconButtonStyle: IconButtonStyle = IconButtonStyle.dark(),
+ transparentIconButtonStyle: IconButtonStyle = IconButtonStyle.darkTransparentBackground(),
+ inlineBannerStyle: InlineBannerStyles = InlineBannerStyles.Default.dark(),
+ lazyTreeStyle: LazyTreeStyle = LazyTreeStyle.dark(),
+ linkStyle: LinkStyle = LinkStyle.dark(),
+ menuStyle: MenuStyle = MenuStyle.dark(),
+ outlinedButtonStyle: ButtonStyle = ButtonStyle.Outlined.dark(),
+ popupContainerStyle: PopupContainerStyle = PopupContainerStyle.dark(),
+ outlinedSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Outlined.dark(),
+ radioButtonStyle: RadioButtonStyle = RadioButtonStyle.dark(),
+ scrollbarStyle: ScrollbarStyle = ScrollbarStyle.dark(),
+ segmentedControlButtonStyle: SegmentedControlButtonStyle = SegmentedControlButtonStyle.dark(),
+ segmentedControlStyle: SegmentedControlStyle = SegmentedControlStyle.dark(),
+ selectableLazyColumnStyle: SelectableLazyColumnStyle = SelectableLazyColumnStyle.dark(),
+ sliderStyle: SliderStyle = SliderStyle.dark(),
+ simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.dark(),
+ textAreaStyle: TextAreaStyle = TextAreaStyle.dark(),
+ textFieldStyle: TextFieldStyle = TextFieldStyle.dark(),
+ tooltipStyle: TooltipStyle = TooltipStyle.dark(autoHideBehavior = TooltipAutoHideBehavior.Normal),
+ undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.dark(),
+ speedSearchStyle: SpeedSearchStyle = SpeedSearchStyle.dark(),
+ searchMatchStyle: SearchMatchStyle = SearchMatchStyle.dark(),
+): ComponentStyling =
+ DefaultComponentStyling(
+ checkboxStyle = checkboxStyle,
+ chipStyle = chipStyle,
+ circularProgressStyle = circularProgressStyle,
+ defaultBannerStyle = defaultBannerStyle,
+ comboBoxStyle = comboBoxStyle,
+ defaultButtonStyle = defaultButtonStyle,
+ defaultDropdownStyle = dropdownStyle,
+ defaultSplitButtonStyle = defaultSplitButtonStyle,
+ defaultTabStyle = defaultTabStyle,
+ dividerStyle = dividerStyle,
+ editorTabStyle = editorTabStyle,
+ groupHeaderStyle = groupHeaderStyle,
+ horizontalProgressBarStyle = horizontalProgressBarStyle,
+ iconButtonStyle = iconButtonStyle,
+ transparentIconButtonStyle = transparentIconButtonStyle,
+ inlineBannerStyle = inlineBannerStyle,
+ lazyTreeStyle = lazyTreeStyle,
+ linkStyle = linkStyle,
+ menuStyle = menuStyle,
+ outlinedButtonStyle = outlinedButtonStyle,
+ popupContainerStyle = popupContainerStyle,
+ outlinedSplitButtonStyle = outlinedSplitButtonStyle,
+ radioButtonStyle = radioButtonStyle,
+ scrollbarStyle = scrollbarStyle,
+ segmentedControlButtonStyle = segmentedControlButtonStyle,
+ segmentedControlStyle = segmentedControlStyle,
+ selectableLazyColumnStyle = selectableLazyColumnStyle,
+ simpleListItemStyle = simpleListItemStyle,
+ sliderStyle = sliderStyle,
+ textAreaStyle = textAreaStyle,
+ textFieldStyle = textFieldStyle,
+ tooltipStyle = tooltipStyle,
+ undecoratedDropdownStyle = undecoratedDropdownStyle,
+ speedSearchStyle = speedSearchStyle,
+ searchMatchStyle = searchMatchStyle,
+ popupAdStyle = PopupAdStyle.dark(),
)
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -390,6 +471,7 @@ public fun ComponentStyling.dark(
undecoratedDropdownStyle = undecoratedDropdownStyle,
speedSearchStyle = SpeedSearchStyle.dark(),
searchMatchStyle = SearchMatchStyle.dark(),
+ popupAdStyle = PopupAdStyle.dark(),
)
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -464,9 +546,89 @@ public fun ComponentStyling.dark(
undecoratedDropdownStyle = undecoratedDropdownStyle,
speedSearchStyle = SpeedSearchStyle.dark(),
searchMatchStyle = SearchMatchStyle.dark(),
+ popupAdStyle = PopupAdStyle.dark(),
)
@Suppress("UnusedReceiverParameter")
+public fun ComponentStyling.light(
+ checkboxStyle: CheckboxStyle = CheckboxStyle.light(),
+ chipStyle: ChipStyle = ChipStyle.light(),
+ circularProgressStyle: CircularProgressStyle = CircularProgressStyle.light(),
+ defaultBannerStyle: DefaultBannerStyles = DefaultBannerStyles.Default.light(),
+ comboBoxStyle: ComboBoxStyle = ComboBoxStyle.Default.light(),
+ defaultButtonStyle: ButtonStyle = ButtonStyle.Default.light(),
+ defaultSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Default.light(),
+ defaultTabStyle: TabStyle = TabStyle.Default.light(),
+ dividerStyle: DividerStyle = DividerStyle.light(),
+ dropdownStyle: DropdownStyle = DropdownStyle.Default.light(),
+ editorTabStyle: TabStyle = TabStyle.Editor.light(),
+ groupHeaderStyle: GroupHeaderStyle = GroupHeaderStyle.light(),
+ horizontalProgressBarStyle: HorizontalProgressBarStyle = HorizontalProgressBarStyle.light(),
+ iconButtonStyle: IconButtonStyle = IconButtonStyle.light(),
+ transparentIconButtonStyle: IconButtonStyle = IconButtonStyle.lightTransparentBackground(),
+ inlineBannerStyle: InlineBannerStyles = InlineBannerStyles.Default.light(),
+ lazyTreeStyle: LazyTreeStyle = LazyTreeStyle.light(),
+ linkStyle: LinkStyle = LinkStyle.light(),
+ menuStyle: MenuStyle = MenuStyle.light(),
+ popupContainerStyle: PopupContainerStyle = PopupContainerStyle.light(),
+ outlinedButtonStyle: ButtonStyle = ButtonStyle.Outlined.light(),
+ outlinedSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Outlined.light(),
+ radioButtonStyle: RadioButtonStyle = RadioButtonStyle.light(),
+ scrollbarStyle: ScrollbarStyle = ScrollbarStyle.light(),
+ segmentedControlButtonStyle: SegmentedControlButtonStyle = SegmentedControlButtonStyle.light(),
+ segmentedControlStyle: SegmentedControlStyle = SegmentedControlStyle.light(),
+ sliderStyle: SliderStyle = SliderStyle.light(),
+ selectableLazyColumnStyle: SelectableLazyColumnStyle = SelectableLazyColumnStyle.light(),
+ simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.light(),
+ textAreaStyle: TextAreaStyle = TextAreaStyle.light(),
+ textFieldStyle: TextFieldStyle = TextFieldStyle.light(),
+ tooltipStyle: TooltipStyle = TooltipStyle.light(autoHideBehavior = TooltipAutoHideBehavior.Normal),
+ undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.light(),
+ speedSearchStyle: SpeedSearchStyle = SpeedSearchStyle.light(),
+ searchMatchStyle: SearchMatchStyle = SearchMatchStyle.light(),
+ popupAdStyle: PopupAdStyle = PopupAdStyle.light(),
+): ComponentStyling =
+ DefaultComponentStyling(
+ checkboxStyle = checkboxStyle,
+ chipStyle = chipStyle,
+ circularProgressStyle = circularProgressStyle,
+ comboBoxStyle = comboBoxStyle,
+ defaultBannerStyle = defaultBannerStyle,
+ defaultButtonStyle = defaultButtonStyle,
+ defaultDropdownStyle = dropdownStyle,
+ defaultSplitButtonStyle = defaultSplitButtonStyle,
+ defaultTabStyle = defaultTabStyle,
+ dividerStyle = dividerStyle,
+ editorTabStyle = editorTabStyle,
+ groupHeaderStyle = groupHeaderStyle,
+ horizontalProgressBarStyle = horizontalProgressBarStyle,
+ iconButtonStyle = iconButtonStyle,
+ transparentIconButtonStyle = transparentIconButtonStyle,
+ inlineBannerStyle = inlineBannerStyle,
+ lazyTreeStyle = lazyTreeStyle,
+ linkStyle = linkStyle,
+ menuStyle = menuStyle,
+ outlinedButtonStyle = outlinedButtonStyle,
+ popupContainerStyle = popupContainerStyle,
+ outlinedSplitButtonStyle = outlinedSplitButtonStyle,
+ radioButtonStyle = radioButtonStyle,
+ scrollbarStyle = scrollbarStyle,
+ segmentedControlButtonStyle = segmentedControlButtonStyle,
+ segmentedControlStyle = segmentedControlStyle,
+ selectableLazyColumnStyle = selectableLazyColumnStyle,
+ sliderStyle = sliderStyle,
+ simpleListItemStyle = simpleListItemStyle,
+ textAreaStyle = textAreaStyle,
+ textFieldStyle = textFieldStyle,
+ tooltipStyle = tooltipStyle,
+ undecoratedDropdownStyle = undecoratedDropdownStyle,
+ speedSearchStyle = speedSearchStyle,
+ searchMatchStyle = searchMatchStyle,
+ popupAdStyle = popupAdStyle,
+ )
+
+@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
+@Deprecated("Use the variant with popupAdTextStyle.", level = DeprecationLevel.HIDDEN)
public fun ComponentStyling.light(
checkboxStyle: CheckboxStyle = CheckboxStyle.light(),
chipStyle: ChipStyle = ChipStyle.light(),
@@ -540,6 +702,7 @@ public fun ComponentStyling.light(
undecoratedDropdownStyle = undecoratedDropdownStyle,
speedSearchStyle = speedSearchStyle,
searchMatchStyle = searchMatchStyle,
+ popupAdStyle = PopupAdStyle.light(),
)
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -615,6 +778,7 @@ public fun ComponentStyling.light(
undecoratedDropdownStyle = undecoratedDropdownStyle,
speedSearchStyle = SpeedSearchStyle.light(),
searchMatchStyle = SearchMatchStyle.light(),
+ popupAdStyle = PopupAdStyle.light(),
)
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -689,6 +853,7 @@ public fun ComponentStyling.light(
undecoratedDropdownStyle = undecoratedDropdownStyle,
speedSearchStyle = SpeedSearchStyle.light(),
searchMatchStyle = SearchMatchStyle.light(),
+ popupAdStyle = PopupAdStyle.light(),
)
@Composable
diff --git a/platform/jewel/samples/showcase/api-dump.txt b/platform/jewel/samples/showcase/api-dump.txt
index 4fdef35983bf1..907bffeb202f9 100644
--- a/platform/jewel/samples/showcase/api-dump.txt
+++ b/platform/jewel/samples/showcase/api-dump.txt
@@ -21,6 +21,7 @@ f:org.jetbrains.jewel.samples.showcase.ShowcaseIcons$Components
- f:getCheckbox():org.jetbrains.jewel.ui.icon.PathIconKey
- f:getComboBox():org.jetbrains.jewel.ui.icon.PathIconKey
- f:getLinks():org.jetbrains.jewel.ui.icon.PathIconKey
+- f:getMenu():org.jetbrains.jewel.ui.icon.PathIconKey
- f:getProgressBar():org.jetbrains.jewel.ui.icon.PathIconKey
- f:getRadioButton():org.jetbrains.jewel.ui.icon.PathIconKey
- f:getScrollbar():org.jetbrains.jewel.ui.icon.PathIconKey
@@ -57,6 +58,8 @@ f:org.jetbrains.jewel.samples.showcase.components.IconsKt
- sf:Icons(androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,I,I):V
f:org.jetbrains.jewel.samples.showcase.components.LinksKt
- sf:Links(androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,I,I):V
+f:org.jetbrains.jewel.samples.showcase.components.MenusKt
+- sf:Menus(androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,I,I):V
f:org.jetbrains.jewel.samples.showcase.components.ProgressBarKt
- sf:ProgressBar(androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,I,I):V
f:org.jetbrains.jewel.samples.showcase.components.RadioButtonsKt
diff --git a/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/ShowcaseIcons.kt b/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/ShowcaseIcons.kt
index 66bbb0bb37dd3..02bd15b92f536 100644
--- a/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/ShowcaseIcons.kt
+++ b/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/ShowcaseIcons.kt
@@ -24,6 +24,7 @@ public object ShowcaseIcons {
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 menu: PathIconKey = PathIconKey("icons/components/menu.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)
diff --git a/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Menus.kt b/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Menus.kt
new file mode 100644
index 0000000000000..f6c92e6eba03e
--- /dev/null
+++ b/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/Menus.kt
@@ -0,0 +1,252 @@
+// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.jewel.samples.showcase.components
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.dp
+import org.jetbrains.jewel.foundation.theme.JewelTheme
+import org.jetbrains.jewel.ui.component.DefaultButton
+import org.jetbrains.jewel.ui.component.GroupHeader
+import org.jetbrains.jewel.ui.component.PopupMenu
+import org.jetbrains.jewel.ui.component.Text
+import org.jetbrains.jewel.ui.component.VerticallyScrollableContainer
+import org.jetbrains.jewel.ui.component.separator
+import org.jetbrains.jewel.ui.icons.AllIconsKeys
+import org.jetbrains.jewel.ui.typography
+
+@Composable
+public fun Menus(modifier: Modifier = Modifier) {
+ VerticallyScrollableContainer(modifier.fillMaxSize()) {
+ Column(
+ modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp),
+ verticalArrangement = Arrangement.spacedBy(24.dp),
+ ) {
+ BasicMenus()
+ MenusWithIcons()
+ MenusWithSubmenus()
+ MenusWithAdContent()
+ }
+ }
+}
+
+@Composable
+private fun BasicMenus() {
+ Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(8.dp)) {
+ GroupHeader("Basic menus")
+
+ var showMenu by remember { mutableStateOf(false) }
+ var selectedItem by remember { mutableStateOf("Item 1") }
+
+ Box {
+ DefaultButton(onClick = { showMenu = true }) { Text("Show Menu") }
+
+ if (showMenu) {
+ PopupMenu(
+ onDismissRequest = {
+ showMenu = false
+ true
+ },
+ horizontalAlignment = Alignment.Start,
+ ) {
+ selectableItem(selected = selectedItem == "Item 1", onClick = { selectedItem = "Item 1" }) {
+ Text("Item 1")
+ }
+ selectableItem(selected = selectedItem == "Item 2", onClick = { selectedItem = "Item 2" }) {
+ Text("Item 2")
+ }
+ separator()
+ selectableItem(selected = selectedItem == "Item 3", onClick = { selectedItem = "Item 3" }) {
+ Text("Item 3")
+ }
+ }
+ }
+ }
+
+ Text("Selected: $selectedItem", color = JewelTheme.contentColor)
+ }
+}
+
+@Composable
+private fun MenusWithIcons() {
+ Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(8.dp)) {
+ GroupHeader("Menus with icons")
+
+ var showMenu by remember { mutableStateOf(false) }
+ var selectedAction by remember { mutableStateOf("Copy") }
+
+ Box {
+ DefaultButton(onClick = { showMenu = true }) { Text("Show Menu with Icons") }
+
+ if (showMenu) {
+ PopupMenu(
+ onDismissRequest = {
+ showMenu = false
+ true
+ },
+ horizontalAlignment = Alignment.Start,
+ ) {
+ selectableItem(
+ selected = selectedAction == "Copy",
+ onClick = { selectedAction = "Copy" },
+ iconKey = AllIconsKeys.Actions.Copy,
+ keybinding = setOf("Ctrl", "C"),
+ ) {
+ Text("Copy")
+ }
+ selectableItem(
+ selected = selectedAction == "Paste",
+ onClick = { selectedAction = "Paste" },
+ iconKey = AllIconsKeys.Actions.MenuPaste,
+ keybinding = setOf("Ctrl", "V"),
+ ) {
+ Text("Paste")
+ }
+ separator()
+ selectableItem(
+ selected = selectedAction == "Delete",
+ onClick = { selectedAction = "Delete" },
+ iconKey = AllIconsKeys.Actions.GC,
+ keybinding = setOf("Delete"),
+ ) {
+ Text("Delete")
+ }
+ }
+ }
+ }
+
+ Text("Last action: $selectedAction", color = JewelTheme.contentColor)
+ }
+}
+
+@Composable
+private fun MenusWithSubmenus() {
+ Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(8.dp)) {
+ GroupHeader("Menus with submenus")
+
+ var showMenu by remember { mutableStateOf(false) }
+ var selectedItem by remember { mutableStateOf("None") }
+
+ Box {
+ DefaultButton(onClick = { showMenu = true }) { Text("Show Menu with Submenus") }
+
+ if (showMenu) {
+ PopupMenu(
+ onDismissRequest = {
+ showMenu = false
+ true
+ },
+ horizontalAlignment = Alignment.Start,
+ ) {
+ selectableItem(
+ selected = selectedItem == "Direct Item",
+ onClick = { selectedItem = "Direct Item" },
+ ) {
+ Text("Direct Item")
+ }
+ separator()
+ submenu(
+ iconKey = AllIconsKeys.General.ChevronRight,
+ submenu = {
+ selectableItem(
+ selected = selectedItem == "Submenu Item 1",
+ onClick = { selectedItem = "Submenu Item 1" },
+ ) {
+ Text("Submenu Item 1")
+ }
+ selectableItem(
+ selected = selectedItem == "Submenu Item 2",
+ onClick = { selectedItem = "Submenu Item 2" },
+ ) {
+ Text("Submenu Item 2")
+ }
+ separator()
+ submenu(
+ submenu = {
+ selectableItem(
+ selected = selectedItem == "Nested Item 1",
+ onClick = { selectedItem = "Nested Item 1" },
+ ) {
+ Text("Nested Item 1")
+ }
+ selectableItem(
+ selected = selectedItem == "Nested Item 2",
+ onClick = { selectedItem = "Nested Item 2" },
+ ) {
+ Text("Nested Item 2")
+ }
+ },
+ content = { Text("Nested Submenu") },
+ )
+ },
+ content = { Text("More Options") },
+ )
+ }
+ }
+ }
+
+ Text("Selected: $selectedItem", color = JewelTheme.contentColor)
+ }
+}
+
+@Composable
+private fun MenusWithAdContent() {
+ Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(8.dp)) {
+ GroupHeader("Menus with ad content")
+
+ var showMenu by remember { mutableStateOf(false) }
+ var selectedMode by remember { mutableStateOf("Standard") }
+
+ Box {
+ DefaultButton(onClick = { showMenu = true }) { Text("Show Menu with Ad") }
+
+ if (showMenu) {
+ PopupMenu(
+ onDismissRequest = {
+ showMenu = false
+ true
+ },
+ horizontalAlignment = Alignment.Start,
+ adContent = {
+ Text(
+ text = "Tip: Use Ctrl+Space to quickly change modes",
+ style = JewelTheme.typography.small,
+ color = JewelTheme.globalColors.text.info,
+ )
+ },
+ ) {
+ selectableItem(selected = selectedMode == "Beginner", onClick = { selectedMode = "Beginner" }) {
+ Text("Beginner Mode")
+ }
+ selectableItem(selected = selectedMode == "Standard", onClick = { selectedMode = "Standard" }) {
+ Text("Standard Mode")
+ }
+ selectableItem(selected = selectedMode == "Advanced", onClick = { selectedMode = "Advanced" }) {
+ Text("Advanced Mode")
+ }
+ selectableItem(selected = selectedMode == "Expert", onClick = { selectedMode = "Expert" }) {
+ Text("Expert Mode")
+ }
+ selectableItem(selected = selectedMode == "Pro", onClick = { selectedMode = "Pro" }) {
+ Text("Pro Mode")
+ }
+ selectableItem(selected = selectedMode == "Admin", onClick = { selectedMode = "Admin" }) {
+ Text("Admin Mode")
+ }
+ }
+ }
+ }
+
+ Text("Current mode: $selectedMode", color = JewelTheme.contentColor)
+ }
+}
diff --git a/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt b/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt
index a904e30cb26af..36a4aeeb581cf 100644
--- a/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt
+++ b/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/views/ComponentsViewModel.kt
@@ -17,6 +17,7 @@ import org.jetbrains.jewel.samples.showcase.components.ChipsAndTrees
import org.jetbrains.jewel.samples.showcase.components.ComboBoxes
import org.jetbrains.jewel.samples.showcase.components.Icons
import org.jetbrains.jewel.samples.showcase.components.Links
+import org.jetbrains.jewel.samples.showcase.components.Menus
import org.jetbrains.jewel.samples.showcase.components.ProgressBar
import org.jetbrains.jewel.samples.showcase.components.RadioButtons
import org.jetbrains.jewel.samples.showcase.components.Scrollbars
@@ -51,6 +52,7 @@ public class ComponentsViewModel(
),
ViewInfo(title = "Checkboxes", iconKey = ShowcaseIcons.Components.checkbox, content = { Checkboxes() }),
ViewInfo(title = "Combo Boxes", iconKey = ShowcaseIcons.Components.comboBox, content = { ComboBoxes() }),
+ ViewInfo(title = "Menus", iconKey = ShowcaseIcons.Components.menu, content = { Menus() }),
ViewInfo(title = "Chips and trees", iconKey = ShowcaseIcons.Components.tree, content = { ChipsAndTrees() }),
ViewInfo(
title = "Progressbar",
diff --git a/platform/jewel/samples/showcase/src/main/resources/icons/components/menu.svg b/platform/jewel/samples/showcase/src/main/resources/icons/components/menu.svg
new file mode 100644
index 0000000000000..f70028b895bda
--- /dev/null
+++ b/platform/jewel/samples/showcase/src/main/resources/icons/components/menu.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/platform/jewel/samples/showcase/src/main/resources/icons/components/menu_dark.svg b/platform/jewel/samples/showcase/src/main/resources/icons/components/menu_dark.svg
new file mode 100644
index 0000000000000..78d8fa1f0a5ab
--- /dev/null
+++ b/platform/jewel/samples/showcase/src/main/resources/icons/components/menu_dark.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/platform/jewel/ui/api-dump.txt b/platform/jewel/ui/api-dump.txt
index 30483656ee0d1..5ecd839a5ccba 100644
--- a/platform/jewel/ui/api-dump.txt
+++ b/platform/jewel/ui/api-dump.txt
@@ -13,7 +13,8 @@ f:org.jetbrains.jewel.ui.DefaultComponentStyling
- org.jetbrains.jewel.ui.ComponentStyling
- sf:$stable:I
- b:(org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle):V
-- (org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle):V
+- b:(org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle):V
+- (org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SpeedSearchStyle,org.jetbrains.jewel.ui.component.styling.SearchMatchStyle,org.jetbrains.jewel.ui.component.styling.PopupAdStyle):V
- b:(org.jetbrains.jewel.ui.component.styling.CheckboxStyle,org.jetbrains.jewel.ui.component.styling.ChipStyle,org.jetbrains.jewel.ui.component.styling.CircularProgressStyle,org.jetbrains.jewel.ui.component.styling.DefaultBannerStyles,org.jetbrains.jewel.ui.component.styling.ComboBoxStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.DividerStyle,org.jetbrains.jewel.ui.component.styling.TabStyle,org.jetbrains.jewel.ui.component.styling.GroupHeaderStyle,org.jetbrains.jewel.ui.component.styling.HorizontalProgressBarStyle,org.jetbrains.jewel.ui.component.styling.IconButtonStyle,org.jetbrains.jewel.ui.component.styling.InlineBannerStyles,org.jetbrains.jewel.ui.component.styling.LazyTreeStyle,org.jetbrains.jewel.ui.component.styling.LinkStyle,org.jetbrains.jewel.ui.component.styling.MenuStyle,org.jetbrains.jewel.ui.component.styling.ButtonStyle,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,org.jetbrains.jewel.ui.component.styling.SplitButtonStyle,org.jetbrains.jewel.ui.component.styling.RadioButtonStyle,org.jetbrains.jewel.ui.component.styling.ScrollbarStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle,org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle,org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle,org.jetbrains.jewel.ui.component.styling.SimpleListItemStyle,org.jetbrains.jewel.ui.component.styling.SliderStyle,org.jetbrains.jewel.ui.component.styling.TextAreaStyle,org.jetbrains.jewel.ui.component.styling.TextFieldStyle,org.jetbrains.jewel.ui.component.styling.TooltipStyle,org.jetbrains.jewel.ui.component.styling.DropdownStyle):V
- equals(java.lang.Object):Z
- f:getCheckboxStyle():org.jetbrains.jewel.ui.component.styling.CheckboxStyle
@@ -36,6 +37,7 @@ f:org.jetbrains.jewel.ui.DefaultComponentStyling
- f:getMenuStyle():org.jetbrains.jewel.ui.component.styling.MenuStyle
- f:getOutlinedButtonStyle():org.jetbrains.jewel.ui.component.styling.ButtonStyle
- f:getOutlinedSplitButtonStyle():org.jetbrains.jewel.ui.component.styling.SplitButtonStyle
+- f:getPopupAdStyle():org.jetbrains.jewel.ui.component.styling.PopupAdStyle
- f:getPopupContainerStyle():org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
- f:getRadioButtonStyle():org.jetbrains.jewel.ui.component.styling.RadioButtonStyle
- f:getScrollbarStyle():org.jetbrains.jewel.ui.component.styling.ScrollbarStyle
@@ -533,8 +535,10 @@ f:org.jetbrains.jewel.ui.component.MenuItemState$Companion
f:org.jetbrains.jewel.ui.component.MenuKt
- sf:MenuSeparator(androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.MenuItemMetrics,org.jetbrains.jewel.ui.component.styling.MenuItemColors,androidx.compose.runtime.Composer,I,I):V
- sf:MenuSubmenuItem(androidx.compose.ui.Modifier,Z,Z,org.jetbrains.jewel.ui.icon.IconKey,androidx.compose.foundation.interaction.MutableInteractionSource,org.jetbrains.jewel.ui.component.styling.MenuStyle,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
-- sf:PopupMenu(kotlin.jvm.functions.Function1,androidx.compose.ui.Alignment$Horizontal,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.MenuStyle,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function1,androidx.compose.runtime.Composer,I,I):V
-- sf:PopupMenu(kotlin.jvm.functions.Function1,androidx.compose.ui.window.PopupPositionProvider,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.MenuStyle,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function1,androidx.compose.runtime.Composer,I,I):V
+- bsf:PopupMenu(kotlin.jvm.functions.Function1,androidx.compose.ui.Alignment$Horizontal,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.MenuStyle,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function1,androidx.compose.runtime.Composer,I,I):V
+- sf:PopupMenu(kotlin.jvm.functions.Function1,androidx.compose.ui.Alignment$Horizontal,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.MenuStyle,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function2,kotlin.jvm.functions.Function1,androidx.compose.runtime.Composer,I,I):V
+- bsf:PopupMenu(kotlin.jvm.functions.Function1,androidx.compose.ui.window.PopupPositionProvider,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.MenuStyle,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function1,androidx.compose.runtime.Composer,I,I):V
+- sf:PopupMenu(kotlin.jvm.functions.Function1,androidx.compose.ui.window.PopupPositionProvider,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.MenuStyle,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function2,kotlin.jvm.functions.Function1,androidx.compose.runtime.Composer,I,I):V
- sf:items(org.jetbrains.jewel.ui.component.MenuScope,I,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function3):V
- sf:items(org.jetbrains.jewel.ui.component.MenuScope,java.util.List,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function3):V
- sf:separator(org.jetbrains.jewel.ui.component.MenuScope):V
@@ -558,8 +562,11 @@ org.jetbrains.jewel.ui.component.MenuScope
- bs:selectableItemWithActionType$default(org.jetbrains.jewel.ui.component.MenuScope,Z,org.jetbrains.jewel.ui.icon.IconKey,org.jetbrains.jewel.ui.component.ContextMenuItemOptionAction,kotlin.jvm.functions.Function0,Z,kotlin.jvm.functions.Function2,I,java.lang.Object):V
- a:submenu(Z,org.jetbrains.jewel.ui.icon.IconKey,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2):V
- bs:submenu$default(org.jetbrains.jewel.ui.component.MenuScope,Z,org.jetbrains.jewel.ui.icon.IconKey,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2,I,java.lang.Object):V
+f:org.jetbrains.jewel.ui.component.PopupAdKt
+- sf:PopupAd(androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.PopupAdStyle,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
f:org.jetbrains.jewel.ui.component.PopupContainerKt
-- sf:PopupContainer(kotlin.jvm.functions.Function0,androidx.compose.ui.Alignment$Horizontal,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,androidx.compose.ui.window.PopupProperties,androidx.compose.ui.window.PopupPositionProvider,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
+- bsf:PopupContainer(kotlin.jvm.functions.Function0,androidx.compose.ui.Alignment$Horizontal,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,androidx.compose.ui.window.PopupProperties,androidx.compose.ui.window.PopupPositionProvider,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
+- sf:PopupContainer(kotlin.jvm.functions.Function0,androidx.compose.ui.Alignment$Horizontal,androidx.compose.ui.Modifier,org.jetbrains.jewel.ui.component.styling.PopupContainerStyle,androidx.compose.ui.window.PopupProperties,androidx.compose.ui.window.PopupPositionProvider,kotlin.jvm.functions.Function2,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
f:org.jetbrains.jewel.ui.component.PopupKt
- sf:Popup(androidx.compose.ui.window.PopupPositionProvider,androidx.compose.foundation.shape.CornerSize,kotlin.jvm.functions.Function0,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
- sf:Popup(androidx.compose.ui.window.PopupPositionProvider,kotlin.jvm.functions.Function0,androidx.compose.ui.window.PopupProperties,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2,androidx.compose.runtime.Composer,I,I):V
@@ -1644,6 +1651,32 @@ f:org.jetbrains.jewel.ui.component.styling.MenuStyle
f:org.jetbrains.jewel.ui.component.styling.MenuStyle$Companion
f:org.jetbrains.jewel.ui.component.styling.MenuStylingKt
- sf:getLocalMenuStyle():androidx.compose.runtime.ProvidableCompositionLocal
+f:org.jetbrains.jewel.ui.component.styling.PopupAdColors
+- sf:$stable:I
+- sf:Companion:org.jetbrains.jewel.ui.component.styling.PopupAdColors$Companion
+- equals(java.lang.Object):Z
+- f:getBackground-0d7_KjU():J
+- hashCode():I
+f:org.jetbrains.jewel.ui.component.styling.PopupAdColors$Companion
+f:org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
+- sf:$stable:I
+- sf:Companion:org.jetbrains.jewel.ui.component.styling.PopupAdMetrics$Companion
+- equals(java.lang.Object):Z
+- f:getMinHeight-D9Ej5fM():F
+- f:getPadding():androidx.compose.foundation.layout.PaddingValues
+- hashCode():I
+f:org.jetbrains.jewel.ui.component.styling.PopupAdMetrics$Companion
+f:org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+- sf:$stable:I
+- sf:Companion:org.jetbrains.jewel.ui.component.styling.PopupAdStyle$Companion
+- (org.jetbrains.jewel.ui.component.styling.PopupAdColors,org.jetbrains.jewel.ui.component.styling.PopupAdMetrics):V
+- equals(java.lang.Object):Z
+- f:getColors():org.jetbrains.jewel.ui.component.styling.PopupAdColors
+- f:getMetrics():org.jetbrains.jewel.ui.component.styling.PopupAdMetrics
+- hashCode():I
+f:org.jetbrains.jewel.ui.component.styling.PopupAdStyle$Companion
+f:org.jetbrains.jewel.ui.component.styling.PopupAdStyleKt
+- sf:getLocalPopupAdStyle():androidx.compose.runtime.ProvidableCompositionLocal
f:org.jetbrains.jewel.ui.component.styling.PopupContainerColors
- sf:$stable:I
- sf:Companion:org.jetbrains.jewel.ui.component.styling.PopupContainerColors$Companion
@@ -3964,6 +3997,7 @@ f:org.jetbrains.jewel.ui.theme.JewelThemeKt
- sf:getMenuStyle(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.component.styling.MenuStyle
- sf:getOutlinedButtonStyle(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.component.styling.ButtonStyle
- sf:getOutlinedSplitButtonStyle(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.component.styling.SplitButtonStyle
+- sf:getPopupAdStyle(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.component.styling.PopupAdStyle
- sf:getPopupContainerStyle(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
- sf:getRadioButtonStyle(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.component.styling.RadioButtonStyle
- sf:getScrollbarStyle(org.jetbrains.jewel.foundation.theme.JewelTheme$Companion,androidx.compose.runtime.Composer,I):org.jetbrains.jewel.ui.component.styling.ScrollbarStyle
diff --git a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt
index afb15cc4a2e6e..11c021f70d985 100644
--- a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt
+++ b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/DefaultComponentStyling.kt
@@ -42,6 +42,7 @@ import org.jetbrains.jewel.ui.component.styling.LocalLinkStyle
import org.jetbrains.jewel.ui.component.styling.LocalMenuStyle
import org.jetbrains.jewel.ui.component.styling.LocalOutlinedButtonStyle
import org.jetbrains.jewel.ui.component.styling.LocalOutlinedSplitButtonStyle
+import org.jetbrains.jewel.ui.component.styling.LocalPopupAdStyle
import org.jetbrains.jewel.ui.component.styling.LocalPopupContainerStyle
import org.jetbrains.jewel.ui.component.styling.LocalRadioButtonStyle
import org.jetbrains.jewel.ui.component.styling.LocalScrollbarStyle
@@ -58,6 +59,7 @@ import org.jetbrains.jewel.ui.component.styling.LocalTooltipStyle
import org.jetbrains.jewel.ui.component.styling.LocalTransparentIconButtonStyle
import org.jetbrains.jewel.ui.component.styling.LocalUndecoratedDropdownStyle
import org.jetbrains.jewel.ui.component.styling.MenuStyle
+import org.jetbrains.jewel.ui.component.styling.PopupAdStyle
import org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
import org.jetbrains.jewel.ui.component.styling.RadioButtonStyle
import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle
@@ -73,6 +75,7 @@ import org.jetbrains.jewel.ui.component.styling.TabStyle
import org.jetbrains.jewel.ui.component.styling.TextAreaStyle
import org.jetbrains.jewel.ui.component.styling.TextFieldStyle
import org.jetbrains.jewel.ui.component.styling.TooltipStyle
+import org.jetbrains.jewel.ui.component.styling.fallbackPopupAdStyle
import org.jetbrains.jewel.ui.component.styling.fallbackSearchMatchStyle
import org.jetbrains.jewel.ui.component.styling.fallbackSpeedSearchStyle
@@ -114,7 +117,84 @@ public class DefaultComponentStyling(
public val undecoratedDropdownStyle: DropdownStyle,
public val speedSearchStyle: SpeedSearchStyle,
public val searchMatchStyle: SearchMatchStyle,
+ public val popupAdStyle: PopupAdStyle,
) : ComponentStyling {
+ @Deprecated("Use the variant with popupAdStyle.", level = DeprecationLevel.HIDDEN)
+ public constructor(
+ checkboxStyle: CheckboxStyle,
+ chipStyle: ChipStyle,
+ circularProgressStyle: CircularProgressStyle,
+ defaultBannerStyle: DefaultBannerStyles,
+ comboBoxStyle: ComboBoxStyle,
+ defaultButtonStyle: ButtonStyle,
+ defaultDropdownStyle: DropdownStyle,
+ defaultSplitButtonStyle: SplitButtonStyle,
+ defaultTabStyle: TabStyle,
+ dividerStyle: DividerStyle,
+ editorTabStyle: TabStyle,
+ groupHeaderStyle: GroupHeaderStyle,
+ horizontalProgressBarStyle: HorizontalProgressBarStyle,
+ iconButtonStyle: IconButtonStyle,
+ transparentIconButtonStyle: IconButtonStyle,
+ inlineBannerStyle: InlineBannerStyles,
+ lazyTreeStyle: LazyTreeStyle,
+ linkStyle: LinkStyle,
+ menuStyle: MenuStyle,
+ outlinedButtonStyle: ButtonStyle,
+ popupContainerStyle: PopupContainerStyle,
+ outlinedSplitButtonStyle: SplitButtonStyle,
+ radioButtonStyle: RadioButtonStyle,
+ scrollbarStyle: ScrollbarStyle,
+ segmentedControlButtonStyle: SegmentedControlButtonStyle,
+ segmentedControlStyle: SegmentedControlStyle,
+ selectableLazyColumnStyle: SelectableLazyColumnStyle,
+ simpleListItemStyle: SimpleListItemStyle,
+ sliderStyle: SliderStyle,
+ textAreaStyle: TextAreaStyle,
+ textFieldStyle: TextFieldStyle,
+ tooltipStyle: TooltipStyle,
+ undecoratedDropdownStyle: DropdownStyle,
+ speedSearchStyle: SpeedSearchStyle,
+ searchMatchStyle: SearchMatchStyle,
+ ) : this(
+ checkboxStyle,
+ chipStyle,
+ circularProgressStyle,
+ defaultBannerStyle,
+ comboBoxStyle,
+ defaultButtonStyle,
+ defaultDropdownStyle,
+ defaultSplitButtonStyle,
+ defaultTabStyle,
+ dividerStyle,
+ editorTabStyle,
+ groupHeaderStyle,
+ horizontalProgressBarStyle,
+ iconButtonStyle,
+ transparentIconButtonStyle,
+ inlineBannerStyle,
+ lazyTreeStyle,
+ linkStyle,
+ menuStyle,
+ outlinedButtonStyle,
+ popupContainerStyle,
+ outlinedSplitButtonStyle,
+ radioButtonStyle,
+ scrollbarStyle,
+ segmentedControlButtonStyle,
+ segmentedControlStyle,
+ selectableLazyColumnStyle,
+ simpleListItemStyle,
+ sliderStyle,
+ textAreaStyle,
+ textFieldStyle,
+ tooltipStyle,
+ undecoratedDropdownStyle,
+ speedSearchStyle,
+ searchMatchStyle,
+ fallbackPopupAdStyle(),
+ )
+
@Deprecated("Use the variant with speedSearchStyle.", level = DeprecationLevel.HIDDEN)
public constructor(
checkboxStyle: CheckboxStyle,
@@ -186,6 +266,7 @@ public class DefaultComponentStyling(
undecoratedDropdownStyle,
fallbackSpeedSearchStyle(),
fallbackSearchMatchStyle(),
+ fallbackPopupAdStyle(),
)
@Deprecated("Use the variant with transparentIconButtonStyle.", level = DeprecationLevel.HIDDEN)
@@ -258,6 +339,7 @@ public class DefaultComponentStyling(
undecoratedDropdownStyle,
fallbackSpeedSearchStyle(),
fallbackSearchMatchStyle(),
+ fallbackPopupAdStyle(),
)
@Composable
@@ -300,6 +382,7 @@ public class DefaultComponentStyling(
LocalUndecoratedDropdownStyle provides undecoratedDropdownStyle,
LocalSpeedSearchStyle provides speedSearchStyle,
LocalSearchMatchStyle provides searchMatchStyle,
+ LocalPopupAdStyle provides popupAdStyle,
)
override fun equals(other: Any?): Boolean {
@@ -343,6 +426,7 @@ public class DefaultComponentStyling(
if (undecoratedDropdownStyle != other.undecoratedDropdownStyle) return false
if (speedSearchStyle != other.speedSearchStyle) return false
if (searchMatchStyle != other.searchMatchStyle) return false
+ if (popupAdStyle != other.popupAdStyle) return false
return true
}
@@ -383,6 +467,7 @@ public class DefaultComponentStyling(
result = 31 * result + undecoratedDropdownStyle.hashCode()
result = 31 * result + speedSearchStyle.hashCode()
result = 31 * result + searchMatchStyle.hashCode()
+ result = 31 * result + popupAdStyle.hashCode()
return result
}
@@ -422,6 +507,7 @@ public class DefaultComponentStyling(
"tooltipStyle=$tooltipStyle, " +
"undecoratedDropdownStyle=$undecoratedDropdownStyle, " +
"speedSearchStyle=$speedSearchStyle, " +
- "searchMatchStyle=$searchMatchStyle" +
+ "searchMatchStyle=$searchMatchStyle," +
+ "popupAdStyle=$popupAdStyle" +
")"
}
diff --git a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/Menu.kt b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/Menu.kt
index 19ace84bffb7d..b79f0f64b0e25 100644
--- a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/Menu.kt
+++ b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/Menu.kt
@@ -39,6 +39,7 @@ import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.focus.FocusRequester
@@ -108,6 +109,7 @@ import org.jetbrains.skiko.hostOs
* @param modifier Modifier to be applied to the menu container
* @param style The visual styling configuration for the menu and its items
* @param popupProperties Properties controlling the popup window behavior
+ * @param adContent Optional composable content to display ad content at the bottom
* @param content The menu content builder using [MenuScope]
* @see javax.swing.JPopupMenu
*/
@@ -118,6 +120,7 @@ public fun PopupMenu(
modifier: Modifier = Modifier,
style: MenuStyle = JewelTheme.menuStyle,
popupProperties: PopupProperties = PopupProperties(focusable = true),
+ adContent: (@Composable () -> Unit)? = null,
content: MenuScope.() -> Unit,
) {
val density = LocalDensity.current
@@ -132,7 +135,65 @@ public fun PopupMenu(
)
}
- PopupMenu(onDismissRequest, popupPositionProvider, modifier, style, popupProperties, content)
+ PopupMenuImpl(
+ onDismissRequest = onDismissRequest,
+ popupPositionProvider = popupPositionProvider,
+ modifier = modifier,
+ style = style,
+ popupProperties = popupProperties,
+ adContent = adContent,
+ content = content,
+ )
+}
+
+/**
+ * A popup menu component that follows the standard visual styling with customizable content.
+ *
+ * Provides a floating menu that can be used for context menus, dropdown menus, and other popup menu scenarios. The menu
+ * supports keyboard navigation, icons, keybindings, and nested submenus.
+ *
+ * **Guidelines:** [on IJP SDK webhelp](https://plugins.jetbrains.com/docs/intellij/popups-and-menus.html)
+ *
+ * **Swing equivalent:** [`JPopupMenu`](https://docs.oracle.com/javase/tutorial/uiswing/components/menu.html#popup)
+ *
+ * @param onDismissRequest Called when the menu should be dismissed, returns true if the dismissal was handled
+ * @param horizontalAlignment The horizontal alignment of the menu relative to its anchor point
+ * @param modifier Modifier to be applied to the menu container
+ * @param style The visual styling configuration for the menu and its items
+ * @param popupProperties Properties controlling the popup window behavior
+ * @param content The menu content builder using [MenuScope]
+ * @see javax.swing.JPopupMenu
+ */
+@Composable
+@Deprecated("Use the variant with adContent.", level = DeprecationLevel.HIDDEN)
+public fun PopupMenu(
+ onDismissRequest: (InputMode) -> Boolean,
+ horizontalAlignment: Alignment.Horizontal,
+ modifier: Modifier = Modifier,
+ style: MenuStyle = JewelTheme.menuStyle,
+ popupProperties: PopupProperties = PopupProperties(focusable = true),
+ content: MenuScope.() -> Unit,
+) {
+ val density = LocalDensity.current
+
+ val popupPositionProvider =
+ remember(style.metrics.offset, style.metrics.menuMargin, horizontalAlignment, density) {
+ AnchorVerticalMenuPositionProvider(
+ contentOffset = style.metrics.offset,
+ contentMargin = style.metrics.menuMargin,
+ alignment = horizontalAlignment,
+ density = density,
+ )
+ }
+
+ PopupMenuImpl(
+ onDismissRequest = onDismissRequest,
+ popupPositionProvider = popupPositionProvider,
+ modifier = modifier,
+ style = style,
+ popupProperties = popupProperties,
+ content = content,
+ )
}
/**
@@ -150,6 +211,7 @@ public fun PopupMenu(
* @param modifier Modifier to be applied to the menu container
* @param style The visual styling configuration for the menu and its items
* @param popupProperties Properties controlling the popup window behavior
+ * @param adContent Optional composable content to display ad content at the bottom
* @param content The menu content builder using [MenuScope]
* @see javax.swing.JPopupMenu
*/
@@ -160,6 +222,66 @@ public fun PopupMenu(
modifier: Modifier = Modifier,
style: MenuStyle = JewelTheme.menuStyle,
popupProperties: PopupProperties = PopupProperties(focusable = true),
+ adContent: (@Composable () -> Unit)? = null,
+ content: MenuScope.() -> Unit,
+) {
+ PopupMenuImpl(
+ onDismissRequest = onDismissRequest,
+ popupPositionProvider = popupPositionProvider,
+ modifier = modifier,
+ style = style,
+ popupProperties = popupProperties,
+ adContent = adContent,
+ content = content,
+ )
+}
+
+/**
+ * A popup menu component that follows the standard visual styling with customizable content.
+ *
+ * Provides a floating menu that can be used for context menus, dropdown menus, and other popup menu scenarios. The menu
+ * supports keyboard navigation, icons, keybindings, and nested submenus.
+ *
+ * **Guidelines:** [on IJP SDK webhelp](https://plugins.jetbrains.com/docs/intellij/popups-and-menus.html)
+ *
+ * **Swing equivalent:** [`JPopupMenu`](https://docs.oracle.com/javase/tutorial/uiswing/components/menu.html#popup)
+ *
+ * @param onDismissRequest Called when the menu should be dismissed, returns true if the dismissal was handled
+ * @param popupPositionProvider Determines the position of the popup menu on the screen.
+ * @param modifier Modifier to be applied to the menu container
+ * @param style The visual styling configuration for the menu and its items
+ * @param popupProperties Properties controlling the popup window behavior
+ * @param content The menu content builder using [MenuScope]
+ * @see javax.swing.JPopupMenu
+ */
+@Composable
+@Deprecated("Use the variant with adContent.", level = DeprecationLevel.HIDDEN)
+public fun PopupMenu(
+ onDismissRequest: (InputMode) -> Boolean,
+ popupPositionProvider: PopupPositionProvider,
+ modifier: Modifier = Modifier,
+ style: MenuStyle = JewelTheme.menuStyle,
+ popupProperties: PopupProperties = PopupProperties(focusable = true),
+ content: MenuScope.() -> Unit,
+) {
+ PopupMenuImpl(
+ onDismissRequest = onDismissRequest,
+ popupPositionProvider = popupPositionProvider,
+ modifier = modifier,
+ style = style,
+ popupProperties = popupProperties,
+ content = content,
+ )
+}
+
+@Composable
+private fun PopupMenuImpl(
+ onDismissRequest: (InputMode) -> Boolean,
+ popupPositionProvider: PopupPositionProvider,
+ modifier: Modifier = Modifier,
+ style: MenuStyle = JewelTheme.menuStyle,
+ popupProperties: PopupProperties = PopupProperties(focusable = true),
+ adContent: (@Composable () -> Unit)? = null,
content: MenuScope.() -> Unit,
) {
var focusManager: FocusManager? by remember { mutableStateOf(null) }
@@ -186,7 +308,7 @@ public fun PopupMenu(
OverrideDarkMode(style.isDark) {
CompositionLocalProvider(LocalMenuController provides menuController, LocalMenuStyle provides style) {
- MenuContent(modifier = modifier, content = content)
+ MenuContent(modifier = modifier, adContent = adContent, content = content)
}
}
}
@@ -199,6 +321,7 @@ public fun PopupMenu(
public fun MenuContent(
modifier: Modifier = Modifier,
style: MenuStyle = JewelTheme.menuStyle,
+ adContent: (@Composable () -> Unit)? = null,
content: MenuScope.() -> Unit,
) {
val items by remember(content) { derivedStateOf { content.asList() } }
@@ -247,17 +370,21 @@ public fun MenuContent(
.width(IntrinsicSize.Max)
.onHover { localMenuController.onHoveredChange(it) }
) {
- Column(Modifier.verticalScroll(scrollState).padding(style.metrics.contentPadding)) {
- var selectedSubMenu by remember { mutableStateOf(null) }
- items.forEach { item ->
- MenuItem(
- item = item,
- showIcons = anyItemHasIcon,
- showKeybindings = anyItemHasKeybinding,
- selectedSubMenu = selectedSubMenu,
- setSelectedSubMenu = { selectedSubMenu = it },
- )
+ Column(Modifier.clip(menuShape).verticalScroll(scrollState)) {
+ Column(Modifier.padding(style.metrics.contentPadding)) {
+ var selectedSubMenu by remember { mutableStateOf(null) }
+ items.forEach { item ->
+ MenuItem(
+ item = item,
+ showIcons = anyItemHasIcon,
+ showKeybindings = anyItemHasKeybinding,
+ selectedSubMenu = selectedSubMenu,
+ setSelectedSubMenu = { selectedSubMenu = it },
+ )
+ }
}
+
+ adContent?.let { PopupAd(modifier = Modifier.fillMaxWidth()) { it() } }
}
Box(modifier = Modifier.matchParentSize()) {
diff --git a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/PopupAd.kt b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/PopupAd.kt
new file mode 100644
index 0000000000000..884b9bc107c19
--- /dev/null
+++ b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/PopupAd.kt
@@ -0,0 +1,47 @@
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.jewel.ui.component
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.defaultMinSize
+import androidx.compose.foundation.layout.padding
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import org.jetbrains.jewel.foundation.theme.JewelTheme
+import org.jetbrains.jewel.ui.component.styling.PopupAdStyle
+import org.jetbrains.jewel.ui.theme.popupAdStyle
+
+/**
+ * A composable that provides a styled container for supplementary content at the bottom of popups, similar to
+ * IntelliJ's
+ * [`AbstractPopup.setAdText(String)`](https://github.com/JetBrains/intellij-community/blob/master/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java#L464)
+ *
+ * This component is typically used to display hints, shortcuts, or additional information in popup menus and combo
+ * boxes.
+ *
+ * **Usage example:**
+ * [`ComboBoxes.kt`](https://github.com/JetBrains/intellij-community/blob/master/platform/jewel/samples/showcase/src/main/kotlin/org/jetbrains/jewel/samples/showcase/components/ComboBoxes.kt)
+ *
+ * @param modifier The modifier to be applied to the container.
+ * @param style The style to apply to the container. Defaults to the theme's popup ad style.
+ * @param content The content to display inside the container.
+ */
+@Composable
+public fun PopupAd(
+ modifier: Modifier = Modifier,
+ style: PopupAdStyle = JewelTheme.popupAdStyle,
+ content: @Composable () -> Unit,
+) {
+ val colors = style.colors
+ val metrics = style.metrics
+
+ Box(
+ modifier =
+ modifier
+ .background(colors.background)
+ .defaultMinSize(minHeight = metrics.minHeight)
+ .padding(metrics.padding)
+ ) {
+ content()
+ }
+}
diff --git a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/PopupContainer.kt b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/PopupContainer.kt
index b98d0695e4c80..bfdd4c624b1c2 100644
--- a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/PopupContainer.kt
+++ b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/PopupContainer.kt
@@ -1,7 +1,8 @@
package org.jetbrains.jewel.ui.component
import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@@ -16,6 +17,36 @@ import org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
import org.jetbrains.jewel.ui.popupShadowAndBorder
import org.jetbrains.jewel.ui.theme.popupContainerStyle
+/**
+ * A reusable popup container that provides standard visual styling for floating content.
+ *
+ * Creates a popup window with configurable positioning, appearance, and optional advertising content at the bottom. The
+ * container automatically applies shadows, borders, rounded corners, and background colors based on the provided style,
+ * ensuring visual consistency across the application.
+ *
+ * **Usage example:**
+ *
+ * ```kotlin
+ * PopupContainer(
+ * onDismissRequest = { /* handle dismiss */ },
+ * horizontalAlignment = Alignment.Start,
+ * adContent = { Text("Tip: Use Ctrl+Space for suggestions") }
+ * ) {
+ * // Your popup content here
+ * Text("Popup content")
+ * }
+ * ```
+ *
+ * @param onDismissRequest Called when the popup should be dismissed (e.g., clicking outside or pressing Esc)
+ * @param horizontalAlignment The horizontal alignment of the popup relative to its anchor point
+ * @param modifier Modifier to be applied to the container
+ * @param style The visual styling configuration for the popup container
+ * @param popupProperties Properties controlling the popup window behavior
+ * @param popupPositionProvider Determines the position of the popup on the screen
+ * @param adContent Optional composable content to display at the bottom of the popup, typically used for hints or
+ * promotional messages
+ * @param content The main content to display inside the popup container
+ */
@Composable
public fun PopupContainer(
onDismissRequest: () -> Unit,
@@ -30,6 +61,7 @@ public fun PopupContainer(
alignment = horizontalAlignment,
density = LocalDensity.current,
),
+ adContent: (@Composable () -> Unit)? = null,
content: @Composable () -> Unit,
) {
Popup(
@@ -42,7 +74,7 @@ public fun PopupContainer(
val colors = style.colors
val popupShape = RoundedCornerShape(style.metrics.cornerSize)
- Box(
+ Column(
modifier =
modifier
.popupShadowAndBorder(
@@ -56,7 +88,37 @@ public fun PopupContainer(
.clip(popupShape)
) {
content()
+
+ adContent?.let { PopupAd(modifier = Modifier.fillMaxWidth()) { it() } }
}
}
}
}
+
+@Composable
+@Deprecated(message = "Deprecated in favor of the method with 'adContent' parameter", level = DeprecationLevel.HIDDEN)
+public fun PopupContainer(
+ onDismissRequest: () -> Unit,
+ horizontalAlignment: Alignment.Horizontal,
+ modifier: Modifier = Modifier,
+ style: PopupContainerStyle = JewelTheme.popupContainerStyle,
+ popupProperties: PopupProperties = PopupProperties(focusable = true),
+ popupPositionProvider: PopupPositionProvider =
+ AnchorVerticalMenuPositionProvider(
+ contentOffset = style.metrics.offset,
+ contentMargin = style.metrics.menuMargin,
+ alignment = horizontalAlignment,
+ density = LocalDensity.current,
+ ),
+ content: @Composable () -> Unit,
+) {
+ PopupContainer(
+ onDismissRequest = onDismissRequest,
+ horizontalAlignment = horizontalAlignment,
+ modifier = modifier,
+ style = style,
+ popupProperties = popupProperties,
+ popupPositionProvider = popupPositionProvider,
+ content = content,
+ )
+}
diff --git a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/PopupAdStyle.kt b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/PopupAdStyle.kt
new file mode 100644
index 0000000000000..7b0d419196ced
--- /dev/null
+++ b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/styling/PopupAdStyle.kt
@@ -0,0 +1,96 @@
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.jewel.ui.component.styling
+
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.runtime.Immutable
+import androidx.compose.runtime.ProvidableCompositionLocal
+import androidx.compose.runtime.Stable
+import androidx.compose.runtime.staticCompositionLocalOf
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import org.jetbrains.jewel.foundation.GenerateDataFunctions
+
+@Stable
+@GenerateDataFunctions
+public class PopupAdStyle(public val colors: PopupAdColors, public val metrics: PopupAdMetrics) {
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+
+ other as PopupAdStyle
+
+ if (colors != other.colors) return false
+ if (metrics != other.metrics) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int {
+ var result = colors.hashCode()
+ result = 31 * result + metrics.hashCode()
+ return result
+ }
+
+ override fun toString(): String = "PopupAdStyle(colors=$colors, metrics=$metrics)"
+
+ public companion object
+}
+
+@Immutable
+@GenerateDataFunctions
+public class PopupAdColors(public val background: Color) {
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+
+ other as PopupAdColors
+
+ if (background != other.background) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = background.hashCode()
+
+ override fun toString(): String = "PopupAdColors(background=$background)"
+
+ public companion object
+}
+
+@Stable
+@GenerateDataFunctions
+public class PopupAdMetrics(public val padding: PaddingValues, public val minHeight: Dp) {
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+
+ other as PopupAdMetrics
+
+ if (padding != other.padding) return false
+ if (minHeight != other.minHeight) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int {
+ var result = padding.hashCode()
+ result = 31 * result + minHeight.hashCode()
+ return result
+ }
+
+ override fun toString(): String = "PopupAdMetrics(padding=$padding, minHeight=$minHeight)"
+
+ public companion object
+}
+
+public val LocalPopupAdStyle: ProvidableCompositionLocal = staticCompositionLocalOf {
+ error("No PopupAdStyle provided. Have you forgotten the theme?")
+}
+
+/** Creating a fallback style for compatibility with older versions. */
+internal fun fallbackPopupAdStyle() =
+ PopupAdStyle(
+ colors = PopupAdColors(background = Color(0xFFF2F2F2)),
+ metrics = PopupAdMetrics(padding = PaddingValues(horizontal = 20.dp, vertical = 6.dp), minHeight = 20.dp),
+ )
diff --git a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt
index edfd99fbc3e6c..98b904fbea6bf 100644
--- a/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt
+++ b/platform/jewel/ui/src/main/kotlin/org/jetbrains/jewel/ui/theme/JewelTheme.kt
@@ -51,6 +51,7 @@ import org.jetbrains.jewel.ui.component.styling.LocalLinkStyle
import org.jetbrains.jewel.ui.component.styling.LocalMenuStyle
import org.jetbrains.jewel.ui.component.styling.LocalOutlinedButtonStyle
import org.jetbrains.jewel.ui.component.styling.LocalOutlinedSplitButtonStyle
+import org.jetbrains.jewel.ui.component.styling.LocalPopupAdStyle
import org.jetbrains.jewel.ui.component.styling.LocalPopupContainerStyle
import org.jetbrains.jewel.ui.component.styling.LocalRadioButtonStyle
import org.jetbrains.jewel.ui.component.styling.LocalScrollbarStyle
@@ -66,6 +67,7 @@ import org.jetbrains.jewel.ui.component.styling.LocalTextFieldStyle
import org.jetbrains.jewel.ui.component.styling.LocalTooltipStyle
import org.jetbrains.jewel.ui.component.styling.LocalTransparentIconButtonStyle
import org.jetbrains.jewel.ui.component.styling.MenuStyle
+import org.jetbrains.jewel.ui.component.styling.PopupAdStyle
import org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
import org.jetbrains.jewel.ui.component.styling.RadioButtonStyle
import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle
@@ -196,6 +198,9 @@ public val JewelTheme.Companion.speedSearchStyle: SpeedSearchStyle
public val JewelTheme.Companion.searchMatchStyle: SearchMatchStyle
@Composable @ReadOnlyComposable get() = LocalSearchMatchStyle.current
+public val JewelTheme.Companion.popupAdStyle: PopupAdStyle
+ @Composable @ReadOnlyComposable get() = LocalPopupAdStyle.current
+
@Composable
public fun BaseJewelTheme(theme: ThemeDefinition, styling: ComponentStyling, content: @Composable () -> Unit) {
BaseJewelTheme(theme, styling, swingCompatMode = false, content)