Old combobox selects replaced by compact pill triggers — tests were
still using selectOption (which looks for role=combobox). Switch to
the selectPillOption helper that interacts with the new pill UI.
Update test selectors and expectations across ListView, ChartList,
DashboardList, DatasetList, UsersList, GroupsList, RolesList, and
RowLevelSecurityList tests to match the new compact pill filter UI.
Key changes:
- select-filter-container wrapper added back for backward compat
- card-sort-select data-test added back to CardSortSelect wrapper
- Multiple search filter test updated: only first search renders
- Tests using role=combobox updated to use new selectors
- Tests for hidden search labels updated
- Added selectPillOption helper to testing-library for compact pill UI
Rewrite CardSortSelect to use CompactFilterTrigger + CompactSelectPanel —
same pill visual, same dropdown list, same hover behaviour as filter pills.
No label, checkmark on current selection, no clear icon (sort always has
a value). Move it before the Clear all button in the controls row.
- Only the first search filter renders; subsequent search filters on pages
like UsersList (which have 5 search inputs) are skipped to keep one
search box per page.
- Search container uses fixed width (sizeUnit*44 = 176px) with flex-shrink:0
instead of flex:1, so it never resizes when a scrollbar appears or
pills wrap (fixes Sophie's resize-on-scroll bug).
- CardSortSelect in card/thumbnail view gets margin-left:auto so it pins
to the right edge of the controls row instead of orphaning on a new line.
Tooltip was receiving mouseLeave suppressed by the Dropdown overlay,
causing it to stick after the mouse moved away. Use controlled open
prop: tooltip is only shown when hasValue && !dropdown open && hover
is active. onOpenChange guards against showing when dropdown is open.
mouseLeaveDelay=0 ensures instant hide on mouse leave.
Remove overflow:hidden from PanelContainer so the Input focus ring
is not clipped at the panel boundary.
Set OptionItem line-height to theme.lineHeight and derive the vertical
padding from antd's exact formula (controlHeight - fontSize * lineHeight) / 2,
matching the height of antd Select dropdown options in Explore.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CompactFilterTrigger: close dropdown on window resize — AntD Dropdown
does not reposition on resize so the panel detaches from the pill.
CompactSelectPanel: add paddingXXS top/bottom to OptionList so the
first/last items have breathing room inside overflow:hidden when there
is no search row (small static selects), preventing outline/background
from being clipped against the panel edge.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PanelContainer paddingXXS (4px) top + SearchRow sizeUnit*2 (8px) top
= 12px gap. Remove PanelContainer top padding so SearchRow controls
the top spacing exclusively.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New screenshots show: always-visible Clear all button (disabled when inactive),
Explore-style dropdown options, search input contained within panel, and
edge-to-edge option rows.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SearchRow top padding was 0 while left/right was sizeUnit*2 (8px).
Make them equal so the search input has uniform breathing room.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace custom option rendering, debounced search, race-condition
guards, and loading states with Select/AsyncSelect from
@superset-ui/core/components. The trigger is hidden via a
zero-height wrapper; the dropdown renders inside a container div
via getPopupContainer, giving the same visual as Explore's select
dropdowns. Also exposes the 'open' prop in AntdExposedProps so
Select/AsyncSelect can be controlled externally.
Removes ~130 lines of reimplemented debounce/race-condition/
filter logic and eliminates the outline hover hack.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wrap Input in SearchRow with horizontal padding instead of margins on
.ant-input-affix-wrapper. width:100% + margin overflowed the container;
padding on a wrapper div keeps the input fully inside. Restore
overflow:hidden (needed for borderRadiusLG clipping) — it no longer
clips the input since the wrapper contains it correctly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CompactSelectPanel: remove overflow:hidden from panel (was clipping search
input); remove min-height from OptionItem (5px padding alone gives the
correct 24px height matching AntD Select optionPadding, not 42px).
index.tsx: clearFilters/clearFilterById now call updateFilterValue directly
as a safety net so URL always updates even when filter refs are stale
(e.g. after page refresh where internalFilters is URL-hydrated).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use exact visual pattern from @superset-ui/core Select:
- borderRadiusLG on container (was borderRadius)
- paddingXXS top/bottom on container (matches ant-select-dropdown)
- borderRadiusSM on each OptionItem (rounded highlight, not edge-to-edge)
- 5px vertical padding on items (matches optionPadding token default)
- outline: 2px solid colorPrimary on hover (Superset's own Select override)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Show 'No filters applied' tooltip on hover when the Clear all button
is disabled, so users understand why it is not interactive.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace fixed 176px width on the search filter container with flex:1
so it expands into the space not taken by the pill filters.
min-width: 160px prevents it collapsing on narrow screens.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Match Superset dashboard FilterBar pattern (isClearAllEnabled): always
render the button so users can discover it, just disable it when nothing
is selected. Prevents layout shift and builds muscle memory.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Show a 'Clear all' text button at the end of the filter pill row when
one or more filters are active. Disappears when all filters are inactive.
Matches dashboard native filter bar behaviour.
Also update ListView tests to use new compact-filter-pill buttons
instead of the old combobox queries.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>