feat(frontend): upgrade Ant Design from v5 to v6

Upgrades antd 5.26 -> 6.5 (and @ant-design/icons -> 6) across the frontend.

Theme-safe: the getDesignToken -> allowedAntdTokens -> ConfigProvider/Emotion
bridge works on v6 with no token loss (only cosmetic box-shadow recomputation).
Adds theme characterization tests that lock the full computed token set for
light and dark so any future token rename/removal fails loudly.

Key changes:
- Theme bridge: coerce boolean `cssVar` (removed from v6 ThemeConfig) to the
  object form.
- Wrappers/app: Select (dropdownAlign removed; showSearch/tokenSeparators union
  handling), Tooltip/Popover/DropdownContainer styles.body -> styles.container,
  Steps.Step -> items, Popover/Tooltip/Dropdown visible/onVisibleChange ->
  open/onOpenChange, Dropdown overlay -> menu, Pagination size="default"
  removed, .ant-tooltip-inner -> .ant-tooltip-container and
  .ant-select-selector -> .ant-select-content in styled CSS.
- Fixes a real regression the tests caught: antd v6 Tag overwrites its `icon`
  prop's inline style, dropping Label icon colors; fixed by wrapping the icon.
- Deps: remove unused @rjsf/antd (pinned antd 5); bump @rjsf/core/utils/
  validator-ajv8 to v6; pin jsonforms-antd-renderers to antd 6 via overrides.
- Test env: replace the `MessageChannel = undefined` stub with a polyfill
  (antd v6's scheduler needs the constructor).
- Update test-DOM assertions across suites for v6 class/structure renames.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Evan Rusackas
2026-07-01 01:47:11 -07:00
parent 9380d83dd1
commit e35c7ae536
59 changed files with 2631 additions and 700 deletions

View File

@@ -90,7 +90,7 @@ test('stepper arrows trigger onChange immediately', async () => {
};
render(<NumberControl {...props} />);
const upButton = document.querySelector(
'.ant-input-number-handler-up',
'.ant-input-number-action-up',
) as HTMLElement;
expect(upButton).toBeInTheDocument();
await userEvent.click(upButton);