@databricks/design-system 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/design-guidance/docs/README.md +40 -0
  3. package/design-guidance/docs/review-contract.md +22 -0
  4. package/design-guidance/docs/tokens.md +35 -0
  5. package/design-guidance/docs/voice.md +40 -0
  6. package/design-guidance/skills/dbui-build-screen.md +24 -0
  7. package/design-guidance/skills/dbui-check-ecosystem.md +21 -0
  8. package/design-guidance/skills/dbui-check-guidelines.md +29 -0
  9. package/design-guidance/skills/dbui-check-principles.md +26 -0
  10. package/design-guidance/skills/dbui-check-voice.md +17 -0
  11. package/design-guidance/skills/dbui-pick-component.md +23 -0
  12. package/design-guidance/skills/dbui-pick-icon.md +23 -0
  13. package/design-guidance/skills/dbui-review.md +30 -0
  14. package/design-guidance/skills/dbui-validate.md +23 -0
  15. package/dist/RHFControlledTypeaheadComboboxV2-Ct9x3rC1.js +172 -0
  16. package/dist/RHFControlledTypeaheadComboboxV2-Ct9x3rC1.js.map +1 -0
  17. package/dist/{WizardStepContentWrapper-8bs2FwRi.js → WizardStepContentWrapper-6YTjeEaA.js} +1017 -840
  18. package/dist/WizardStepContentWrapper-6YTjeEaA.js.map +1 -0
  19. package/dist/icon-metadata.json +2064 -0
  20. package/dist/index-DiRpSwH2.js +8509 -0
  21. package/dist/index-DiRpSwH2.js.map +1 -0
  22. package/dist/index-dark.css +648 -113
  23. package/dist/index-dark.mitigated.css +648 -113
  24. package/dist/index.css +1045 -145
  25. package/dist/index.js +27 -8148
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mitigated.css +1046 -146
  28. package/dist/patterns.js +3 -3
  29. package/dist-types/design-system/Breadcrumb/Breadcrumb.d.ts +10 -3
  30. package/dist-types/design-system/Button/AntDButtonInternal.d.ts +21 -0
  31. package/dist-types/design-system/Button/Button.d.ts +3 -19
  32. package/dist-types/design-system/Button/NativeButton.d.ts +3 -0
  33. package/dist-types/design-system/Button/getBtnClassName.d.ts +17 -0
  34. package/dist-types/design-system/Button/index.d.ts +1 -0
  35. package/dist-types/design-system/DesignSystemProvider/DesignTokenScopeWithEmotionTheme.d.ts +4 -4
  36. package/dist-types/design-system/Drawer/Drawer.d.ts +3 -1
  37. package/dist-types/design-system/FormV2/RHFAdapters.d.ts +8 -0
  38. package/dist-types/design-system/FormV2/RHFControlledTypeaheadComboboxV2.d.ts +58 -0
  39. package/dist-types/design-system/Icon/AntdIcon.d.ts +3 -0
  40. package/dist-types/design-system/Icon/Icon.d.ts +21 -7
  41. package/dist-types/design-system/Icon/NativeIcon.d.ts +3 -0
  42. package/dist-types/design-system/Icon/__generated/icons/ColorMappingEditIcon.d.ts +4 -0
  43. package/dist-types/design-system/Icon/__generated/icons/ColorMappingIcon.d.ts +4 -0
  44. package/dist-types/design-system/Icon/__generated/icons/LakewatchIcon.d.ts +4 -0
  45. package/dist-types/design-system/Icon/__generated/icons/MicrophoneIcon.d.ts +4 -0
  46. package/dist-types/design-system/Icon/__generated/icons/MicrophoneOffIcon.d.ts +4 -0
  47. package/dist-types/design-system/Icon/__generated/icons/OperatorIcon.d.ts +4 -0
  48. package/dist-types/design-system/Icon/__generated/icons/VoiceModeIcon.d.ts +4 -0
  49. package/dist-types/design-system/Icon/__generated/icons/index.d.ts +7 -0
  50. package/dist-types/design-system/Icon/index.d.ts +1 -0
  51. package/dist-types/design-system/Icon/utils.d.ts +1 -0
  52. package/dist-types/design-system/Overflow/Overflow.d.ts +3 -1
  53. package/dist-types/design-system/Overflow/OverflowPopover.d.ts +2 -1
  54. package/dist-types/design-system/TypeaheadComboboxV2/TypeaheadComboboxMenu.d.ts +2 -0
  55. package/dist-types/design-system/_shared_/Tabs/styles.d.ts +2 -3
  56. package/dist-types/design-system/shape-tokens.d.ts +1 -1
  57. package/dist-types/test-utils/rtl/buttonVariants.d.ts +4 -4
  58. package/dist-types/~patterns/Wizard/WizardModal.d.ts +1 -1
  59. package/dist-types/~patterns/Wizard/WizardStepNavigation.d.ts +9 -0
  60. package/dist-types/~patterns/Wizard/index.d.ts +1 -0
  61. package/package.json +9 -5
  62. package/dist/WizardStepContentWrapper-8bs2FwRi.js.map +0 -1
@@ -3,7 +3,7 @@ import isUndefined from 'lodash/isUndefined';
3
3
  import * as React from 'react';
4
4
  import React__default, { useRef, useEffect, useMemo, useCallback, useContext, createContext, useState, forwardRef, useLayoutEffect, useImperativeHandle, Children } from 'react';
5
5
  import { useTheme, ThemeProvider, css, keyframes, ClassNames, Global, createElement } from '@emotion/react';
6
- import { ConfigProvider, notification, Collapse, Button as Button$2, Typography as Typography$1, Checkbox as Checkbox$1, Input as Input$2, Select as Select$1, Radio as Radio$1, Layout as Layout$1, Form as Form$1, Pagination as Pagination$1, Table, Tooltip as Tooltip$1, Dropdown, Tree as Tree$1 } from 'antd';
6
+ import { ConfigProvider, notification, Collapse, Button as Button$1, Typography as Typography$1, Checkbox as Checkbox$1, Input as Input$2, Select as Select$1, Radio as Radio$1, Layout as Layout$1, Form as Form$1, Pagination as Pagination$1, Table, Tooltip as Tooltip$1, Dropdown, Tree as Tree$1 } from 'antd';
7
7
  import classnames from 'classnames';
8
8
  import { useMergeRefs } from '@floating-ui/react';
9
9
  import uniqueId$1 from 'lodash/uniqueId';
@@ -16,6 +16,8 @@ import '@floating-ui/dom';
16
16
  import { createPortal } from 'react-dom';
17
17
  import '@radix-ui/react-hover-card';
18
18
  import '@radix-ui/react-toast';
19
+ import '@radix-ui/react-slider';
20
+ import '@radix-ui/react-toolbar';
19
21
  import '@react-aria/combobox';
20
22
  import { useOption } from '@react-aria/listbox';
21
23
  import '@react-aria/overlays';
@@ -42,23 +44,21 @@ import * as AccordionPrimitive from '@radix-ui/react-accordion';
42
44
  import * as RadixTooltip from '@radix-ui/react-tooltip-patch';
43
45
  import { TooltipProvider } from '@radix-ui/react-tooltip-patch';
44
46
  import kebabCase from 'lodash/kebabCase';
45
- import AntDIcon, { EllipsisOutlined } from '@ant-design/icons';
47
+ import AntdIconBase, { EllipsisOutlined } from '@ant-design/icons';
46
48
  import random from 'lodash/random';
47
49
  import times from 'lodash/times';
48
50
  import { ContextMenuArrow, ContextMenuSub, ContextMenuGroup, ContextMenuTrigger, ContextMenuItemIndicator, ContextMenuCheckboxItem, ContextMenuPortal, ContextMenuContent, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuSeparator, ContextMenuRadioItem, ContextMenuRadioGroup, ContextMenuItem, ContextMenuLabel, ContextMenu as ContextMenu$2 } from '@radix-ui/react-context-menu';
49
- import { DayPicker, useDayRender, Button as Button$3 } from 'react-day-picker';
51
+ import { DayPicker, useDayRender, Button as Button$2 } from 'react-day-picker';
50
52
  import { tabbable } from 'tabbable';
51
53
  import { useCombobox, useMultipleSelection } from 'downshift';
52
54
  import * as RadixNavigationMenu from '@radix-ui/react-navigation-menu';
53
55
  import { RadioGroupItem, RadioGroup as RadioGroup$2 } from '@radix-ui/react-radio-group';
54
56
  import * as Progress$1 from '@radix-ui/react-progress';
55
57
  import { ResizableBox } from 'react-resizable';
56
- import * as RadixSlider from '@radix-ui/react-slider';
57
58
  import * as ScrollArea from '@radix-ui/react-scroll-area';
58
59
  import * as RadixTabs from '@radix-ui/react-tabs';
59
60
  import debounce from 'lodash/debounce';
60
61
  import * as Toggle from '@radix-ui/react-toggle';
61
- import * as RadixToolbar from '@radix-ui/react-toolbar';
62
62
 
63
63
  /**
64
64
  * Used to hide text visually, but still be readable by screen-readers
@@ -1767,12 +1767,33 @@ const getAnimationCss = memoize((enableAnimation)=>{
1767
1767
  const DesignSystemProviderPropsContext = /*#__PURE__*/ React__default.createContext(null);
1768
1768
  const AntDConfigProviderPropsContext = /*#__PURE__*/ React__default.createContext(null);
