Skip to content

Commit 2df48f8

Browse files
committed
[JEWEL-849] Add support to filter items with FilterableLazyColumn
- The IDE has one pattern for searching on lists that use a TextField on top of the content - The search text is then used to filter the content from the list bellow - To support that feature, we will introduce a few new components to Jewel - The first one is the SearchTextField - The main goal is to render the search text input, with the correct icons and behaviors - About behavior, for now, only the history popup and the clear actions are supported - The second one is the SearchArea - The main goal is to render the search input, with a divider and an additional content passed in the slot - The idea is to replicate SpeedSearchArea so users could expand the idea as needed, with their own components - The third and last is the FilterableLazyColumn - The goal is to render the selectable lazy list with additional support for filtering - It automatically handles callbacks (such as onSelectedIndexesChange) that should return the external index, instead of the filtered one - It also handles auto scroll to the selected entry on typing, and if none of the selected items is in the filtered content, select a new one to ensure the user has a valid selection
1 parent 1fe229b commit 2df48f8

File tree

26 files changed

+2421
-261
lines changed

26 files changed

+2421
-261
lines changed

platform/jewel/foundation/api-dump.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,8 @@ e:org.jetbrains.jewel.foundation.search.MatchingCaseSensitivity
622622
- s:values():org.jetbrains.jewel.foundation.search.MatchingCaseSensitivity[]
623623
org.jetbrains.jewel.foundation.search.SpeedSearchMatcher
624624
- sf:Companion:org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$Companion
625-
- a:matches(java.lang.String):org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$MatchResult
625+
- a:matches(java.lang.CharSequence):org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$MatchResult
626+
- matches(java.lang.String):org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$MatchResult
626627
f:org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$Companion
627628
- f:exactSubstringMatcher(java.lang.String,Z):org.jetbrains.jewel.foundation.search.SpeedSearchMatcher
628629
- bs:exactSubstringMatcher$default(org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$Companion,java.lang.String,Z,I,java.lang.Object):org.jetbrains.jewel.foundation.search.SpeedSearchMatcher
@@ -643,9 +644,9 @@ f:org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$MatchResult$NoMatch
643644
- sf:$stable:I
644645
- sf:INSTANCE:org.jetbrains.jewel.foundation.search.SpeedSearchMatcher$MatchResult$NoMatch
645646
f:org.jetbrains.jewel.foundation.search.SpeedSearchMatcherKt
646-
- sf:doesMatch(org.jetbrains.jewel.foundation.search.SpeedSearchMatcher,java.lang.String):Z
647647
- sf:filter(java.lang.Iterable,org.jetbrains.jewel.foundation.search.SpeedSearchMatcher):java.util.List
648648
- sf:filter(java.lang.Iterable,org.jetbrains.jewel.foundation.search.SpeedSearchMatcher,kotlin.jvm.functions.Function1):java.util.List
649+
- sf:matches(java.lang.CharSequence,org.jetbrains.jewel.foundation.search.SpeedSearchMatcher):Z
649650
f:org.jetbrains.jewel.foundation.state.CommonStateBitMask
650651
- sf:$stable:I
651652
- sf:FIRST_AVAILABLE_OFFSET:I

