antd 6 removed the Tag's default margin-inline-end: 8px in favor of
parents spacing tags via flex/Space gaps. App layouts predate that and
rely on the v5 default — most visibly the dashboard header, where the
Published tag sat flush against the metadata bar. Restore the margin in
GlobalStyles (to be removed once Tag-adjacent layouts declare their own
gaps) and pin it with a computed-style regression test that exercises
the provider -> GlobalStyles -> Tag chain.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Format ScheduleQueryButton.test.tsx (long import line).
- FiltersConfigModal restore/undo tests (new on master, first exercised
against antd6 by the merge): query the filter delete button by its
intended accessible name. @ant-design/icons 6 fixes label precedence —
the developer-provided aria-label ('Remove filter') now correctly wins
over the icon-name default ('delete') that the icons 5 render exposed
and the tests had matched.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Deep review of the branch surfaced ten verified defects; fixes:
- Restore the #36963 dropdown-positioning fix: antd 6 removed Select's
`dropdownAlign`, and the migration deleted DROPDOWN_ALIGN_BOTTOM without
a replacement. Re-expressed via the supported `builtinPlacements` prop
(antd 6's own defaults with adjustX disabled).
- Bump react-js-cron 5.2 -> 6.0.2 (antd >=6 peer): its vendor stylesheet
was written against antd 5 Select classes, silently killing the cron
error styling and layout. v6 ships antd6-native selectors.
- Migrate the Collapse content family (.ant-collapse-content -> -panel,
.ant-collapse-content-box -> -body) across Collapse.tsx, VizTypeGallery,
ControlPanelsContainer, StandardModal, config-modal styles, and the
Cypress selectors — same silent-override breakage as the Tabs chain.
- DateFunctionTooltip: rules were nested inside a stale .ant-tooltip-content
ancestor antd 6 never renders; apply them to .ant-tooltip-container.
- Cypress advanced-time-range helper: .ant-popover-inner-content ->
.ant-popover-content (v6 body element).
- Narrow the Select wrapper's `showSearch` to boolean and
`tokenSeparators` to string[]: antd 6 widened both (SearchConfig object,
function form) but the wrapper silently discards those forms — make the
unsupported forms a compile error instead.
- AsyncSelect: suffix icon now reflects the effective searchability
(allowNewOptions || showSearch), matching Select and the actual antd prop.
- Add an rjsf v6 smoke test for ScheduleQueryButton (sole @rjsf consumer;
form is config-driven so a breaking rjsf change is invisible to tsc).
- Expand the antd DOM contract test: select input/suffix-item, tabs
content-active, popover container>title+content structure, and the
Collapse panel/body family.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
An antd major bump is breaking for downstream plugin/extension authors:
renamed .ant-* internal DOM classes (custom CSS silently stops matching),
changed/removed component props, and CSS variables on by default. Log the
notable renames and point at the upstream migration guide.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Test-driven audit (rendering each antd6 component and dumping its real
classes) surfaced more silently-broken overrides the earlier passes missed:
- ChartCreation: `.ant-steps-item-tail` -> `.ant-steps-item-rail` (antd6 renamed
the Steps connector line; the 'hide connector' rule had stopped matching).
- DropdownContainer + plugin-chart-ag-grid-table: `.ant-popover-inner` ->
`.ant-popover-container` (two sites missed when GlobalStyles was fixed).
Verified via real v6 DOM that `.ant-modal-close-x`, `.ant-steps`/`-item-icon`/
`-item-title`/`-item-content` are NOT renamed and were correctly left alone.
Extended antdDomContract.test.tsx with Steps (incl. the tail->rail rename that
SQL Lab loading detection also depends on via `.ant-steps`) and the Select
suffix/arrow class, so this whole class of silent breakage is guarded.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
antd 6 restructured the Tabs content DOM, breaking the fullHeight height
chain that SQL Lab, Explore, and several modals rely on. The Ace editor
rendered into a 0-height container and never became visible — every
chromium-sqllab Playwright test timed out at 60s (vs ~8s on master), and
the editor was effectively unusable.
antd 5 -> 6 positional rename (verified against real v6 rendered DOM):
.ant-tabs-content-holder -> .ant-tabs-body-holder
.ant-tabs-content (wrapper) -> .ant-tabs-body (new intermediate level)
.ant-tabs-tabpane (panel) -> .ant-tabs-content (now the [role=tabpanel])
The new .ant-tabs-body level had no height rule, collapsing the chain.
Applied the rename across the core Tabs wrapper and all app overrides that
walk this DOM (SQL Lab App/SouthPane/SqlEditor, Explore ControlPanels/
DataTablesPane, DatabaseModal, DatasourceEditor, dashboard). Extended the
antd DOM contract test to pin the body-holder -> body -> content chain so a
future antd bump fails loudly instead of silently collapsing it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The antd 5->6 DOM class renames broke several CSS overrides silently — no
test failed when a selector stopped matching. Add a contract test asserting
the antd6 classes our overrides depend on still exist (select value/overflow/
placeholder containers, popover-container, tooltip-container, modal-body), so a
future antd bump that renames one fails loudly here instead of shipping a
visual regression.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
antd 6 renamed several internal DOM classes; these styled-component and
GlobalStyles overrides silently stopped matching (broken visual overrides
no test catches). Verified each replacement against real antd 6 rendered DOM:
- Popover: .ant-popover-inner -> .ant-popover-container (explore-popover padding)
- Select value container: .ant-select-selector/.ant-select-selection-overflow
-> .ant-select-content; overflow items .ant-select-selection-overflow-item[-rest|-suffix]
-> .ant-select-content-item[-rest|-suffix]; placeholder
.ant-select-selection-placeholder -> .ant-select-placeholder; search wrapper
.ant-select-selection-search -> .ant-select-input. Multiple-mode tag
.ant-select-selection-item is unchanged in v6 and kept as-is.
The ColorPicker alpha overrides (#34721) are intentionally left untouched: the
geostyler CSS they counteracted no longer hides those controls, and antd 6
removed the alpha-specific slider class — re-pointing them would wrongly restyle
sliders. Flagged for visual QA instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The auth suite only waits for the welcome URL + session cookie, so a
welcome page that routes correctly but renders a blank shell (only the
top nav) would still pass CI. Assert a Home content section ('Recents',
a Collapse panel absent from the nav) is visible, so a blank landing
page fails loudly.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>