1769
1769
  /** Only to be accessed by SupportsDuBoisThemes, except for special exceptions like tests and storybook. Ask in #dubois first if you need to use it. */ const DesignSystemThemeProvider = ({ isDarkMode = false, semanticColors, designTokenOverrides, children })=>{
1770
- return /*#__PURE__*/ jsx(DesignSystemThemeContext.Provider, {
1771
- value: {
1770
+ // Inherit `designTokenOverrides` from any ambient scope so a nested theme provider — which usually
1771
+ // only switches isDarkMode / semanticColors — doesn't drop a structural override an ancestor set
1772
+ // (e.g. a radius or spacing token). These tokens are mode-independent, so inheriting them is always
1773
+ // correct. `semanticColors` and `isDarkMode` intentionally stay a clean per-mode replace: a mode
1774
+ // switch must NOT inherit the ancestor's palette (color layering is DesignTokenScope's job).
1775
+ const ambient = useContext(DesignSystemThemeContext);
1776
+ const mergedDesignTokenOverrides = useMemo(()=>{
1777
+ const merged = {
1778
+ ...ambient.designTokenOverrides,
1779
+ ...designTokenOverrides
1780
+ };
1781
+ return Object.keys(merged).length > 0 ? merged : undefined;
1782
+ }, [
1783
+ ambient.designTokenOverrides,
1784
+ designTokenOverrides
1785
+ ]);
1786
+ const value = useMemo(()=>({
1772
1787
  isDarkMode,
1773
1788
  semanticColors,
1774
- designTokenOverrides
1775
- },
1789
+ designTokenOverrides: mergedDesignTokenOverrides
1790
+ }), [
1791
+ isDarkMode,
1792
+ semanticColors,
1793
+ mergedDesignTokenOverrides
1794
+ ]);
1795
+ return /*#__PURE__*/ jsx(DesignSystemThemeContext.Provider, {
1796
+ value: value,
1776
1797
  children: children
1777
1798
  });
1778
1799
  };
@@ -1822,7 +1843,7 @@ function semanticColorsToStyle(semanticColors) {
1822
1843
  * surfaces escape the DOM subtree. Consumers use the exported `DesignTokenScope` below (which also
1823
1844
  * feeds `DesignSystemThemeContext` so portals inherit too) — this impl is deliberately not exported.
1824
1845
  */ const DesignTokenScopeImpl = ({ children, overrideTokens, semanticColors, isDarkMode })=>{
1825
- const theme = useTheme();
1846
+ const { theme } = useDesignSystemTheme();
1826
1847
  const scopeTheme = isDarkMode === undefined ? theme : getTheme(isDarkMode);
1827
1848
  const style = useMemo(()=>({
1828
1849
  display: 'contents',
@@ -1839,6 +1860,20 @@ function semanticColorsToStyle(semanticColors) {
1839
1860
  children: children
1840
1861
  });
1841
1862
  };
1863
+ // Entries of `overrides` that differ from `ambient` (added or changed) — what a scope contributes on
1864
+ // top of the tokens it already inherits. Empty when the scope changes nothing over ambient.
1865
+ function getChangedEntries(overrides, ambient) {
1866
+ const changed = {};
1867
+ if (overrides === undefined) return changed;
1868
+ // Object.keys widens to string[]; the cast restores the key union so the record indexing type-checks.
1869
+ for (const key of Object.keys(overrides)){
1870
+ const value = overrides[key];
1871
+ if (value !== undefined && value !== ambient?.[key]) {
1872
+ changed[key] = value;
1873
+ }
1874
+ }
1875
+ return changed;
1876
+ }
1842
1877
  /**
1843
1878
  * Applies design-token overrides to a component or page subtree, reaching BOTH in-tree components and
1844
1879
  * portaled surfaces (Modal, Drawer, DropdownMenu, Popover, Notification, …). This is the primitive to
@@ -1881,6 +1916,32 @@ function semanticColorsToStyle(semanticColors) {
1881
1916
  ambient.designTokenOverrides,
1882
1917
  overrideTokens
1883
1918
  ]);
1919
+ // What THIS scope changes vs the ambient one. The cumulative maps above feed the context, so portaled
1920
+ // surfaces re-stamp the full palette on their detached roots; the scoped delta below is all the in-tree
1921
+ // DOM node needs to stamp, because descendants already inherit the ambient tokens by CSS.
1922
+ const scopedSemanticColors = useMemo(()=>{
1923
+ const changed = getChangedEntries(semanticColors, ambient.semanticColors);
1924
+ return Object.keys(changed).length > 0 ? changed : undefined;
1925
+ }, [
1926
+ semanticColors,
1927
+ ambient.semanticColors
1928
+ ]);
1929
+ const scopedOverrideTokens = useMemo(()=>{
1930
+ const changed = getChangedEntries(overrideTokens, ambient.designTokenOverrides);
1931
+ return Object.keys(changed).length > 0 ? changed : undefined;
1932
+ }, [
1933
+ overrideTokens,
1934
+ ambient.designTokenOverrides
1935
+ ]);
1936
+ // A scope that changes nothing over ambient is a no-op: descendants already inherit the ambient scope
1937
+ // in-tree and read the same cumulative context, so render them directly. The mode check compares the
1938
+ // ambient CONTEXT mode (what descendants inherit and portals re-stamp from), not the emotion theme — a
1939
+ // forced-mode ancestor can make the two diverge, and skipping must not leave that divergence unreset.
1940
+ if (scopedSemanticColors === undefined && scopedOverrideTokens === undefined && resolvedIsDarkMode === ambient.isDarkMode) {
1941
+ return /*#__PURE__*/ jsx(Fragment, {
1942
+ children: children
1943
+ });
1944
+ }
1884
1945
  return(// DesignTokenScope IS the sanctioned wrapper that feeds token overrides into DesignSystemThemeContext
1885
1946
  // for portaled surfaces, so it is one of the "special exceptions" the forbid rule allows.
1886
1947
  // eslint-disable-next-line react/forbid-elements
@@ -1892,8 +1953,8 @@ function semanticColorsToStyle(semanticColors) {
1892
1953
  designTokenOverrides: mergedOverrideTokens,
1893
1954
  children: /*#__PURE__*/ jsx(DesignTokenScopeImpl, {
1894
1955
  isDarkMode: resolvedIsDarkMode,
1895
- semanticColors: mergedSemanticColors,
1896
- overrideTokens: mergedOverrideTokens,
1956
+ semanticColors: scopedSemanticColors,
1957
+ overrideTokens: scopedOverrideTokens,
1897
1958
  children: children
1898
1959
  })
1899
1960
  }));
@@ -2131,15 +2192,15 @@ const getIconVariantStyles = (theme, color)=>{
2131
2192
  } : {};
2132
2193
  }
2133
2194
  };
2134
- // Module-level cache. The full css prop for AntDIcon depends only on (theme, color) —
2195
+ // Module-level cache. The full css prop for AntdIconBase depends only on (theme, color) —
2135
2196
  // at most ~5 distinct color values per theme — so we share one css object across every
2136
2197
  // Icon instance. Same pattern as getShadowScrollStylesMemoized in css-utils.tsx.
2137
2198
  const getMemoizedIconCss$1 = memoize((theme, color)=>({
2138
2199
  fontSize: theme.general.iconFontSize,
2139
2200
  ...getIconVariantStyles(theme, color)
2140
2201
  }), (theme, color)=>`${themeMemoKey(theme)}|${color ?? 'undef'}`);
2141
- const Icon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
2142
- const { component: Component, dangerouslySetAntdProps, color, style, ...otherProps } = props;
2202
+ const AntdIcon = /*#__PURE__*/ forwardRef(function AntdIcon(props, forwardedRef) {
2203
+ const { component: Component, color, style, ...otherProps } = props;
2143
2204
  const { theme } = useDesignSystemTheme();
2144
2205
  const linearGradientId = useUniqueId('ai-linear-gradient');
2145
2206
  const { gradientStart: aiGradientStart, gradientMid: aiGradientMid, gradientEnd: aiGradientEnd } = theme.colors.branded.ai;
@@ -2196,7 +2257,7 @@ const Icon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
2196
2257
  aiGradientEnd
2197
2258
  ]);
2198
2259
  return /*#__PURE__*/ jsx(DesignSystemAntDConfigProvider, {
2199
- children: /*#__PURE__*/ jsx(AntDIcon, {
2260
+ children: /*#__PURE__*/ jsx(AntdIconBase, {
2200
2261
  ...addDebugOutlineIfEnabled(),
2201
2262
  ref: forwardedRef,
2202
2263
  "aria-hidden": "true",
@@ -2205,12 +2266,134 @@ const Icon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
2205
2266
  style: {
2206
2267
  ...style
2207
2268
  },
2208
- ...otherProps,
2209
- ...dangerouslySetAntdProps
2269
+ ...otherProps
2210
2270
  })
2211
2271
  });
2212
2272
  });
2213
2273
 
2274
+ const getColorClassName = (color)=>{
2275
+ return color ? `db-icon-${color}` : undefined;
2276
+ };
2277
+ const NativeIcon = /*#__PURE__*/ forwardRef(function NativeIcon({ component: Component, className, color, style, spin, rotate, viewBox, tabIndex, onClick, children, ...spanProps }, ref) {
2278
+ const effectiveTabIndex = tabIndex ?? (onClick ? -1 : undefined);
2279
+ const linearGradientId = useUniqueId('ai-linear-gradient');
2280
+ const svgStyle = useMemo(()=>rotate || color === 'ai' ? {
2281
+ ...rotate ? {
2282
+ rotate: `${rotate}deg`
2283
+ } : {},
2284
+ ...color === 'ai' ? {
2285
+ '--db-icon-gradient': `url(#${linearGradientId})`
2286
+ } : {}
2287
+ } : undefined, [
2288
+ rotate,
2289
+ color,
2290
+ linearGradientId
2291
+ ]);
2292
+ const svgProps = useMemo(()=>({
2293
+ width: '1em',
2294
+ height: '1em',
2295
+ fill: Component ? 'none' : 'currentColor',
2296
+ 'aria-hidden': 'true',
2297
+ focusable: 'false',
2298
+ className: classnames({
2299
+ 'db-icon-spin': spin
2300
+ }),
2301
+ style: svgStyle,
2302
+ ...viewBox !== undefined ? {
2303
+ viewBox
2304
+ } : {}
2305
+ }), [
2306
+ Component,
2307
+ spin,
2308
+ svgStyle,
2309
+ viewBox
2310
+ ]);
2311
+ // component takes precedence over children, matching antd's Icon.
2312
+ let glyph = null;
2313
+ if (Component) {
2314
+ glyph = /*#__PURE__*/ jsx(Component, {
2315
+ ...svgProps,
2316
+ children: children
2317
+ });
2318
+ } else if (children) {
2319
+ glyph = /*#__PURE__*/ jsx("svg", {
2320
+ ...svgProps,
2321
+ children: children
2322
+ });
2323
+ }
2324
+ return /*#__PURE__*/ jsxs("span", {
2325
+ ...addDebugOutlineIfEnabled(),
2326
+ // TODO: only set role="img" when the icon is not aria-hidden and has an aria-label or
2327
+ // aria-labelledby. role="img" is for content images, not decorative icons, most of which
2328
+ // are aria-hidden and better represented as text in the DOM.
2329
+ role: "img",
2330
+ "aria-hidden": "true",
2331
+ ...spanProps,
2332
+ ref: ref,
2333
+ tabIndex: effectiveTabIndex,
2334
+ onClick: onClick,
2335
+ className: classnames('db-icon', getColorClassName(color), className),
2336
+ style: style,
2337
+ children: [
2338
+ glyph,
2339
+ color === 'ai' && /*#__PURE__*/ jsx("svg", {
2340
+ className: "db-icon-gradient-definitions",
2341
+ width: "0",
2342
+ height: "0",
2343
+ viewBox: "0 0 0 0",
2344
+ "aria-hidden": "true",
2345
+ focusable: "false",
2346
+ children: /*#__PURE__*/ jsx("defs", {
2347
+ children: /*#__PURE__*/ jsxs("linearGradient", {
2348
+ id: linearGradientId,
2349
+ x1: "0%",
2350
+ y1: "0%",
2351
+ x2: "100%",
2352
+ y2: "100%",
2353
+ children: [
2354
+ /*#__PURE__*/ jsx("stop", {
2355
+ offset: "20.5%",
2356
+ className: "db-icon-ai-gradient-start"
2357
+ }),
2358
+ /*#__PURE__*/ jsx("stop", {
2359
+ offset: "46.91%",
2360
+ className: "db-icon-ai-gradient-mid"
2361
+ }),
2362
+ /*#__PURE__*/ jsx("stop", {
2363
+ offset: "79.5%",
2364
+ className: "db-icon-ai-gradient-end"
2365
+ })
2366
+ ]
2367
+ })
2368
+ })
2369
+ })
2370
+ ]
2371
+ });
2372
+ });
2373
+
2374
+ // Selector matching the design-system icon wrappers, `.anticon` and `.db-icon`. Authored icon styles
2375
+ // should use this instead of hardcoding either class.
2376
+ function getIconClassName() {
2377
+ return '.anticon, .db-icon';
2378
+ }
2379
+
2380
+ // Public Icon selects between the native (plain-DOM, token-driven) implementation and the legacy
2381
+ // AntD-backed implementation on the `databricks.fe.designsystem.useNativeIcon` server-side flag,
2382
+ // default off. serverSideSafe resolves synchronously at render, so the choice is stable from first paint.
2383
+ const Icon = /*#__PURE__*/ forwardRef(function Icon({ forceNativeIcon, ...props }, ref) {
2384
+ const useNativeIcon = forceNativeIcon ?? serverSideSafe('databricks.fe.designsystem.useNativeIcon', false);
2385
+ if (useNativeIcon) {
2386
+ return /*#__PURE__*/ jsx(NativeIcon, {
2387
+ ...props,
2388
+ ref: ref
2389
+ });
2390
+ }
2391
+ return /*#__PURE__*/ jsx(AntdIcon, {
2392
+ ...props,
2393
+ ref: ref
2394
+ });
2395
+ });
2396
+
2214
2397
  function SvgAzHorizontalIcon(props) {
2215
2398
  return /*#__PURE__*/ jsx("svg", {
2216
2399
  xmlns: "http://www.w3.org/2000/svg",
@@ -5546,6 +5729,62 @@ const ColorFillIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
5546
5729
  });
5547
5730
  ColorFillIcon.displayName = "ColorFillIcon";
5548
5731
 
5732
+ function SvgColorMappingEditIcon(props) {
5733
+ return /*#__PURE__*/ jsx("svg", {
5734
+ xmlns: "http://www.w3.org/2000/svg",
5735
+ width: "1em",
5736
+ height: "1em",
5737
+ fill: "none",
5738
+ viewBox: "0 0 17 17",
5739
+ ...props,
5740
+ children: /*#__PURE__*/ jsx("path", {
5741
+ fill: "currentColor",
5742
+ fillRule: "evenodd",
5743
+ d: "M6.5 8.836a.75.75 0 0 1 .75.75v4.75a.75.75 0 0 1-.75.75H1.75a.75.75 0 0 1-.75-.75v-4.75a.75.75 0 0 1 .75-.75zm-4 4.75h3.25v-3.25H2.5zM14.25 8.836a.75.75 0 0 1 .75.75v4.75a.75.75 0 0 1-.75.75H9.5a.75.75 0 0 1-.75-.75v-4.75a.75.75 0 0 1 .75-.75zm-4 4.75h3.25v-3.25h-3.25zM6.5 1.086a.75.75 0 0 1 .75.75v4.75a.75.75 0 0 1-.75.75H1.75a.75.75 0 0 1-.75-.75v-4.75a.75.75 0 0 1 .75-.75zm-4 4.75h3.25v-3.25H2.5zM12.513.512a1.75 1.75 0 0 1 2.474 0l.586.586a1.75 1.75 0 0 1 0 2.475L12.03 7.116a.75.75 0 0 1-.53.22h-2a.75.75 0 0 1-.75-.75v-2c0-.2.08-.39.22-.53zm1.414 1.061a.25.25 0 0 0-.354 0L10.25 4.896v.94h.94l3.323-3.324a.25.25 0 0 0 0-.353z",
5744
+ clipRule: "evenodd"
5745
+ })
5746
+ });
5747
+ }
5748
+ const ColorMappingEditIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
5749
+ return /*#__PURE__*/ jsx(Icon, {
5750
+ ref: forwardedRef,
5751
+ ...props,
5752
+ component: SvgColorMappingEditIcon
5753
+ });
5754
+ });
5755
+ ColorMappingEditIcon.displayName = "ColorMappingEditIcon";
5756
+
5757
+ function SvgColorMappingIcon(props) {
5758
+ return /*#__PURE__*/ jsxs("svg", {
5759
+ xmlns: "http://www.w3.org/2000/svg",
5760
+ width: "1em",
5761
+ height: "1em",
5762
+ fill: "none",
5763
+ viewBox: "0 0 16 16",
5764
+ ...props,
5765
+ children: [
5766
+ /*#__PURE__*/ jsx("path", {
5767
+ fill: "currentColor",
5768
+ fillRule: "evenodd",
5769
+ d: "M14.5 8.755a.75.75 0 0 1 .75.75v4.75a.75.75 0 0 1-.75.75H9.75a.75.75 0 0 1-.75-.75v-4.75a.75.75 0 0 1 .75-.75zm-4 4.75h3.25v-3.25H10.5zM6.5 8.75a.75.75 0 0 1 .75.75v4.75a.75.75 0 0 1-.75.75H1.75a.75.75 0 0 1-.75-.75V9.5a.75.75 0 0 1 .75-.75zm-4 4.75h3.25v-3.25H2.5zM6.5 1a.75.75 0 0 1 .75.75V6.5a.75.75 0 0 1-.75.75H1.75A.75.75 0 0 1 1 6.5V1.75A.75.75 0 0 1 1.75 1zm-4 4.75h3.25V2.5H2.5z",
5770
+ clipRule: "evenodd"
5771
+ }),
5772
+ /*#__PURE__*/ jsx("path", {
5773
+ fill: "currentColor",
5774
+ d: "M12.745 3.255H15v1.5h-2.255V7h-1.5V4.755H9v-1.5h2.245V1h1.5z"
5775
+ })
5776
+ ]
5777
+ });
5778
+ }
5779
+ const ColorMappingIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
5780
+ return /*#__PURE__*/ jsx(Icon, {
5781
+ ref: forwardedRef,
5782
+ ...props,
5783
+ component: SvgColorMappingIcon
5784
+ });
5785
+ });
5786
+ ColorMappingIcon.displayName = "ColorMappingIcon";
5787
+
5549
5788
  function SvgColumnIcon(props) {
5550
5789
  return /*#__PURE__*/ jsx("svg", {
5551
5790
  xmlns: "http://www.w3.org/2000/svg",
@@ -9046,6 +9285,37 @@ const LakewatchDetectionRuleIcon = /*#__PURE__*/ forwardRef((props, forwardedRef
9046
9285
  });
9047
9286
  LakewatchDetectionRuleIcon.displayName = "LakewatchDetectionRuleIcon";
9048
9287
 
9288
+ function SvgLakewatchIcon(props) {
9289
+ return /*#__PURE__*/ jsxs("svg", {
9290
+ xmlns: "http://www.w3.org/2000/svg",
9291
+ width: "1em",
9292
+ height: "1em",
9293
+ fill: "none",
9294
+ viewBox: "0 0 16 16",
9295
+ ...props,
9296
+ children: [
9297
+ /*#__PURE__*/ jsx("path", {
9298
+ fill: "currentColor",
9299
+ d: "M10.726 5.704c.326.712.51 1.504.51 2.338l-.009.289a5.6 5.6 0 0 1-.5 2.045l-1.182-.8a4.2 4.2 0 0 0-.001-3.072z"
9300
+ }),
9301
+ /*#__PURE__*/ jsx("path", {
9302
+ fill: "currentColor",
9303
+ fillRule: "evenodd",
9304
+ d: "M14.393.337c.679-.46 1.607.015 1.607.822v13.765l-.01.147c-.105.715-.96 1.105-1.597.675l-5.108-3.454a5.6 5.6 0 0 1-3.668 1.368l-.289-.008a5.619 5.619 0 0 1 .29-11.228c1.4 0 2.678.514 3.661 1.362zm-6.82 6.29a1.7 1.7 0 0 0-.002 2.817l7.029 4.752V1.886zM5.616 3.825a4.217 4.217 0 1 0 0 8.435c.915 0 1.76-.295 2.451-.79l-1.28-.867C5.024 9.412 4.97 6.86 6.623 5.585l.166-.12 1.273-.859a4.2 4.2 0 0 0-2.446-.781",
9305
+ clipRule: "evenodd"
9306
+ })
9307
+ ]
9308
+ });
9309
+ }
9310
+ const LakewatchIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
9311
+ return /*#__PURE__*/ jsx(Icon, {
9312
+ ref: forwardedRef,
9313
+ ...props,
9314
+ component: SvgLakewatchIcon
9315
+ });
9316
+ });
9317
+ LakewatchIcon.displayName = "LakewatchIcon";
9318
+
9049
9319
  function SvgLakewatchParserIcon(props) {
9050
9320
  return /*#__PURE__*/ jsxs("svg", {
9051
9321
  xmlns: "http://www.w3.org/2000/svg",
@@ -10019,6 +10289,68 @@ const MenuIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
10019
10289
  });
10020
10290
  MenuIcon.displayName = "MenuIcon";
10021
10291
 
10292
+ function SvgMicrophoneIcon(props) {
10293
+ return /*#__PURE__*/ jsxs("svg", {
10294
+ xmlns: "http://www.w3.org/2000/svg",
10295
+ width: "1em",
10296
+ height: "1em",
10297
+ fill: "none",
10298
+ viewBox: "0 0 16 16",
10299
+ ...props,
10300
+ children: [
10301
+ /*#__PURE__*/ jsx("path", {
10302
+ fill: "currentColor",
10303
+ d: "M3.5 8a4.5 4.5 0 1 0 9 0H14c0 3.06-2.29 5.582-5.25 5.951V16h-1.5v-2.049A6 6 0 0 1 2 8z"
10304
+ }),
10305
+ /*#__PURE__*/ jsx("path", {
10306
+ fill: "currentColor",
10307
+ fillRule: "evenodd",
10308
+ d: "M8 0a3 3 0 0 1 3 3v5a3 3 0 0 1-6 0V3a3 3 0 0 1 3-3m0 1.5A1.5 1.5 0 0 0 6.5 3v5a1.5 1.5 0 1 0 3 0V3A1.5 1.5 0 0 0 8 1.5",
10309
+ clipRule: "evenodd"
10310
+ })
10311
+ ]
10312
+ });
10313
+ }
10314
+ const MicrophoneIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
10315
+ return /*#__PURE__*/ jsx(Icon, {
10316
+ ref: forwardedRef,
10317
+ ...props,
10318
+ component: SvgMicrophoneIcon
10319
+ });
10320
+ });
10321
+ MicrophoneIcon.displayName = "MicrophoneIcon";
10322
+
10323
+ function SvgMicrophoneOffIcon(props) {
10324
+ return /*#__PURE__*/ jsxs("svg", {
10325
+ xmlns: "http://www.w3.org/2000/svg",
10326
+ width: "1em",
10327
+ height: "1em",
10328
+ fill: "none",
10329
+ viewBox: "0 0 16 16",
10330
+ ...props,
10331
+ children: [
10332
+ /*#__PURE__*/ jsx("path", {
10333
+ fill: "currentColor",
10334
+ fillRule: "evenodd",
10335
+ d: "m15.03 13.97-1.06 1.06-2.293-2.293a5.97 5.97 0 0 1-2.927 1.214V16h-1.5v-2.049A6 6 0 0 1 2 8h1.5a4.5 4.5 0 0 0 7.105 3.666l-1.084-1.084A2.97 2.97 0 0 1 8 11a3 3 0 0 1-3-3V6.06L.97 2.03 2.03.97zM6.5 8a1.5 1.5 0 0 0 1.888 1.448L6.5 7.561z",
10336
+ clipRule: "evenodd"
10337
+ }),
10338
+ /*#__PURE__*/ jsx("path", {
10339
+ fill: "currentColor",
10340
+ d: "M14 8c0 .864-.184 1.685-.513 2.427L12.32 9.259c.117-.4.181-.822.181-1.259zM8 0a3 3 0 0 1 3 3v4.94l-1.5-1.5V3a1.5 1.5 0 1 0-3 0v.44L5.144 2.082A3 3 0 0 1 8 0"
10341
+ })
10342
+ ]
10343
+ });
10344
+ }
10345
+ const MicrophoneOffIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
10346
+ return /*#__PURE__*/ jsx(Icon, {
10347
+ ref: forwardedRef,
10348
+ ...props,
10349
+ component: SvgMicrophoneOffIcon
10350
+ });
10351
+ });
10352
+ MicrophoneOffIcon.displayName = "MicrophoneOffIcon";
10353
+
10022
10354
  function SvgMinusCircleFillIcon(props) {
10023
10355
  return /*#__PURE__*/ jsx("svg", {
10024
10356
  xmlns: "http://www.w3.org/2000/svg",
@@ -10609,6 +10941,35 @@ const OntologyIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
10609
10941
  });
10610
10942
  OntologyIcon.displayName = "OntologyIcon";
10611
10943
 
10944
+ function SvgOperatorIcon(props) {
10945
+ return /*#__PURE__*/ jsxs("svg", {
10946
+ xmlns: "http://www.w3.org/2000/svg",
10947
+ width: "1em",
10948
+ height: "1em",
10949
+ fill: "none",
10950
+ viewBox: "0 0 16 16",
10951
+ ...props,
10952
+ children: [
10953
+ /*#__PURE__*/ jsx("path", {
10954
+ fill: "currentColor",
10955
+ d: "M12.75 11.25H15v1.5h-2.25V15h-1.5v-2.25H9v-1.5h2.25V9h1.5z"
10956
+ }),
10957
+ /*#__PURE__*/ jsx("path", {
10958
+ fill: "currentColor",
10959
+ d: "M15.25 2a.75.75 0 0 1 .75.75V8.5h-1.5v-5h-13v9h6V14H.75a.75.75 0 0 1-.75-.75V2.75A.75.75 0 0 1 .75 2z"
10960
+ })
10961
+ ]
10962
+ });
10963
+ }
10964
+ const OperatorIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
10965
+ return /*#__PURE__*/ jsx(Icon, {
10966
+ ref: forwardedRef,
10967
+ ...props,
10968
+ component: SvgOperatorIcon
10969
+ });
10970
+ });
10971
+ OperatorIcon.displayName = "OperatorIcon";
10972
+
10612
10973
  function SvgOverflowHorizontalIcon(props) {
10613
10974
  return /*#__PURE__*/ jsx("svg", {
10614
10975
  xmlns: "http://www.w3.org/2000/svg",
@@ -15641,6 +16002,29 @@ const VisibleOffIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
15641
16002
  });
15642
16003
  VisibleOffIcon.displayName = "VisibleOffIcon";
15643
16004
 
16005
+ function SvgVoiceModeIcon(props) {
16006
+ return /*#__PURE__*/ jsx("svg", {
16007
+ xmlns: "http://www.w3.org/2000/svg",
16008
+ width: "1em",
16009
+ height: "1em",
16010
+ fill: "none",
16011
+ viewBox: "0 0 16 16",
16012
+ ...props,
16013
+ children: /*#__PURE__*/ jsx("path", {
16014
+ fill: "currentColor",
16015
+ d: "M8.5 15H7V1h1.5zM5.5 12H4V4h1.5zM14.5 12H13V4h1.5zM2.5 10H1V6h1.5zM11.5 10H10V6h1.5z"
16016
+ })
16017
+ });
16018
+ }
16019
+ const VoiceModeIcon = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
16020
+ return /*#__PURE__*/ jsx(Icon, {
16021
+ ref: forwardedRef,
16022
+ ...props,
16023
+ component: SvgVoiceModeIcon
16024
+ });
16025
+ });
16026
+ VoiceModeIcon.displayName = "VoiceModeIcon";
16027
+
15644
16028
  function SvgWarningFillIcon(props) {
15645
16029
  return /*#__PURE__*/ jsx("svg", {
15646
16030
  xmlns: "http://www.w3.org/2000/svg",
@@ -17145,7 +17529,7 @@ var ShapeTokens = /*#__PURE__*/ function(ShapeTokens) {
17145
17529
  ShapeTokens["ACTION_BORDER_RADIUS"] = "--action-border-radius";
17146
17530
  ShapeTokens["INPUT_BORDER_RADIUS"] = "--input-border-radius";
17147
17531
  ShapeTokens["LIST_ITEM_BORDER_RADIUS"] = "--list-item-border-radius";
17148
- ShapeTokens["POPOVER_BORDER_RADIUS"] = "--popover-border-radius";
17532
+ ShapeTokens["POPUP_BORDER_RADIUS"] = "--popup-border-radius";
17149
17533
  ShapeTokens["INFO_CONTAINER_BORDER_RADIUS"] = "--info-container-border-radius";
17150
17534
  return ShapeTokens;
17151
17535
  }({});
@@ -17153,10 +17537,11 @@ var ShapeTokens = /*#__PURE__*/ function(ShapeTokens) {
17153
17537
  const token = (token, fallback)=>`var(${token}, ${typeof fallback === 'number' ? `${fallback}px` : fallback})`;
17154
17538
 
17155
17539
  const SMALL_BUTTON_HEIGHT$2 = 24;
17540
+ const ICON_SELECTOR$1 = `:is(${getIconClassName()})`;
17156
17541
  // Hoisted to module level so the default reference is stable across renders and instances.
17157
17542
  // Without this, the default `analyticsEvents = [...]` literal would be a fresh array on every
17158
17543
  // render, propagating ref-instability into useDesignSystemEventComponentCallbacks.
17159
- const DEFAULT_ANALYTICS_EVENTS$6 = [
17544
+ const DEFAULT_ANALYTICS_EVENTS$7 = [
17160
17545
  DesignSystemEventProviderAnalyticsEventTypes.OnClick,
17161
17546
  DesignSystemEventProviderAnalyticsEventTypes.OnView
17162
17547
  ];
@@ -17166,7 +17551,7 @@ const getMemoizedLoadingSpinnerCss = memoize((iconOnly, forceIconStyles)=>({
17166
17551
  color: 'inherit !important',
17167
17552
  pointerEvents: 'none',
17168
17553
  ...!iconOnly && !forceIconStyles && {
17169
- '.anticon': {
17554
+ [getIconClassName()]: {
17170
17555
  verticalAlign: '-0.2em'
17171
17556
  }
17172
17557
  },
@@ -17196,7 +17581,6 @@ function getEndIconClsName(theme) {
17196
17581
  return `${theme.general.iconfontCssPrefix}-btn-end-icon`;
17197
17582
  }
17198
17583
  const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onlyIcon, isAnchor, enableAnimation, size, type, useFocusPseudoClass, forceIconStyles, danger })=>{
17199
- const clsIcon = `.${theme.general.iconfontCssPrefix}`;
17200
17584
  const clsEndIcon = `.${getEndIconClsName(theme)}`;
17201
17585
  const clsLoadingIcon = `.${classNamePrefix}-btn-loading-icon`;
17202
17586
  const clsIconOnly = `.${classNamePrefix}-btn-icon-only`;
@@ -17230,7 +17614,7 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17230
17614
  const inactiveIconCss = {
17231
17615
  color: theme.colors.textSecondary
17232
17616
  };
17233
- const endIconCssSelector = `span > ${clsEndIcon} > ${clsIcon}`;
17617
+ const endIconCssSelector = `span > ${clsEndIcon} > ${ICON_SELECTOR$1}`;
17234
17618
  const styles = {
17235
17619
  lineHeight: theme.typography.lineHeightBase,
17236
17620
  boxShadow: 'none',
@@ -17314,7 +17698,7 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17314
17698
  }
17315
17699
  }
17316
17700
  },
17317
- [`&[disabled] > ${clsIcon}`]: {
17701
+ [`&[disabled] > ${ICON_SELECTOR$1}`]: {
17318
17702
  color: 'inherit !important'
17319
17703
  },
17320
17704
  [clsLoadingIcon]: {
@@ -17340,7 +17724,7 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17340
17724
  animationDuration: '1s !important'
17341
17725
  }
17342
17726
  },
17343
- [`& > ${clsLoadingIcon} .anticon`]: {
17727
+ [`& > ${clsLoadingIcon} ${ICON_SELECTOR$1}`]: {
17344
17728
  paddingRight: 0
17345
17729
  },
17346
17730
  [`> :not(${clsLoadingIcon})`]: {
@@ -17354,17 +17738,17 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17354
17738
  }
17355
17739
  },
17356
17740
  // Icon styles
17357
- [`> ${clsIcon} + span, > span + ${clsIcon}`]: {
17741
+ [`> ${ICON_SELECTOR$1} + span, > span + ${ICON_SELECTOR$1}`]: {
17358
17742
  marginRight: 0,
17359
17743
  marginLeft: theme.spacing.xs
17360
17744
  },
17361
- [`> ${clsIcon}`]: iconCss,
17745
+ [`> ${ICON_SELECTOR$1}`]: iconCss,
17362
17746
  [`> ${endIconCssSelector}`]: {
17363
17747
  ...iconCss,
17364
17748
  marginLeft: size === 'small' ? theme.spacing.xs : theme.spacing.sm
17365
17749
  },
17366
17750
  ...!type && !danger && {
17367
- [`&:enabled:not(:hover):not(:active) > ${clsIcon}`]: inactiveIconCss
17751
+ [`&:enabled:not(:hover):not(:active) > ${ICON_SELECTOR$1}`]: inactiveIconCss
17368
17752
  },
17369
17753
  ...!type && !danger && {
17370
17754
  [`&:enabled:not(:hover):not(:active) > ${endIconCssSelector}, &[href]:not(:disabled):not(:hover):not(:active) > ${endIconCssSelector}`]: inactiveIconCss
@@ -17389,13 +17773,13 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17389
17773
  color: theme.colors.actionDangerDefaultTextPress
17390
17774
  }
17391
17775
  },
17392
- '&:hover > .anticon': {
17776
+ [`&:hover > ${ICON_SELECTOR$1}`]: {
17393
17777
  color: tertiaryColors['&:hover'].color,
17394
17778
  ...danger && {
17395
17779
  color: theme.colors.actionDangerDefaultTextHover
17396
17780
  }
17397
17781
  },
17398
- '&:active > .anticon': {
17782
+ [`&:active > ${ICON_SELECTOR$1}`]: {
17399
17783
  color: tertiaryColors['&:active'].color,
17400
17784
  ...danger && {
17401
17785
  color: theme.colors.actionDangerDefaultTextPress
@@ -17407,7 +17791,7 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17407
17791
  }
17408
17792
  }
17409
17793
  },
17410
- [`&:enabled:not(${classLink}) > .anticon`]: {
17794
+ [`&:enabled:not(${classLink}) > ${ICON_SELECTOR$1}`]: {
17411
17795
  color: theme.colors.textSecondary,
17412
17796
  ...danger && {
17413
17797
  color: theme.colors.actionDangerDefaultTextDefault
@@ -17462,7 +17846,7 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17462
17846
  height: theme.general.heightSm / 2,
17463
17847
  width: theme.general.heightSm / 2
17464
17848
  },
17465
- [`& > ${clsLoadingIcon} .anticon`]: {
17849
+ [`& > ${clsLoadingIcon} ${ICON_SELECTOR$1}`]: {
17466
17850
  // left: `calc(50% - 6px)!important`,
17467
17851
  height: theme.general.heightSm / 2,
17468
17852
  width: theme.general.heightSm / 2,
@@ -17484,12 +17868,12 @@ const getButtonEmotionStyles = ({ theme, classNamePrefix, loading, withIcon, onl
17484
17868
  const importantTypeStyles = importantify(typeStyles);
17485
17869
  return /*#__PURE__*/ css(importantStyles, importantTypeStyles);
17486
17870
  };
17487
- const Button$1 = /* #__PURE__ */ (()=>{
17871
+ const AntDButtonInternal = /* #__PURE__ */ (()=>{
17488
17872
  const Button = /*#__PURE__*/ forwardRef(function Button(// Keep size out of props passed to AntD to make deprecation and eventual removal have 0 impact
17489
17873
  { children, size, type, loading: loadingProp, loadingDescription, endIcon, onClick, dangerouslySetForceIconStyles, dangerouslyUseFocusPseudoClass, dangerouslyAppendWrapperCss, componentId, analyticsEvents, shouldStartInteraction, ...props }, ref) {
17490
17874
  const formContext = useFormContext();
17491
17875
  const { theme, classNamePrefix } = useDesignSystemTheme();
17492
- const memoizedAnalyticsEvents = analyticsEvents ?? DEFAULT_ANALYTICS_EVENTS$6;
17876
+ const memoizedAnalyticsEvents = analyticsEvents ?? DEFAULT_ANALYTICS_EVENTS$7;
17493
17877
  const eventContext = useDesignSystemEventComponentCallbacks({
17494
17878
  componentType: DesignSystemEventProviderComponentTypes.Button,
17495
17879
  componentId,
@@ -17550,7 +17934,7 @@ const Button$1 = /* #__PURE__ */ (()=>{
17550
17934
  css: getMemoizedLoadingSpinnerCss(iconOnly, Boolean(dangerouslySetForceIconStyles))
17551
17935
  }) : null;
17552
17936
  return /*#__PURE__*/ jsx(DesignSystemAntDConfigProvider, {
17553
- children: /*#__PURE__*/ jsx(Button$2, {
17937
+ children: /*#__PURE__*/ jsx(Button$1, {
17554
17938
  ...addDebugOutlineIfEnabled(),
17555
17939
  ...props,
17556
17940
  css: getMemoizedButtonEmotionStyles({
@@ -17608,6 +17992,214 @@ const Button$1 = /* #__PURE__ */ (()=>{
17608
17992
  return Button;
17609
17993
  })();
17610
17994
 
17995
+ // Stable module-level default so useDesignSystemEventComponentCallbacks isn't fed a fresh array each render.
17996
+ const DEFAULT_ANALYTICS_EVENTS$6 = [
17997
+ DesignSystemEventProviderAnalyticsEventTypes.OnClick,
17998
+ DesignSystemEventProviderAnalyticsEventTypes.OnView
17999
+ ];
18000
+ // href renders a real <a>, so the forwarded ref can be either element — the public Button gate keeps
18001
+ // the HTMLButtonElement type and widening to the union here is assignable to it.
18002
+ const NativeButton = /*#__PURE__*/ forwardRef(function NativeButton({ type, size, danger, block, icon, endIcon, href, htmlType = 'button', loading: loadingProp, loadingDescription, disabled, children, className, style, onClick, componentId, analyticsEvents, shouldStartInteraction, dangerouslyAppendWrapperCss, dangerouslyUseFocusPseudoClass, dangerouslySetForceIconStyles, // Pull aria-disabled out of the passthrough so the value we compute below wins over {...props}
18003
+ // rather than being clobbered by it — while still honoring what the caller passed (see below).
18004
+ 'aria-disabled': ariaDisabledProp, ...props }, ref) {
18005
+ const formContext = useFormContext();
18006
+ const memoizedAnalyticsEvents = analyticsEvents ?? DEFAULT_ANALYTICS_EVENTS$6;
18007
+ const eventContext = useDesignSystemEventComponentCallbacks({
18008
+ componentType: DesignSystemEventProviderComponentTypes.Button,
18009
+ componentId,
18010
+ analyticsEvents: memoizedAnalyticsEvents,
18011
+ shouldStartInteraction,
18012
+ // A submit button is not the interaction subject — the form submission is.
18013
+ isInteractionSubject: !(htmlType === 'submit' && formContext.componentId)
18014
+ });
18015
+ const { elementRef: buttonRef } = useNotifyOnFirstView({
18016
+ onView: eventContext.onView
18017
+ });
18018
+ // Forward the ref to whichever element actually renders (button or anchor) — no HTMLButtonElement cast.
18019
+ const mergedRef = useMergeRefs([
18020
+ ref,
18021
+ buttonRef
18022
+ ]);
18023
+ const loading = Boolean(loadingProp ?? (htmlType === 'submit' && formContext.isSubmitting));
18024
+ const iconOnly = Boolean((icon || endIcon) && !children);
18025
+ // A content-less button (no icon, no end icon, no children) draws no visible box; consumers use
18026
+ // such empty (usually disabled) buttons as layout spacers (e.g. an invoice table's expand column).
18027
+ // Mark it so the styles stay borderless/transparent; `.db-btn-empty` only zeroes bg/border, so a
18028
+ // loading spinner still renders.
18029
+ const isEmpty = !icon && !endIcon && !children;
18030
+ const forceIconStyles = Boolean(dangerouslySetForceIconStyles);
18031
+ // Render a real <a> whenever href is set and enabled (including while loading — the loading click
18032
+ // is neutralized in handleClick); a disabled link falls back to a <button>.
18033
+ const renderAnchor = Boolean(href) && !disabled;
18034
+ const handleClick = useCallback((event)=>{
18035
+ if (loading) {
18036
+ // Skip the React click handlers while loading. For a link, also block the browser's default
18037
+ // navigation so a loading link is inert (parity with the legacy button, where AntD
18038
+ // preventDefaults loading clicks). A loading `htmlType="submit"` button intentionally still
18039
+ // submits its form (forms rely on this), so only the anchor's default is neutralized —
18040
+ // `preventDefault` for the submit case would suppress that submission.
18041
+ if (renderAnchor) {
18042
+ event.preventDefault();
18043
+ }
18044
+ return;
18045
+ }
18046
+ eventContext.onClick(event);
18047
+ if (htmlType === 'submit' && formContext.formRef?.current) {
18048
+ event.preventDefault();
18049
+ formContext.formRef.current.requestSubmit();
18050
+ }
18051
+ onClick?.(event);
18052
+ }, [
18053
+ loading,
18054
+ renderAnchor,
18055
+ htmlType,
18056
+ formContext.formRef,
18057
+ eventContext,
18058
+ onClick
18059
+ ]);
18060
+ // Inherits the `--db-color-*` scope (theme-class + consumer override) from the DesignSystemProvider
18061
+ // wrapper; no self-scoped theme class, so a consumer override set on that wrapper reaches here.
18062
+ const rootClassName = classnames('db-btn', {
18063
+ 'db-btn-primary': type === 'primary',
18064
+ 'db-btn-link': type === 'link',
18065
+ 'db-btn-tertiary': type === 'tertiary',
18066
+ // Positive marker for the default (secondary) variant, i.e. no `type` at all. The icon-greying
18067
+ // rules key on this rather than negating the variant classes: a Radix `*.Trigger asChild` can
18068
+ // inject a bogus `type="button"` onto the Button, which is not a real variant. Gating icon
18069
+ // greying on `!type` means a truthy `type` (even "button") leaves the glyph at the text color
18070
+ // (an injected `type` is truthy → not default).
18071
+ 'db-btn-default': !type,
18072
+ 'db-btn-danger': Boolean(danger),
18073
+ 'db-btn-small': size === 'small',
18074
+ 'db-btn-icon-only': iconOnly,
18075
+ 'db-btn-empty': isEmpty,
18076
+ 'db-btn-force-icon': forceIconStyles,
18077
+ 'db-btn-block': Boolean(block),
18078
+ 'db-btn-loading': loading,
18079
+ // While loading with a leading icon, reserve the icon's width so the button doesn't shrink.
18080
+ 'db-btn-loading-with-icon': loading && Boolean(icon),
18081
+ 'db-btn-use-focus-pseudo-class': Boolean(dangerouslyUseFocusPseudoClass)
18082
+ }, className);
18083
+ // Expose loading (and disabled) as disabled to assistive tech without the disabled-grey visuals a
18084
+ // real `disabled` attribute would force — the button keeps its variant color + spinner while loading.
18085
+ // Also honor a caller-provided aria-disabled (the "soft-disable" pattern: the button stays
18086
+ // focusable + clickable, the caller guards its own onClick so a tooltip still fires, and the
18087
+ // caller's `&[aria-disabled="true"]` styling applies). An explicit `false` is preserved, since
18088
+ // callers/tests assert `aria-disabled="false"` on the enabled state.
18089
+ const ariaDisabled = disabled || loading || ariaDisabledProp === true ? true : ariaDisabledProp;
18090
+ // Render the leading icon directly (not wrapped) so it stays the button's direct `.anticon` child,
18091
+ // so DOM-structure selectors (e.g. the Table icon-only row-action reveal,
18092
+ // `button:has(> span.anticon[role="img"]:only-child)`) keep matching. Same for the loading spinner.
18093
+ // The CSS icon rules target `.db-btn > .anticon` so they only style real icon glyphs — a non-glyph
18094
+ // element passed as `icon` (e.g. a Spinner) keeps its own sizing — and out-specify AntD's global
18095
+ // `.anticon` base rule.
18096
+ const leading = loading ? /*#__PURE__*/ jsx(Spinner, {
18097
+ className: "db-btn-spinner",
18098
+ animationDuration: 1,
18099
+ inheritColor: true,
18100
+ label: "loading",
18101
+ "aria-label": "loading",
18102
+ // oxlint-disable-next-line @databricks/no-dynamic-property-value -- DUBOIS INTERNAL EXEMPTION exempt:b7289367-ddfb-4cf6-b8d1-22b27cdff2d2
18103
+ loadingDescription: loadingDescription ?? componentId
18104
+ }) : icon ? icon : null;
18105
+ let content = null;
18106
+ if (children !== undefined && children !== null && children !== false) {
18107
+ // Hide the content inline while loading (not just via the CSS class) so it leaves the
18108
+ // accessibility tree in every environment — jsdom doesn't apply stylesheet CSS, so the button's
18109
+ // accessible name stays "loading" rather than "loading <label>".
18110
+ content = /*#__PURE__*/ jsxs("span", {
18111
+ className: "db-btn-content",
18112
+ style: {
18113
+ visibility: loading ? 'hidden' : undefined,
18114
+ ...dangerouslyAppendWrapperCss
18115
+ },
18116
+ children: [
18117
+ children,
18118
+ endIcon && /*#__PURE__*/ jsx("span", {
18119
+ className: "db-btn-end-icon",
18120
+ children: endIcon
18121
+ })
18122
+ ]
18123
+ });
18124
+ }
18125
+ // endIcon renders only alongside children, matching the legacy button.
18126
+ // Render a real anchor when it acts as an enabled, non-loading link; otherwise a native button.
18127
+ if (renderAnchor) {
18128
+ return /*#__PURE__*/ jsxs("a", {
18129
+ ...addDebugOutlineIfEnabled(),
18130
+ ...props,
18131
+ ref: mergedRef,
18132
+ href: href,
18133
+ "aria-disabled": ariaDisabled,
18134
+ className: rootClassName,
18135
+ style: style,
18136
+ onClick: handleClick,
18137
+ ...eventContext.dataComponentProps,
18138
+ children: [
18139
+ leading,
18140
+ content
18141
+ ]
18142
+ });
18143
+ }
18144
+ return /*#__PURE__*/ jsxs("button", {
18145
+ ...addDebugOutlineIfEnabled(),
18146
+ ...props,
18147
+ ref: mergedRef,
18148
+ type: htmlType,
18149
+ disabled: disabled,
18150
+ "aria-disabled": ariaDisabled,
18151
+ className: rootClassName,
18152
+ style: style,
18153
+ onClick: handleClick,
18154
+ ...eventContext.dataComponentProps,
18155
+ children: [
18156
+ leading,
18157
+ content
18158
+ ]
18159
+ });
18160
+ });
18161
+
18162
+ // Public Button selects between the native (plain-DOM, token-driven) implementation and the legacy
18163
+ // implementation on the `databricks.fe.designsystem.useNativeButton` server-side flag, default off.
18164
+ // serverSideSafe resolves synchronously at render, so the choice is stable from first paint.
18165
+ const Button = /* #__PURE__ */ (()=>{
18166
+ const Button = /*#__PURE__*/ forwardRef(function Button({ useNativeButtonOverride, ...props }, ref) {
18167
+ const useNativeButton = useNativeButtonOverride ?? serverSideSafe('databricks.fe.designsystem.useNativeButton', false);
18168
+ if (useNativeButton) {
18169
+ return /*#__PURE__*/ jsx(NativeButton, {
18170
+ ...props,
18171
+ ref: ref
18172
+ });
18173
+ }
18174
+ return /*#__PURE__*/ jsx(AntDButtonInternal, {
18175
+ ...props,
18176
+ ref: ref
18177
+ });
18178
+ });
18179
+ // The default path is the legacy Ant-backed button, so keep the marker Ant wrappers (e.g. Tooltip)
18180
+ // read to identify it — preserving pre-split behavior while the flag is off.
18181
+ // See: https://github.com/ant-design/ant-design/blob/6dd39c1f89b4d6632e6ed022ff1bc275ca1e0f1f/components/button/button.tsx#L291
18182
+ Button.__ANT_BUTTON = true;
18183
+ return Button;
18184
+ })();
18185
+
18186
+ /**
18187
+ * Emotion selector that matches a Du Bois button by BOTH its legacy AntD-prefixed class
18188
+ * (`.<clsNamePrefix>-btn…`) and the NativeButton class (`.db-btn…`). Style overrides keyed off the
18189
+ * button class must match `.db-btn` too, so they survive the migration off the AntD-prefixed
18190
+ * `Button` onto `NativeButton`.
18191
+ *
18192
+ * @param clsNamePrefix theme class prefix, e.g. `classNamePrefix` from `useDesignSystemTheme()`.
18193
+ * @param suffix raw selector fragment appended after `-btn` on each class — e.g. `'-primary'`,
18194
+ * `'-icon-only'`, `':first-child'`, `'[disabled]'`, `' > span'`, or `''` for none. Include the
18195
+ * leading `-` yourself.
18196
+ * @param prefix combinator/anchor prepended before each class — pass it explicitly so the call reads
18197
+ * at a glance: `'&'` for a self-target selector (`&.…-btn`, when the `css` sits on the Button
18198
+ * element itself), `''` for a bare descendant (`.…-btn`), `'& > '` for a direct child, `'& '` for
18199
+ * any descendant, or a fuller container prefix (e.g. `` `.${prefix}-dropdown-button > ` ``) when the
18200
+ * button is nested deeper.
18201
+ */ const getBtnClassName = (clsNamePrefix, suffix, prefix)=>`${prefix}.${clsNamePrefix}-btn${suffix}, ${prefix}.db-btn${suffix}`;
18202
+
17611
18203
  const DRAWER_ZINDEX_OVERLAY_OFFSET = 1;
17612
18204
  const DRAWER_ZINDEX_CONTENT_OFFSET = DRAWER_ZINDEX_OVERLAY_OFFSET + 1;
17613
18205
  /** Whether the surrounding subtree is inside an open Drawer. */ const DrawerContext = /*#__PURE__*/ createContext({
@@ -17710,18 +18302,18 @@ const getLinkStyles = (theme, clsPrefix)=>{
17710
18302
  [`&${classTypography}, &${classTypography}:focus`]: {
17711
18303
  color: theme.colors.actionTertiaryTextDefault
17712
18304
  },
17713
- [`&${classTypography}:hover, &${classTypography}:hover .anticon`]: {
18305
+ [`&${classTypography}:hover, &${classTypography}:hover :is(${getIconClassName()})`]: {
17714
18306
  color: theme.colors.actionTertiaryTextHover,
17715
18307
  textDecoration: 'underline'
17716
18308
  },
17717
- [`&${classTypography}:active, &${classTypography}:active .anticon`]: {
18309
+ [`&${classTypography}:active, &${classTypography}:active :is(${getIconClassName()})`]: {
17718
18310
  color: theme.colors.actionTertiaryTextPress,
17719
18311
  textDecoration: 'underline'
17720
18312
  },
17721
18313
  [`&${classTypography}:focus-visible`]: {
17722
18314
  textDecoration: 'underline'
17723
18315
  },
17724
- '.anticon': {
18316
+ [getIconClassName()]: {
17725
18317
  fontSize: 12,
17726
18318
  verticalAlign: 'baseline'
17727
18319
  },
@@ -17730,19 +18322,19 @@ const getLinkStyles = (theme, clsPrefix)=>{
17730
18322
  [`.${clsPrefix}-tooltip-inner a&${classTypography}`]: {
17731
18323
  [`&, :focus`]: {
17732
18324
  color: theme.colors.blue500,
17733
- '.anticon': {
18325
+ [getIconClassName()]: {
17734
18326
  color: theme.colors.blue500
17735
18327
  }
17736
18328
  },
17737
18329
  ':active': {
17738
18330
  color: theme.colors.blue500,
17739
- '.anticon': {
18331
+ [getIconClassName()]: {
17740
18332
  color: theme.colors.blue500
17741
18333
  }
17742
18334
  },
17743
18335
  ':hover': {
17744
18336
  color: theme.colors.blue400,
17745
- '.anticon': {
18337
+ [getIconClassName()]: {
17746
18338
  color: theme.colors.blue400
17747
18339
  }
17748
18340
  }
@@ -17778,7 +18370,7 @@ const getEllipsisIconStyles = (useNewIcons)=>{
17778
18370
  };
17779
18371
  return /*#__PURE__*/ css(styles);
17780
18372
  };
17781
- const Link$1 = /*#__PURE__*/ forwardRef(function Link({ dangerouslySetAntdProps, componentId, analyticsEvents, onClick, ...props }, ref) {
18373
+ const Link = /*#__PURE__*/ forwardRef(function Link({ dangerouslySetAntdProps, componentId, analyticsEvents, onClick, ...props }, ref) {
17782
18374
  const { children, openInNewTab, dangerouslyHideNewTabIcon, ellipsis, ...restProps } = props;
17783
18375
  const { theme, classNamePrefix } = useDesignSystemTheme();
17784
18376
  const memoizedAnalyticsEvents = useMemo(()=>analyticsEvents ?? [
@@ -17860,10 +18452,10 @@ function getParagraphEmotionStyles(theme, clsPrefix, props) {
17860
18452
  lineHeight: theme.typography.lineHeightBase,
17861
18453
  color: getTypographyColor(theme, props.color, theme.colors.textPrimary)
17862
18454
  },
17863
- '& .anticon': {
18455
+ [`& :is(${getIconClassName()})`]: {
17864
18456
  verticalAlign: 'text-bottom'
17865
18457
  },
17866
- [`& .${clsPrefix}-btn-link`]: {
18458
+ [`${getBtnClassName(clsPrefix, '-link', '& ')}, ${getBtnClassName(clsPrefix, '-tertiary', '& ')}`]: {
17867
18459
  verticalAlign: 'baseline !important'
17868
18460
  }
17869
18461
  }, props.disabled && {
@@ -17941,7 +18533,7 @@ function getTextEmotionStyles(theme, props) {
17941
18533
  return {
17942
18534
  fontSize: theme.typography.fontSizeXxl,
17943
18535
  lineHeight: theme.typography.lineHeightXxl,
17944
- '& .anticon': {
18536
+ [`& :is(${getIconClassName()})`]: {
17945
18537
  lineHeight: theme.typography.lineHeightXxl,
17946
18538
  verticalAlign: 'middle'
17947
18539
  }
@@ -17950,7 +18542,7 @@ function getTextEmotionStyles(theme, props) {
17950
18542
  return {
17951
18543
  fontSize: theme.typography.fontSizeXl,
17952
18544
  lineHeight: theme.typography.lineHeightXl,
17953
- '& .anticon': {
18545
+ [`& :is(${getIconClassName()})`]: {
17954
18546
  lineHeight: theme.typography.lineHeightXl,
17955
18547
  verticalAlign: 'middle'
17956
18548
  }
@@ -17959,7 +18551,7 @@ function getTextEmotionStyles(theme, props) {
17959
18551
  return {
17960
18552
  fontSize: theme.typography.fontSizeLg,
17961
18553
  lineHeight: theme.typography.lineHeightLg,
17962
- '& .anticon': {
18554
+ [`& :is(${getIconClassName()})`]: {
17963
18555
  lineHeight: theme.typography.lineHeightLg,
17964
18556
  verticalAlign: 'middle'
17965
18557
  }
@@ -17968,7 +18560,7 @@ function getTextEmotionStyles(theme, props) {
17968
18560
  return {
17969
18561
  fontSize: theme.typography.fontSizeSm,
17970
18562
  lineHeight: theme.typography.lineHeightSm,
17971
- '& .anticon': {
18563
+ [`& :is(${getIconClassName()})`]: {
17972
18564
  verticalAlign: '-0.219em'
17973
18565
  }
17974
18566
  };
@@ -18084,7 +18676,7 @@ function getLevelStyles(theme, props) {
18084
18676
  lineHeight: theme.typography[tokens.lineHeight],
18085
18677
  fontWeight: theme.typography.typographyBoldFontWeight
18086
18678
  },
18087
- '& > .anticon': {
18679
+ [`& > :is(${getIconClassName()})`]: {
18088
18680
  lineHeight: theme.typography[tokens.lineHeight]
18089
18681
  }
18090
18682
  });
@@ -18094,7 +18686,7 @@ function getTitleEmotionStyles(theme, props) {
18094
18686
  '&&': {
18095
18687
  color: getTypographyColor(theme, props.color, theme.colors.textPrimary)
18096
18688
  },
18097
- '& > .anticon': {
18689
+ [`& > :is(${getIconClassName()})`]: {
18098
18690
  verticalAlign: 'middle'
18099
18691
  }
18100
18692
  }, props.withoutMargins && {
@@ -18170,7 +18762,7 @@ const Typography = /* #__PURE__ */ (()=>{
18170
18762
  Typography.Text = Text$1;
18171
18763
  Typography.Title = Title$1;
18172
18764
  Typography.Paragraph = Paragraph$2;
18173
- Typography.Link = Link$1;
18765
+ Typography.Link = Link;
18174
18766
  Typography.Hint = Hint$2;
18175
18767
  Typography.Truncate = Truncate;
18176
18768
  Typography.TextMiddleElide = TextMiddleElide;
@@ -18210,7 +18802,9 @@ const wrapperStyles = /*#__PURE__*/ css({
18210
18802
  width: '100%',
18211
18803
  height: '100%'
18212
18804
  });
18213
- const overlayStyles = (theme, zIndex, maskStyle)=>/*#__PURE__*/ css({
18805
+ const overlayStyles = (theme, zIndex, maskStyle)=>// eslint-disable-next-line @typescript-eslint/ban-ts-comment
18806
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
18807
+ /*#__PURE__*/ css({
18214
18808
  position: 'fixed',
18215
18809
  inset: 0,
18216
18810
  backgroundColor: theme.colors.overlayOverlay,
@@ -18223,6 +18817,8 @@ const overlayStyles = (theme, zIndex, maskStyle)=>/*#__PURE__*/ css({
18223
18817
  });
18224
18818
  const modalContentStyles = (theme, maxedOutHeight)=>{
18225
18819
  const MODAL_PADDING = theme.spacing.lg;
18820
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18821
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
18226
18822
  return /*#__PURE__*/ css({
18227
18823
  backgroundColor: theme.colors.backgroundPrimary,
18228
18824
  maxHeight: '90vh',
@@ -18323,7 +18919,7 @@ const modalFooterStyles = (theme, prefixCls, hasCustomFooter)=>{
18323
18919
  paddingLeft: MODAL_PADDING,
18324
18920
  paddingRight: MODAL_PADDING,
18325
18921
  marginTop: 'auto',
18326
- [`.${prefixCls}-dropdown-button > .${prefixCls}-btn:nth-of-type(2)`]: {
18922
+ [getBtnClassName(prefixCls, ':nth-of-type(2)', `.${prefixCls}-dropdown-button > `)]: {
18327
18923
  marginLeft: -1
18328
18924
  }
18329
18925
  });
@@ -18351,7 +18947,7 @@ function DefaultFooter({ componentId, onOk, onCancel, confirmLoading, okText, ca
18351
18947
  const handleOk = (e)=>onOk?.(e);
18352
18948
  return /*#__PURE__*/ jsxs(Fragment, {
18353
18949
  children: [
18354
- cancelText && /*#__PURE__*/ jsx(Button$1, {
18950
+ cancelText && /*#__PURE__*/ jsx(Button, {
18355
18951
  componentId: componentId ? `${componentId}.footer.cancel` : 'modal.close',
18356
18952
  onClick: handleCancel,
18357
18953
  autoFocus: autoFocusButton === 'cancel',
@@ -18360,7 +18956,7 @@ function DefaultFooter({ componentId, onOk, onCancel, confirmLoading, okText, ca
18360
18956
  ...cancelButtonProps,
18361
18957
  children: cancelText
18362
18958
  }),
18363
- okText && /*#__PURE__*/ jsx(Button$1, {
18959
+ okText && /*#__PURE__*/ jsx(Button, {
18364
18960
  componentId: componentId ? `${componentId}.footer.ok` : 'modal.ok',
18365
18961
  loading: confirmLoading,
18366
18962
  onClick: handleOk,
@@ -18678,7 +19274,7 @@ function ModalInternal({ componentId, analyticsEvents = [
18678
19274
  }),
18679
19275
  dangerouslySetAntdProps?.closable === undefined || dangerouslySetAntdProps?.closable ? /*#__PURE__*/ jsx(DialogPrimitive.Close, {
18680
19276
  asChild: true,
18681
- children: /*#__PURE__*/ jsx(Button$1, {
19277
+ children: /*#__PURE__*/ jsx(Button, {
18682
19278
  icon: dangerouslySetAntdProps?.closeIcon ?? /*#__PURE__*/ jsx(CloseIcon, {
18683
19279
  ref: elementRef
18684
19280
  }),
@@ -18778,14 +19374,14 @@ function DangerModal(props) {
18778
19374
  shouldStartInteraction: props.shouldStartInteraction,
18779
19375
  title: titleComp,
18780
19376
  footer: [
18781
- /*#__PURE__*/ jsx(Button$1, {
19377
+ /*#__PURE__*/ jsx(Button, {
18782
19378
  componentId: props.componentId ? `${props.componentId}.danger.footer.cancel` : 'modal.danger.cancel',
18783
19379
  onClick: onCancel,
18784
19380
  shouldStartInteraction: props.shouldStartInteraction,
18785
19381
  ...cancelButtonProps,
18786
19382
  children: cancelText || 'Cancel'
18787
19383
  }, "cancel"),
18788
- /*#__PURE__*/ jsx(Button$1, {
19384
+ /*#__PURE__*/ jsx(Button, {
18789
19385
  componentId: props.componentId ? `${props.componentId}.danger.footer.ok` : 'modal.danger.ok',
18790
19386
  type: "primary",
18791
19387
  danger: true,
@@ -18812,7 +19408,7 @@ const Anchor = Popover$1.Anchor; // Behavioral component only
18812
19408
  const DEFAULT_ANALYTICS_EVENTS$5 = [
18813
19409
  DesignSystemEventProviderAnalyticsEventTypes.OnView
18814
19410
  ];
18815
- const Root$b = ({ children, onOpenChange, componentId, analyticsEvents = DEFAULT_ANALYTICS_EVENTS$5, ...props })=>{
19411
+ const Root$9 = ({ children, onOpenChange, componentId, analyticsEvents = DEFAULT_ANALYTICS_EVENTS$5, ...props })=>{
18816
19412
  const firstView = useRef(true);
18817
19413
  const eventContext = useDesignSystemEventComponentCallbacks({
18818
19414
  componentType: DesignSystemEventProviderComponentTypes.Popover,
@@ -18899,9 +19495,8 @@ const Close = /*#__PURE__*/ forwardRef(function Close({ children, ...props }, re
18899
19495
  });
18900
19496
  });
18901
19497
  const Arrow$2 = /*#__PURE__*/ forwardRef(function Arrow({ children, ...props }, ref) {
18902
- const { theme } = useDesignSystemTheme();
18903
19498
  return /*#__PURE__*/ jsx(Popover$1.Arrow, {
18904
- css: getMemoizedArrowCss(theme),
19499
+ css: arrowStyles,
18905
19500
  ref: ref,
18906
19501
  width: 12,
18907
19502
  height: 6,
@@ -18926,40 +19521,44 @@ const CONSTANTS$1 = {
18926
19521
  return 2;
18927
19522
  }
18928
19523
  };
18929
- const popoverContentStylesResolver = memoize((theme)=>({
18930
- backgroundColor: theme.colors.backgroundPrimary,
18931
- color: theme.colors.textPrimary,
19524
+ const popoverContentStylesResolver = memoize(// eslint-disable-next-line @typescript-eslint/ban-ts-comment
19525
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
19526
+ (theme)=>({
19527
+ backgroundColor: 'var(--db-popover-surface)',
19528
+ color: 'var(--db-popover-text)',
18932
19529
  lineHeight: theme.typography.lineHeightBase,
18933
- border: `1px solid ${theme.colors.border}`,
18934
- borderRadius: token(ShapeTokens.POPOVER_BORDER_RADIUS, theme.borders.borderRadiusSm),
18935
- padding: `${theme.spacing.sm}px`,
18936
- boxShadow: theme.shadows.lg,
19530
+ border: `1px solid var(--db-popover-border)`,
19531
+ borderRadius: 'var(--db-popover-border-radius)',
19532
+ padding: 'var(--db-popover-spacing)',
19533
+ boxShadow: 'var(--db-popover-shadow)',
18937
19534
  zIndex: theme.options.zIndexBase + 30,
18938
19535
  ...getDarkModePortalStyles(theme),
18939
19536
  a: importantify({
18940
- color: theme.colors.actionTertiaryTextDefault,
19537
+ color: 'var(--db-popover-link-text)',
18941
19538
  '&:hover, &:focus': {
18942
- color: theme.colors.actionTertiaryTextHover
19539
+ color: 'var(--db-popover-link-text-hover)'
18943
19540
  }
18944
19541
  }),
18945
19542
  '&:focus-visible': {
18946
19543
  outlineStyle: 'solid',
18947
- outlineWidth: '2px',
19544
+ outlineWidth: 'var(--db-popover-focus-ring-width)',
18948
19545
  outlineOffset: '1px',
18949
- outlineColor: theme.colors.actionDefaultBorderFocus
19546
+ outlineColor: 'var(--db-popover-focus-ring)'
18950
19547
  }
18951
19548
  }));
18952
19549
  const contentStyles$1 = (theme)=>popoverContentStylesResolver(theme);
18953
- // Module-level cache for the Arrow css. Output depends only on theme.
18954
- const getMemoizedArrowCss = memoize((theme)=>({
18955
- fill: theme.colors.backgroundPrimary,
18956
- stroke: theme.colors.borderDecorative,
18957
- strokeDashoffset: -CONSTANTS$1.arrowBottomLength(),
18958
- strokeDasharray: CONSTANTS$1.arrowBottomLength() + 2 * CONSTANTS$1.arrowSide(),
18959
- strokeWidth: CONSTANTS$1.arrowStrokeWidth(),
18960
- position: 'relative',
18961
- top: -1
18962
- }));
19550
+ // Fill and stroke read from the popover CSS variables; the rest is fixed geometry, so this no
19551
+ // longer depends on the theme. borderDecorative was an alias for border, so the arrow stroke
19552
+ // and the content border share --db-popover-border.
19553
+ const arrowStyles = {
19554
+ fill: 'var(--db-popover-surface)',
19555
+ stroke: 'var(--db-popover-border)',
19556
+ strokeDashoffset: -CONSTANTS$1.arrowBottomLength(),
19557
+ strokeDasharray: CONSTANTS$1.arrowBottomLength() + 2 * CONSTANTS$1.arrowSide(),
19558
+ strokeWidth: CONSTANTS$1.arrowStrokeWidth(),
19559
+ position: 'relative',
19560
+ top: -1
19561
+ };
18963
19562
 
18964
19563
  var Popover = /*#__PURE__*/Object.freeze({
18965
19564
  __proto__: null,
@@ -18967,7 +19566,7 @@ var Popover = /*#__PURE__*/Object.freeze({
18967
19566
  Arrow: Arrow$2,
18968
19567
  Close: Close,
18969
19568
  Content: Content$7,
18970
- Root: Root$b,
19569
+ Root: Root$9,
18971
19570
  Trigger: Trigger$5
18972
19571
  });
18973
19572
 
@@ -19030,20 +19629,16 @@ const getTooltipStyles = (theme, clsPrefix)=>{
19030
19629
  // component is used outside of universe alongside a Radix version that still has the underlying bug.
19031
19630
  const dataStateAttr = 'tooltip-data-state';
19032
19631
  const classTypography = `.${clsPrefix}-typography`;
19033
- const { isDarkMode } = theme;
19034
- const linkColor = isDarkMode ? theme.colors.blue600 : theme.colors.blue500;
19035
- const linkActiveColor = isDarkMode ? theme.colors.blue800 : theme.colors.blue300;
19036
- const linkHoverColor = isDarkMode ? theme.colors.blue700 : theme.colors.blue400;
19037
19632
  return {
19038
19633
  content: {
19039
- backgroundColor: theme.colors.tooltipBackgroundTooltip,
19040
- color: theme.colors.tooltipTextTooltip,
19041
- borderRadius: token(ShapeTokens.POPOVER_BORDER_RADIUS, theme.borders.borderRadiusSm),
19042
- fontSize: theme.typography.fontSizeMd,
19043
- padding: `${theme.spacing.xs}px ${theme.spacing.sm}px`,
19634
+ backgroundColor: 'var(--db-tooltip-surface)',
19635
+ color: 'var(--db-tooltip-text)',
19636
+ borderRadius: 'var(--db-tooltip-border-radius)',
19637
+ fontSize: 'var(--db-tooltip-font-size)',
19638
+ padding: 'var(--db-tooltip-spacing-vertical) var(--db-tooltip-spacing-horizontal)',
19044
19639
  lineHeight: theme.typography.lineHeightLg,
19045
- fontWeight: theme.typography.typographyRegularFontWeight,
19046
- boxShadow: theme.shadows.lg,
19640
+ fontWeight: 'var(--db-tooltip-font-weight)',
19641
+ boxShadow: 'var(--db-tooltip-shadow)',
19047
19642
  wordWrap: 'break-word',
19048
19643
  whiteSpace: 'normal',
19049
19644
  zIndex: theme.options.zIndexBase + 70,
@@ -19062,27 +19657,27 @@ const getTooltipStyles = (theme, clsPrefix)=>{
19062
19657
  },
19063
19658
  [`& a${classTypography}`]: {
19064
19659
  '&, :focus': {
19065
- color: linkColor,
19066
- '.anticon': {
19067
- color: linkColor
19660
+ color: 'var(--db-tooltip-link-text)',
19661
+ [getIconClassName()]: {
19662
+ color: 'var(--db-tooltip-link-text)'
19068
19663
  }
19069
19664
  },
19070
19665
  ':active': {
19071
- color: linkActiveColor,
19072
- '.anticon': {
19073
- color: linkActiveColor
19666
+ color: 'var(--db-tooltip-link-text-active)',
19667
+ [getIconClassName()]: {
19668
+ color: 'var(--db-tooltip-link-text-active)'
19074
19669
  }
19075
19670
  },
19076
19671
  ':hover': {
19077
- color: linkHoverColor,
19078
- '.anticon': {
19079
- color: linkHoverColor
19672
+ color: 'var(--db-tooltip-link-text-hover)',
19673
+ [getIconClassName()]: {
19674
+ color: 'var(--db-tooltip-link-text-hover)'
19080
19675
  }
19081
19676
  }
19082
19677
  }
19083
19678
  },
19084
19679
  arrow: {
19085
- fill: theme.colors.tooltipBackgroundTooltip,
19680
+ fill: 'var(--db-tooltip-surface)',
19086
19681
  zIndex: theme.options.zIndexBase + 70,
19087
19682
  visibility: 'visible'
19088
19683
  }
@@ -19233,56 +19828,6 @@ const InfoTooltip = ({ content, iconTitle = 'More information', ...props })=>{
19233
19828
  });
19234
19829
  };
19235
19830
 
19236
- const OverflowPopover = ({ items, renderLabel, tooltipText, ariaLabel = 'More items', ...props })=>{
19237
- const { theme } = useDesignSystemTheme();
19238
- const [showTooltip, setShowTooltip] = useState(true);
19239
- const label = `+${items.length}`;
19240
- let trigger = /*#__PURE__*/ jsx("span", {
19241
- css: {
19242
- lineHeight: 0
19243
- },
19244
- ...addDebugOutlineIfEnabled(),
19245
- children: /*#__PURE__*/ jsx(Trigger$5, {
19246
- asChild: true,
19247
- children: /*#__PURE__*/ jsx(Button$1, {
19248
- componentId: "something",
19249
- type: "link",
19250
- children: renderLabel ? renderLabel(label) : label
19251
- })
19252
- })
19253
- });
19254
- if (showTooltip) {
19255
- trigger = /*#__PURE__*/ jsx(Tooltip, {
19256
- componentId: "design-system.overflow-popover.tooltip",
19257
- content: tooltipText || 'See more items',
19258
- children: trigger
19259
- });
19260
- }
19261
- return /*#__PURE__*/ jsxs(Root$b, {
19262
- componentId: "codegen_design-system_src_design-system_overflow_overflowpopover.tsx_37",
19263
- onOpenChange: (open)=>setShowTooltip(!open),
19264
- children: [
19265
- trigger,
19266
- /*#__PURE__*/ jsx(Content$7, {
19267
- align: "start",
19268
- "aria-label": ariaLabel,
19269
- ...props,
19270
- ...addDebugOutlineIfEnabled(),
19271
- children: /*#__PURE__*/ jsx("div", {
19272
- css: {
19273
- display: 'flex',
19274
- flexDirection: 'column',
19275
- gap: theme.spacing.xs
19276
- },
19277
- children: items.map((item, index)=>/*#__PURE__*/ jsx("div", {
19278
- children: item
19279
- }, `overflow-${index}`))
19280
- })
19281
- })
19282
- ]
19283
- });
19284
- };
19285
-
19286
19831
  const { Text, Paragraph: Paragraph$1 } = Typography;
19287
19832
  const BANNER_MIN_HEIGHT = 68;
19288
19833
  // Max height will allow 2 lines of description (3 lines total)
@@ -19401,7 +19946,7 @@ const Banner = (props)=>{
19401
19946
  });
19402
19947
  const actionButton = onAccept && ctaText ? /*#__PURE__*/ jsx("div", {
19403
19948
  css: styles.actionButtonContainer,
19404
- children: /*#__PURE__*/ jsx(Button$1, {
19949
+ children: /*#__PURE__*/ jsx(Button, {
19405
19950
  componentId: `${componentId}.accept`,
19406
19951
  onClick: onAccept,
19407
19952
  css: styles.actionButton,
@@ -19413,7 +19958,7 @@ const Banner = (props)=>{
19413
19958
  }) : null;
19414
19959
  const close = closable !== false ? /*#__PURE__*/ jsx("div", {
19415
19960
  css: styles.closeIconContainer,
19416
- children: /*#__PURE__*/ jsx(Button$1, {
19961
+ children: /*#__PURE__*/ jsx(Button, {
19417
19962
  componentId: `${componentId}.close`,
19418
19963
  css: styles.closeButton,
19419
19964
  onClick: ()=>{
@@ -19586,6 +20131,7 @@ const TitleSkeleton = ({ label, seed = '', frameRate = 60, style, level, inline
19586
20131
  });
19587
20132
  };
19588
20133
 
20134
+ const ICON_SELECTOR = `:is(${getIconClassName()})`;
19589
20135
  // Class names that can be used to reference children within
19590
20136
  // Should not be used outside of design system
19591
20137
  // TODO: PE-239 Maybe we could add "dangerous" into the names or make them completely random.
@@ -19610,7 +20156,7 @@ const repeatingElementsStyles = {
19610
20156
  paddingRight: 'var(--table-spacing-sm)',
19611
20157
  wordBreak: 'break-word',
19612
20158
  overflow: 'hidden',
19613
- '& .anticon': {
20159
+ [`& ${ICON_SELECTOR}`]: {
19614
20160
  verticalAlign: 'text-bottom'
19615
20161
  }
19616
20162
  }),
@@ -19705,31 +20251,31 @@ const hideIconButtonRowStyles = /*#__PURE__*/ css({
19705
20251
  transition: 'opacity 0.1s ease !important'
19706
20252
  },
19707
20253
  // Hide by default
19708
- [`.${hideIconButtonActionCellClassName} button:has(> span.anticon[role="img"]:only-child),
20254
+ [`.${hideIconButtonActionCellClassName} button:has(> span${ICON_SELECTOR}[role="img"]:only-child),
19709
20255
  .${hideIconButtonActionCellClassName} button:has(> i.fa:only-child),
19710
- .${hideIconButtonActionCellClassName} a:has(> span.anticon[role="img"]:only-child),
20256
+ .${hideIconButtonActionCellClassName} a:has(> span${ICON_SELECTOR}[role="img"]:only-child),
19711
20257
  .${hideIconButtonActionCellClassName} a:has(> i.fa:only-child)`]: {
19712
20258
  opacity: 0,
19713
20259
  transition: 'opacity 0.1s ease !important'
19714
20260
  },
19715
- [`.${hideIconButtonActionCellClassName} button:focus-visible:has(> span.anticon[role="img"]:only-child),
20261
+ [`.${hideIconButtonActionCellClassName} button:focus-visible:has(> span${ICON_SELECTOR}[role="img"]:only-child),
19716
20262
  .${hideIconButtonActionCellClassName} button:focus-visible:has(> i.fa:only-child),
19717
- .${hideIconButtonActionCellClassName} a:focus-visible:has(> span.anticon[role="img"]:only-child),
20263
+ .${hideIconButtonActionCellClassName} a:focus-visible:has(> span${ICON_SELECTOR}[role="img"]:only-child),
19718
20264
  .${hideIconButtonActionCellClassName} a:focus-visible:has(> i.fa:only-child)`]: {
19719
20265
  outlineStyle: 'solid !important'
19720
20266
  },
19721
20267
  // Keep visible when actively clicked or when dropdown is open
19722
- [`&:hover .${hideIconButtonActionCellClassName} button:has(> span.anticon[role="img"]:only-child),
19723
- .${hideIconButtonActionCellClassName} button:focus-visible:has(> span.anticon[role="img"]:only-child),
20268
+ [`&:hover .${hideIconButtonActionCellClassName} button:has(> span${ICON_SELECTOR}[role="img"]:only-child),
20269
+ .${hideIconButtonActionCellClassName} button:focus-visible:has(> span${ICON_SELECTOR}[role="img"]:only-child),
19724
20270
  &:hover .${hideIconButtonActionCellClassName} button:has(> i.fa:only-child),
19725
20271
  .${hideIconButtonActionCellClassName} button:focus-visible:has(> i.fa:only-child),
19726
- &:hover .${hideIconButtonActionCellClassName} a:has(> span.anticon[role="img"]:only-child),
19727
- .${hideIconButtonActionCellClassName} a:focus-visible:has(> span.anticon[role="img"]:only-child),
20272
+ &:hover .${hideIconButtonActionCellClassName} a:has(> span${ICON_SELECTOR}[role="img"]:only-child),
20273
+ .${hideIconButtonActionCellClassName} a:focus-visible:has(> span${ICON_SELECTOR}[role="img"]:only-child),
19728
20274
  &:hover .${hideIconButtonActionCellClassName} a:has(> i.fa:only-child),
19729
20275
  .${hideIconButtonActionCellClassName} a:focus-visible:has(> i.fa:only-child)
19730
- .${hideIconButtonActionCellClassName} div[aria-expanded="true"] > button:has(span.anticon[role="img"]:only-child),
20276
+ .${hideIconButtonActionCellClassName} div[aria-expanded="true"] > button:has(span${ICON_SELECTOR}[role="img"]:only-child),
19731
20277
  .${hideIconButtonActionCellClassName} div[aria-expanded="true"] > button:has(i.fa:only-child),
19732
- .${hideIconButtonActionCellClassName} button[aria-expanded="true"]:has(span.anticon[role="img"]:only-child),
20278
+ .${hideIconButtonActionCellClassName} button[aria-expanded="true"]:has(span${ICON_SELECTOR}[role="img"]:only-child),
19733
20279
  .${hideIconButtonActionCellClassName} button[aria-expanded="true"]:has(i.fa:only-child),`]: {
19734
20280
  opacity: 1
19735
20281
  }
@@ -20051,6 +20597,8 @@ const getWrapperStyle = ({ clsPrefix, theme, wrapperStyle = {} })=>{
20051
20597
  },
20052
20598
  ...wrapperStyle
20053
20599
  };
20600
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
20601
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
20054
20602
  return /*#__PURE__*/ css(styles);
20055
20603
  };
20056
20604
  const AntDCheckboxInternal = /*#__PURE__*/ forwardRef(function Checkbox({ isChecked, onChange, children, isDisabled = false, style, wrapperStyle, dangerouslySetAntdProps, className, componentId, analyticsEvents, ...restProps }, ref) {
@@ -20552,8 +21100,7 @@ zIndex)=>{
20552
21100
  });
20553
21101
  };
20554
21102
  const getChild = (child, isDisabled, disabledReason, tooltip, index, siblingCount)=>{
20555
- const HintColumnType = (/*#__PURE__*/ jsx(HintColumn, {})).type;
20556
- const isHintColumnType = Boolean(child && typeof child !== 'string' && typeof child !== 'number' && typeof child !== 'boolean' && 'type' in child && child?.type === HintColumnType);
21103
+ const isHintColumnType = Boolean(child && typeof child !== 'string' && typeof child !== 'number' && typeof child !== 'boolean' && 'type' in child && child?.type === HintColumn);
20557
21104
  if (isDisabled && disabledReason && child && isHintColumnType) {
20558
21105
  return /*#__PURE__*/ jsxs(Fragment, {
20559
21106
  children: [
@@ -20577,7 +21124,7 @@ const DropdownContext = /*#__PURE__*/ createContext({
20577
21124
  setIsOpen: (isOpen)=>{}
20578
21125
  });
20579
21126
  const useDropdownContext = ()=>React__default.useContext(DropdownContext);
20580
- const Root$a = ({ children, itemHtmlType, ...props })=>{
21127
+ const Root$8 = ({ children, itemHtmlType, ...props })=>{
20581
21128
  const [isOpen, setIsOpen] = React__default.useState(Boolean(props.defaultOpen || props.open));
20582
21129
  const useExternalState = useRef(props.open !== undefined || props.onOpenChange !== undefined).current;
20583
21130
  useEffect(()=>{
@@ -20842,7 +21389,7 @@ const Label$1 = /*#__PURE__*/ forwardRef(function Label({ children, ...props },
20842
21389
  children: children
20843
21390
  });
20844
21391
  });
20845
- const Separator$2 = /*#__PURE__*/ forwardRef(function Separator({ children, ...props }, ref) {
21392
+ const Separator$1 = /*#__PURE__*/ forwardRef(function Separator({ children, ...props }, ref) {
20846
21393
  return /*#__PURE__*/ jsx(DropdownMenu$1.Separator, {
20847
21394
  ref: ref,
20848
21395
  css: dropdownSeparatorStyles,
@@ -21134,11 +21681,15 @@ const dropdownContentStyles = (theme)=>({
21134
21681
  color: theme.colors.textPrimary,
21135
21682
  lineHeight: theme.typography.lineHeightBase,
21136
21683
  border: `1px solid ${theme.colors.border}`,
21137
- borderRadius: token(ShapeTokens.POPOVER_BORDER_RADIUS, theme.borders.borderRadiusSm),
21684
+ borderRadius: token(ShapeTokens.POPUP_BORDER_RADIUS, theme.borders.borderRadiusSm),
21138
21685
  padding: `${theme.spacing.xs}px 0`,
21139
21686
  boxShadow: theme.shadows.lg,
21687
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21688
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
21140
21689
  userSelect: 'none',
21141
21690
  // Allow for scrolling within the dropdown when viewport is too small
21691
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21692
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
21142
21693
  overflowY: 'auto',
21143
21694
  maxHeight: 'var(--radix-dropdown-menu-content-available-height)',
21144
21695
  ...getDarkModePortalStyles(theme),
@@ -21214,8 +21765,8 @@ var DropdownMenu = /*#__PURE__*/Object.freeze({
21214
21765
  Label: Label$1,
21215
21766
  RadioGroup: RadioGroup$1,
21216
21767
  RadioItem: RadioItem$1,
21217
- Root: Root$a,
21218
- Separator: Separator$2,
21768
+ Root: Root$8,
21769
+ Separator: Separator$1,
21219
21770
  Sub: Sub$1,
21220
21771
  SubContent: SubContent$1,
21221
21772
  SubTrigger: SubTrigger$1,
@@ -21274,7 +21825,7 @@ const ContextMenuProps = /*#__PURE__*/ createContext({
21274
21825
  setIsOpen: (isOpen)=>{}
21275
21826
  });
21276
21827
  const useContextMenuProps = ()=>React__default.useContext(ContextMenuProps);
21277
- const Root$9 = ({ children, onOpenChange, ...props })=>{
21828
+ const Root$7 = ({ children, onOpenChange, ...props })=>{
21278
21829
  const [isOpen, setIsOpen] = React__default.useState(false);
21279
21830
  const handleChange = (isOpen)=>{
21280
21831
  setIsOpen(isOpen);
@@ -21557,7 +22108,7 @@ const Hint$1 = ({ children })=>{
21557
22108
  children: children
21558
22109
  });
21559
22110
  };
21560
- const Separator$1 = ()=>{
22111
+ const Separator = ()=>{
21561
22112
  const { theme } = useDesignSystemTheme();
21562
22113
  return /*#__PURE__*/ jsx(ContextMenuSeparator, {
21563
22114
  css: dropdownSeparatorStyles(theme)
@@ -21568,7 +22119,7 @@ const itemIndicatorStyles = (theme)=>/*#__PURE__*/ css({
21568
22119
  paddingRight: theme.spacing.xs
21569
22120
  });
21570
22121
  const ContextMenu = {
21571
- Root: Root$9,
22122
+ Root: Root$7,
21572
22123
  Trigger: Trigger$3,
21573
22124
  Label: Label,
21574
22125
  Item: Item$2,
@@ -21577,7 +22128,7 @@ const ContextMenu = {
21577
22128
  CheckboxItem: CheckboxItem,
21578
22129
  RadioItem: RadioItem,
21579
22130
  Arrow: Arrow,
21580
- Separator: Separator$1,
22131
+ Separator: Separator,
21581
22132
  Sub: Sub,
21582
22133
  SubTrigger: SubTrigger,
21583
22134
  SubContent: SubContent,
@@ -21598,8 +22149,8 @@ var ContextMenu$1 = /*#__PURE__*/Object.freeze({
21598
22149
  Label: Label,
21599
22150
  RadioGroup: RadioGroup,
21600
22151
  RadioItem: RadioItem,
21601
- Root: Root$9,
21602
- Separator: Separator$1,
22152
+ Root: Root$7,
22153
+ Separator: Separator,
21603
22154
  Sub: Sub,
21604
22155
  SubContent: SubContent,
21605
22156
  SubTrigger: SubTrigger,
@@ -21766,7 +22317,14 @@ const getInputStyles = (clsPrefix, theme, { validationState, type, hasValue, loc
21766
22317
  }
21767
22318
  },
21768
22319
  [clearIcon]: {
21769
- fontSize: theme.typography.fontSizeSm
22320
+ fontSize: theme.typography.fontSizeSm,
22321
+ color: theme.colors.textSecondary,
22322
+ '&:hover': {
22323
+ color: theme.colors.actionTertiaryTextHover
22324
+ },
22325
+ '&:active': {
22326
+ color: theme.colors.actionTertiaryTextPress
22327
+ }
21770
22328
  },
21771
22329
  [prefixIcon]: {
21772
22330
  marginRight: theme.spacing.sm,
@@ -22213,7 +22771,7 @@ function MonthCell({ index, label, displayYear, selected, disabled, rangeFrom, r
22213
22771
  const isRangeStart = rangeFromValue !== undefined && cellValue === rangeFromValue;
22214
22772
  const isRangeEnd = rangeToValue !== undefined && cellValue === rangeToValue;
22215
22773
  const isRangeMiddle = inRange && !isRangeStart && !isRangeEnd;
22216
- const defaultButton = /*#__PURE__*/ jsx(Button$1, {
22774
+ const defaultButton = /*#__PURE__*/ jsx(Button, {
22217
22775
  componentId: "datepicker-month-grid-cell",
22218
22776
  "aria-label": `${label} ${displayYear}`,
22219
22777
  "data-selected": selected || undefined,
@@ -22396,7 +22954,7 @@ function MonthCell({ index, label, displayYear, selected, disabled, rangeFrom, r
22396
22954
  marginBottom: theme.spacing.xs
22397
22955
  },
22398
22956
  children: [
22399
- /*#__PURE__*/ jsx(Button$1, {
22957
+ /*#__PURE__*/ jsx(Button, {
22400
22958
  componentId: "datepicker-month-grid-prev",
22401
22959
  "aria-label": "Previous year",
22402
22960
  icon: /*#__PURE__*/ jsx(ChevronLeftIcon, {}),
@@ -22409,7 +22967,7 @@ function MonthCell({ index, label, displayYear, selected, disabled, rangeFrom, r
22409
22967
  "aria-live": "polite",
22410
22968
  children: displayYear
22411
22969
  }),
22412
- /*#__PURE__*/ jsx(Button$1, {
22970
+ /*#__PURE__*/ jsx(Button, {
22413
22971
  componentId: "datepicker-month-grid-next",
22414
22972
  "aria-label": "Next year",
22415
22973
  icon: /*#__PURE__*/ jsx(ChevronRightIcon, {}),
@@ -22559,7 +23117,7 @@ function YearCell({ year, index, selected, disabled, isCurrentYear, rangeFrom, r
22559
23117
  const isRangeStart = rangeFromYear !== undefined && year === rangeFromYear;
22560
23118
  const isRangeEnd = rangeToYear !== undefined && year === rangeToYear;
22561
23119
  const isRangeMiddle = inRange && !isRangeStart && !isRangeEnd;
22562
- const defaultButton = /*#__PURE__*/ jsx(Button$1, {
23120
+ const defaultButton = /*#__PURE__*/ jsx(Button, {
22563
23121
  componentId: "datepicker-year-grid-cell",
22564
23122
  "aria-label": String(year),
22565
23123
  "data-selected": selected || undefined,
@@ -22744,7 +23302,7 @@ function YearCell({ year, index, selected, disabled, isCurrentYear, rangeFrom, r
22744
23302
  marginBottom: theme.spacing.xs
22745
23303
  },
22746
23304
  children: [
22747
- /*#__PURE__*/ jsx(Button$1, {
23305
+ /*#__PURE__*/ jsx(Button, {
22748
23306
  componentId: "datepicker-year-grid-prev",
22749
23307
  "aria-label": "Previous decade",
22750
23308
  icon: /*#__PURE__*/ jsx(ChevronLeftIcon, {}),
@@ -22761,7 +23319,7 @@ function YearCell({ year, index, selected, disabled, isCurrentYear, rangeFrom, r
22761
23319
  decadeStart + YEARS_PER_PAGE - 1
22762
23320
  ]
22763
23321
  }),
22764
- /*#__PURE__*/ jsx(Button$1, {
23322
+ /*#__PURE__*/ jsx(Button, {
22765
23323
  componentId: "datepicker-year-grid-next",
22766
23324
  "aria-label": "Next decade",
22767
23325
  icon: /*#__PURE__*/ jsx(ChevronRightIcon, {}),
@@ -23024,7 +23582,7 @@ function createDayComponent(renderCellContent) {
23024
23582
  month: 'long',
23025
23583
  day: 'numeric'
23026
23584
  });
23027
- const defaultButton = /*#__PURE__*/ jsx(Button$3, {
23585
+ const defaultButton = /*#__PURE__*/ jsx(Button$2, {
23028
23586
  name: "day",
23029
23587
  ref: buttonRef,
23030
23588
  ...dayRender.buttonProps,
@@ -23711,7 +24269,7 @@ const DatePicker = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-co
23711
24269
  pointerEvents: restProps?.disabled ? 'none' : 'auto'
23712
24270
  },
23713
24271
  ...wrapperProps,
23714
- children: /*#__PURE__*/ jsxs(Root$b, {
24272
+ children: /*#__PURE__*/ jsxs(Root$9, {
23715
24273
  componentId: "codegen_design-system_src_development_datepicker_datepicker.tsx_330",
23716
24274
  open: isVisible,
23717
24275
  onOpenChange: setIsVisible,
@@ -23911,7 +24469,7 @@ const DatePicker = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-co
23911
24469
  maxWidth: 225,
23912
24470
  flexWrap: 'wrap'
23913
24471
  },
23914
- children: quickActions?.map((action, i)=>/*#__PURE__*/ jsx(Button$1, {
24472
+ children: quickActions?.map((action, i)=>/*#__PURE__*/ jsx(Button, {
23915
24473
  size: "small",
23916
24474
  componentId: "codegen_design-system_src_design-system_datepicker_datepicker.tsx_281",
23917
24475
  onClick: ()=>action.onClick ? action.onClick(action.value) : !Array.isArray(action.value) && handleDatePickerUpdate(action.value),
@@ -23956,7 +24514,7 @@ const DatePicker = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-co
23956
24514
  display: 'flex',
23957
24515
  justifyContent: 'flex-end'
23958
24516
  },
23959
- children: /*#__PURE__*/ jsx(Button$1, {
24517
+ children: /*#__PURE__*/ jsx(Button, {
23960
24518
  "aria-label": "Open end date picker",
23961
24519
  type: "primary",
23962
24520
  componentId: "datepicker-dubois-ok-button",
@@ -24441,7 +24999,7 @@ const DialogCombobox = ({ children, label, id, value = [], open, emptyText, scro
24441
24999
  setDisableMouseOver,
24442
25000
  onView: eventContext.onView
24443
25001
  },
24444
- children: /*#__PURE__*/ jsx(Root$8, {
25002
+ children: /*#__PURE__*/ jsx(Root$6, {
24445
25003
  open: open !== undefined ? open : isOpen,
24446
25004
  ...props,
24447
25005
  children: /*#__PURE__*/ jsx(ComponentFinderContext.Provider, {
@@ -24453,7 +25011,7 @@ const DialogCombobox = ({ children, label, id, value = [], open, emptyText, scro
24453
25011
  })
24454
25012
  });
24455
25013
  };
24456
- const Root$8 = (props)=>{
25014
+ const Root$6 = (props)=>{
24457
25015
  const { children, stayOpenOnSelection, multiSelect, ...restProps } = props;
24458
25016
  const { value, setIsOpen, onView } = useDialogComboboxContext();
24459
25017
  const firstView = useRef(true);
@@ -24733,6 +25291,8 @@ const dialogComboboxLookAheadKeyDown = (e, setLookAhead, lookAhead)=>{
24733
25291
  };
24734
25292
 
24735
25293
  const getComboboxContentWrapperStyles = (theme, { maxHeight = '100vh', maxWidth = '100vw', minHeight = 0, minWidth = 0, width })=>{
25294
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
25295
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
24736
25296
  return /*#__PURE__*/ css({
24737
25297
  maxHeight,
24738
25298
  maxWidth,
@@ -25264,7 +25824,7 @@ const DialogComboboxOptionListCheckboxItem = DuboisDialogComboboxOptionListCheck
25264
25824
 
25265
25825
  const getInputGroupStyling = (clsPrefix, theme, buttonSide)=>{
25266
25826
  const inputClass = `.${clsPrefix}-input`;
25267
- const buttonClass = `.${clsPrefix}-btn`;
25827
+ const groupButtons = (suffix = '')=>getBtnClassName(clsPrefix, suffix, '& > ');
25268
25828
  const buttonOnRight = buttonSide === 'right';
25269
25829
  return /*#__PURE__*/ css({
25270
25830
  display: 'inline-flex !important',
@@ -25293,7 +25853,7 @@ const getInputGroupStyling = (clsPrefix, theme, buttonSide)=>{
25293
25853
  marginRight: 0
25294
25854
  }
25295
25855
  },
25296
- [`& > ${buttonClass}`]: {
25856
+ [groupButtons()]: {
25297
25857
  boxShadow: 'none !important',
25298
25858
  // Square off the inner edge (the edge adjacent to the input).
25299
25859
  ...buttonOnRight ? {
@@ -25311,13 +25871,20 @@ const getInputGroupStyling = (clsPrefix, theme, buttonSide)=>{
25311
25871
  }
25312
25872
  }
25313
25873
  },
25314
- [`& > ${buttonClass} > span`]: {
25874
+ [groupButtons(' > span')]: {
25315
25875
  verticalAlign: 'middle'
25316
25876
  },
25317
- [`& > ${buttonClass}:disabled, & > ${buttonClass}:disabled:hover`]: {
25877
+ [`${groupButtons(':disabled')}, ${groupButtons(':disabled:hover')}`]: {
25318
25878
  borderLeft: `1px solid ${theme.colors.actionDisabledBorder} !important`,
25319
25879
  backgroundColor: `${theme.colors.actionDisabledBackground} !important`,
25320
25880
  color: `${theme.colors.actionDisabledText} !important`
25881
+ },
25882
+ // Filled variants (primary/danger) keep their stronger disabled fill and white text inside the
25883
+ // group rather than the greyed-out default disabled treatment above; placed after that rule so it
25884
+ // wins at equal specificity by source order.
25885
+ [`& > .db-btn-primary:disabled, & > .db-btn-primary:disabled:hover, & > .db-btn-danger:disabled, & > .db-btn-danger:disabled:hover`]: {
25886
+ backgroundColor: `${theme.colors.actionDisabledBorder} !important`,
25887
+ color: `${theme.colors.actionPrimaryTextDefault} !important`
25321
25888
  }
25322
25889
  });
25323
25890
  };
@@ -25924,6 +26491,7 @@ const DialogComboboxTrigger = /*#__PURE__*/ forwardRef(// eslint-disable-next-li
25924
26491
  'aria-label': ariaLabel
25925
26492
  },
25926
26493
  ref: forwardedRef,
26494
+ // oxlint-disable-next-line jsx-a11y/role-has-required-aria-props
25927
26495
  role: "combobox",
25928
26496
  "aria-haspopup": "listbox",
25929
26497
  "aria-invalid": validationState === 'error',
@@ -25962,6 +26530,7 @@ const DialogComboboxTrigger = /*#__PURE__*/ forwardRef(// eslint-disable-next-li
25962
26530
  'aria-label': ariaLabel
25963
26531
  },
25964
26532
  ref: forwardedRef,
26533
+ // oxlint-disable-next-line jsx-a11y/role-has-required-aria-props
25965
26534
  role: "combobox",
25966
26535
  "aria-haspopup": "listbox",
25967
26536
  "aria-invalid": validationState === 'error',
@@ -26047,7 +26616,7 @@ const DialogComboboxTrigger = /*#__PURE__*/ forwardRef(// eslint-disable-next-li
26047
26616
  componentId: "dialogcombobox-trigger-tooltip",
26048
26617
  children: triggerContent
26049
26618
  }) : triggerContent,
26050
- removable && /*#__PURE__*/ jsx(Button$1, {
26619
+ removable && /*#__PURE__*/ jsx(Button, {
26051
26620
  componentId: "codegen_design-system_src_design-system_dialogcombobox_dialogcomboboxtrigger.tsx_355",
26052
26621
  "aria-label": `Remove ${label}`,
26053
26622
  onClick: handleRemove,
@@ -26069,16 +26638,24 @@ const DialogComboboxTrigger = /*#__PURE__*/ forwardRef(// eslint-disable-next-li
26069
26638
  });
26070
26639
  };
26071
26640
 
26072
- const getSpacerStyles = memoize((theme, size, shrinks)=>/*#__PURE__*/ css({
26073
- height: theme.spacing[size],
26641
+ // Height comes from the --db-spacer-size-* component tokens (Spacer/tokens.css), so the styles no
26642
+ // longer depend on the JS theme. Mapped explicitly rather than interpolated so each token name is greppable.
26643
+ const SPACER_SIZE_TOKENS = {
26644
+ xs: 'var(--db-spacer-size-xs)',
26645
+ sm: 'var(--db-spacer-size-sm)',
26646
+ mid: 'var(--db-spacer-size-mid)',
26647
+ md: 'var(--db-spacer-size-md)',
26648
+ lg: 'var(--db-spacer-size-lg)'
26649
+ };
26650
+ const getSpacerStyles = memoize((size, shrinks)=>/*#__PURE__*/ css({
26651
+ height: SPACER_SIZE_TOKENS[size],
26074
26652
  ...shrinks === false ? {
26075
26653
  flexShrink: 0
26076
26654
  } : undefined
26077
- }), (theme, size, shrinks)=>`${themeMemoKey(theme)}|${size}|${shrinks ?? ''}`);
26655
+ }), (size, shrinks)=>`${size}|${shrinks ?? ''}`);
26078
26656
  const Spacer = ({ size = 'md', shrinks, ...props })=>{
26079
- const { theme } = useDesignSystemTheme();
26080
26657
  return /*#__PURE__*/ jsx("div", {
26081
- css: getSpacerStyles(theme, size, shrinks),
26658
+ css: getSpacerStyles(size, shrinks),
26082
26659
  ...props
26083
26660
  });
26084
26661
  };
@@ -26120,12 +26697,12 @@ const OVERLAY_SHOW_BOTTOM = /*#__PURE__*/ keyframes({
26120
26697
  const DEFAULT_ANALYTICS_EVENTS$3 = [
26121
26698
  DesignSystemEventProviderAnalyticsEventTypes.OnView
26122
26699
  ];
26123
- const Content$4 = ({ children, footer, title, width, height, position: positionOverride, useCustomScrollBehavior, expandContentToFullHeight, disableOpenAutoFocus, onInteractOutside, seeThrough, hideClose, closeOnClickOutside, onCloseClick, componentId = 'design_system.drawer.content', analyticsEvents = DEFAULT_ANALYTICS_EVENTS$3, size = 'default', ...props })=>{
26700
+ const Content$4 = ({ children, footer, title, width, height, position: positionOverride, useCustomScrollBehavior, expandContentToFullHeight, disableOpenAutoFocus, onInteractOutside, seeThrough, hideClose, closeOnClickOutside, onCloseClick, componentId = 'design_system.drawer.content', analyticsEvents = DEFAULT_ANALYTICS_EVENTS$3, size = 'default', className, ...props })=>{
26124
26701
  const { getPopupContainer } = useDesignSystemContext();
26125
26702
  const { theme } = useDesignSystemTheme();
26126
26703
  const themeClass = useDuboisThemeClass();
26127
26704
  const themeOverrideStyle = useDesignTokenOverrideStyles();
26128
- const horizontalContentPadding = size === 'small' ? theme.spacing.md : theme.spacing.lg;
26705
+ const horizontalContentPadding = size === 'small' ? 'var(--db-drawer-padding-horizontal-small)' : 'var(--db-drawer-padding-horizontal)';
26129
26706
  const [shouldContentBeFocusable, setShouldContentBeFocusable] = useState(false);
26130
26707
  const contentContainerRef = useRef(null);
26131
26708
  const eventContext = useDesignSystemEventComponentCallbacks({
@@ -26184,9 +26761,9 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26184
26761
  const isSidePosition = position === 'left' || position === 'right';
26185
26762
  const overlayShow = position === 'right' ? OVERLAY_SHOW_RIGHT : position === 'left' ? OVERLAY_SHOW_LEFT : OVERLAY_SHOW_BOTTOM;
26186
26763
  const dialogPrimitiveContentStyle = /*#__PURE__*/ css({
26187
- color: theme.colors.textPrimary,
26188
- backgroundColor: theme.colors.backgroundPrimary,
26189
- boxShadow: theme.shadows.xl,
26764
+ color: 'var(--db-drawer-text)',
26765
+ backgroundColor: 'var(--db-drawer-surface)',
26766
+ boxShadow: 'var(--db-drawer-shadow)',
26190
26767
  position: 'fixed',
26191
26768
  boxSizing: 'border-box',
26192
26769
  zIndex: theme.options.zIndexBase + DRAWER_ZINDEX_CONTENT_OFFSET,
@@ -26213,7 +26790,7 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26213
26790
  minHeight: MIN_HEIGHT,
26214
26791
  maxHeight: MAX_HEIGHT
26215
26792
  } : {},
26216
- paddingTop: size === 'small' ? theme.spacing.sm : theme.spacing.md,
26793
+ paddingTop: size === 'small' ? 'var(--db-drawer-content-padding-top-small)' : 'var(--db-drawer-content-padding-top)',
26217
26794
  paddingLeft: 0,
26218
26795
  paddingBottom: 0,
26219
26796
  paddingRight: 0,
@@ -26232,14 +26809,19 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26232
26809
  children: [
26233
26810
  /*#__PURE__*/ jsx(DialogPrimitive.Overlay, {
26234
26811
  "data-testid": "drawer-overlay",
26812
+ // themeClass scopes the scrim under .du-bois-dark so var(--db-drawer-overlay) resolves the dark value.
26813
+ className: themeClass,
26235
26814
  css: /*#__PURE__*/ css({
26236
- backgroundColor: theme.colors.overlayOverlay,
26815
+ backgroundColor: 'var(--db-drawer-overlay)',
26237
26816
  position: 'fixed',
26238
26817
  inset: 0,
26239
26818
  // needed so that it covers the PersonaNavSidebar
26240
26819
  zIndex: theme.options.zIndexBase + DRAWER_ZINDEX_OVERLAY_OFFSET,
26241
26820
  opacity: seeThrough || isParentDrawerOpen ? 0 : 1
26242
26821
  }),
26822
+ // A React portal renders this scrim outside the DesignTokenScope wrapper, so it stops
26823
+ // inheriting the consumer's scoped --db-* overrides; re-stamp them inline on the scrim.
26824
+ style: themeOverrideStyle,
26243
26825
  onClick: closeOnClickOutside ? onCloseClick : undefined
26244
26826
  }),
26245
26827
  /*#__PURE__*/ jsx(DialogPrimitive.DialogContent, {
@@ -26252,14 +26834,13 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26252
26834
  opacity: seeThrough ? 0 : 1,
26253
26835
  ...theme.isDarkMode && {
26254
26836
  ...position === 'bottom' ? {
26255
- borderTop: `1px solid ${theme.colors.borderDecorative}`
26837
+ borderTop: '1px solid var(--db-drawer-border)'
26256
26838
  } : {
26257
- borderLeft: `1px solid ${theme.colors.borderDecorative}`
26839
+ borderLeft: '1px solid var(--db-drawer-border)'
26258
26840
  }
26259
26841
  },
26260
26842
  ...themeOverrideStyle
26261
26843
  },
26262
- className: themeClass,
26263
26844
  onKeyDownCapture: handleKeyDownCapture,
26264
26845
  onWheel: (e)=>{
26265
26846
  e.stopPropagation();
@@ -26277,6 +26858,7 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26277
26858
  onInteractOutside: onInteractOutside,
26278
26859
  ...props,
26279
26860
  ...eventContext.dataComponentProps,
26861
+ className: classnames(className, themeClass),
26280
26862
  children: /*#__PURE__*/ jsx(ApplyDesignSystemContextOverrides, {
26281
26863
  getPopupContainer: ()=>contentContainerRef.current ?? document.body,
26282
26864
  children: /*#__PURE__*/ jsxs(DrawerContext.Provider, {
@@ -26294,7 +26876,7 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26294
26876
  alignItems: 'center',
26295
26877
  paddingRight: horizontalContentPadding,
26296
26878
  paddingLeft: horizontalContentPadding,
26297
- marginBottom: theme.spacing.sm
26879
+ marginBottom: 'var(--db-drawer-title-margin-bottom)'
26298
26880
  }),
26299
26881
  children: [
26300
26882
  /*#__PURE__*/ jsx(DialogPrimitive.Title, {
@@ -26319,10 +26901,10 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26319
26901
  asChild: true,
26320
26902
  css: /*#__PURE__*/ css({
26321
26903
  flexShrink: 1,
26322
- marginLeft: theme.spacing.xs
26904
+ marginLeft: 'var(--db-drawer-close-button-margin)'
26323
26905
  }),
26324
26906
  onClick: onCloseClick,
26325
- children: /*#__PURE__*/ jsx(Button$1, {
26907
+ children: /*#__PURE__*/ jsx(Button, {
26326
26908
  componentId: `${componentId}.close`,
26327
26909
  "aria-label": "Close",
26328
26910
  icon: /*#__PURE__*/ jsx(CloseIcon, {}),
@@ -26334,7 +26916,7 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26334
26916
  /*#__PURE__*/ jsxs("div", {
26335
26917
  ref: mergedContentRef,
26336
26918
  // Needed to make drawer content focusable when scrollable for keyboard-only users to be able to focus & scroll
26337
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
26919
+ // oxlint-disable-next-line jsx-a11y/no-noninteractive-tabindex
26338
26920
  tabIndex: shouldContentBeFocusable ? 0 : -1,
26339
26921
  css: /*#__PURE__*/ css({
26340
26922
  // in order to have specific content in the drawer scroll with fixed title
@@ -26355,10 +26937,10 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26355
26937
  }),
26356
26938
  footer && /*#__PURE__*/ jsx("div", {
26357
26939
  style: {
26358
- paddingTop: theme.spacing.md,
26940
+ paddingTop: 'var(--db-drawer-footer-padding-top)',
26359
26941
  paddingRight: horizontalContentPadding,
26360
26942
  paddingLeft: horizontalContentPadding,
26361
- paddingBottom: size === 'small' ? theme.spacing.md : theme.spacing.lg,
26943
+ paddingBottom: size === 'small' ? 'var(--db-drawer-footer-padding-bottom-small)' : 'var(--db-drawer-footer-padding-bottom)',
26362
26944
  flexGrow: 0,
26363
26945
  flexShrink: 1
26364
26946
  },
@@ -26371,7 +26953,7 @@ const Content$4 = ({ children, footer, title, width, height, position: positionO
26371
26953
  ]
26372
26954
  });
26373
26955
  };
26374
- function Root$7(props) {
26956
+ function Root$5(props) {
26375
26957
  return /*#__PURE__*/ jsx(DialogPrimitive.Root, {
26376
26958
  ...props
26377
26959
  });
@@ -26386,7 +26968,7 @@ function Trigger$2(props) {
26386
26968
  var Drawer = /*#__PURE__*/Object.freeze({
26387
26969
  __proto__: null,
26388
26970
  Content: Content$4,
26389
- Root: Root$7,
26971
+ Root: Root$5,
26390
26972
  Trigger: Trigger$2
26391
26973
  });
26392
26974
 
@@ -26586,7 +27168,7 @@ function getSelectEmotionStyles({ clsPrefix, theme, validationState }) {
26586
27168
  marginTop: 0,
26587
27169
  color: theme.colors.textSecondary,
26588
27170
  fontSize: theme.general.iconFontSize,
26589
- '.anticon': {
27171
+ [getIconClassName()]: {
26590
27172
  // For some reason ant sets this to 'auto'. Need to set it back to 'none' to allow the element below to receive
26591
27173
  // the click event.
26592
27174
  pointerEvents: 'none',
@@ -26704,7 +27286,7 @@ function getSelectEmotionStyles({ clsPrefix, theme, validationState }) {
26704
27286
  lineHeight: theme.typography.lineHeightBase,
26705
27287
  paddingInlineEnd: 0,
26706
27288
  marginInlineEnd: 0,
26707
- '& > .anticon': {
27289
+ [`& > :is(${getIconClassName()})`]: {
26708
27290
  height: theme.general.iconFontSize - 4,
26709
27291
  fontSize: theme.general.iconFontSize - 4
26710
27292
  },
@@ -26739,6 +27321,8 @@ function getDropdownStyles(clsPrefix, theme) {
26739
27321
  const classItemActive = `.${clsPrefix}-item-option-active`;
26740
27322
  const classItemSelected = `.${clsPrefix}-item-option-selected`;
26741
27323
  const classItemState = `.${clsPrefix}-item-option-state`;
27324
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27325
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
26742
27326
  const styles = {
26743
27327
  borderColor: theme.colors.border,
26744
27328
  borderWidth: 1,
@@ -27138,7 +27722,9 @@ const getRadioInputStyles = ({ clsPrefix, theme })=>({
27138
27722
  }
27139
27723
  }
27140
27724
  });
27141
- const getCommonRadioGroupStyles = ({ theme, clsPrefix, classNamePrefix })=>/*#__PURE__*/ css({
27725
+ const getCommonRadioGroupStyles = ({ theme, clsPrefix, classNamePrefix })=>// eslint-disable-next-line @typescript-eslint/ban-ts-comment
27726
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
27727
+ /*#__PURE__*/ css({
27142
27728
  '& > label': {
27143
27729
  [`&.${classNamePrefix}-radio-wrapper-disabled > span`]: {
27144
27730
  color: theme.colors.actionDisabledText
@@ -27211,6 +27797,8 @@ const getRadioStyles = ({ theme, clsPrefix })=>{
27211
27797
  const styles = {
27212
27798
  fontWeight
27213
27799
  };
27800
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27801
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
27214
27802
  return /*#__PURE__*/ css({
27215
27803
  ...getRadioInputStyles({
27216
27804
  theme,
@@ -31290,7 +31878,7 @@ const getFormItemEmotionStyles = ({ theme, clsPrefix })=>{
31290
31878
  [clsFormItemLabel]: {
31291
31879
  fontWeight: theme.typography.typographyBoldFontWeight,
31292
31880
  lineHeight: theme.typography.lineHeightBase,
31293
- '.anticon': {
31881
+ [getIconClassName()]: {
31294
31882
  fontSize: theme.general.iconFontSize
31295
31883
  }
31296
31884
  },
@@ -31644,7 +32232,7 @@ const CursorPagination = function CursorPagination({ onNextPage, onPreviousPage,
31644
32232
  }),
31645
32233
  ...pageSizeEventContext.dataComponentProps,
31646
32234
  children: [
31647
- /*#__PURE__*/ jsx(Button$1, {
32235
+ /*#__PURE__*/ jsx(Button, {
31648
32236
  componentId: `${componentId}.previous_page`,
31649
32237
  icon: /*#__PURE__*/ jsx(ChevronLeftIcon, {}),
31650
32238
  disabled: !hasPreviousPage,
@@ -31652,7 +32240,7 @@ const CursorPagination = function CursorPagination({ onNextPage, onPreviousPage,
31652
32240
  type: "tertiary",
31653
32241
  children: previousPageText
31654
32242
  }),
31655
- /*#__PURE__*/ jsx(Button$1, {
32243
+ /*#__PURE__*/ jsx(Button, {
31656
32244
  componentId: `${componentId}.next_page`,
31657
32245
  endIcon: /*#__PURE__*/ jsx(ChevronRightIcon, {}),
31658
32246
  disabled: !hasNextPage,
@@ -32246,93 +32834,91 @@ const Listbox = ({ options, onSelect, includeFilterInput, filterInputEmptyMessag
32246
32834
  });
32247
32835
  };
32248
32836
 
32249
- const getCommonTabsListStyles = (theme)=>{
32250
- return {
32251
- display: 'flex',
32252
- borderBottom: `1px solid ${theme.colors.actionDefaultBorderDefault}`,
32253
- marginBottom: theme.spacing.md,
32254
- height: theme.general.heightSm,
32255
- boxSizing: 'border-box'
32256
- };
32837
+ // Shared by Tabs and NavigationMenu, so these reference existing system/v1 tokens directly (no
32838
+ // component tier).
32839
+ const COMMON_TABS_LIST_STYLES = {
32840
+ display: 'flex',
32841
+ // No v2 token holds the shared tab/list divider color yet; bridges on the v1 --db-color-* token. TODO(FEINF-6505): adopt a v2 token when one lands.
32842
+ borderBottom: '1px solid var(--db-color-action-default-border-default)',
32843
+ marginBottom: 'var(--db-space-4)',
32844
+ height: 'var(--db-size-8)',
32845
+ boxSizing: 'border-box'
32257
32846
  };
32258
- const getCommonTabsTriggerStyles = (theme)=>{
32259
- return {
32260
- display: 'flex',
32261
- fontWeight: theme.typography.typographyBoldFontWeight,
32262
- fontSize: theme.typography.fontSizeMd,
32263
- backgroundColor: 'transparent',
32264
- marginRight: theme.spacing.md
32265
- };
32847
+ const COMMON_TABS_TRIGGER_STYLES = {
32848
+ display: 'flex',
32849
+ 'font-weight': 'var(--db-font-weight-semibold)',
32850
+ fontSize: 'var(--db-font-size-base)',
32851
+ backgroundColor: 'transparent',
32852
+ marginRight: 'var(--db-space-4)'
32266
32853
  };
32267
32854
 
32268
- const Root$6 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
32855
+ const Root$4 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
32269
32856
  /*#__PURE__*/ React__default.forwardRef((props, forwardedRef)=>{
32270
32857
  return /*#__PURE__*/ jsx(RadixNavigationMenu.Root, {
32271
32858
  ...props,
32272
32859
  ref: forwardedRef
32273
32860
  });
32274
32861
  });
32275
- // Module-level caches. The styles depend only on (theme + active) — at most 2 entries
32276
- // for the list and 4 for items. Same pattern as getShadowScrollStylesMemoized in css-utils.tsx.
32277
- const getMemoizedListCss = memoize((theme)=>({
32278
- ...getCommonTabsListStyles(theme),
32279
- marginTop: 0,
32280
- padding: 0,
32281
- overflow: 'auto hidden',
32282
- listStyle: 'none'
32283
- }));
32284
- const getMemoizedItemCss = memoize((theme, active)=>({
32285
- ...getCommonTabsTriggerStyles(theme),
32286
- height: theme.general.heightSm,
32287
- minWidth: theme.spacing.lg,
32862
+ const LIST_CSS = {
32863
+ ...COMMON_TABS_LIST_STYLES,
32864
+ marginTop: 0,
32865
+ padding: 0,
32866
+ overflow: 'auto hidden',
32867
+ listStyle: 'none'
32868
+ };
32869
+ // Module-level caches keyed by `active`, so each holds only a handful of entries. Same pattern
32870
+ // as getShadowScrollStylesMemoized in css-utils.tsx.
32871
+ const getMemoizedItemCss = memoize((active)=>({
32872
+ ...COMMON_TABS_TRIGGER_STYLES,
32873
+ height: 'var(--db-navigation-menu-item-height)',
32874
+ minWidth: 'var(--db-navigation-menu-item-min-width)',
32288
32875
  justifyContent: 'center',
32289
32876
  ...active && {
32290
32877
  // Use box-shadow instead of border to prevent it from affecting the size of the element, which results in visual
32291
32878
  // jumping when switching tabs.
32292
- boxShadow: `inset 0 -4px 0 ${theme.colors.actionPrimaryBackgroundDefault}`
32879
+ // No v2 token holds the box shadow yet. TODO(FEINF-6505): adopt a v2 token when one lands.
32880
+ boxShadow: 'inset 0 calc(-1 * var(--db-navigation-menu-indicator-thickness)) 0 var(--db-navigation-menu-indicator)'
32293
32881
  }
32294
- }), (theme, active)=>`${themeMemoKey(theme)}|${active}`);
32295
- const getMemoizedLinkCss = memoize((theme, active)=>({
32296
- padding: `${theme.spacing.xs}px 0 ${theme.spacing.sm}px 0`,
32882
+ }));
32883
+ const getMemoizedLinkCss = memoize((active)=>({
32884
+ padding: 'var(--db-navigation-menu-link-padding-top) 0 var(--db-navigation-menu-link-padding-bottom) 0',
32297
32885
  '&:focus-visible': {
32298
- outline: `2px auto ${theme.colors.actionDefaultBorderFocus}`,
32299
- outlineOffset: '-1px'
32886
+ outline: 'var(--db-navigation-menu-focus-ring-width) auto var(--db-navigation-menu-focus-ring)',
32887
+ outlineOffset: 'var(--db-navigation-menu-focus-ring-offset)'
32300
32888
  },
32301
32889
  '&&': {
32302
- color: active ? theme.colors.textPrimary : theme.colors.textSecondary,
32890
+ color: active ? 'var(--db-navigation-menu-text-selected)' : 'var(--db-navigation-menu-text)',
32303
32891
  textDecoration: 'none',
32304
32892
  '&:hover': {
32305
- color: active ? theme.colors.textPrimary : theme.colors.actionDefaultTextHover,
32893
+ color: active ? 'var(--db-navigation-menu-text-selected)' : 'var(--db-navigation-menu-text-hover)',
32306
32894
  textDecoration: 'none'
32307
32895
  },
32308
32896
  '&:focus': {
32309
32897
  textDecoration: 'none'
32310
32898
  },
32311
32899
  '&:active': {
32312
- color: active ? theme.colors.textPrimary : theme.colors.actionDefaultTextPress
32900
+ color: active ? 'var(--db-navigation-menu-text-selected)' : 'var(--db-navigation-menu-text-active)'
32313
32901
  }
32314
32902
  }
32315
- }), (theme, active)=>`${themeMemoKey(theme)}|${active}`);
32903
+ }));
32316
32904
  const List$1 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
32317
32905
  /*#__PURE__*/ React__default.forwardRef((props, forwardedRef)=>{
32318
- const { theme } = useDesignSystemTheme();
32319
32906
  return /*#__PURE__*/ jsx(RadixNavigationMenu.List, {
32320
- css: getMemoizedListCss(theme),
32907
+ css: LIST_CSS,
32321
32908
  ...props,
32322
32909
  ref: forwardedRef
32323
32910
  });
32324
32911
  });
32325
32912
  const Item$1 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
32326
32913
  /*#__PURE__*/ React__default.forwardRef(({ children, active, ...props }, forwardedRef)=>{
32327
- const { theme } = useDesignSystemTheme();
32328
32914
  return /*#__PURE__*/ jsx(RadixNavigationMenu.Item, {
32329
- css: getMemoizedItemCss(theme, Boolean(active)),
32915
+ css: getMemoizedItemCss(Boolean(active)),
32330
32916
  ...props,
32331
32917
  ref: forwardedRef,
32332
32918
  children: /*#__PURE__*/ jsx(RadixNavigationMenu.Link, {
32333
32919
  asChild: true,
32334
32920
  active: active,
32335
- css: getMemoizedLinkCss(theme, Boolean(active)),
32921
+ css: getMemoizedLinkCss(Boolean(active)),
32336
32922
  children: children
32337
32923
  })
32338
32924
  });
@@ -32342,7 +32928,7 @@ var NavigationMenu = /*#__PURE__*/Object.freeze({
32342
32928
  __proto__: null,
32343
32929
  Item: Item$1,
32344
32930
  List: List$1,
32345
- Root: Root$6
32931
+ Root: Root$4
32346
32932
  });
32347
32933
 
32348
32934
  const DEFAULT_ANALYTICS_EVENTS_WITH_VIEW$2 = [
@@ -32456,7 +33042,7 @@ function getTagEmotionStyles(theme, color = 'default', clickable = false, closab
32456
33042
  color: iconPress
32457
33043
  },
32458
33044
  '&:focus-visible': focusVisibleStyles,
32459
- '.anticon': {
33045
+ [getIconClassName()]: {
32460
33046
  verticalAlign: 0
32461
33047
  }
32462
33048
  },
@@ -32465,7 +33051,7 @@ function getTagEmotionStyles(theme, color = 'default', clickable = false, closab
32465
33051
  fontSize: theme.typography.fontSizeBase,
32466
33052
  fontWeight: theme.typography.typographyRegularFontWeight,
32467
33053
  lineHeight: theme.typography.lineHeightSm,
32468
- '& .anticon': {
33054
+ [`& :is(${getIconClassName()})`]: {
32469
33055
  verticalAlign: 'text-top'
32470
33056
  },
32471
33057
  whiteSpace: 'nowrap'
@@ -32538,7 +33124,8 @@ const Tag = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
32538
33124
  eventContext,
32539
33125
  onClick
32540
33126
  ]);
32541
- const handleKeyDown = useCallback(// oxlint-disable-next-line @databricks/react-18-types-migration -- TODO(FEINF-6292)
33127
+ const handleKeyDown = useCallback(// eslint-disable-next-line @typescript-eslint/ban-ts-comment
33128
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
32542
33129
  (e)=>{
32543
33130
  if (onKeyDown) {
32544
33131
  onKeyDown(e);
@@ -32623,64 +33210,6 @@ const Tag = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
32623
33210
  });
32624
33211
  });
32625
33212
 
32626
- const getTagStyles = (theme)=>{
32627
- const styles = {
32628
- marginRight: 0,
32629
- color: theme.colors.actionTertiaryTextDefault,
32630
- cursor: 'pointer',
32631
- '&:focus': {
32632
- color: theme.colors.actionTertiaryTextDefault
32633
- },
32634
- '&:hover': {
32635
- color: theme.colors.actionTertiaryTextHover
32636
- },
32637
- '&:active': {
32638
- color: theme.colors.actionTertiaryTextPress
32639
- }
32640
- };
32641
- return /*#__PURE__*/ css(styles);
32642
- };
32643
- // Module-level caches. Both styles depend only on (theme + noMargin); cache once per
32644
- // combination across every Overflow instance. Same pattern as
32645
- // getShadowScrollStylesMemoized in css-utils.tsx.
32646
- const getMemoizedTagStyles = memoize((theme)=>getTagStyles(theme));
32647
- const getMemoizedContainerCss = memoize((theme, noMargin)=>({
32648
- display: 'inline-flex',
32649
- alignItems: 'center',
32650
- gap: noMargin ? 0 : theme.spacing.sm,
32651
- maxWidth: '100%'
32652
- }), (theme, noMargin)=>`${themeMemoKey(theme)}|${noMargin}`);
32653
- const Overflow = ({ children, noMargin = false, visibleItemsCount = 1, ...props })=>{
32654
- const { theme } = useDesignSystemTheme();
32655
- const childrenList = children && Children.toArray(children);
32656
- if (!childrenList || childrenList.length === 0) {
32657
- return /*#__PURE__*/ jsx(Fragment, {
32658
- children: children
32659
- });
32660
- }
32661
- const visibleItems = childrenList.slice(0, visibleItemsCount);
32662
- const additionalItems = childrenList.slice(visibleItemsCount);
32663
- const renderOverflowLabel = (label)=>/*#__PURE__*/ jsx(Tag, {
32664
- componentId: "codegen_design-system_src_design-system_overflow_overflow.tsx_28",
32665
- css: getMemoizedTagStyles(theme),
32666
- children: label
32667
- });
32668
- return additionalItems.length === 0 ? /*#__PURE__*/ jsx(Fragment, {
32669
- children: visibleItems
32670
- }) : /*#__PURE__*/ jsxs("div", {
32671
- ...props,
32672
- css: getMemoizedContainerCss(theme, noMargin),
32673
- children: [
32674
- visibleItems,
32675
- additionalItems.length > 0 && /*#__PURE__*/ jsx(OverflowPopover, {
32676
- items: additionalItems,
32677
- renderLabel: renderOverflowLabel,
32678
- ...props
32679
- })
32680
- ]
32681
- });
32682
- };
32683
-
32684
33213
  const RadioGroupContext = /*#__PURE__*/ React__default.createContext('medium');
32685
33214
  const DEFAULT_ANALYTICS_EVENTS$1 = [
32686
33215
  DesignSystemEventProviderAnalyticsEventTypes.OnValueChange
@@ -32694,11 +33223,11 @@ const getMemoizedRootCss = memoize((theme)=>({
32694
33223
  // Item icon css depends on (theme, size). At most 6 cache entries.
32695
33224
  const getMemoizedItemIconCss = memoize((theme, size)=>({
32696
33225
  marginRight: size === 'large' ? theme.spacing.sm : theme.spacing.xs,
32697
- [`& > .anticon`]: {
33226
+ [`& > :is(${getIconClassName()})`]: {
32698
33227
  verticalAlign: `-3px`
32699
33228
  }
32700
33229
  }), (theme, size)=>`${themeMemoKey(theme)}|${size}`);
32701
- const Root$5 = /*#__PURE__*/ React__default.forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
33230
+ const Root$3 = /*#__PURE__*/ React__default.forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
32702
33231
  ({ size, componentId, analyticsEvents = DEFAULT_ANALYTICS_EVENTS$1, valueHasNoPii, onValueChange, ...props }, forwardedRef)=>{
32703
33232
  const { theme } = useDesignSystemTheme();
32704
33233
  const contextValue = React__default.useMemo(()=>size ?? 'medium', [
@@ -32863,7 +33392,7 @@ const getMemoizedRadioGroupItemStyles = memoize((theme, size, iconClass)=>getRad
32863
33392
  var PillControl = /*#__PURE__*/Object.freeze({
32864
33393
  __proto__: null,
32865
33394
  Item: Item,
32866
- Root: Root$5
33395
+ Root: Root$3
32867
33396
  });
32868
33397
 
32869
33398
  const DEFAULT_ANALYTICS_EVENTS = [
@@ -33087,14 +33616,14 @@ const ProgressContextProvider = ({ children, value })=>{
33087
33616
  });
33088
33617
  };
33089
33618
 
33090
- const getProgressRootStyles = (theme, minWidth, maxWidth)=>{
33619
+ const getProgressRootStyles = (minWidth, maxWidth)=>{
33091
33620
  const styles = {
33092
33621
  position: 'relative',
33093
33622
  overflow: 'hidden',
33094
- backgroundColor: theme.colors.progressTrack,
33095
- height: theme.spacing.sm,
33623
+ backgroundColor: 'var(--db-progress-track)',
33624
+ height: 'var(--db-progress-size)',
33096
33625
  width: '100%',
33097
- borderRadius: theme.borders.borderRadiusFull,
33626
+ borderRadius: 'var(--db-progress-border-radius)',
33098
33627
  ...minWidth && {
33099
33628
  minWidth
33100
33629
  },
@@ -33105,10 +33634,9 @@ const getProgressRootStyles = (theme, minWidth, maxWidth)=>{
33105
33634
  };
33106
33635
  return /*#__PURE__*/ css(importantify(styles));
33107
33636
  };
33108
- const getMemoizedProgressRootStyles = memoize(getProgressRootStyles, (theme, minWidth, maxWidth)=>`${themeMemoKey(theme)}|${minWidth ?? ''}|${maxWidth ?? ''}`);
33109
- const Root$4 = (props)=>{
33637
+ const getMemoizedProgressRootStyles = memoize(getProgressRootStyles, (minWidth, maxWidth)=>`${minWidth ?? ''}|${maxWidth ?? ''}`);
33638
+ const Root$2 = (props)=>{
33110
33639
  const { children, value, minWidth, maxWidth, ...restProps } = props;
33111
- const { theme } = useDesignSystemTheme();
33112
33640
  const contextValue = useMemo(()=>({
33113
33641
  progress: value
33114
33642
  }), [
@@ -33119,27 +33647,22 @@ const Root$4 = (props)=>{
33119
33647
  children: /*#__PURE__*/ jsx(Progress$1.Root, {
33120
33648
  value: value,
33121
33649
  ...restProps,
33122
- css: getMemoizedProgressRootStyles(theme, minWidth, maxWidth),
33650
+ css: getMemoizedProgressRootStyles(minWidth, maxWidth),
33123
33651
  children: children
33124
33652
  })
33125
33653
  });
33126
33654
  };
33127
- const getProgressIndicatorStyles = (theme)=>{
33128
- const styles = {
33129
- backgroundColor: theme.colors.progressFill,
33130
- height: '100%',
33131
- width: '100%',
33132
- transition: 'transform 300ms linear',
33133
- borderRadius: theme.borders.borderRadiusFull
33134
- };
33135
- return /*#__PURE__*/ css(importantify(styles));
33136
- };
33137
- const getMemoizedProgressIndicatorStyles = memoize(getProgressIndicatorStyles);
33655
+ const progressIndicatorStyles = /*#__PURE__*/ css(importantify({
33656
+ backgroundColor: 'var(--db-progress-fill)',
33657
+ height: '100%',
33658
+ width: '100%',
33659
+ transition: 'transform var(--db-progress-transition-duration) linear',
33660
+ borderRadius: 'var(--db-progress-border-radius)'
33661
+ }));
33138
33662
  const Indicator = (props)=>{
33139
33663
  const { progress } = React__default.useContext(ProgressContext);
33140
- const { theme } = useDesignSystemTheme();
33141
33664
  return /*#__PURE__*/ jsx(Progress$1.Indicator, {
33142
- css: getMemoizedProgressIndicatorStyles(theme),
33665
+ css: progressIndicatorStyles,
33143
33666
  style: {
33144
33667
  transform: `translateX(-${100 - (progress ?? 100)}%)`
33145
33668
  },
@@ -33150,7 +33673,7 @@ const Indicator = (props)=>{
33150
33673
  var Progress = /*#__PURE__*/Object.freeze({
33151
33674
  __proto__: null,
33152
33675
  Indicator: Indicator,
33153
- Root: Root$4
33676
+ Root: Root$2
33154
33677
  });
33155
33678
 
33156
33679
  const getRadioTileStyles = (theme, classNamePrefix, maxWidth)=>{
@@ -33234,13 +33757,16 @@ const getMemoizedIconStyles = memoize((theme, disabled)=>({
33234
33757
  const RadioTile = (props)=>{
33235
33758
  const { description, icon, maxWidth, checked, defaultChecked, onChange, ...rest } = props;
33236
33759
  const { theme, classNamePrefix } = useDesignSystemTheme();
33237
- const { value: groupValue, onChange: groupOnChange } = useRadioGroupContext();
33760
+ // Mirror NativeRadio: a disabled <Radio.Group> disables its tiles. RadioTile's own <button> is
33761
+ // the interactive element, so OR the group's `disabled` (from context) with the tile's own prop.
33762
+ const { value: groupValue, onChange: groupOnChange, disabled: groupDisabled } = useRadioGroupContext();
33763
+ const isDisabledByGroupOrProp = groupDisabled || props.disabled;
33238
33764
  return /*#__PURE__*/ jsxs("button", {
33239
33765
  role: "radio",
33240
33766
  type: "button",
33241
33767
  "aria-checked": groupValue === props.value,
33242
33768
  onClick: ()=>{
33243
- if (props.disabled) {
33769
+ if (isDisabledByGroupOrProp) {
33244
33770
  return;
33245
33771
  }
33246
33772
  onChange?.(props.value);
@@ -33253,12 +33779,12 @@ const RadioTile = (props)=>{
33253
33779
  tabIndex: 0,
33254
33780
  className: `${classNamePrefix}-radio-tile`,
33255
33781
  css: getMemoizedRadioTileStyles(theme, classNamePrefix, maxWidth),
33256
- disabled: props.disabled,
33782
+ disabled: isDisabledByGroupOrProp,
33257
33783
  children: [
33258
33784
  /*#__PURE__*/ jsxs("div", {
33259
33785
  children: [
33260
33786
  icon ? /*#__PURE__*/ jsx("span", {
33261
- css: getMemoizedIconStyles(theme, Boolean(props.disabled)),
33787
+ css: getMemoizedIconStyles(theme, Boolean(isDisabledByGroupOrProp)),
33262
33788
  children: icon
33263
33789
  }) : null,
33264
33790
  /*#__PURE__*/ jsx(Radio, {
@@ -33325,7 +33851,6 @@ function getSegmentedControlButtonEmotionStyles(clsPrefix, theme, size, spaced =
33325
33851
  const classWrapper = `.${clsPrefix}-radio-button-wrapper`;
33326
33852
  const classWrapperDisabled = `.${clsPrefix}-radio-button-wrapper-disabled`;
33327
33853
  const classButton = `.${clsPrefix}-radio-button`;
33328
- const classIcon = `.${theme.general.iconfontCssPrefix}`;
33329
33854
  // Note: Ant radio button uses a 1px-wide `before` pseudo-element to recreate the left border of the button.
33330
33855
  // This is because the actual left border is disabled to avoid a double-border effect with the adjacent button's
33331
33856
  // right border.
@@ -33489,7 +34014,7 @@ function getSegmentedControlButtonEmotionStyles(clsPrefix, theme, size, spaced =
33489
34014
  },
33490
34015
  [`&${classWrapperChecked}`]: {
33491
34016
  color: theme.colors.actionDefaultTextDefault,
33492
- [`${classIcon}`]: {
34017
+ [`& :is(${getIconClassName()})`]: {
33493
34018
  color: theme.colors.textSecondary
33494
34019
  },
33495
34020
  backgroundColor: theme.colors.backgroundPrimary,
@@ -33915,7 +34440,7 @@ const getMemoizedNavButtonActiveCss = memoize((theme)=>importantify({
33915
34440
  borderRadius: theme.borders.borderRadiusSm,
33916
34441
  background: theme.colors.actionDefaultBackgroundPress,
33917
34442
  button: {
33918
- '&:enabled:not(:hover):not(:active) > .anticon': {
34443
+ [`&:enabled:not(:hover):not(:active) > :is(${getIconClassName()})`]: {
33919
34444
  color: theme.colors.actionTertiaryTextPress
33920
34445
  }
33921
34446
  }
@@ -33972,7 +34497,7 @@ const NavButton = /*#__PURE__*/ React__default.forwardRef(// eslint-disable-next
33972
34497
  active ? getMemoizedNavButtonActiveCss(theme) : undefined,
33973
34498
  dangerouslyAppendEmotionCSS
33974
34499
  ],
33975
- children: /*#__PURE__*/ jsx(Button$1, {
34500
+ children: /*#__PURE__*/ jsx(Button, {
33976
34501
  ref: ref,
33977
34502
  icon: icon,
33978
34503
  onClick: onClick,
@@ -34333,7 +34858,7 @@ function PanelHeader({ children, dangerouslyAppendEmotionCSS, componentId, close
34333
34858
  })
34334
34859
  }),
34335
34860
  contentContext.closable ? /*#__PURE__*/ jsx("div", {
34336
- children: /*#__PURE__*/ jsx(Button$1, {
34861
+ children: /*#__PURE__*/ jsx(Button, {
34337
34862
  componentId: componentId ? `${componentId}.close` : 'codegen_design-system_src_design-system_sidebar_sidebar.tsx_427',
34338
34863
  size: "small",
34339
34864
  icon: closeIcon ?? /*#__PURE__*/ jsx(CloseIcon, {}),
@@ -34381,7 +34906,7 @@ function PanelBody({ children, dangerouslyAppendEmotionCSS }) {
34381
34906
  return /*#__PURE__*/ jsx("div", {
34382
34907
  ref: bodyRef,
34383
34908
  // Needed to make panel body content focusable when scrollable for keyboard-only users to be able to focus & scroll
34384
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
34909
+ // oxlint-disable-next-line jsx-a11y/no-noninteractive-tabindex
34385
34910
  tabIndex: shouldBeFocusable ? 0 : -1,
34386
34911
  css: [
34387
34912
  getMemoizedPanelBodyCss(theme),
@@ -34426,303 +34951,6 @@ const Sidebar = /* #__PURE__ */ (()=>{
34426
34951
  return Sidebar;
34427
34952
  })();
34428
34953
 
34429
- const ROOT_STYLES = /*#__PURE__*/ css({
34430
- position: 'relative',
34431
- display: 'flex',
34432
- alignItems: 'center',
34433
- '&[data-orientation="vertical"]': {
34434
- flexDirection: 'column',
34435
- width: 20,
34436
- height: 100
34437
- },
34438
- '&[data-orientation="horizontal"]': {
34439
- height: 20,
34440
- width: 200
34441
- }
34442
- });
34443
- const Root$3 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
34444
- /*#__PURE__*/ forwardRef((props, ref)=>{
34445
- return /*#__PURE__*/ jsx(RadixSlider.Root, {
34446
- ...addDebugOutlineIfEnabled(),
34447
- css: ROOT_STYLES,
34448
- ...props,
34449
- ref: ref
34450
- });
34451
- });
34452
- const getTrackStyles = memoize((theme)=>/*#__PURE__*/ css({
34453
- backgroundColor: theme.colors.grey100,
34454
- position: 'relative',
34455
- flexGrow: 1,
34456
- borderRadius: theme.borders.borderRadiusFull,
34457
- '&[data-orientation="vertical"]': {
34458
- width: 3
34459
- },
34460
- '&[data-orientation="horizontal"]': {
34461
- height: 3
34462
- }
34463
- }));
34464
- const Track = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
34465
- /*#__PURE__*/ forwardRef((props, ref)=>{
34466
- const { theme } = useDesignSystemTheme();
34467
- return /*#__PURE__*/ jsx(RadixSlider.Track, {
34468
- css: getTrackStyles(theme),
34469
- ...props,
34470
- ref: ref
34471
- });
34472
- });
34473
- const getRangeStyles = memoize((theme)=>/*#__PURE__*/ css({
34474
- backgroundColor: theme.colors.primary,
34475
- position: 'absolute',
34476
- borderRadius: theme.borders.borderRadiusFull,
34477
- height: '100%',
34478
- '&[data-disabled]': {
34479
- backgroundColor: theme.colors.grey100
34480
- }
34481
- }));
34482
- const Range = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
34483
- /*#__PURE__*/ forwardRef((props, ref)=>{
34484
- const { theme } = useDesignSystemTheme();
34485
- return /*#__PURE__*/ jsx(RadixSlider.Range, {
34486
- css: getRangeStyles(theme),
34487
- ...props,
34488
- ref: ref
34489
- });
34490
- });
34491
- const getThumbStyles = memoize((theme)=>/*#__PURE__*/ css({
34492
- display: 'block',
34493
- width: 20,
34494
- height: 20,
34495
- backgroundColor: theme.colors.actionPrimaryBackgroundDefault,
34496
- boxShadow: 'none',
34497
- borderRadius: theme.borders.borderRadiusFull,
34498
- outline: 'none',
34499
- '&:hover': {
34500
- backgroundColor: theme.colors.actionPrimaryBackgroundHover
34501
- },
34502
- '&:focus': {
34503
- backgroundColor: theme.colors.actionPrimaryBackgroundPress
34504
- },
34505
- '&[data-disabled]': {
34506
- backgroundColor: theme.colors.grey200,
34507
- boxShadow: 'none'
34508
- }
34509
- }));
34510
- const Thumb = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
34511
- /*#__PURE__*/ forwardRef((props, ref)=>{
34512
- const { theme } = useDesignSystemTheme();
34513
- return /*#__PURE__*/ jsx(RadixSlider.Thumb, {
34514
- css: getThumbStyles(theme),
34515
- "aria-label": "Slider thumb",
34516
- ...props,
34517
- ref: ref
34518
- });
34519
- });
34520
-
34521
- var Slider = /*#__PURE__*/Object.freeze({
34522
- __proto__: null,
34523
- Range: Range,
34524
- Root: Root$3,
34525
- Thumb: Thumb,
34526
- Track: Track
34527
- });
34528
-
34529
- var shim = {exports: {}};
34530
-
34531
- var useSyncExternalStoreShim_production = {};
34532
-
34533
- /**
34534
- * @license React
34535
- * use-sync-external-store-shim.production.js
34536
- *
34537
- * Copyright (c) Meta Platforms, Inc. and affiliates.
34538
- *
34539
- * This source code is licensed under the MIT license found in the
34540
- * LICENSE file in the root directory of this source tree.
34541
- */
34542
-
34543
- var hasRequiredUseSyncExternalStoreShim_production;
34544
-
34545
- function requireUseSyncExternalStoreShim_production () {
34546
- if (hasRequiredUseSyncExternalStoreShim_production) return useSyncExternalStoreShim_production;
34547
- hasRequiredUseSyncExternalStoreShim_production = 1;
34548
- var React = React__default;
34549
- function is(x, y) {
34550
- return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
34551
- }
34552
- var objectIs = "function" === typeof Object.is ? Object.is : is,
34553
- useState = React.useState,
34554
- useEffect = React.useEffect,
34555
- useLayoutEffect = React.useLayoutEffect,
34556
- useDebugValue = React.useDebugValue;
34557
- function useSyncExternalStore$2(subscribe, getSnapshot) {
34558
- var value = getSnapshot(),
34559
- _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),
34560
- inst = _useState[0].inst,
34561
- forceUpdate = _useState[1];
34562
- useLayoutEffect(
34563
- function () {
34564
- inst.value = value;
34565
- inst.getSnapshot = getSnapshot;
34566
- checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
34567
- },
34568
- [subscribe, value, getSnapshot]
34569
- );
34570
- useEffect(
34571
- function () {
34572
- checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
34573
- return subscribe(function () {
34574
- checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
34575
- });
34576
- },
34577
- [subscribe]
34578
- );
34579
- useDebugValue(value);
34580
- return value;
34581
- }
34582
- function checkIfSnapshotChanged(inst) {
34583
- var latestGetSnapshot = inst.getSnapshot;
34584
- inst = inst.value;
34585
- try {
34586
- var nextValue = latestGetSnapshot();
34587
- return !objectIs(inst, nextValue);
34588
- } catch (error) {
34589
- return true;
34590
- }
34591
- }
34592
- function useSyncExternalStore$1(subscribe, getSnapshot) {
34593
- return getSnapshot();
34594
- }
34595
- var shim =
34596
- "undefined" === typeof window ||
34597
- "undefined" === typeof window.document ||
34598
- "undefined" === typeof window.document.createElement
34599
- ? useSyncExternalStore$1
34600
- : useSyncExternalStore$2;
34601
- useSyncExternalStoreShim_production.useSyncExternalStore =
34602
- void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;
34603
- return useSyncExternalStoreShim_production;
34604
- }
34605
-
34606
- var useSyncExternalStoreShim_development = {};
34607
-
34608
- /**
34609
- * @license React
34610
- * use-sync-external-store-shim.development.js
34611
- *
34612
- * Copyright (c) Meta Platforms, Inc. and affiliates.
34613
- *
34614
- * This source code is licensed under the MIT license found in the
34615
- * LICENSE file in the root directory of this source tree.
34616
- */
34617
-
34618
- var hasRequiredUseSyncExternalStoreShim_development;
34619
-
34620
- function requireUseSyncExternalStoreShim_development () {
34621
- if (hasRequiredUseSyncExternalStoreShim_development) return useSyncExternalStoreShim_development;
34622
- hasRequiredUseSyncExternalStoreShim_development = 1;
34623
- "production" !== process.env.NODE_ENV &&
34624
- (function () {
34625
- function is(x, y) {
34626
- return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
34627
- }
34628
- function useSyncExternalStore$2(subscribe, getSnapshot) {
34629
- didWarnOld18Alpha ||
34630
- void 0 === React.startTransition ||
34631
- ((didWarnOld18Alpha = true),
34632
- console.error(
34633
- "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
34634
- ));
34635
- var value = getSnapshot();
34636
- if (!didWarnUncachedGetSnapshot) {
34637
- var cachedValue = getSnapshot();
34638
- objectIs(value, cachedValue) ||
34639
- (console.error(
34640
- "The result of getSnapshot should be cached to avoid an infinite loop"
34641
- ),
34642
- (didWarnUncachedGetSnapshot = true));
34643
- }
34644
- cachedValue = useState({
34645
- inst: { value: value, getSnapshot: getSnapshot }
34646
- });
34647
- var inst = cachedValue[0].inst,
34648
- forceUpdate = cachedValue[1];
34649
- useLayoutEffect(
34650
- function () {
34651
- inst.value = value;
34652
- inst.getSnapshot = getSnapshot;
34653
- checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
34654
- },
34655
- [subscribe, value, getSnapshot]
34656
- );
34657
- useEffect(
34658
- function () {
34659
- checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
34660
- return subscribe(function () {
34661
- checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
34662
- });
34663
- },
34664
- [subscribe]
34665
- );
34666
- useDebugValue(value);
34667
- return value;
34668
- }
34669
- function checkIfSnapshotChanged(inst) {
34670
- var latestGetSnapshot = inst.getSnapshot;
34671
- inst = inst.value;
34672
- try {
34673
- var nextValue = latestGetSnapshot();
34674
- return !objectIs(inst, nextValue);
34675
- } catch (error) {
34676
- return true;
34677
- }
34678
- }
34679
- function useSyncExternalStore$1(subscribe, getSnapshot) {
34680
- return getSnapshot();
34681
- }
34682
- "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
34683
- "function" ===
34684
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
34685
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
34686
- var React = React__default,
34687
- objectIs = "function" === typeof Object.is ? Object.is : is,
34688
- useState = React.useState,
34689
- useEffect = React.useEffect,
34690
- useLayoutEffect = React.useLayoutEffect,
34691
- useDebugValue = React.useDebugValue,
34692
- didWarnOld18Alpha = false,
34693
- didWarnUncachedGetSnapshot = false,
34694
- shim =
34695
- "undefined" === typeof window ||
34696
- "undefined" === typeof window.document ||
34697
- "undefined" === typeof window.document.createElement
34698
- ? useSyncExternalStore$1
34699
- : useSyncExternalStore$2;
34700
- useSyncExternalStoreShim_development.useSyncExternalStore =
34701
- void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;
34702
- "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
34703
- "function" ===
34704
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
34705
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
34706
- })();
34707
- return useSyncExternalStoreShim_development;
34708
- }
34709
-
34710
- var hasRequiredShim;
34711
-
34712
- function requireShim () {
34713
- if (hasRequiredShim) return shim.exports;
34714
- hasRequiredShim = 1;
34715
-
34716
- if (process.env.NODE_ENV === 'production') {
34717
- shim.exports = requireUseSyncExternalStoreShim_production();
34718
- } else {
34719
- shim.exports = requireUseSyncExternalStoreShim_development();
34720
- }
34721
- return shim.exports;
34722
- }
34723
-
34724
- var shimExports = requireShim();
34725
-
34726
34954
  // eslint-disable-next-line @databricks/no-restricted-imports-regexp -- we can directly import antd icons here in order to wrap them for use elsewhere in the design system
34727
34955
  function React18CompatibleIconComponent(IconComponent) {
34728
34956
  return IconComponent;
@@ -34736,7 +34964,7 @@ function React18CompatibleIconComponent(IconComponent) {
34736
34964
  * use Du Bois icons from `__generated/icons`.
34737
34965
  */ const LegacyEllipsisOutlined = React18CompatibleIconComponent(EllipsisOutlined);
34738
34966
 
34739
- const ButtonGroup = Button$2.Group;
34967
+ const ButtonGroup = Button$1.Group;
34740
34968
  const DropdownButton = (props)=>{
34741
34969
  const { theme } = useDesignSystemTheme();
34742
34970
  const { getPopupContainer: getContextPopupContainer, getPrefixCls } = useDesignSystemContext();
@@ -34763,7 +34991,7 @@ const DropdownButton = (props)=>{
34763
34991
  } else {
34764
34992
  dropdownProps.placement = 'bottomRight';
34765
34993
  }
34766
- const leftButton = /*#__PURE__*/ jsxs(Button$1, {
34994
+ const leftButton = /*#__PURE__*/ jsxs(Button, {
34767
34995
  componentId: componentId ? `${componentId}.primary_button` : 'codegen_design-system_src_design-system_splitbutton_dropdown_dropdownbutton.tsx_148',
34768
34996
  type: type,
34769
34997
  form: form,
@@ -34786,7 +35014,7 @@ const DropdownButton = (props)=>{
34786
35014
  children
34787
35015
  ]
34788
35016
  });
34789
- const rightButton = /*#__PURE__*/ jsx(Button$1, {
35017
+ const rightButton = /*#__PURE__*/ jsx(Button, {
34790
35018
  componentId: componentId ? `${componentId}.dropdown_button` : 'codegen_design-system_src_design-system_splitbutton_dropdown_dropdownbutton.tsx_166',
34791
35019
  type: type,
34792
35020
  danger: danger,
@@ -34810,16 +35038,20 @@ const DropdownButton = (props)=>{
34810
35038
  leftButton,
34811
35039
  rightButton
34812
35040
  ]);
34813
- return /*#__PURE__*/ jsxs(ButtonGroup, {
35041
+ return(// eslint-disable-next-line @typescript-eslint/ban-ts-comment
35042
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
35043
+ /*#__PURE__*/ jsxs(ButtonGroup, {
34814
35044
  ...restProps,
34815
35045
  className: classnames(prefixCls, className),
34816
35046
  children: [
34817
35047
  leftButtonToRender,
34818
- overlay !== undefined ? /*#__PURE__*/ jsx(Dropdown, {
35048
+ overlay !== undefined ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment
35049
+ // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types
35050
+ /*#__PURE__*/ jsx(Dropdown, {
34819
35051
  ...dropdownProps,
34820
35052
  overlay: overlay,
34821
35053
  children: rightButtonToRender
34822
- }) : /*#__PURE__*/ jsxs(Root$a, {
35054
+ }) : /*#__PURE__*/ jsxs(Root$8, {
34823
35055
  ...dropdownMenuRootProps,
34824
35056
  itemHtmlType: htmlType === 'submit' ? 'submit' : undefined,
34825
35057
  children: [
@@ -34834,7 +35066,7 @@ const DropdownButton = (props)=>{
34834
35066
  ]
34835
35067
  })
34836
35068
  ]
34837
- });
35069
+ }));
34838
35070
  };
34839
35071
 
34840
35072
  const BUTTON_HORIZONTAL_PADDING = 12;
@@ -34844,37 +35076,41 @@ const SPLIT_BUTTON_CONTAINER_CSS = {
34844
35076
  verticalAlign: 'middle'
34845
35077
  };
34846
35078
  function getSplitButtonEmotionStyles(classNamePrefix, theme, size) {
34847
- const classDefault = `.${classNamePrefix}-btn`;
34848
- const classPrimary = `.${classNamePrefix}-btn-primary`;
35079
+ const btn = (suffix = '')=>getBtnClassName(classNamePrefix, suffix, '');
35080
+ const primary = (suffix = '')=>getBtnClassName(classNamePrefix, `-primary${suffix}`, '');
34849
35081
  const classDropdownTrigger = `.${classNamePrefix}-dropdown-trigger`;
34850
35082
  const classSmall = `.${classNamePrefix}-btn-group-sm`;
35083
+ const iconClass = getIconClassName();
35084
+ const iconSelector = `:is(${iconClass})`;
35085
+ const iconStateSelectors = `${iconClass}, &:hover ${iconSelector}, &:active ${iconSelector}, &:focus-visible ${iconSelector}`;
34851
35086
  const styles = {
34852
- [classDefault]: {
35087
+ [btn()]: {
34853
35088
  ...getDefaultStyles(theme),
34854
35089
  boxShadow: 'none',
34855
35090
  height: size === 'small' ? theme.general.iconSize : theme.general.heightSm,
34856
- padding: `4px ${BUTTON_HORIZONTAL_PADDING}px`,
35091
+ // Small segments use compact padding so the native segment doesn't render wider than AntD.
35092
+ padding: size === 'small' ? `0px ${theme.spacing.sm}px` : `4px ${BUTTON_HORIZONTAL_PADDING}px`,
34857
35093
  '&:focus-visible': {
34858
35094
  outlineStyle: 'solid',
34859
35095
  outlineWidth: '2px',
34860
35096
  outlineOffset: '-2px',
34861
35097
  outlineColor: theme.colors.actionDefaultBorderFocus
34862
35098
  },
34863
- '.anticon, &:focus-visible .anticon': {
35099
+ [`${iconClass}, &:focus-visible ${iconSelector}`]: {
34864
35100
  color: theme.colors.textSecondary
34865
35101
  },
34866
- '&:hover .anticon': {
35102
+ [`&:hover ${iconSelector}`]: {
34867
35103
  color: theme.colors.actionDefaultIconHover
34868
35104
  },
34869
- '&:active .anticon': {
35105
+ [`&:active ${iconSelector}`]: {
34870
35106
  color: theme.colors.actionDefaultIconPress
34871
35107
  }
34872
35108
  },
34873
- [`${classDefault}:first-child`]: {
35109
+ [btn(':first-child')]: {
34874
35110
  borderTopRightRadius: '0px !important',
34875
35111
  borderBottomRightRadius: '0px !important'
34876
35112
  },
34877
- [classPrimary]: {
35113
+ [primary()]: {
34878
35114
  ...getPrimaryStyles(theme),
34879
35115
  boxShadow: 'none',
34880
35116
  [`&:first-child`]: {
@@ -34890,7 +35126,7 @@ function getSplitButtonEmotionStyles(classNamePrefix, theme, size) {
34890
35126
  outlineOffset: '-3px',
34891
35127
  outlineColor: theme.colors.white
34892
35128
  },
34893
- '.anticon, &:hover .anticon, &:active .anticon, &:focus-visible .anticon': {
35129
+ [iconStateSelectors]: {
34894
35130
  color: theme.colors.actionPrimaryIcon
34895
35131
  }
34896
35132
  },
@@ -34906,7 +35142,7 @@ function getSplitButtonEmotionStyles(classNamePrefix, theme, size) {
34906
35142
  }
34907
35143
  },
34908
35144
  '&&': {
34909
- [`[disabled], ${classPrimary}[disabled]`]: {
35145
+ [`[disabled], ${primary('[disabled]')}`]: {
34910
35146
  ...getDisabledSplitButtonStyles(theme),
34911
35147
  boxShadow: 'none',
34912
35148
  [`&:first-child`]: {
@@ -34916,23 +35152,31 @@ function getSplitButtonEmotionStyles(classNamePrefix, theme, size) {
34916
35152
  [classDropdownTrigger]: {
34917
35153
  borderLeft: `1px solid ${theme.colors.actionPrimaryIcon}`
34918
35154
  },
34919
- '.anticon, &:hover .anticon, &:active .anticon, &:focus-visible .anticon': {
35155
+ [iconStateSelectors]: {
34920
35156
  color: theme.colors.actionDisabledText
34921
35157
  }
34922
35158
  },
34923
- [`${classPrimary}[disabled]`]: {
35159
+ [primary('[disabled]')]: {
34924
35160
  ...getDisabledPrimarySplitButtonStyles(theme),
34925
- '.anticon, &:hover .anticon, &:active .anticon, &:focus-visible .anticon': {
35161
+ [iconStateSelectors]: {
34926
35162
  color: theme.colors.actionPrimaryTextDefault
34927
35163
  }
34928
35164
  }
34929
35165
  },
34930
- [`${classDefault}:not(:first-child)`]: {
35166
+ [btn(':not(:first-child)')]: {
34931
35167
  width: theme.general.heightSm,
34932
35168
  padding: '3px !important',
34933
35169
  borderTopLeftRadius: '0px !important',
34934
35170
  borderBottomLeftRadius: '0px !important'
34935
35171
  },
35172
+ // Collapse adjacent `.db-btn` segments' borders into a single 1px divider.
35173
+ '.db-btn:not(:first-child)': {
35174
+ marginInlineStart: -1
35175
+ },
35176
+ // Raise the hovered/focused/active `.db-btn` segment so its border paints over the neighbor.
35177
+ '.db-btn:hover, .db-btn:focus-visible, .db-btn:active': {
35178
+ zIndex: 2
35179
+ },
34936
35180
  ...getAnimationCss(theme.options.enableAnimation)
34937
35181
  };
34938
35182
  const importantStyles = importantify(styles);
@@ -34977,7 +35221,7 @@ const SplitButton = (props)=>{
34977
35221
  children: /*#__PURE__*/ jsx("div", {
34978
35222
  ref: ref,
34979
35223
  css: SPLIT_BUTTON_CONTAINER_CSS,
34980
- children: loading ? /*#__PURE__*/ jsx(Button$1, {
35224
+ children: loading ? /*#__PURE__*/ jsx(Button, {
34981
35225
  componentId: "codegen_design-system_src_design-system_splitbutton_splitbutton.tsx_163",
34982
35226
  type: type === 'default' ? undefined : type,
34983
35227
  style: loadingButtonStyle,
@@ -35411,7 +35655,7 @@ const TabsListContext = /*#__PURE__*/ React__default.createContext({
35411
35655
  current: null
35412
35656
  }
35413
35657
  });
35414
- const Root$2 = /*#__PURE__*/ React__default.forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
35658
+ const Root$1 = /*#__PURE__*/ React__default.forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
35415
35659
  ({ value, defaultValue, onValueChange, componentId, analyticsEvents, valueHasNoPii, ...props }, forwardedRef)=>{
35416
35660
  const emitOnView = safex('databricks.fe.observability.defaultComponentView.tabs', false);
35417
35661
  const isControlled = value !== undefined;
@@ -35527,7 +35771,7 @@ const List = /*#__PURE__*/ React__default.forwardRef(// eslint-disable-next-line
35527
35771
  styles['addButtonContainer'],
35528
35772
  addButtonProps.dangerouslyAppendEmotionCSS
35529
35773
  ],
35530
- children: /*#__PURE__*/ jsx(Button$1, {
35774
+ children: /*#__PURE__*/ jsx(Button, {
35531
35775
  icon: /*#__PURE__*/ jsx(PlusIcon, {}),
35532
35776
  size: "small",
35533
35777
  "aria-label": "Add tab",
@@ -35713,8 +35957,6 @@ const Trigger$1 = /*#__PURE__*/ React__default.forwardRef(// eslint-disable-next
35713
35957
  });
35714
35958
  });
35715
35959
  const Content$1 = /*#__PURE__*/ React__default.forwardRef(({ mountMode = 'active', children, ...props }, forwardedRef)=>{
35716
- const { theme } = useDesignSystemTheme();
35717
- const css = getMemoizedContentStyles(theme);
35718
35960
  const { activeValue } = React__default.useContext(TabsRootContext);
35719
35961
  const shouldSetActivated = props.value === activeValue;
35720
35962
  const [hasBeenActivated, setHasBeenActivated] = React__default.useState(shouldSetActivated);
@@ -35722,7 +35964,7 @@ const Content$1 = /*#__PURE__*/ React__default.forwardRef(({ mountMode = 'active
35722
35964
  setHasBeenActivated(true);
35723
35965
  }
35724
35966
  return /*#__PURE__*/ jsx(RadixTabs.Content, {
35725
- css: css,
35967
+ css: CONTENT_STYLES,
35726
35968
  ...props,
35727
35969
  ref: forwardedRef,
35728
35970
  forceMount: mountMode === 'force' || mountMode === 'preserve' || undefined,
@@ -35742,13 +35984,12 @@ const ADD_BUTTON_CONTAINER_CSS = {
35742
35984
  flex: 1
35743
35985
  };
35744
35986
  const ADD_BUTTON_CSS = {
35745
- margin: '2px 0 6px 0'
35987
+ margin: 'var(--db-tabs-add-button-margin-top) 0 var(--db-tabs-add-button-margin-bottom) 0'
35746
35988
  };
35747
35989
  const getListStyles = (theme, shadowScrollStylesBackgroundColor, scrollbarHeight)=>{
35748
- const containerStyles = getCommonTabsListStyles(theme);
35749
35990
  return {
35750
35991
  container: {
35751
- ...containerStyles,
35992
+ ...COMMON_TABS_LIST_STYLES,
35752
35993
  contain: 'layout paint'
35753
35994
  },
35754
35995
  root: SCROLL_ROOT_CSS,
@@ -35767,11 +36008,11 @@ const getListStyles = (theme, shadowScrollStylesBackgroundColor, scrollbarHeight
35767
36008
  },
35768
36009
  thumb: {
35769
36010
  flex: 1,
35770
- background: theme.isDarkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(17, 23, 28, 0.2)',
36011
+ background: 'var(--db-tabs-scrollbar-thumb)',
35771
36012
  '&:hover': {
35772
- background: theme.isDarkMode ? 'rgba(255, 255, 255, 0.3)' : 'rgba(17, 23, 28, 0.3)'
36013
+ background: 'var(--db-tabs-scrollbar-thumb-hover)'
35773
36014
  },
35774
- borderRadius: theme.borders.borderRadiusSm,
36015
+ borderRadius: 'var(--db-tabs-scrollbar-radius)',
35775
36016
  position: 'relative'
35776
36017
  },
35777
36018
  addButtonContainer: ADD_BUTTON_CONTAINER_CSS,
@@ -35780,69 +36021,69 @@ const getListStyles = (theme, shadowScrollStylesBackgroundColor, scrollbarHeight
35780
36021
  };
35781
36022
  const getMemoizedListStyles = memoize(getListStyles, (theme, bg, scrollbarHeight)=>`${themeMemoKey(theme)}|${bg ?? ''}|${scrollbarHeight ?? ''}`);
35782
36023
  const getTriggerStyles = (theme, isClosable)=>{
35783
- const commonTriggerStyles = getCommonTabsTriggerStyles(theme);
36024
+ const iconSelector = `:is(${getIconClassName()})`;
35784
36025
  return {
35785
36026
  trigger: {
35786
- ...commonTriggerStyles,
36027
+ ...COMMON_TABS_TRIGGER_STYLES,
35787
36028
  alignItems: 'center',
35788
36029
  justifyContent: isClosable ? 'space-between' : 'center',
35789
- minWidth: isClosable ? theme.spacing.lg + theme.spacing.md : theme.spacing.lg,
35790
- color: theme.colors.textSecondary,
35791
- lineHeight: theme.typography.lineHeightBase,
36030
+ minWidth: isClosable ? 'var(--db-tabs-trigger-min-width-closable)' : 'var(--db-tabs-trigger-min-width)',
36031
+ color: 'var(--db-tabs-text)',
36032
+ lineHeight: 'var(--db-tabs-line-height)',
35792
36033
  whiteSpace: 'nowrap',
35793
36034
  border: 'none',
35794
- padding: `${theme.spacing.xs}px 0 ${theme.spacing.sm}px 0`,
36035
+ padding: 'var(--db-tabs-trigger-padding-top) 0 var(--db-tabs-trigger-padding-bottom) 0',
35795
36036
  // The close icon is hidden on inactive tabs until the tab is hovered
35796
36037
  // Checking for the last icon to handle cases where the tab name includes an icon
35797
- [`& > .anticon:last-of-type`]: {
36038
+ [`& > ${iconSelector}:last-of-type`]: {
35798
36039
  visibility: 'hidden'
35799
36040
  },
35800
36041
  '&:hover': {
35801
36042
  cursor: 'pointer',
35802
- color: theme.colors.actionDefaultTextHover,
35803
- [`& > .anticon:last-of-type`]: {
36043
+ color: 'var(--db-tabs-text-hover)',
36044
+ [`& > ${iconSelector}:last-of-type`]: {
35804
36045
  visibility: 'visible'
35805
36046
  }
35806
36047
  },
35807
36048
  '&:active': {
35808
- color: theme.colors.actionDefaultTextPress
36049
+ color: 'var(--db-tabs-text-press)'
35809
36050
  },
35810
36051
  outlineStyle: 'none',
35811
- outlineColor: theme.colors.actionDefaultBorderFocus,
36052
+ outlineColor: 'var(--db-tabs-focus-ring)',
35812
36053
  '&:focus-visible': {
35813
36054
  outlineStyle: 'auto'
35814
36055
  },
35815
36056
  '&[data-state="active"]': {
35816
- color: theme.colors.textPrimary,
36057
+ color: 'var(--db-tabs-text-active)',
35817
36058
  // Use box-shadow instead of border to prevent it from affecting the size of the element, which results in visual
35818
36059
  // jumping when switching tabs.
35819
- boxShadow: `inset 0 -4px 0 ${theme.colors.actionPrimaryBackgroundDefault}`,
36060
+ boxShadow: 'inset 0 -4px 0 var(--db-tabs-indicator)',
35820
36061
  // The close icon is always visible on active tabs
35821
- [`& > .anticon:last-of-type`]: {
36062
+ [`& > ${iconSelector}:last-of-type`]: {
35822
36063
  visibility: 'visible'
35823
36064
  }
35824
36065
  },
35825
36066
  '&[data-disabled]': {
35826
- color: theme.colors.actionDisabledText,
36067
+ color: 'var(--db-tabs-text-disabled)',
35827
36068
  '&:hover': {
35828
36069
  cursor: 'not-allowed'
35829
36070
  }
35830
36071
  }
35831
36072
  },
35832
36073
  closeSmallIcon: {
35833
- marginLeft: theme.spacing.xs,
35834
- color: theme.colors.textSecondary,
36074
+ marginLeft: 'var(--db-tabs-close-icon-gap)',
36075
+ color: 'var(--db-tabs-text)',
35835
36076
  '&:hover': {
35836
- color: theme.colors.actionDefaultTextHover
36077
+ color: 'var(--db-tabs-text-hover)'
35837
36078
  },
35838
36079
  '&:active': {
35839
- color: theme.colors.actionDefaultTextPress
36080
+ color: 'var(--db-tabs-text-press)'
35840
36081
  }
35841
36082
  },
35842
36083
  // `trailingActions` only: the container is the visual tab (takes the consumer's className); the
35843
36084
  // inner trigger is a transparent passthrough.
35844
36085
  triggerContainer: {
35845
- ...commonTriggerStyles,
36086
+ ...COMMON_TABS_TRIGGER_STYLES,
35846
36087
  display: 'inline-flex',
35847
36088
  alignItems: 'center',
35848
36089
  // Fill the list height so the active-tab underline (`inset 0 -4px` box-shadow below) lands on
@@ -35850,42 +36091,42 @@ const getTriggerStyles = (theme, isClosable)=>{
35850
36091
  // 20px line box (= heightSm); this branch's tallest child is a small Button, so match the
35851
36092
  // height explicitly instead — padding would overflow the list. Centered content keeps the
35852
36093
  // trailing actions and close icon in place; only the underline drops to the baseline.
35853
- height: theme.general.heightSm,
36094
+ height: 'var(--db-tabs-height)',
35854
36095
  position: 'relative',
35855
36096
  // Scope the inner trigger's z-index:-1 hit-area overlay (see `triggerInner`) to this tab.
35856
36097
  isolation: 'isolate',
35857
- color: theme.colors.textSecondary,
36098
+ color: 'var(--db-tabs-text)',
35858
36099
  // Focus lands on the inner button; draw the ring on the whole tab instead. Inset `outline`
35859
36100
  // (not box-shadow) so the strip's overflow can't clip it and it won't clobber an active underline.
35860
36101
  '&:has([role="tab"]:focus-visible)': {
35861
- outline: `2px solid ${theme.colors.actionDefaultBorderFocus}`,
36102
+ outline: 'var(--db-tabs-focus-ring-width) solid var(--db-tabs-focus-ring)',
35862
36103
  outlineOffset: '-2px'
35863
36104
  },
35864
36105
  '&:hover': {
35865
36106
  cursor: 'pointer',
35866
- color: theme.colors.actionDefaultTextHover
36107
+ color: 'var(--db-tabs-text-hover)'
35867
36108
  },
35868
36109
  '&:active': {
35869
- color: theme.colors.actionDefaultTextPress
36110
+ color: 'var(--db-tabs-text-press)'
35870
36111
  },
35871
36112
  '&[data-state="active"]': {
35872
- color: theme.colors.textPrimary,
36113
+ color: 'var(--db-tabs-text-active)',
35873
36114
  // Use box-shadow instead of border to prevent it from affecting the size of the element, which results in visual
35874
36115
  // jumping when switching tabs.
35875
- boxShadow: `inset 0 -4px 0 ${theme.colors.actionPrimaryBackgroundDefault}`
36116
+ boxShadow: 'inset 0 -4px 0 var(--db-tabs-indicator)'
35876
36117
  },
35877
36118
  '&[data-disabled]': {
35878
- color: theme.colors.actionDisabledText,
36119
+ color: 'var(--db-tabs-text-disabled)',
35879
36120
  '&:hover': {
35880
36121
  cursor: 'not-allowed'
35881
36122
  }
35882
36123
  },
35883
36124
  // Mirror the single-trigger branch: hide the close icon on inactive tabs but keep its box
35884
36125
  // reserved (`visibility`, not width) so it doesn't shift the tab, and reveal on hover/active.
35885
- [`& > .anticon:last-of-type`]: {
36126
+ [`& > ${iconSelector}:last-of-type`]: {
35886
36127
  visibility: 'hidden'
35887
36128
  },
35888
- [`&:hover > .anticon:last-of-type, &[data-state="active"] > .anticon:last-of-type`]: {
36129
+ [`&:hover > ${iconSelector}:last-of-type, &[data-state="active"] > ${iconSelector}:last-of-type`]: {
35889
36130
  visibility: 'visible'
35890
36131
  }
35891
36132
  },
@@ -35919,18 +36160,18 @@ const getTriggerStyles = (theme, isClosable)=>{
35919
36160
  };
35920
36161
  };
35921
36162
  const getMemoizedTriggerStyles = memoize(getTriggerStyles, (theme, isClosable)=>`${themeMemoKey(theme)}|${isClosable}`);
35922
- const getMemoizedContentStyles = memoize((theme)=>({
35923
- color: theme.colors.textPrimary,
35924
- '&[data-state="inactive"]': {
35925
- display: 'none'
35926
- }
35927
- }));
36163
+ const CONTENT_STYLES = {
36164
+ color: 'var(--db-tabs-content-text)',
36165
+ '&[data-state="inactive"]': {
36166
+ display: 'none'
36167
+ }
36168
+ };
35928
36169
 
35929
36170
  var Tabs = /*#__PURE__*/Object.freeze({
35930
36171
  __proto__: null,
35931
36172
  Content: Content$1,
35932
36173
  List: List,
35933
- Root: Root$2,
36174
+ Root: Root$1,
35934
36175
  Trigger: Trigger$1
35935
36176
  });
35936
36177
 
@@ -36121,93 +36362,6 @@ const ToggleButton = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-
36121
36362
  });
36122
36363
  });
36123
36364
 
36124
- const getRootStyles = memoize((theme)=>/*#__PURE__*/ css({
36125
- alignItems: 'center',
36126
- backgroundColor: theme.colors.backgroundSecondary,
36127
- border: `1px solid ${theme.colors.border}`,
36128
- borderRadius: theme.borders.borderRadiusSm,
36129
- boxShadow: theme.shadows.lg,
36130
- display: 'flex',
36131
- gap: theme.spacing.md,
36132
- width: 'max-content',
36133
- padding: theme.spacing.sm
36134
- }));
36135
- const Root$1 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
36136
- /*#__PURE__*/ forwardRef((props, ref)=>{
36137
- const { theme } = useDesignSystemTheme();
36138
- return /*#__PURE__*/ jsx(RadixToolbar.Root, {
36139
- ...addDebugOutlineIfEnabled(),
36140
- css: getRootStyles(theme),
36141
- ...props,
36142
- ref: ref
36143
- });
36144
- });
36145
- const Button = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
36146
- (props, ref)=>{
36147
- return /*#__PURE__*/ jsx(RadixToolbar.Button, {
36148
- ...props,
36149
- ref: ref
36150
- });
36151
- });
36152
- const getSeparatorStyles = memoize((theme)=>/*#__PURE__*/ css({
36153
- alignSelf: 'stretch',
36154
- backgroundColor: theme.colors.borderDecorative,
36155
- width: 1
36156
- }));
36157
- const Separator = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
36158
- (props, ref)=>{
36159
- const { theme } = useDesignSystemTheme();
36160
- return /*#__PURE__*/ jsx(RadixToolbar.Separator, {
36161
- css: getSeparatorStyles(theme),
36162
- ...props,
36163
- ref: ref
36164
- });
36165
- });
36166
- const Link = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
36167
- /*#__PURE__*/ forwardRef((props, ref)=>{
36168
- return /*#__PURE__*/ jsx(RadixToolbar.Link, {
36169
- ...props,
36170
- ref: ref
36171
- });
36172
- });
36173
- const ToggleGroup = /*#__PURE__*/ forwardRef((props, ref)=>{
36174
- return /*#__PURE__*/ jsx(RadixToolbar.ToggleGroup, {
36175
- ...props,
36176
- ref: ref
36177
- });
36178
- });
36179
- const getToggleItemStyles = memoize((theme)=>/*#__PURE__*/ css({
36180
- background: 'none',
36181
- color: theme.colors.textPrimary,
36182
- border: 'none',
36183
- cursor: 'pointer',
36184
- '&:hover': {
36185
- color: theme.colors.actionDefaultTextHover
36186
- },
36187
- '&[data-state="on"]': {
36188
- color: theme.colors.actionDefaultTextPress
36189
- }
36190
- }));
36191
- const ToggleItem = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
36192
- (props, ref)=>{
36193
- const { theme } = useDesignSystemTheme();
36194
- return /*#__PURE__*/ jsx(RadixToolbar.ToggleItem, {
36195
- css: getToggleItemStyles(theme),
36196
- ...props,
36197
- ref: ref
36198
- });
36199
- });
36200
-
36201
- var Toolbar = /*#__PURE__*/Object.freeze({
36202
- __proto__: null,
36203
- Button: Button,
36204
- Link: Link,
36205
- Root: Root$1,
36206
- Separator: Separator,
36207
- ToggleGroup: ToggleGroup,
36208
- ToggleItem: ToggleItem
36209
- });
36210
-
36211
36365
  const SWITCHER_ICON_CSS = {
36212
36366
  fontSize: '16px !important'
36213
36367
  };
@@ -36910,7 +37064,7 @@ function getWizardFooterButtons({ goToNextStepOrDone, isLastStep, currentStepInd
36910
37064
  // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Validated through JSX componentId exempt:acae06b0-d74d-44ee-86db-15b3014e2bcf
36911
37065
  componentId: componentId ? `${componentId}.cancel` : undefined
36912
37066
  }, "cancel")),
36913
- currentStepIndex > 0 && !previousStepButtonHidden && /*#__PURE__*/ jsx(Button$1, {
37067
+ currentStepIndex > 0 && !previousStepButtonHidden && /*#__PURE__*/ jsx(Button, {
36914
37068
  onClick: goToPreviousStep,
36915
37069
  type: "tertiary",
36916
37070
  disabled: previousButtonDisabled,
@@ -36939,7 +37093,7 @@ function getWizardFooterButtons({ goToNextStepOrDone, isLastStep, currentStepInd
36939
37093
  ]);
36940
37094
  }
36941
37095
  function CancelButton({ onCancel, cancelButtonContent, componentId, disabled }) {
36942
- return /*#__PURE__*/ jsx(Button$1, {
37096
+ return /*#__PURE__*/ jsx(Button, {
36943
37097
  onClick: onCancel,
36944
37098
  type: "tertiary",
36945
37099
  componentId: componentId ?? 'dubois-wizard-footer-cancel',
@@ -36951,12 +37105,12 @@ function ButtonWithTooltip({ tooltipContent, disabled, children, ...props }) {
36951
37105
  return tooltipContent ? /*#__PURE__*/ jsx(Tooltip, {
36952
37106
  componentId: "dubois-wizard-footer-tooltip",
36953
37107
  content: tooltipContent,
36954
- children: /*#__PURE__*/ jsx(Button$1, {
37108
+ children: /*#__PURE__*/ jsx(Button, {
36955
37109
  ...props,
36956
37110
  disabled: disabled,
36957
37111
  children: children
36958
37112
  })
36959
- }) : /*#__PURE__*/ jsx(Button$1, {
37113
+ }) : /*#__PURE__*/ jsx(Button, {
36960
37114
  ...props,
36961
37115
  disabled: disabled,
36962
37116
  children: children
@@ -37129,7 +37283,7 @@ function Content({ title, modalTitleWhenCompact, width, children, closeLabel, di
37129
37283
  color: "secondary",
37130
37284
  children: title
37131
37285
  }),
37132
- /*#__PURE__*/ jsx(Button$1, {
37286
+ /*#__PURE__*/ jsx(Button, {
37133
37287
  "aria-label": closeLabel,
37134
37288
  icon: /*#__PURE__*/ jsx(CloseIcon, {}),
37135
37289
  componentId: "documentation-side-bar-close",
@@ -37242,13 +37396,13 @@ function VerticalWizardContent({ width, height, steps: wizardSteps, currentStepI
37242
37396
  ]
37243
37397
  }),
37244
37398
  isCompactStepper && (()=>{
37245
- const compactStepperContent = /*#__PURE__*/ jsxs(Root$b, {
37399
+ const compactStepperContent = /*#__PURE__*/ jsxs(Root$9, {
37246
37400
  componentId: "codegen_design-system_src_~patterns_wizard_verticalwizardcontent.tsx_93",
37247
37401
  children: [
37248
37402
  /*#__PURE__*/ jsx(Trigger$5, {
37249
37403
  asChild: true,
37250
37404
  children: /*#__PURE__*/ jsx("div", {
37251
- children: /*#__PURE__*/ jsx(Button$1, {
37405
+ children: /*#__PURE__*/ jsx(Button, {
37252
37406
  icon: /*#__PURE__*/ jsx(ListIcon, {}),
37253
37407
  componentId: "dubois-wizard-vertical-compact-show-stepper-popover",
37254
37408
  children: verticalCompactButtonContent?.(currentStepIndex, stepperSteps.length)
@@ -37432,13 +37586,32 @@ function WizardControlled({ initialStep = 0, layout = 'vertical', width = '100%'
37432
37586
  });
37433
37587
  }
37434
37588
 
37435
- function WizardModal({ onStepChanged, onCancel, initialStep, steps, onModalClose, localizeStepNumber, cancelButtonContent, nextButtonContent, previousButtonContent, doneButtonContent, enableClickingToSteps, ...modalProps }) {
37589
+ const WizardStepNavigationContext = /*#__PURE__*/ createContext(undefined);
37590
+ function useWizardStepNavigation() {
37591
+ return useContext(WizardStepNavigationContext);
37592
+ }
37593
+ function WizardStepNavigationProvider({ goToStep, currentStepIndex, children }) {
37594
+ const value = useMemo(()=>({
37595
+ goToStep,
37596
+ currentStepIndex
37597
+ }), [
37598
+ goToStep,
37599
+ currentStepIndex
37600
+ ]);
37601
+ return /*#__PURE__*/ jsx(WizardStepNavigationContext.Provider, {
37602
+ value: value,
37603
+ children: children
37604
+ });
37605
+ }
37606
+
37607
+ function WizardModal({ onStepChanged, onValidateStepChange, onCancel, initialStep, steps, onModalClose, localizeStepNumber, cancelButtonContent, nextButtonContent, previousButtonContent, doneButtonContent, enableClickingToSteps, ...modalProps }) {
37436
37608
  const [currentStepIndex, setCurrentStepIndex] = useState(initialStep ?? 0);
37437
37609
  const { onStepsChange, isLastStep, ...footerActions } = useWizardCurrentStep({
37438
37610
  currentStepIndex,
37439
37611
  setCurrentStepIndex,
37440
37612
  totalSteps: steps.length,
37441
- onStepChanged
37613
+ onStepChanged,
37614
+ onValidateStepChange
37442
37615
  });
37443
37616
  if (steps.length === 0 || !isUndefined(initialStep) && (initialStep < 0 || initialStep >= steps.length)) {
37444
37617
  return null;
@@ -37459,12 +37632,16 @@ function WizardModal({ onStepChanged, onCancel, initialStep, steps, onModalClose
37459
37632
  onCancel: onModalClose,
37460
37633
  size: "wide",
37461
37634
  footer: footerButtons,
37462
- children: /*#__PURE__*/ jsx(HorizontalWizardStepsContent, {
37463
- steps: steps,
37635
+ children: /*#__PURE__*/ jsx(WizardStepNavigationProvider, {
37636
+ goToStep: footerActions.goToStep,
37464
37637
  currentStepIndex: currentStepIndex,
37465
- localizeStepNumber: localizeStepNumber,
37466
- enableClickingToSteps: Boolean(enableClickingToSteps),
37467
- goToStep: footerActions.goToStep
37638
+ children: /*#__PURE__*/ jsx(HorizontalWizardStepsContent, {
37639
+ steps: steps,
37640
+ currentStepIndex: currentStepIndex,
37641
+ localizeStepNumber: localizeStepNumber,
37642
+ enableClickingToSteps: Boolean(enableClickingToSteps),
37643
+ goToStep: footerActions.goToStep
37644
+ })
37468
37645
  })
37469
37646
  });
37470
37647
  }
@@ -37542,5 +37719,5 @@ function WizardStepContentWrapper({ header, title, description, alertContent, de
37542
37719
  });
37543
37720
  }
37544
37721
 
37545
- export { hideIconButtonRowStyles as $, useModalContext as A, Button$1 as B, CheckCircleFillIcon as C, DocumentationSidebar as D, Trigger$5 as E, FIXED_VERTICAL_STEPPER_WIDTH as F, InfoSmallIcon as G, Content$7 as H, InfoFillIcon as I, Arrow$2 as J, Tooltip as K, SparkleDoubleIcon as L, MAX_VERTICAL_WIZARD_CONTENT_WIDTH as M, LoadingState as N, OverflowPopover as O, visuallyHidden as P, genSkeletonAnimatedColor as Q, Root$b as R, ShapeTokens as S, Typography as T, getOffsets as U, DesignSystemEventSuppressInteractionProviderContext as V, Wizard as W, DesignSystemEventSuppressInteractionTrueContextValue as X, tableStyles as Y, repeatingElementsStyles as Z, tableClassNames as _, WizardControlled as a, TypeaheadComboboxV2ContextProvider as a$, hideIconButtonActionCellClassName as a0, safex as a1, TitleSkeleton as a2, useDialogComboboxContext as a3, PlusIcon as a4, importantify as a5, getComboboxOptionItemWrapperStyles as a6, getFooterStyles as a7, useDialogComboboxOptionListContext as a8, generateUuidV4 as a9, Checkbox as aA, DialogCombobox as aB, DialogComboboxTrigger as aC, DialogComboboxContent as aD, Select as aE, SelectTrigger as aF, SelectContent as aG, SelectOption as aH, LegacySelect as aI, WarningIcon as aJ, CheckCircleIcon as aK, DangerIcon as aL, Hint as aM, Title$1 as aN, CloseIcon as aO, RestoreAntDDefaultClsPrefix as aP, AccessibleContainer as aQ, DU_BOIS_ENABLE_ANIMATION_CLASSNAME as aR, CircleOffIcon as aS, CircleOutlineIcon as aT, CircleIcon as aU, shimExports as aV, SortAscendingIcon as aW, SortDescendingIcon as aX, SortUnsortedIcon as aY, MinusSquareIcon as aZ, PlusSquareIcon as a_, getContentOptions as aa, findHighlightedOption as ab, highlightOption as ac, Input as ad, SearchIcon as ae, EmptyResults as af, findClosestOptionSibling as ag, DialogComboboxOptionListCheckboxItem as ah, DialogComboboxOptionListSelectItem as ai, DialogComboboxOptionListContextProvider as aj, LoadingSpinner as ak, DialogComboboxOptionList as al, useUniqueId as am, TypeaheadComboboxContextProvider as an, useTypeaheadComboboxContext as ao, useDuboisThemeClass as ap, useDesignTokenOverrideStyles as aq, getComboboxContentWrapperStyles as ar, ClearSelectionButton as as, TypeaheadComboboxSelectedItem$1 as at, CountBadge$1 as au, getValidationStateColor as av, SectionHeader as aw, useComboboxState as ax, useMultipleSelectionState as ay, Radio as az, WizardModal as b, BlockQuoteIcon as b$, useTypeaheadComboboxV2Context as b0, useRadixModalContext as b1, useIsomorphicLayoutEffect as b2, useScrollOptionIntoView as b3, InfoTooltip as b4, getInfoIconStyles as b5, HintRow as b6, getCheckboxStyles as b7, getMenuItemStyles as b8, TypeaheadComboboxSelectedItem as b9, ArrowUpIcon as bA, ArrowsCollapseIcon as bB, ArrowsConnectIcon as bC, ArrowsExpandIcon as bD, ArrowsUpDownIcon as bE, AssistantIcon as bF, AtIcon as bG, Auth0Graphic as bH, Auth0GraphicLarge as bI, AzHorizontalIcon as bJ, AzVerticalIcon as bK, BANNER_MAX_HEIGHT as bL, BANNER_MIN_HEIGHT as bM, BackupIcon as bN, BadgeCodeIcon as bO, BadgeCodeOffIcon as bP, Banner as bQ, BarChartIcon as bR, BarGroupedIcon as bS, BarStackedIcon as bT, BarStackedPercentageIcon as bU, BarsAscendingHorizontalIcon as bV, BarsAscendingVerticalIcon as bW, BarsDescendingHorizontalIcon as bX, BarsDescendingVerticalIcon as bY, BeakerIcon as bZ, BinaryIcon as b_, CountBadge as ba, TypeaheadComboboxMenuItem as bb, AccessDeniedGraphic as bc, Accordion as bd, AccordionPanel as be, AlignCenterIcon as bf, AlignJustifyIcon as bg, AlignLeftIcon as bh, AlignRightIcon as bi, AlignVerticalBottomIcon as bj, AlignVerticalCenterIcon as bk, AlignVerticalTopIcon as bl, AppIcon as bm, ApplyDesignSystemContextOverrides as bn, ApplyDesignSystemFlags as bo, ArrowDownDotIcon as bp, ArrowDownFillIcon as bq, ArrowDownIcon as br, ArrowInIcon as bs, ArrowInTableIcon as bt, ArrowLeftIcon as bu, ArrowOutTableIcon as bv, ArrowOverIcon as bw, ArrowRightIcon as bx, ArrowUpDotIcon as by, ArrowUpFillIcon as bz, WizardStepContentWrapper as c, CloudDownloadIcon as c$, BoldIcon as c0, BookIcon as c1, BookmarkFillIcon as c2, BookmarkIcon as c3, BooksIcon as c4, BracketsCheckIcon as c5, BracketsCurlyIcon as c6, BracketsErrorIcon as c7, BracketsSquareIcon as c8, BracketsXIcon as c9, CertifiedIcon as cA, ChainIcon as cB, ChartLineIcon as cC, CheckCircleBadgeIcon as cD, CheckCircleSmallIcon as cE, CheckIcon as cF, CheckLineIcon as cG, CheckSmallIcon as cH, CheckboxIcon as cI, ChecklistIcon as cJ, ChevronDoubleDownIcon as cK, ChevronDoubleLeftIcon as cL, ChevronDoubleLeftOffIcon as cM, ChevronDoubleRightIcon as cN, ChevronDoubleRightOffIcon as cO, ChevronDoubleUpIcon as cP, ChevronLeftIcon as cQ, ChevronUpIcon as cR, ChipIcon as cS, CircleOffLargeIcon as cT, CircleOutlineLargeIcon as cU, ClipboardIcon as cV, ClockIcon as cW, ClockKeyIcon as cX, ClockOffIcon as cY, CloudCheckIcon as cZ, CloudDatabaseIcon as c_, BranchCheckIcon as ca, BranchIcon as cb, BranchResetIcon as cc, BriefcaseFillIcon as cd, BriefcaseIcon as ce, BrushIcon as cf, BugIcon as cg, CalendarClockIcon as ch, CalendarEventIcon as ci, CalendarIcon as cj, CalendarRangeIcon as ck, CalendarSyncIcon as cl, CameraIcon as cm, CapitalizeIcon as cn, CaretDownSquareIcon as co, CaretUpSquareIcon as cp, CatalogCloudIcon as cq, CatalogGearIcon as cr, CatalogHomeIcon as cs, CatalogIcon as ct, CatalogOffIcon as cu, CatalogSharedIcon as cv, CatalogUserHomeIcon as cw, CellsSquareIcon as cx, CertifiedFillIcon as cy, CertifiedFillSmallIcon as cz, DesignSystemEventProvider as d, ErdIcon as d$, CloudIcon as d0, CloudKeyIcon as d1, CloudModelIcon as d2, CloudOffIcon as d3, CloudUploadIcon as d4, CodeIcon as d5, ColorFillIcon as d6, ColorVars as d7, ColumnIcon as d8, ColumnSplitIcon as d9, DataIcon as dA, DataMaskiingGraphic as dB, DatabaseClockIcon as dC, DatabaseIcon as dD, DatabaseImportIcon as dE, DatePicker as dF, DecimalIcon as dG, DeprecatedIcon as dH, DeprecatedSmallIcon as dI, DesignSystemContext as dJ, DesignSystemEventProviderComponentSubTypes as dK, DesignSystemProvider as dL, DesignSystemThemeContext as dM, DesignSystemThemeProvider as dN, DialogComboboxCountBadge as dO, DialogComboboxCustomButtonTriggerWrapper as dP, DialogComboboxSectionHeader as dQ, DollarIcon as dR, DomainCirclesThree as dS, DomainsIcon as dT, DotsCircleIcon as dU, DownloadIcon as dV, DragIcon as dW, Drawer as dX, DropdownMenu as dY, Empty as dZ, EmptyDashboardGraphic as d_, ColumnTagIcon as da, ColumnsIcon as db, CommandIcon as dc, CommandPaletteIcon as dd, CompassIcon as de, ComponentFinderContext as df, ConnectIcon as dg, Content$2 as dh, ContextMenu$1 as di, CopyIcon as dj, CreditCardIcon as dk, CursorClickIcon as dl, CursorIcon as dm, CursorPagination as dn, CursorTypeIcon as dp, CustomAppIcon as dq, DS_OVERRIDE_TOKENS_WRAPPER_TESTID as dr, DagHorizontalIcon as ds, DagIcon as dt, DagVerticalIcon as du, DangerModal as dv, DangerSmallIcon as dw, DashIcon as dx, DashboardCodeIcon as dy, DashboardIcon as dz, DesignTokenScope as e, H3Icon as e$, ExpandLessIcon as e0, ExpandMoreIcon as e1, FaceFrownIcon as e2, FaceNeutralIcon as e3, FaceSmileIcon as e4, FileCodeIcon as e5, FileCubeIcon as e6, FileDocumentIcon as e7, FileIcon as e8, FileImageIcon as e9, FolderOutlinePipelineIcon as eA, FolderSolidPipelineIcon as eB, FontIcon as eC, ForkHorizontalIcon as eD, ForkIcon as eE, Form as eF, FormContextResetBoundary as eG, FullscreenExitIcon as eH, FullscreenIcon as eI, FunctionIcon as eJ, FunctionInputIcon as eK, GavelIcon as eL, GearFillIcon as eM, GearIcon as eN, GenieCodeIcon as eO, GenieDeepResearchIcon as eP, GiftIcon as eQ, GitCommitIcon as eR, GitMergeIcon as eS, GitRebaseIcon as eT, GlobeIcon as eU, Graphic as eV, GridDashIcon as eW, GridIcon as eX, GroupIcon as eY, H1Icon as eZ, H2Icon as e_, FileLockIcon as ea, FileModelIcon as eb, FileNewIcon as ec, FilePipelineIcon as ed, FilterFillIcon as ee, FilterIcon as ef, FlagPointerIcon as eg, FloatIcon as eh, FlowIcon as ei, FlowsIcon as ej, FolderBranchFillIcon as ek, FolderBranchIcon as el, FolderCloudFilledIcon as em, FolderCloudIcon as en, FolderCubeIcon as eo, FolderCubeOutlineIcon as ep, FolderFillIcon as eq, FolderHomeIcon as er, FolderIcon as es, FolderNewIcon as et, FolderNodeIcon as eu, FolderOpenBranchIcon as ev, FolderOpenCloudIcon as ew, FolderOpenCubeIcon as ex, FolderOpenIcon as ey, FolderOpenPipelineIcon as ez, useDesignSystemContext as f, MarkdownIcon as f$, H4Icon as f0, H5Icon as f1, H6Icon as f2, HashIcon as f3, HistoryIcon as f4, HomeIcon as f5, Icon as f6, ImageIcon as f7, IndentDecreaseIcon as f8, IndentIncreaseIcon as f9, LegacyTooltip as fA, LetterFormatIcon as fB, LettersIcon as fC, LettersNumbersIcon as fD, LibrariesIcon as fE, LifesaverIcon as fF, LightbulbIcon as fG, LightningCircleFillIcon as fH, LightningIcon as fI, LinearLineIcon as fJ, LinkIcon as fK, LinkOffIcon as fL, ListBorderIcon as fM, ListClearIcon as fN, ListIcon as fO, ListNumberIcon as fP, Listbox as fQ, LoadingIcon as fR, LoadingStateContext as fS, LockFillIcon as fT, LockIcon as fU, LockShareIcon as fV, LockUnlockedIcon as fW, LoopIcon as fX, LowercaseIcon as fY, MailIcon as fZ, MapIcon as f_, InfinityIcon as fa, InfoBookIcon as fb, InfoIcon as fc, IngestionIcon as fd, ItalicIcon as fe, JoinOperatorIcon as ff, KeyIcon as fg, KeyboardIcon as fh, LakebaseCatalogIcon as fi, LakebaseIcon as fj, LakeflowDesignerIcon as fk, LakewatchAlertIcon as fl, LakewatchDatasourceIcon as fm, LakewatchDetectionRuleIcon as fn, LakewatchParserIcon as fo, LayerGraphIcon as fp, LayerIcon as fq, Layout as fr, LeafIcon as fs, LegacyForm as ft, LegacyFormDubois as fu, LegacyOptGroup as fv, LegacyOption as fw, LegacySelectOptGroup as fx, LegacySelectOption as fy, LegacyTable as fz, useDesignSystemTheme as g, PlayCircleIcon as g$, McpIcon as g0, MeasureIcon as g1, MegaphoneIcon as g2, MenuIcon as g3, MinusCircleFillIcon as g4, MinusCircleIcon as g5, MinusCircleSmallIcon as g6, MissingBranchGraphic as g7, MissingGraphic as g8, ModelsIcon as g9, PageIcon as gA, PageLastIcon as gB, PageTopIcon as gC, Pagination as gD, Panel as gE, PanelBody as gF, PanelDockedIcon as gG, PanelFloatingIcon as gH, PanelHeader as gI, PanelHeaderButtons as gJ, PanelHeaderTitle as gK, PaperclipIcon as gL, PassFailChecklistIcon as gM, PauseIcon as gN, PencilFillIcon as gO, PencilIcon as gP, PencilSparkleIcon as gQ, PieChartIcon as gR, PillControl as gS, PinCancelIcon as gT, PinFillIcon as gU, PinIcon as gV, PipelineCodeIcon as gW, PipelineCubeIcon as gX, PipelineIcon as gY, PivotOperatorIcon as gZ, PlayCircleFillIcon as g_, MonotoneLineIcon as ga, MonthPickerGrid as gb, MoonIcon as gc, Nav as gd, NavButton as ge, NavigationMenu as gf, NeonProjectIcon as gg, NewChatIcon as gh, NewTabIcon as gi, NewWindowIcon as gj, NoCaseIcon as gk, NoIcon as gl, NotebookIcon as gm, NotebookPipelineIcon as gn, NotificationIcon as go, NotificationOffIcon as gp, NumberFormatIcon as gq, NumbersIcon as gr, OfficeIcon as gs, OntologyIcon as gt, OutageGraphic as gu, Overflow as gv, OverflowHorizontalIcon as gw, OverflowIcon as gx, PageBottomIcon as gy, PageFirstIcon as gz, WarningFillIcon as h, SidebarSyncIcon as h$, PlayDoubleIcon as h0, PlayIcon as h1, PlayMultipleIcon as h2, PlugIcon as h3, PlusCircleFillIcon as h4, PlusCircleIcon as h5, PlusCircleSmallIcon as h6, PlusMinusSquareIcon as h7, Popover as h8, PositionBottomIcon as h9, RunIcon as hA, RunningIcon as hB, SMALL_BUTTON_HEIGHT$2 as hC, SaveClockIcon as hD, SaveIcon as hE, SchemaIcon as hF, SchoolIcon as hG, SearchDataIcon as hH, SegmentedControlButton as hI, SegmentedControlGroup as hJ, SelectContext as hK, SelectContextProvider as hL, SelectOptionGroup as hM, SendIcon as hN, ShareIcon as hO, ShareNodesIcon as hP, ShieldCheckIcon as hQ, ShieldIcon as hR, ShieldOffIcon as hS, ShortcutIcon as hT, Sidebar as hU, SidebarAutoIcon as hV, SidebarClosedIcon as hW, SidebarCollapseIcon as hX, SidebarExpandIcon as hY, SidebarIcon as hZ, SidebarOpenIcon as h_, PositionLeftIcon as ha, PositionRightIcon as hb, PositionTopIcon as hc, PreviewCard as hd, Progress as he, PullRequestIcon as hf, PuzzleIcon as hg, QueryEditorIcon as hh, QueryIcon as hi, QuestionMarkFillIcon as hj, QuestionMarkIcon as hk, RadioIcon as hl, RadioTile as hm, RangePicker as hn, ReaderModeIcon as ho, RedoIcon as hp, RefreshIcon as hq, RefreshPlayIcon as hr, RefreshXIcon as hs, ReplyIcon as ht, ResizeIcon as hu, RhfForm as hv, RichTextIcon as hw, RobotIcon as hx, RocketIcon as hy, RowsIcon as hz, DangerFillIcon as i, TagColumnIcon as i$, SimpleSelect as i0, SimpleSelectOption as i1, SimpleSelectOptionGroup as i2, SlashSquareIcon as i3, Slider as i4, SlidersIcon as i5, SnippetIcon as i6, SortCustomHorizontalIcon as i7, SortCustomVerticalIcon as i8, SortHorizontalAscendingIcon as i9, Stepper as iA, StopCircleFillIcon as iB, StopCircleIcon as iC, StopIcon as iD, StoredProcedureIcon as iE, StorefrontIcon as iF, StreamIcon as iG, StrikeThroughIcon as iH, SunIcon as iI, SyncIcon as iJ, SyncSmallIcon as iK, SyncToFileIcon as iL, TableAsteriskIcon as iM, TableClockIcon as iN, TableCombineIcon as iO, TableGlassesIcon as iP, TableGlobeIcon as iQ, TableIcon as iR, TableLightningIcon as iS, TableMeasureIcon as iT, TableModelIcon as iU, TableReportIcon as iV, TableStreamIcon as iW, TableVectorIcon as iX, TableViewIcon as iY, Tabs as iZ, Tag as i_, SortHorizontalDescendingIcon as ia, SortLetterHorizontalAscendingIcon as ib, SortLetterHorizontalDescendingIcon as ic, SortLetterUnsortedIcon as id, SortLetterVerticalAscendingIcon as ie, SortLetterVerticalDescendingIcon as ig, Spacer as ih, SparkleDoubleFillIcon as ii, SparkleFillIcon as ij, SparkleIcon as ik, SparkleRectangleIcon as il, SpeechBubbleIcon as im, SpeechBubblePlusIcon as io, SpeechBubbleQuestionMarkFillIcon as ip, SpeechBubbleQuestionMarkIcon as iq, SpeechBubbleStarIcon as ir, SpeedometerIcon as is, Spinner as it, SplitButton as iu, SqlIcon as iv, StarFillIcon as iw, StarIcon as ix, StepAfterLineIcon as iy, StepBeforeLineIcon as iz, DesignSystemEventProviderAnalyticsEventTypes as j, ZoomOutIcon as j$, TagIcon as j0, TagTableIcon as j1, TargetIcon as j2, TerminalIcon as j3, TextBoxIcon as j4, TextColorIcon as j5, TextIcon as j6, TextJustifyIcon as j7, TextUnderlineIcon as j8, ThreeDotsIcon as j9, UserCircleIcon as jA, UserGroupFillIcon as jB, UserGroupIcon as jC, UserIcon as jD, UserKeyIconIcon as jE, UserShieldIcon as jF, UserSparkleIcon as jG, UserTeamIcon as jH, VisibleFillIcon as jI, VisibleIcon as jJ, VisibleOffIcon as jK, WithDesignSystemThemeHoc as jL, WorkflowCodeIcon as jM, WorkflowCubeIcon as jN, WorkflowsIcon as jO, WorkspacesIcon as jP, WrenchIcon as jQ, WrenchSparkleIcon as jR, XCircleFillIcon as jS, XCircleIcon as jT, YearPickerGrid as jU, ZaHorizontalIcon as jV, ZaVerticalIcon as jW, ZeroOpsIcon as jX, ZeroOpsOutlineIcon as jY, ZoomInIcon as jZ, ZoomMarqueeSelection as j_, ThumbsDownFilledIcon as ja, ThumbsDownIcon as jb, ThumbsUpFilledIcon as jc, ThumbsUpIcon as jd, ToggleButton as je, TokenIcon as jf, Toolbar as jg, TrashIcon as jh, Tree as ji, TreeIcon as jj, TrendingFillIcon as jk, TrendingIcon as jl, TriangleIcon as jm, TypeaheadComboboxCheckboxItem as jn, TypeaheadComboboxFooter as jo, TypeaheadComboboxMenuItem$1 as jp, TypeaheadComboboxMultiSelectStateChangeTypes as jq, TypeaheadComboboxStateChangeTypes as jr, UnderlineIcon as js, UndoIcon as jt, UploadIcon as ju, UppercaseIcon as jv, UsageOverageGraphic as jw, UsageSpikeGraphic as jx, UsbIcon as jy, UserBadgeIcon as jz, useDesignSystemEventComponentCallbacks as k, ZoomToFitIcon as k0, __INTERNAL_DO_NOT_USE__FormItem as k1, __INTERNAL_DO_NOT_USE__Group as k2, __INTERNAL_DO_NOT_USE__HorizontalGroup as k3, __INTERNAL_DO_NOT_USE__VerticalGroup as k4, __INTERNAL_DO_NOT_USE__wrapLegacyFormRules as k5, augmentWithDataComponentProps as k6, dialogComboboxLookAheadKeyDown as k7, getBottomOnlyShadowScrollStyles as k8, getButtonEmotionStyles as k9, useDesignSystemEventSuppressInteractionContext as kA, useFormContext as kB, useRadioGroupContext as kC, getComboboxOptionLabelStyles as ka, getDatePickerQuickActionBasic as kb, getDialogComboboxOptionLabelWidth as kc, getHorizontalTabShadowStyles as kd, getInputStyles as ke, getKeyboardNavigationFunctions as kf, getMemoizedButtonEmotionStyles as kg, getPaginationEmotionStyles as kh, getPanelContainmentStyle as ki, getRadioStyles as kj, getRangeQuickActionsBasic as kk, getShadowScrollStyles as kl, getTypographyColor as km, getVirtualListScrollbarStyles as kn, getVirtualListScrollbarThumbColor as ko, getVirtualizedComboboxMenuItemStyles as kp, getWrapperStyle as kq, highlightFirstNonDisabledOption as kr, isOptionDisabled as ks, resetTabIndexToFocusedElement as kt, setImplicitContextGetter as ku, skipHideIconButtonActionClassName as kv, themeMemoKey as kw, useAntDConfigProviderContext as kx, useCallbackOnEnter as ky, useComponentFinderContext as kz, DesignSystemEventProviderComponentTypes as l, DesignSystemEventProviderComponentSubTypeMap as m, useNotifyOnFirstView as n, useStableUuidV4 as o, primitiveColors as p, ChevronDownIcon as q, ChevronRightIcon as r, DesignSystemAntDConfigProvider as s, CloseSmallIcon as t, useWizardCurrentStep as u, addDebugOutlineIfEnabled as v, Modal as w, getAnimationCss as x, token as y, getDarkModePortalStyles as z };
37546
- //# sourceMappingURL=WizardStepContentWrapper-8bs2FwRi.js.map
37722
+ export { repeatingElementsStyles as $, token as A, Button as B, CheckCircleFillIcon as C, DocumentationSidebar as D, getDarkModePortalStyles as E, FIXED_VERTICAL_STEPPER_WIDTH as F, useModalContext as G, Trigger$5 as H, InfoFillIcon as I, InfoSmallIcon as J, Content$7 as K, Arrow$2 as L, MAX_VERTICAL_WIZARD_CONTENT_WIDTH as M, Tooltip as N, SparkleDoubleIcon as O, getIconClassName as P, LoadingState as Q, Root$9 as R, ShapeTokens as S, Typography as T, visuallyHidden as U, genSkeletonAnimatedColor as V, Wizard as W, getOffsets as X, DesignSystemEventSuppressInteractionProviderContext as Y, DesignSystemEventSuppressInteractionTrueContextValue as Z, tableStyles as _, WizardControlled as a, SortUnsortedIcon as a$, tableClassNames as a0, hideIconButtonRowStyles as a1, hideIconButtonActionCellClassName as a2, safex as a3, TitleSkeleton as a4, useDialogComboboxContext as a5, PlusIcon as a6, importantify as a7, getComboboxOptionItemWrapperStyles as a8, getFooterStyles as a9, useMultipleSelectionState as aA, Radio as aB, Checkbox as aC, DialogCombobox as aD, DialogComboboxTrigger as aE, DialogComboboxContent as aF, Select as aG, SelectTrigger as aH, SelectContent as aI, SelectOption as aJ, LegacySelect as aK, WarningIcon as aL, CheckCircleIcon as aM, DangerIcon as aN, Hint as aO, Title$1 as aP, CloseIcon as aQ, RestoreAntDDefaultClsPrefix as aR, AccessibleContainer as aS, DU_BOIS_ENABLE_ANIMATION_CLASSNAME as aT, Tag as aU, CircleOffIcon as aV, CircleOutlineIcon as aW, CircleIcon as aX, getBtnClassName as aY, SortAscendingIcon as aZ, SortDescendingIcon as a_, useDialogComboboxOptionListContext as aa, generateUuidV4 as ab, getContentOptions as ac, findHighlightedOption as ad, highlightOption as ae, Input as af, SearchIcon as ag, EmptyResults as ah, findClosestOptionSibling as ai, DialogComboboxOptionListCheckboxItem as aj, DialogComboboxOptionListSelectItem as ak, DialogComboboxOptionListContextProvider as al, LoadingSpinner as am, DialogComboboxOptionList as an, useUniqueId as ao, TypeaheadComboboxContextProvider as ap, useTypeaheadComboboxContext as aq, useDuboisThemeClass as ar, useDesignTokenOverrideStyles as as, getComboboxContentWrapperStyles as at, ClearSelectionButton as au, TypeaheadComboboxSelectedItem$1 as av, CountBadge$1 as aw, getValidationStateColor as ax, SectionHeader as ay, useComboboxState as az, WizardModal as b, BarsDescendingVerticalIcon as b$, MinusSquareIcon as b0, PlusSquareIcon as b1, TypeaheadComboboxV2ContextProvider as b2, useTypeaheadComboboxV2Context as b3, useRadixModalContext as b4, useIsomorphicLayoutEffect as b5, useScrollOptionIntoView as b6, InfoTooltip as b7, getInfoIconStyles as b8, HintRow as b9, ArrowRightIcon as bA, ArrowUpDotIcon as bB, ArrowUpFillIcon as bC, ArrowUpIcon as bD, ArrowsCollapseIcon as bE, ArrowsConnectIcon as bF, ArrowsExpandIcon as bG, ArrowsUpDownIcon as bH, AssistantIcon as bI, AtIcon as bJ, Auth0Graphic as bK, Auth0GraphicLarge as bL, AzHorizontalIcon as bM, AzVerticalIcon as bN, BANNER_MAX_HEIGHT as bO, BANNER_MIN_HEIGHT as bP, BackupIcon as bQ, BadgeCodeIcon as bR, BadgeCodeOffIcon as bS, Banner as bT, BarChartIcon as bU, BarGroupedIcon as bV, BarStackedIcon as bW, BarStackedPercentageIcon as bX, BarsAscendingHorizontalIcon as bY, BarsAscendingVerticalIcon as bZ, BarsDescendingHorizontalIcon as b_, getCheckboxStyles as ba, getMenuItemStyles as bb, TypeaheadComboboxSelectedItem as bc, CountBadge as bd, TypeaheadComboboxMenuItem as be, AccessDeniedGraphic as bf, Accordion as bg, AccordionPanel as bh, AlignCenterIcon as bi, AlignJustifyIcon as bj, AlignLeftIcon as bk, AlignRightIcon as bl, AlignVerticalBottomIcon as bm, AlignVerticalCenterIcon as bn, AlignVerticalTopIcon as bo, AppIcon as bp, ApplyDesignSystemContextOverrides as bq, ApplyDesignSystemFlags as br, ArrowDownDotIcon as bs, ArrowDownFillIcon as bt, ArrowDownIcon as bu, ArrowInIcon as bv, ArrowInTableIcon as bw, ArrowLeftIcon as bx, ArrowOutTableIcon as by, ArrowOverIcon as bz, WizardStepContentWrapper as c, ClockOffIcon as c$, BeakerIcon as c0, BinaryIcon as c1, BlockQuoteIcon as c2, BoldIcon as c3, BookIcon as c4, BookmarkFillIcon as c5, BookmarkIcon as c6, BooksIcon as c7, BracketsCheckIcon as c8, BracketsCurlyIcon as c9, CellsSquareIcon as cA, CertifiedFillIcon as cB, CertifiedFillSmallIcon as cC, CertifiedIcon as cD, ChainIcon as cE, ChartLineIcon as cF, CheckCircleBadgeIcon as cG, CheckCircleSmallIcon as cH, CheckIcon as cI, CheckLineIcon as cJ, CheckSmallIcon as cK, CheckboxIcon as cL, ChecklistIcon as cM, ChevronDoubleDownIcon as cN, ChevronDoubleLeftIcon as cO, ChevronDoubleLeftOffIcon as cP, ChevronDoubleRightIcon as cQ, ChevronDoubleRightOffIcon as cR, ChevronDoubleUpIcon as cS, ChevronLeftIcon as cT, ChevronUpIcon as cU, ChipIcon as cV, CircleOffLargeIcon as cW, CircleOutlineLargeIcon as cX, ClipboardIcon as cY, ClockIcon as cZ, ClockKeyIcon as c_, BracketsErrorIcon as ca, BracketsSquareIcon as cb, BracketsXIcon as cc, BranchCheckIcon as cd, BranchIcon as ce, BranchResetIcon as cf, BriefcaseFillIcon as cg, BriefcaseIcon as ch, BrushIcon as ci, BugIcon as cj, CalendarClockIcon as ck, CalendarEventIcon as cl, CalendarIcon as cm, CalendarRangeIcon as cn, CalendarSyncIcon as co, CameraIcon as cp, CapitalizeIcon as cq, CaretDownSquareIcon as cr, CaretUpSquareIcon as cs, CatalogCloudIcon as ct, CatalogGearIcon as cu, CatalogHomeIcon as cv, CatalogIcon as cw, CatalogOffIcon as cx, CatalogSharedIcon as cy, CatalogUserHomeIcon as cz, WizardStepNavigationProvider as d, DragIcon as d$, CloudCheckIcon as d0, CloudDatabaseIcon as d1, CloudDownloadIcon as d2, CloudIcon as d3, CloudKeyIcon as d4, CloudModelIcon as d5, CloudOffIcon as d6, CloudUploadIcon as d7, CodeIcon as d8, ColorFillIcon as d9, DangerModal as dA, DangerSmallIcon as dB, DashIcon as dC, DashboardCodeIcon as dD, DashboardIcon as dE, DataIcon as dF, DataMaskiingGraphic as dG, DatabaseClockIcon as dH, DatabaseIcon as dI, DatabaseImportIcon as dJ, DatePicker as dK, DecimalIcon as dL, DeprecatedIcon as dM, DeprecatedSmallIcon as dN, DesignSystemContext as dO, DesignSystemEventProviderComponentSubTypes as dP, DesignSystemProvider as dQ, DesignSystemThemeContext as dR, DesignSystemThemeProvider as dS, DialogComboboxCountBadge as dT, DialogComboboxCustomButtonTriggerWrapper as dU, DialogComboboxSectionHeader as dV, DollarIcon as dW, DomainCirclesThree as dX, DomainsIcon as dY, DotsCircleIcon as dZ, DownloadIcon as d_, ColorMappingEditIcon as da, ColorMappingIcon as db, ColorVars as dc, ColumnIcon as dd, ColumnSplitIcon as de, ColumnTagIcon as df, ColumnsIcon as dg, CommandIcon as dh, CommandPaletteIcon as di, CompassIcon as dj, ComponentFinderContext as dk, ConnectIcon as dl, Content$2 as dm, ContextMenu$1 as dn, CopyIcon as dp, CreditCardIcon as dq, CursorClickIcon as dr, CursorIcon as ds, CursorPagination as dt, CursorTypeIcon as du, CustomAppIcon as dv, DS_OVERRIDE_TOKENS_WRAPPER_TESTID as dw, DagHorizontalIcon as dx, DagIcon as dy, DagVerticalIcon as dz, useWizardStepNavigation as e, GridDashIcon as e$, Drawer as e0, DropdownMenu as e1, Empty as e2, EmptyDashboardGraphic as e3, ErdIcon as e4, ExpandLessIcon as e5, ExpandMoreIcon as e6, FaceFrownIcon as e7, FaceNeutralIcon as e8, FaceSmileIcon as e9, FolderOpenBranchIcon as eA, FolderOpenCloudIcon as eB, FolderOpenCubeIcon as eC, FolderOpenIcon as eD, FolderOpenPipelineIcon as eE, FolderOutlinePipelineIcon as eF, FolderSolidPipelineIcon as eG, FontIcon as eH, ForkHorizontalIcon as eI, ForkIcon as eJ, Form as eK, FormContextResetBoundary as eL, FullscreenExitIcon as eM, FullscreenIcon as eN, FunctionIcon as eO, FunctionInputIcon as eP, GavelIcon as eQ, GearFillIcon as eR, GearIcon as eS, GenieCodeIcon as eT, GenieDeepResearchIcon as eU, GiftIcon as eV, GitCommitIcon as eW, GitMergeIcon as eX, GitRebaseIcon as eY, GlobeIcon as eZ, Graphic as e_, FileCodeIcon as ea, FileCubeIcon as eb, FileDocumentIcon as ec, FileIcon as ed, FileImageIcon as ee, FileLockIcon as ef, FileModelIcon as eg, FileNewIcon as eh, FilePipelineIcon as ei, FilterFillIcon as ej, FilterIcon as ek, FlagPointerIcon as el, FloatIcon as em, FlowIcon as en, FlowsIcon as eo, FolderBranchFillIcon as ep, FolderBranchIcon as eq, FolderCloudFilledIcon as er, FolderCloudIcon as es, FolderCubeIcon as et, FolderCubeOutlineIcon as eu, FolderFillIcon as ev, FolderHomeIcon as ew, FolderIcon as ex, FolderNewIcon as ey, FolderNodeIcon as ez, DesignSystemEventProvider as f, LockShareIcon as f$, GridIcon as f0, GroupIcon as f1, H1Icon as f2, H2Icon as f3, H3Icon as f4, H4Icon as f5, H5Icon as f6, H6Icon as f7, HashIcon as f8, HistoryIcon as f9, LegacyFormDubois as fA, LegacyOptGroup as fB, LegacyOption as fC, LegacySelectOptGroup as fD, LegacySelectOption as fE, LegacyTable as fF, LegacyTooltip as fG, LetterFormatIcon as fH, LettersIcon as fI, LettersNumbersIcon as fJ, LibrariesIcon as fK, LifesaverIcon as fL, LightbulbIcon as fM, LightningCircleFillIcon as fN, LightningIcon as fO, LinearLineIcon as fP, LinkIcon as fQ, LinkOffIcon as fR, ListBorderIcon as fS, ListClearIcon as fT, ListIcon as fU, ListNumberIcon as fV, Listbox as fW, LoadingIcon as fX, LoadingStateContext as fY, LockFillIcon as fZ, LockIcon as f_, HomeIcon as fa, Icon as fb, ImageIcon as fc, IndentDecreaseIcon as fd, IndentIncreaseIcon as fe, InfinityIcon as ff, InfoBookIcon as fg, InfoIcon as fh, IngestionIcon as fi, ItalicIcon as fj, JoinOperatorIcon as fk, KeyIcon as fl, KeyboardIcon as fm, LakebaseCatalogIcon as fn, LakebaseIcon as fo, LakeflowDesignerIcon as fp, LakewatchAlertIcon as fq, LakewatchDatasourceIcon as fr, LakewatchDetectionRuleIcon as fs, LakewatchIcon as ft, LakewatchParserIcon as fu, LayerGraphIcon as fv, LayerIcon as fw, Layout as fx, LeafIcon as fy, LegacyForm as fz, useDesignSystemTheme as g, PinCancelIcon as g$, LockUnlockedIcon as g0, LoopIcon as g1, LowercaseIcon as g2, MailIcon as g3, MapIcon as g4, MarkdownIcon as g5, McpIcon as g6, MeasureIcon as g7, MegaphoneIcon as g8, MenuIcon as g9, OfficeIcon as gA, OntologyIcon as gB, OperatorIcon as gC, OutageGraphic as gD, OverflowHorizontalIcon as gE, OverflowIcon as gF, PageBottomIcon as gG, PageFirstIcon as gH, PageIcon as gI, PageLastIcon as gJ, PageTopIcon as gK, Pagination as gL, Panel as gM, PanelBody as gN, PanelDockedIcon as gO, PanelFloatingIcon as gP, PanelHeader as gQ, PanelHeaderButtons as gR, PanelHeaderTitle as gS, PaperclipIcon as gT, PassFailChecklistIcon as gU, PauseIcon as gV, PencilFillIcon as gW, PencilIcon as gX, PencilSparkleIcon as gY, PieChartIcon as gZ, PillControl as g_, MicrophoneIcon as ga, MicrophoneOffIcon as gb, MinusCircleFillIcon as gc, MinusCircleIcon as gd, MinusCircleSmallIcon as ge, MissingBranchGraphic as gf, MissingGraphic as gg, ModelsIcon as gh, MonotoneLineIcon as gi, MonthPickerGrid as gj, MoonIcon as gk, Nav as gl, NavButton as gm, NavigationMenu as gn, NeonProjectIcon as go, NewChatIcon as gp, NewTabIcon as gq, NewWindowIcon as gr, NoCaseIcon as gs, NoIcon as gt, NotebookIcon as gu, NotebookPipelineIcon as gv, NotificationIcon as gw, NotificationOffIcon as gx, NumberFormatIcon as gy, NumbersIcon as gz, DesignTokenScope as h, ShortcutIcon as h$, PinFillIcon as h0, PinIcon as h1, PipelineCodeIcon as h2, PipelineCubeIcon as h3, PipelineIcon as h4, PivotOperatorIcon as h5, PlayCircleFillIcon as h6, PlayCircleIcon as h7, PlayDoubleIcon as h8, PlayIcon as h9, RefreshXIcon as hA, ReplyIcon as hB, ResizeIcon as hC, RhfForm as hD, RichTextIcon as hE, RobotIcon as hF, RocketIcon as hG, RowsIcon as hH, RunIcon as hI, RunningIcon as hJ, SMALL_BUTTON_HEIGHT$2 as hK, SaveClockIcon as hL, SaveIcon as hM, SchemaIcon as hN, SchoolIcon as hO, SearchDataIcon as hP, SegmentedControlButton as hQ, SegmentedControlGroup as hR, SelectContext as hS, SelectContextProvider as hT, SelectOptionGroup as hU, SendIcon as hV, ShareIcon as hW, ShareNodesIcon as hX, ShieldCheckIcon as hY, ShieldIcon as hZ, ShieldOffIcon as h_, PlayMultipleIcon as ha, PlugIcon as hb, PlusCircleFillIcon as hc, PlusCircleIcon as hd, PlusCircleSmallIcon as he, PlusMinusSquareIcon as hf, Popover as hg, PositionBottomIcon as hh, PositionLeftIcon as hi, PositionRightIcon as hj, PositionTopIcon as hk, PreviewCard as hl, Progress as hm, PullRequestIcon as hn, PuzzleIcon as ho, QueryEditorIcon as hp, QueryIcon as hq, QuestionMarkFillIcon as hr, QuestionMarkIcon as hs, RadioIcon as ht, RadioTile as hu, RangePicker as hv, ReaderModeIcon as hw, RedoIcon as hx, RefreshIcon as hy, RefreshPlayIcon as hz, useDesignSystemContext as i, TableModelIcon as i$, Sidebar as i0, SidebarAutoIcon as i1, SidebarClosedIcon as i2, SidebarCollapseIcon as i3, SidebarExpandIcon as i4, SidebarIcon as i5, SidebarOpenIcon as i6, SidebarSyncIcon as i7, SimpleSelect as i8, SimpleSelectOption as i9, Spinner as iA, SplitButton as iB, SqlIcon as iC, StarFillIcon as iD, StarIcon as iE, StepAfterLineIcon as iF, StepBeforeLineIcon as iG, Stepper as iH, StopCircleFillIcon as iI, StopCircleIcon as iJ, StopIcon as iK, StoredProcedureIcon as iL, StorefrontIcon as iM, StreamIcon as iN, StrikeThroughIcon as iO, SunIcon as iP, SyncIcon as iQ, SyncSmallIcon as iR, SyncToFileIcon as iS, TableAsteriskIcon as iT, TableClockIcon as iU, TableCombineIcon as iV, TableGlassesIcon as iW, TableGlobeIcon as iX, TableIcon as iY, TableLightningIcon as iZ, TableMeasureIcon as i_, SimpleSelectOptionGroup as ia, SlashSquareIcon as ib, SlidersIcon as ic, SnippetIcon as id, SortCustomHorizontalIcon as ie, SortCustomVerticalIcon as ig, SortHorizontalAscendingIcon as ih, SortHorizontalDescendingIcon as ii, SortLetterHorizontalAscendingIcon as ij, SortLetterHorizontalDescendingIcon as ik, SortLetterUnsortedIcon as il, SortLetterVerticalAscendingIcon as im, SortLetterVerticalDescendingIcon as io, Spacer as ip, SparkleDoubleFillIcon as iq, SparkleFillIcon as ir, SparkleIcon as is, SparkleRectangleIcon as it, SpeechBubbleIcon as iu, SpeechBubblePlusIcon as iv, SpeechBubbleQuestionMarkFillIcon as iw, SpeechBubbleQuestionMarkIcon as ix, SpeechBubbleStarIcon as iy, SpeedometerIcon as iz, WarningFillIcon as j, ZaHorizontalIcon as j$, TableReportIcon as j0, TableStreamIcon as j1, TableVectorIcon as j2, TableViewIcon as j3, Tabs as j4, TagColumnIcon as j5, TagIcon as j6, TagTableIcon as j7, TargetIcon as j8, TerminalIcon as j9, UppercaseIcon as jA, UsageOverageGraphic as jB, UsageSpikeGraphic as jC, UsbIcon as jD, UserBadgeIcon as jE, UserCircleIcon as jF, UserGroupFillIcon as jG, UserGroupIcon as jH, UserIcon as jI, UserKeyIconIcon as jJ, UserShieldIcon as jK, UserSparkleIcon as jL, UserTeamIcon as jM, VisibleFillIcon as jN, VisibleIcon as jO, VisibleOffIcon as jP, VoiceModeIcon as jQ, WithDesignSystemThemeHoc as jR, WorkflowCodeIcon as jS, WorkflowCubeIcon as jT, WorkflowsIcon as jU, WorkspacesIcon as jV, WrenchIcon as jW, WrenchSparkleIcon as jX, XCircleFillIcon as jY, XCircleIcon as jZ, YearPickerGrid as j_, TextBoxIcon as ja, TextColorIcon as jb, TextIcon as jc, TextJustifyIcon as jd, TextUnderlineIcon as je, ThreeDotsIcon as jf, ThumbsDownFilledIcon as jg, ThumbsDownIcon as jh, ThumbsUpFilledIcon as ji, ThumbsUpIcon as jj, ToggleButton as jk, TokenIcon as jl, TrashIcon as jm, Tree as jn, TreeIcon as jo, TrendingFillIcon as jp, TrendingIcon as jq, TriangleIcon as jr, TypeaheadComboboxCheckboxItem as js, TypeaheadComboboxFooter as jt, TypeaheadComboboxMenuItem$1 as ju, TypeaheadComboboxMultiSelectStateChangeTypes as jv, TypeaheadComboboxStateChangeTypes as jw, UnderlineIcon as jx, UndoIcon as jy, UploadIcon as jz, DangerFillIcon as k, ZaVerticalIcon as k0, ZeroOpsIcon as k1, ZeroOpsOutlineIcon as k2, ZoomInIcon as k3, ZoomMarqueeSelection as k4, ZoomOutIcon as k5, ZoomToFitIcon as k6, __INTERNAL_DO_NOT_USE__FormItem as k7, __INTERNAL_DO_NOT_USE__Group as k8, __INTERNAL_DO_NOT_USE__HorizontalGroup as k9, setImplicitContextGetter as kA, skipHideIconButtonActionClassName as kB, themeMemoKey as kC, useAntDConfigProviderContext as kD, useCallbackOnEnter as kE, useComponentFinderContext as kF, useDesignSystemEventSuppressInteractionContext as kG, useFormContext as kH, useRadioGroupContext as kI, __INTERNAL_DO_NOT_USE__VerticalGroup as ka, __INTERNAL_DO_NOT_USE__wrapLegacyFormRules as kb, augmentWithDataComponentProps as kc, dialogComboboxLookAheadKeyDown as kd, getBottomOnlyShadowScrollStyles as ke, getButtonEmotionStyles as kf, getComboboxOptionLabelStyles as kg, getDatePickerQuickActionBasic as kh, getDialogComboboxOptionLabelWidth as ki, getHorizontalTabShadowStyles as kj, getInputStyles as kk, getKeyboardNavigationFunctions as kl, getMemoizedButtonEmotionStyles as km, getPaginationEmotionStyles as kn, getPanelContainmentStyle as ko, getRadioStyles as kp, getRangeQuickActionsBasic as kq, getShadowScrollStyles as kr, getTypographyColor as ks, getVirtualListScrollbarStyles as kt, getVirtualListScrollbarThumbColor as ku, getVirtualizedComboboxMenuItemStyles as kv, getWrapperStyle as kw, highlightFirstNonDisabledOption as kx, isOptionDisabled as ky, resetTabIndexToFocusedElement as kz, DesignSystemEventProviderAnalyticsEventTypes as l, useDesignSystemEventComponentCallbacks as m, DesignSystemEventProviderComponentTypes as n, DesignSystemEventProviderComponentSubTypeMap as o, primitiveColors as p, useNotifyOnFirstView as q, useStableUuidV4 as r, ChevronDownIcon as s, ChevronRightIcon as t, useWizardCurrentStep as u, DesignSystemAntDConfigProvider as v, CloseSmallIcon as w, addDebugOutlineIfEnabled as x, Modal as y, getAnimationCss as z };
37723
+ //# sourceMappingURL=WizardStepContentWrapper-6YTjeEaA.js.map