platform/jewel/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/search/SpeedSearchMatcher.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,8 @@ public enum class MatchingCaseSensitivity {
178178
@InternalJewelApi
179179
@ApiStatus.Internal
180180
public object EmptySpeedSearchMatcher : SpeedSearchMatcher {
181+
override fun matches(text: String?): SpeedSearchMatcher.MatchResult = matches(text as? CharSequence)
182+
181183
override fun matches(text: CharSequence?): SpeedSearchMatcher.MatchResult = SpeedSearchMatcher.MatchResult.NoMatch
182184
}
183185

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
2+
package org.jetbrains.jewel.bridge.theme
3+
4+
import androidx.compose.foundation.layout.PaddingValues
5+
import androidx.compose.ui.graphics.Color
6+
import androidx.compose.ui.unit.dp
7+
import com.intellij.ui.JBColor
8+
import org.jetbrains.jewel.bridge.retrieveColor
9+
import org.jetbrains.jewel.bridge.toComposeColor
10+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldColors
11+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldIcons
12+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldMetrics
13+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldStyle
14+
import org.jetbrains.jewel.ui.icons.AllIconsKeys
15+
16+
internal fun readSearchTextFieldStyle() =
17+
SearchTextFieldStyle(
18+
colors =
19+
SearchTextFieldColors(
20+
foreground = Color.Unspecified,
21+
error = retrieveColor("Label.errorForeground", JBColor.RED.toComposeColor()),
22+
),
23+
metrics =
24+
SearchTextFieldMetrics(
25+
contentPadding = PaddingValues(horizontal = 2.dp),
26+
popupContentPadding = PaddingValues(vertical = 2.dp),
27+
spaceBetweenIcons = 2.dp,
28+
),
29+
icons =
30+
SearchTextFieldIcons(
31+
searchIcon = AllIconsKeys.Actions.Search,
32+
searchHistoryIcon = AllIconsKeys.Actions.SearchWithHistory,
33+
clearIcon = AllIconsKeys.Actions.Close,
34+
),
35+
)

platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridge.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ internal fun createBridgeComponentStyling(theme: ThemeDefinition): ComponentStyl
104104
undecoratedDropdownStyle = readUndecoratedDropdownStyle(menuStyle),
105105
speedSearchStyle = readSpeedSearchStyle(),
106106
searchMatchStyle = readSearchMatchStyle(theme.isDark),
107+
searchTextFieldStyle = readSearchTextFieldStyle(),
107108
)
108109
}
109110

platform/jewel/int-ui/int-ui-standalone/api-dump.txt

Lines changed: 19 additions & 2 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
2+
package org.jetbrains.jewel.intui.standalone.styling
3+
4+
import androidx.compose.foundation.layout.PaddingValues
5+
import androidx.compose.ui.graphics.Color
6+
import androidx.compose.ui.unit.Dp
7+
import androidx.compose.ui.unit.dp
8+
import org.jetbrains.jewel.intui.core.theme.IntUiDarkTheme
9+
import org.jetbrains.jewel.intui.core.theme.IntUiLightTheme
10+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldColors
11+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldIcons
12+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldMetrics
13+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldStyle
14+
import org.jetbrains.jewel.ui.icon.IconKey
15+
import org.jetbrains.jewel.ui.icons.AllIconsKeys
16+
17+
public fun SearchTextFieldStyle.Companion.light(
18+
colors: SearchTextFieldColors = SearchTextFieldColors.light(),
19+
metrics: SearchTextFieldMetrics = SearchTextFieldMetrics.default(),
20+
icons: SearchTextFieldIcons = SearchTextFieldIcons.default(),
21+
): SearchTextFieldStyle = SearchTextFieldStyle(colors, metrics, icons)
22+
23+
public fun SearchTextFieldColors.Companion.light(
24+
foreground: Color = Color.Unspecified,
25+
error: Color = IntUiLightTheme.colors.red(4),
26+
): SearchTextFieldColors = SearchTextFieldColors(foreground, error)
27+
28+
public fun SearchTextFieldStyle.Companion.dark(
29+
colors: SearchTextFieldColors = SearchTextFieldColors.dark(),
30+
metrics: SearchTextFieldMetrics = SearchTextFieldMetrics.default(),
31+
icons: SearchTextFieldIcons = SearchTextFieldIcons.default(),
32+
): SearchTextFieldStyle = SearchTextFieldStyle(colors, metrics, icons)
33+
34+
public fun SearchTextFieldColors.Companion.dark(
35+
foreground: Color = Color.Unspecified,
36+
error: Color = IntUiDarkTheme.colors.red(7),
37+
): SearchTextFieldColors = SearchTextFieldColors(foreground, error)
38+
39+
public fun SearchTextFieldMetrics.Companion.default(
40+
contentPadding: PaddingValues = PaddingValues(horizontal = 2.dp),
41+
popupContentPadding: PaddingValues = PaddingValues(vertical = 2.dp),
42+
spaceBetweenIcons: Dp = 6.dp,
43+
): SearchTextFieldMetrics = SearchTextFieldMetrics(contentPadding, popupContentPadding, spaceBetweenIcons)
44+
45+
public fun SearchTextFieldIcons.Companion.default(
46+
searchIcon: IconKey = AllIconsKeys.Actions.Search,
47+
searchHistoryIcon: IconKey = AllIconsKeys.Actions.SearchWithHistory,
48+
clearIcon: IconKey = AllIconsKeys.Actions.Close,
49+
): SearchTextFieldIcons = SearchTextFieldIcons(searchIcon, searchHistoryIcon, clearIcon)

platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/theme/IntUiTheme.kt

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import org.jetbrains.jewel.ui.component.styling.PopupContainerStyle
5454
import org.jetbrains.jewel.ui.component.styling.RadioButtonStyle
5555
import org.jetbrains.jewel.ui.component.styling.ScrollbarStyle
5656
import org.jetbrains.jewel.ui.component.styling.SearchMatchStyle
57+
import org.jetbrains.jewel.ui.component.styling.SearchTextFieldStyle
5758
import org.jetbrains.jewel.ui.component.styling.SegmentedControlButtonStyle
5859
import org.jetbrains.jewel.ui.component.styling.SegmentedControlStyle
5960
import org.jetbrains.jewel.ui.component.styling.SelectableLazyColumnStyle
@@ -278,6 +279,7 @@ public fun ComponentStyling.dark(
278279
undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.dark(),
279280
speedSearchStyle: SpeedSearchStyle = SpeedSearchStyle.dark(),
280281
searchMatchStyle: SearchMatchStyle = SearchMatchStyle.dark(),
282+
searchTextFieldStyle: SearchTextFieldStyle = SearchTextFieldStyle.dark(),
281283
): ComponentStyling =
282284
DefaultComponentStyling(
283285
checkboxStyle = checkboxStyle,
@@ -315,6 +317,85 @@ public fun ComponentStyling.dark(
315317
undecoratedDropdownStyle = undecoratedDropdownStyle,
316318
speedSearchStyle = speedSearchStyle,
317319
searchMatchStyle = searchMatchStyle,
320+
searchTextFieldStyle = searchTextFieldStyle,
321+
)
322+
323+
@Suppress("UnusedReceiverParameter")
324+
@Deprecated("Use the variant with searchTextFieldStyle.", level = DeprecationLevel.HIDDEN)
325+
public fun ComponentStyling.dark(
326+
checkboxStyle: CheckboxStyle = CheckboxStyle.dark(),
327+
chipStyle: ChipStyle = ChipStyle.dark(),
328+
circularProgressStyle: CircularProgressStyle = CircularProgressStyle.dark(),
329+
defaultBannerStyle: DefaultBannerStyles = DefaultBannerStyles.Default.dark(),
330+
comboBoxStyle: ComboBoxStyle = ComboBoxStyle.Default.dark(),
331+
defaultButtonStyle: ButtonStyle = ButtonStyle.Default.dark(),
332+
defaultSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Default.dark(),
333+
defaultTabStyle: TabStyle = TabStyle.Default.dark(),
334+
dividerStyle: DividerStyle = DividerStyle.dark(),
335+
dropdownStyle: DropdownStyle = DropdownStyle.Default.dark(),
336+
editorTabStyle: TabStyle = TabStyle.Editor.dark(),
337+
groupHeaderStyle: GroupHeaderStyle = GroupHeaderStyle.dark(),
338+
horizontalProgressBarStyle: HorizontalProgressBarStyle = HorizontalProgressBarStyle.dark(),
339+
iconButtonStyle: IconButtonStyle = IconButtonStyle.dark(),
340+
transparentIconButtonStyle: IconButtonStyle = IconButtonStyle.darkTransparentBackground(),
341+
inlineBannerStyle: InlineBannerStyles = InlineBannerStyles.Default.dark(),
342+
lazyTreeStyle: LazyTreeStyle = LazyTreeStyle.dark(),
343+
linkStyle: LinkStyle = LinkStyle.dark(),
344+
menuStyle: MenuStyle = MenuStyle.dark(),
345+
outlinedButtonStyle: ButtonStyle = ButtonStyle.Outlined.dark(),
346+
popupContainerStyle: PopupContainerStyle = PopupContainerStyle.dark(),
347+
outlinedSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Outlined.dark(),
348+
radioButtonStyle: RadioButtonStyle = RadioButtonStyle.dark(),
349+
scrollbarStyle: ScrollbarStyle = ScrollbarStyle.dark(),
350+
segmentedControlButtonStyle: SegmentedControlButtonStyle = SegmentedControlButtonStyle.dark(),
351+
segmentedControlStyle: SegmentedControlStyle = SegmentedControlStyle.dark(),
352+
selectableLazyColumnStyle: SelectableLazyColumnStyle = SelectableLazyColumnStyle.dark(),
353+
sliderStyle: SliderStyle = SliderStyle.dark(),
354+
simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.dark(),
355+
textAreaStyle: TextAreaStyle = TextAreaStyle.dark(),
356+
textFieldStyle: TextFieldStyle = TextFieldStyle.dark(),
357+
tooltipStyle: TooltipStyle = TooltipStyle.dark(autoHideBehavior = TooltipAutoHideBehavior.Normal),
358+
undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.dark(),
359+
speedSearchStyle: SpeedSearchStyle = SpeedSearchStyle.dark(),
360+
searchMatchStyle: SearchMatchStyle = SearchMatchStyle.dark(),
361+
): ComponentStyling =
362+
DefaultComponentStyling(
363+
checkboxStyle = checkboxStyle,
364+
chipStyle = chipStyle,
365+
circularProgressStyle = circularProgressStyle,
366+
defaultBannerStyle = defaultBannerStyle,
367+
comboBoxStyle = comboBoxStyle,
368+
defaultButtonStyle = defaultButtonStyle,
369+
defaultDropdownStyle = dropdownStyle,
370+
defaultSplitButtonStyle = defaultSplitButtonStyle,
371+
defaultTabStyle = defaultTabStyle,
372+
dividerStyle = dividerStyle,
373+
editorTabStyle = editorTabStyle,
374+
groupHeaderStyle = groupHeaderStyle,
375+
horizontalProgressBarStyle = horizontalProgressBarStyle,
376+
iconButtonStyle = iconButtonStyle,
377+
transparentIconButtonStyle = transparentIconButtonStyle,
378+
inlineBannerStyle = inlineBannerStyle,
379+
lazyTreeStyle = lazyTreeStyle,
380+
linkStyle = linkStyle,
381+
menuStyle = menuStyle,
382+
outlinedButtonStyle = outlinedButtonStyle,
383+
popupContainerStyle = popupContainerStyle,
384+
outlinedSplitButtonStyle = outlinedSplitButtonStyle,
385+
radioButtonStyle = radioButtonStyle,
386+
scrollbarStyle = scrollbarStyle,
387+
segmentedControlButtonStyle = segmentedControlButtonStyle,
388+
segmentedControlStyle = segmentedControlStyle,
389+
selectableLazyColumnStyle = selectableLazyColumnStyle,
390+
simpleListItemStyle = simpleListItemStyle,
391+
sliderStyle = sliderStyle,
392+
textAreaStyle = textAreaStyle,
393+
textFieldStyle = textFieldStyle,
394+
tooltipStyle = tooltipStyle,
395+
undecoratedDropdownStyle = undecoratedDropdownStyle,
396+
speedSearchStyle = speedSearchStyle,
397+
searchMatchStyle = searchMatchStyle,
398+
searchTextFieldStyle = SearchTextFieldStyle.dark(),
318399
)
319400

320401
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -390,6 +471,7 @@ public fun ComponentStyling.dark(
390471
undecoratedDropdownStyle = undecoratedDropdownStyle,
391472
speedSearchStyle = SpeedSearchStyle.dark(),
392473
searchMatchStyle = SearchMatchStyle.dark(),
474+
searchTextFieldStyle = SearchTextFieldStyle.dark(),
393475
)
394476

395477
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -464,9 +546,89 @@ public fun ComponentStyling.dark(
464546
undecoratedDropdownStyle = undecoratedDropdownStyle,
465547
speedSearchStyle = SpeedSearchStyle.dark(),
466548
searchMatchStyle = SearchMatchStyle.dark(),
549+
searchTextFieldStyle = SearchTextFieldStyle.dark(),
550+
)
551+
552+
@Suppress("UnusedReceiverParameter")
553+
public fun ComponentStyling.light(
554+
checkboxStyle: CheckboxStyle = CheckboxStyle.light(),
555+
chipStyle: ChipStyle = ChipStyle.light(),
556+
circularProgressStyle: CircularProgressStyle = CircularProgressStyle.light(),
557+
defaultBannerStyle: DefaultBannerStyles = DefaultBannerStyles.Default.light(),
558+
comboBoxStyle: ComboBoxStyle = ComboBoxStyle.Default.light(),
559+
defaultButtonStyle: ButtonStyle = ButtonStyle.Default.light(),
560+
defaultSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Default.light(),
561+
defaultTabStyle: TabStyle = TabStyle.Default.light(),
562+
dividerStyle: DividerStyle = DividerStyle.light(),
563+
dropdownStyle: DropdownStyle = DropdownStyle.Default.light(),
564+
editorTabStyle: TabStyle = TabStyle.Editor.light(),
565+
groupHeaderStyle: GroupHeaderStyle = GroupHeaderStyle.light(),
566+
horizontalProgressBarStyle: HorizontalProgressBarStyle = HorizontalProgressBarStyle.light(),
567+
iconButtonStyle: IconButtonStyle = IconButtonStyle.light(),
568+
transparentIconButtonStyle: IconButtonStyle = IconButtonStyle.lightTransparentBackground(),
569+
inlineBannerStyle: InlineBannerStyles = InlineBannerStyles.Default.light(),
570+
lazyTreeStyle: LazyTreeStyle = LazyTreeStyle.light(),
571+
linkStyle: LinkStyle = LinkStyle.light(),
572+
menuStyle: MenuStyle = MenuStyle.light(),
573+
popupContainerStyle: PopupContainerStyle = PopupContainerStyle.light(),
574+
outlinedButtonStyle: ButtonStyle = ButtonStyle.Outlined.light(),
575+
outlinedSplitButtonStyle: SplitButtonStyle = SplitButtonStyle.Outlined.light(),
576+
radioButtonStyle: RadioButtonStyle = RadioButtonStyle.light(),
577+
scrollbarStyle: ScrollbarStyle = ScrollbarStyle.light(),
578+
segmentedControlButtonStyle: SegmentedControlButtonStyle = SegmentedControlButtonStyle.light(),
579+
segmentedControlStyle: SegmentedControlStyle = SegmentedControlStyle.light(),
580+
sliderStyle: SliderStyle = SliderStyle.light(),
581+
selectableLazyColumnStyle: SelectableLazyColumnStyle = SelectableLazyColumnStyle.light(),
582+
simpleListItemStyle: SimpleListItemStyle = SimpleListItemStyle.light(),
583+
textAreaStyle: TextAreaStyle = TextAreaStyle.light(),
584+
textFieldStyle: TextFieldStyle = TextFieldStyle.light(),
585+
tooltipStyle: TooltipStyle = TooltipStyle.light(autoHideBehavior = TooltipAutoHideBehavior.Normal),
586+
undecoratedDropdownStyle: DropdownStyle = DropdownStyle.Undecorated.light(),
587+
speedSearchStyle: SpeedSearchStyle = SpeedSearchStyle.light(),
588+
searchMatchStyle: SearchMatchStyle = SearchMatchStyle.light(),
589+
searchTextFieldStyle: SearchTextFieldStyle = SearchTextFieldStyle.light(),
590+
): ComponentStyling =
591+
DefaultComponentStyling(
592+
checkboxStyle = checkboxStyle,
593+
chipStyle = chipStyle,
594+
circularProgressStyle = circularProgressStyle,
595+
comboBoxStyle = comboBoxStyle,
596+
defaultBannerStyle = defaultBannerStyle,
597+
defaultButtonStyle = defaultButtonStyle,
598+
defaultDropdownStyle = dropdownStyle,
599+
defaultSplitButtonStyle = defaultSplitButtonStyle,
600+
defaultTabStyle = defaultTabStyle,
601+
dividerStyle = dividerStyle,
602+
editorTabStyle = editorTabStyle,
603+
groupHeaderStyle = groupHeaderStyle,
604+
horizontalProgressBarStyle = horizontalProgressBarStyle,
605+
iconButtonStyle = iconButtonStyle,
606+
transparentIconButtonStyle = transparentIconButtonStyle,
607+
inlineBannerStyle = inlineBannerStyle,
608+
lazyTreeStyle = lazyTreeStyle,
609+
linkStyle = linkStyle,
610+
menuStyle = menuStyle,
611+
outlinedButtonStyle = outlinedButtonStyle,
612+
popupContainerStyle = popupContainerStyle,
613+
outlinedSplitButtonStyle = outlinedSplitButtonStyle,
614+
radioButtonStyle = radioButtonStyle,
615+
scrollbarStyle = scrollbarStyle,
616+
segmentedControlButtonStyle = segmentedControlButtonStyle,
617+
segmentedControlStyle = segmentedControlStyle,
618+
selectableLazyColumnStyle = selectableLazyColumnStyle,
619+
sliderStyle = sliderStyle,
620+
simpleListItemStyle = simpleListItemStyle,
621+
textAreaStyle = textAreaStyle,
622+
textFieldStyle = textFieldStyle,
623+
tooltipStyle = tooltipStyle,
624+
undecoratedDropdownStyle = undecoratedDropdownStyle,
625+
speedSearchStyle = speedSearchStyle,
626+
searchMatchStyle = searchMatchStyle,
627+
searchTextFieldStyle = searchTextFieldStyle,
467628
)
468629

469630
@Suppress("UnusedReceiverParameter")
631+
@Deprecated("Use the variant with searchTextFieldStyle.", level = DeprecationLevel.HIDDEN)
470632
public fun ComponentStyling.light(
471633
checkboxStyle: CheckboxStyle = CheckboxStyle.light(),
472634
chipStyle: ChipStyle = ChipStyle.light(),
@@ -540,6 +702,7 @@ public fun ComponentStyling.light(
540702
undecoratedDropdownStyle = undecoratedDropdownStyle,
541703
speedSearchStyle = speedSearchStyle,
542704
searchMatchStyle = searchMatchStyle,
705+
searchTextFieldStyle = SearchTextFieldStyle.light(),
543706
)
544707

545708
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -615,6 +778,7 @@ public fun ComponentStyling.light(
615778
undecoratedDropdownStyle = undecoratedDropdownStyle,
616779
speedSearchStyle = SpeedSearchStyle.light(),
617780
searchMatchStyle = SearchMatchStyle.light(),
781+
searchTextFieldStyle = SearchTextFieldStyle.light(),
618782
)
619783

620784
@Suppress("UnusedReceiverParameter", "DEPRECATION_ERROR")
@@ -689,6 +853,7 @@ public fun ComponentStyling.light(
689853
undecoratedDropdownStyle = undecoratedDropdownStyle,
690854
speedSearchStyle = SpeedSearchStyle.light(),
691855
searchMatchStyle = SearchMatchStyle.light(),
856+
searchTextFieldStyle = SearchTextFieldStyle.light(),
692857
)
693858

694859
@Composable

platform/jewel/samples/showcase/api-dump.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ f:org.jetbrains.jewel.samples.showcase.ShowcaseIcons$Components
2626
- f:getScrollbar():org.jetbrains.jewel.ui.icon.PathIconKey
2727
- f:getSegmentedControls():org.jetbrains.jewel.ui.icon.PathIconKey
2828
- f:getSlider():org.jetbrains.jewel.ui.icon.PathIconKey
29+
- f:getSpeedSearch():org.jetbrains.jewel.ui.icon.PathIconKey
2930
- f:getSplitlayout():org.jetbrains.jewel.ui.icon.PathIconKey
3031
- f:getTabs():org.jetbrains.jewel.ui.icon.PathIconKey
3132
- f:getTextArea():org.jetbrains.jewel.ui.icon.PathIconKey

0 commit comments

Comments
 (0)