@databricks/design-system 2.0.5 → 2.0.7

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 (52) hide show
  1. package/AGENTS.md +239 -166
  2. package/CHANGELOG.md +47 -0
  3. package/design-guidance/docs/README.md +40 -0
  4. package/design-guidance/docs/review-contract.md +22 -0
  5. package/design-guidance/docs/tokens.md +35 -0
  6. package/design-guidance/docs/voice.md +40 -0
  7. package/design-guidance/skills/dbui-build-screen.md +24 -0
  8. package/design-guidance/skills/dbui-check-ecosystem.md +21 -0
  9. package/design-guidance/skills/dbui-check-guidelines.md +29 -0
  10. package/design-guidance/skills/dbui-check-principles.md +26 -0
  11. package/design-guidance/skills/dbui-check-voice.md +17 -0
  12. package/design-guidance/skills/dbui-pick-component.md +23 -0
  13. package/design-guidance/skills/dbui-pick-icon.md +23 -0
  14. package/design-guidance/skills/dbui-review.md +30 -0
  15. package/design-guidance/skills/dbui-validate.md +23 -0
  16. package/dist/{RHFControlledTypeaheadComboboxV2-DsH-nIEk.js → RHFControlledTypeaheadComboboxV2-nSSYj16I.js} +5 -5
  17. package/dist/{RHFControlledTypeaheadComboboxV2-DsH-nIEk.js.map → RHFControlledTypeaheadComboboxV2-nSSYj16I.js.map} +1 -1
  18. package/dist/{WizardStepContentWrapper-Bq1wm0V7.js → WizardStepContentWrapper-bbh_CoIf.js} +644 -679
  19. package/dist/WizardStepContentWrapper-bbh_CoIf.js.map +1 -0
  20. package/dist/dubois-colors.less +1 -1
  21. package/dist/icon-metadata.json +2069 -0
  22. package/dist/{index-BRAVZg-S.js → index-CUCuUviS.js} +350 -139
  23. package/dist/index-CUCuUviS.js.map +1 -0
  24. package/dist/index-dark.css +593 -191
  25. package/dist/index-dark.mitigated.css +623 -208
  26. package/dist/index.css +1536 -1049
  27. package/dist/index.js +4 -4
  28. package/dist/index.mitigated.css +1566 -1066
  29. package/dist/patterns.js +3 -3
  30. package/dist-types/design-system/Alert/Alert.d.ts +21 -4
  31. package/dist-types/design-system/Button/Button.d.ts +2 -1
  32. package/dist-types/design-system/Drawer/Drawer.d.ts +3 -1
  33. package/dist-types/design-system/Icon/AntdIcon.d.ts +3 -0
  34. package/dist-types/design-system/Icon/Icon.d.ts +20 -6
  35. package/dist-types/design-system/Icon/NativeIcon.d.ts +3 -0
  36. package/dist-types/design-system/Icon/__generated/icons/LakewatchIcon.d.ts +4 -0
  37. package/dist-types/design-system/Icon/__generated/icons/SlidesIcon.d.ts +4 -0
  38. package/dist-types/design-system/Icon/__generated/icons/index.d.ts +2 -0
  39. package/dist-types/design-system/Icon/index.d.ts +1 -0
  40. package/dist-types/design-system/Icon/utils.d.ts +1 -0
  41. package/dist-types/design-system/TypeaheadCombobox/TypeaheadComboboxControls.d.ts +0 -2
  42. package/dist-types/design-system/_shared_/Tabs/styles.d.ts +2 -3
  43. package/dist-types/design-system/index.d.ts +0 -1
  44. package/dist-types/design-system/utils/safex.d.ts +4 -2
  45. package/dist-types/theme/generalVariables.d.ts +0 -1
  46. package/dist-types/~patterns/Wizard/WizardModal.d.ts +1 -1
  47. package/package.json +8 -5
  48. package/setup.mjs +586 -0
  49. package/dist/WizardStepContentWrapper-Bq1wm0V7.js.map +0 -1
  50. package/dist/index-BRAVZg-S.js.map +0 -1
  51. package/dist-types/design-system/LegacyTooltip/LegacyTooltip.d.ts +0 -47
  52. package/dist-types/design-system/LegacyTooltip/index.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { p as primitiveColors, f as DesignSystemEventProvider, g as useDesignSystemTheme, h as DesignTokenScope, i as useDesignSystemContext, I as InfoFillIcon, C as CheckCircleFillIcon, j as WarningFillIcon, k as DangerFillIcon, l as DesignSystemEventProviderAnalyticsEventTypes, m as useDesignSystemEventComponentCallbacks, n as DesignSystemEventProviderComponentTypes, o as DesignSystemEventProviderComponentSubTypeMap, q as useNotifyOnFirstView, r as useStableUuidV4, B as Button, T as Typography, s as ChevronDownIcon, t as ChevronRightIcon, v as DesignSystemAntDConfigProvider, w as CloseSmallIcon, x as addDebugOutlineIfEnabled, y as Modal, z as getAnimationCss, A as token, S as ShapeTokens, E as getDarkModePortalStyles, G as useModalContext, R as Root$1, H as Trigger, J as InfoSmallIcon, K as Content, L as Arrow, N as Tooltip, O as SparkleDoubleIcon, P as LoadingState, Q as visuallyHidden, U as genSkeletonAnimatedColor, V as getOffsets, X as DesignSystemEventSuppressInteractionProviderContext, Y as DesignSystemEventSuppressInteractionTrueContextValue, Z as tableStyles, _ as repeatingElementsStyles, $ as tableClassNames, a0 as hideIconButtonRowStyles, a1 as hideIconButtonActionCellClassName, a2 as safex, a3 as TitleSkeleton, a4 as useDialogComboboxContext, a5 as PlusIcon, a6 as importantify, a7 as getComboboxOptionItemWrapperStyles, a8 as getFooterStyles, a9 as useDialogComboboxOptionListContext, aa as generateUuidV4, ab as getContentOptions, ac as findHighlightedOption, ad as highlightOption, ae as Input, af as SearchIcon, ag as EmptyResults, ah as findClosestOptionSibling, ai as DialogComboboxOptionListCheckboxItem, aj as DialogComboboxOptionListSelectItem, ak as DialogComboboxOptionListContextProvider, al as LoadingSpinner, am as DialogComboboxOptionList, an as useUniqueId, ao as TypeaheadComboboxContextProvider, ap as useTypeaheadComboboxContext, aq as useDuboisThemeClass, ar as useDesignTokenOverrideStyles, as as getComboboxContentWrapperStyles, at as ClearSelectionButton, au as TypeaheadComboboxSelectedItem, av as CountBadge, aw as getValidationStateColor, ax as SectionHeader, ay as useComboboxState$1, az as useMultipleSelectionState$1, aA as Radio, aB as Checkbox, aC as DialogCombobox, aD as DialogComboboxTrigger, aE as DialogComboboxContent, aF as Select, aG as SelectTrigger, aH as SelectContent, aI as SelectOption, aJ as LegacySelect, aK as WarningIcon, aL as CheckCircleIcon, aM as DangerIcon, aN as Hint, aO as Title$1, aP as CloseIcon, aQ as RestoreAntDDefaultClsPrefix, aR as AccessibleContainer, aS as DU_BOIS_ENABLE_ANIMATION_CLASSNAME, aT as Tag, aU as CircleOffIcon, aV as CircleOutlineIcon, aW as CircleIcon, aX as getBtnClassName, aY as SortAscendingIcon, aZ as SortDescendingIcon, a_ as SortUnsortedIcon, a$ as MinusSquareIcon, b0 as PlusSquareIcon, b1 as TypeaheadComboboxV2ContextProvider, b2 as useTypeaheadComboboxV2Context, b3 as useRadixModalContext, b4 as useIsomorphicLayoutEffect, b5 as useScrollOptionIntoView, b6 as InfoTooltip, b7 as getInfoIconStyles, b8 as HintRow, b9 as getCheckboxStyles, ba as getMenuItemStyles, bb as TypeaheadComboboxSelectedItem$1, bc as CountBadge$1, bd as TypeaheadComboboxMenuItem } from './WizardStepContentWrapper-Bq1wm0V7.js';
1
+ import { p as primitiveColors, f as DesignSystemEventProvider, g as useDesignSystemTheme, h as DesignTokenScope, i as useDesignSystemContext, I as InfoFillIcon, C as CheckCircleFillIcon, j as WarningFillIcon, k as DangerFillIcon, l as DesignSystemEventProviderAnalyticsEventTypes, m as useDesignSystemEventComponentCallbacks, n as DesignSystemEventProviderComponentTypes, o as DesignSystemEventProviderComponentSubTypeMap, q as useNotifyOnFirstView, r as useStableUuidV4, B as Button$1, T as Typography, s as ChevronDownIcon, t as ChevronRightIcon, v as DesignSystemAntDConfigProvider, w as CloseSmallIcon, x as addDebugOutlineIfEnabled, y as Modal, z as getAnimationCss, A as token, S as ShapeTokens, E as getDarkModePortalStyles, G as useModalContext, R as Root$3, H as Trigger, J as InfoSmallIcon, K as Content, L as Arrow, N as Tooltip, O as SparkleDoubleIcon, P as getIconClassName, Q as LoadingState, U as visuallyHidden, V as genSkeletonAnimatedColor, X as getOffsets, Y as DesignSystemEventSuppressInteractionProviderContext, Z as DesignSystemEventSuppressInteractionTrueContextValue, _ as tableStyles, $ as repeatingElementsStyles, a0 as tableClassNames, a1 as hideIconButtonRowStyles, a2 as hideIconButtonActionCellClassName, a3 as safex, a4 as TitleSkeleton, a5 as useDialogComboboxContext, a6 as PlusIcon, a7 as importantify, a8 as getComboboxOptionItemWrapperStyles, a9 as getFooterStyles, aa as useDialogComboboxOptionListContext, ab as generateUuidV4, ac as getContentOptions, ad as findHighlightedOption, ae as highlightOption, af as Input, ag as SearchIcon, ah as EmptyResults, ai as findClosestOptionSibling, aj as DialogComboboxOptionListCheckboxItem, ak as DialogComboboxOptionListSelectItem, al as DialogComboboxOptionListContextProvider, am as LoadingSpinner, an as DialogComboboxOptionList, ao as useUniqueId, ap as TypeaheadComboboxContextProvider, aq as useTypeaheadComboboxContext, ar as useDuboisThemeClass, as as useDesignTokenOverrideStyles, at as getComboboxContentWrapperStyles, au as ClearSelectionButton, av as TypeaheadComboboxSelectedItem, aw as CountBadge, ax as getValidationStateColor, ay as SectionHeader, az as useComboboxState$1, aA as useMultipleSelectionState$1, aB as Radio, aC as Checkbox, aD as DialogCombobox, aE as DialogComboboxTrigger, aF as DialogComboboxContent, aG as Select, aH as SelectTrigger, aI as SelectContent, aJ as SelectOption, aK as LegacySelect, aL as WarningIcon, aM as CheckCircleIcon, aN as DangerIcon, aO as Hint, aP as Title$1, aQ as CloseIcon, aR as RestoreAntDDefaultClsPrefix, aS as AccessibleContainer, aT as DU_BOIS_ENABLE_ANIMATION_CLASSNAME, aU as Tag, aV as CircleOffIcon, aW as CircleOutlineIcon, aX as CircleIcon, aY as getBtnClassName, aZ as SortAscendingIcon, a_ as SortDescendingIcon, a$ as SortUnsortedIcon, b0 as MinusSquareIcon, b1 as PlusSquareIcon, b2 as TypeaheadComboboxV2ContextProvider, b3 as useTypeaheadComboboxV2Context, b4 as useRadixModalContext, b5 as useIsomorphicLayoutEffect, b6 as useScrollOptionIntoView, b7 as InfoTooltip, b8 as getInfoIconStyles, b9 as HintRow, ba as getCheckboxStyles, bb as getMenuItemStyles, bc as TypeaheadComboboxSelectedItem$1, bd as CountBadge$1, be as TypeaheadComboboxMenuItem } from './WizardStepContentWrapper-bbh_CoIf.js';
2
2
  import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
3
3
  import { ThemeProvider, css, Global, createElement, ClassNames, keyframes } from '@emotion/react';
4
4
  import { Alert as Alert$1, AutoComplete as AutoComplete$1, Breadcrumb as Breadcrumb$1, DatePicker, Dropdown as Dropdown$1, Switch as Switch$1, Col as Col$1, Row as Row$1, Space as Space$1, notification, Popover, Skeleton, Menu as Menu$1, Steps as Steps$1 } from 'antd';
@@ -14,6 +14,8 @@ import { computePosition, flip as flip$1, size } from '@floating-ui/dom';
14
14
  import { createPortal } from 'react-dom';
15
15
  import * as RadixHoverCard from '@radix-ui/react-hover-card';
16
16
  import * as Toast from '@radix-ui/react-toast';
17
+ import * as RadixSlider from '@radix-ui/react-slider';
18
+ import * as RadixToolbar from '@radix-ui/react-toolbar';
17
19
  import { useComboBox } from '@react-aria/combobox';
18
20
  import { useListBox, useOption } from '@react-aria/listbox';
19
21
  import { useOverlay, useOverlayPosition, Overlay, DismissButton } from '@react-aria/overlays';
@@ -539,7 +541,7 @@ const Alert = ({ componentId, analyticsEvents = [
539
541
  };
540
542
  const memoizedActions = useMemo(()=>{
541
543
  if (!actions?.length) return null;
542
- return actions.map((action, index)=>/*#__PURE__*/ jsx(Button, {
544
+ return actions.map((action, index)=>/*#__PURE__*/ jsx(Button$1, {
543
545
  size: "small",
544
546
  ...action
545
547
  }, index));
@@ -643,7 +645,7 @@ const Alert = ({ componentId, analyticsEvents = [
643
645
  gap: theme.spacing.xs
644
646
  }),
645
647
  children: [
646
- showCollapseToggle && /*#__PURE__*/ jsx(Button, {
648
+ showCollapseToggle && /*#__PURE__*/ jsx(Button$1, {
647
649
  "aria-expanded": isExpanded,
648
650
  "aria-controls": descriptionRegionId,
649
651
  "aria-label": isExpanded ? collapseToggleAriaLabel : expandToggleAriaLabel,
@@ -919,7 +921,7 @@ const InfoPopover = ({ children, popoverProps, iconTitle, iconProps, isKeyboardF
919
921
  }
920
922
  };
921
923
  const { onKeyDown, ...restPopoverProps } = popoverProps || {};
922
- return /*#__PURE__*/ jsxs(Root$1, {
924
+ return /*#__PURE__*/ jsxs(Root$3, {
923
925
  componentId: "codegen_design-system_src_design-system_popover_infopopover.tsx_36",
924
926
  open: open,
925
927
  onOpenChange: setOpen,
@@ -1053,7 +1055,7 @@ const OverflowPopover = ({ items, renderLabel, tooltipText, ariaLabel = 'More it
1053
1055
  ...addDebugOutlineIfEnabled(),
1054
1056
  children: /*#__PURE__*/ jsx(Trigger, {
1055
1057
  asChild: true,
1056
- children: /*#__PURE__*/ jsx(Button, {
1058
+ children: /*#__PURE__*/ jsx(Button$1, {
1057
1059
  componentId: "something",
1058
1060
  type: "link",
1059
1061
  children: renderLabel ? renderLabel(label) : label
@@ -1067,7 +1069,7 @@ const OverflowPopover = ({ items, renderLabel, tooltipText, ariaLabel = 'More it
1067
1069
  children: trigger
1068
1070
  });
1069
1071
  }
1070
- return /*#__PURE__*/ jsxs(Root$1, {
1072
+ return /*#__PURE__*/ jsxs(Root$3, {
1071
1073
  componentId: "codegen_design-system_src_design-system_overflow_overflowpopover.tsx_37",
1072
1074
  defaultOpen: defaultOpen,
1073
1075
  onOpenChange: (open)=>setShowTooltip(!open),
@@ -1150,12 +1152,27 @@ const SIZE = new Map([
1150
1152
  ]
1151
1153
  ]);
1152
1154
  const DEFAULT_SIZE = 'sm';
1155
+ // TODO(FEINF-6539): adopt a range-specific identity-color system when one lands.
1156
+ const AVATAR_SURFACE_VAR = {
1157
+ indigo: '#434a93',
1158
+ teal: '#04867d',
1159
+ pink: '#b45091',
1160
+ purple: '#8a63bf',
1161
+ brown: '#a6630c'
1162
+ };
1163
+ const AVATAR_SURFACE_ORDER = [
1164
+ 'indigo',
1165
+ 'teal',
1166
+ 'pink',
1167
+ 'brown',
1168
+ 'purple'
1169
+ ];
1153
1170
  function getAvatarEmotionStyles({ backgroundColor, size = DEFAULT_SIZE, theme }) {
1154
1171
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO(FEINF-3982)
1155
1172
  const { avatarSize, fontSize, iconSize } = SIZE.get(size);
1156
1173
  return {
1157
1174
  abbr: {
1158
- color: theme.colors.tagText,
1175
+ color: 'var(--db-avatar-text)',
1159
1176
  textDecoration: 'none',
1160
1177
  textTransform: 'uppercase'
1161
1178
  },
@@ -1163,14 +1180,14 @@ function getAvatarEmotionStyles({ backgroundColor, size = DEFAULT_SIZE, theme })
1163
1180
  height: avatarSize,
1164
1181
  width: avatarSize,
1165
1182
  fontSize,
1166
- [`.${theme.general.iconfontCssPrefix}`]: {
1183
+ [`& ${getIconClassName()}`]: {
1167
1184
  fontSize: iconSize
1168
1185
  }
1169
1186
  },
1170
1187
  icon: {
1171
1188
  alignItems: 'center',
1172
- color: backgroundColor ? theme.colors.tagText : theme.colors.textSecondary,
1173
- backgroundColor: backgroundColor ? theme.colors[backgroundColor] : theme.DU_BOIS_INTERNAL_ONLY.colors.tagBackgroundDefault,
1189
+ color: backgroundColor ? 'var(--db-avatar-text)' : 'var(--db-avatar-icon)',
1190
+ backgroundColor: backgroundColor ? AVATAR_SURFACE_VAR[backgroundColor] : 'var(--db-avatar-surface)',
1174
1191
  display: 'flex',
1175
1192
  justifyContent: 'center'
1176
1193
  },
@@ -1179,7 +1196,7 @@ function getAvatarEmotionStyles({ backgroundColor, size = DEFAULT_SIZE, theme })
1179
1196
  objectPosition: 'center'
1180
1197
  },
1181
1198
  system: {
1182
- borderRadius: theme.borders.borderRadiusSm,
1199
+ borderRadius: 'var(--db-avatar-border-radius)',
1183
1200
  overflow: 'hidden'
1184
1201
  },
1185
1202
  user: {
@@ -1203,24 +1220,12 @@ function getAvatarEmotionStyles({ backgroundColor, size = DEFAULT_SIZE, theme })
1203
1220
  const idx = Math.abs(hash % maxRange);
1204
1221
  return idx;
1205
1222
  }
1206
- function getAvatarBackgroundColor(label, theme) {
1207
- const randomNumber = getRandomNumberFromString({
1223
+ function getAvatarBackgroundColor(label) {
1224
+ const idx = getRandomNumberFromString({
1208
1225
  value: label,
1209
- maxRange: 5
1210
- });
1211
- switch(randomNumber){
1212
- case 0:
1213
- return theme.colors.indigo;
1214
- case 1:
1215
- return theme.colors.teal;
1216
- case 2:
1217
- return theme.colors.pink;
1218
- case 3:
1219
- return theme.colors.brown;
1220
- case 4:
1221
- default:
1222
- return theme.colors.purple;
1223
- }
1226
+ maxRange: AVATAR_SURFACE_ORDER.length
1227
+ });
1228
+ return AVATAR_SURFACE_VAR[AVATAR_SURFACE_ORDER[idx]];
1224
1229
  }
1225
1230
  function Avatar(props) {
1226
1231
  const { theme } = useDesignSystemTheme();
@@ -1261,7 +1266,7 @@ function Avatar(props) {
1261
1266
  styles.system,
1262
1267
  styles.icon,
1263
1268
  {
1264
- backgroundColor: getAvatarBackgroundColor(props.label, theme)
1269
+ backgroundColor: getAvatarBackgroundColor(props.label)
1265
1270
  }
1266
1271
  ],
1267
1272
  children: /*#__PURE__*/ jsx("abbr", {
@@ -1301,7 +1306,7 @@ function Avatar(props) {
1301
1306
  styles.user,
1302
1307
  styles.icon,
1303
1308
  {
1304
- backgroundColor: getAvatarBackgroundColor(props.label, theme)
1309
+ backgroundColor: getAvatarBackgroundColor(props.label)
1305
1310
  }
1306
1311
  ],
1307
1312
  children: /*#__PURE__*/ jsx("abbr", {
@@ -1345,27 +1350,23 @@ function AssistantAvatar({ backgroundColor, size, label }) {
1345
1350
  });
1346
1351
  }
1347
1352
  const MAX_AVATAR_GROUP_USERS = 3;
1348
- function getAvatarGroupEmotionStyles(theme) {
1349
- return {
1350
- container: {
1351
- display: 'flex',
1352
- alignItems: 'center',
1353
- gap: theme.spacing.xs
1354
- },
1355
- avatarsContainer: {
1356
- display: 'flex'
1357
- },
1358
- avatar: {
1359
- display: 'flex',
1360
- borderRadius: '100%',
1361
- border: `1px solid ${theme.colors.backgroundPrimary}`,
1362
- position: 'relative'
1363
- }
1364
- };
1365
- }
1353
+ const AVATAR_GROUP_STYLES = {
1354
+ container: {
1355
+ display: 'flex',
1356
+ alignItems: 'center',
1357
+ gap: 'var(--db-avatar-group-gap)'
1358
+ },
1359
+ avatarsContainer: {
1360
+ display: 'flex'
1361
+ },
1362
+ avatar: {
1363
+ display: 'flex',
1364
+ borderRadius: '100%',
1365
+ border: 'var(--db-avatar-group-border-width) solid var(--db-avatar-group-border-color)',
1366
+ position: 'relative'
1367
+ }
1368
+ };
1366
1369
  function AvatarGroup({ size = DEFAULT_SIZE, users }) {
1367
- const { theme } = useDesignSystemTheme();
1368
- const styles = getAvatarGroupEmotionStyles(theme);
1369
1370
  const displayedUsers = useMemo(()=>users.slice(0, MAX_AVATAR_GROUP_USERS), [
1370
1371
  users
1371
1372
  ]);
@@ -1375,16 +1376,16 @@ function AvatarGroup({ size = DEFAULT_SIZE, users }) {
1375
1376
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO(FEINF-3982)
1376
1377
  const { avatarSize, groupShift: avatarShift, fontSize } = SIZE.get(size);
1377
1378
  return /*#__PURE__*/ jsxs("div", {
1378
- css: styles.container,
1379
+ css: AVATAR_GROUP_STYLES.container,
1379
1380
  children: [
1380
1381
  /*#__PURE__*/ jsx("div", {
1381
1382
  css: {
1382
- ...styles.avatarsContainer,
1383
+ ...AVATAR_GROUP_STYLES.avatarsContainer,
1383
1384
  width: (avatarSize + 2 - avatarShift) * displayedUsers.length + avatarShift
1384
1385
  },
1385
1386
  children: displayedUsers.map((user, idx)=>/*#__PURE__*/ jsx("div", {
1386
1387
  css: {
1387
- ...styles.avatar,
1388
+ ...AVATAR_GROUP_STYLES.avatar,
1388
1389
  left: -avatarShift * idx
1389
1390
  },
1390
1391
  children: /*#__PURE__*/ jsx(Avatar, {
@@ -1433,10 +1434,13 @@ const Breadcrumb = /* #__PURE__ */ (()=>{
1433
1434
  },
1434
1435
  [separatorClass]: {
1435
1436
  fontSize: theme.general.iconFontSize,
1436
- '& .anticon': {
1437
- fontSize: 13
1437
+ [`& ${getIconClassName()}`]: {
1438
+ fontSize: theme.typography.fontSizeBase
1438
1439
  }
1439
1440
  },
1441
+ [`& ${getIconClassName()}`]: {
1442
+ fontSize: theme.typography.fontSizeBase
1443
+ },
1440
1444
  '& > span': {
1441
1445
  display: 'inline-flex',
1442
1446
  alignItems: 'center'
@@ -1602,7 +1606,7 @@ const Table = /*#__PURE__*/ forwardRef(function Table({ children, size = 'defaul
1602
1606
  }
1603
1607
  ],
1604
1608
  // Needed to make panel body content focusable when scrollable for keyboard-only users to be able to focus & scroll
1605
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
1609
+ // oxlint-disable-next-line jsx-a11y/no-noninteractive-tabindex
1606
1610
  tabIndex: scrollable ? 0 : -1,
1607
1611
  onScroll: onScroll,
1608
1612
  children: [
@@ -1965,6 +1969,7 @@ const Card = ({ children, customLoadingContent, dangerouslyAppendEmotionCSS, loa
1965
1969
  ]);
1966
1970
  const content = /*#__PURE__*/ jsx("div", {
1967
1971
  ref: mergedRef,
1972
+ // oxlint-disable-next-line jsx-a11y/no-noninteractive-tabindex
1968
1973
  tabIndex: !href ? 0 : undefined,
1969
1974
  ...addDebugOutlineIfEnabled(),
1970
1975
  css: href ? [] : [
@@ -2284,7 +2289,7 @@ const YearPicker = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-co
2284
2289
  */ YearPicker
2285
2290
  });
2286
2291
 
2287
- const Separator = (props)=>{
2292
+ const Separator$1 = (props)=>{
2288
2293
  const { theme } = useDesignSystemTheme();
2289
2294
  return /*#__PURE__*/ jsx("div", {
2290
2295
  ...props,
@@ -2306,7 +2311,7 @@ const DialogComboboxAddButton = ({ children, ...restProps })=>{
2306
2311
  if (!isInsideDialogCombobox) {
2307
2312
  throw new Error('`DialogComboboxAddButton` must be used within `DialogCombobox`');
2308
2313
  }
2309
- return /*#__PURE__*/ jsx(Button, {
2314
+ return /*#__PURE__*/ jsx(Button$1, {
2310
2315
  // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Contextual component ID validated through DialogCombobox component exempt:fc0846cb-b73b-401b-834e-75bb8b6d4c20
2311
2316
  componentId: `${componentId ? componentId : 'design_system.dialogcombobox'}.add_option`,
2312
2317
  ...restProps,
@@ -2692,7 +2697,7 @@ const DialogComboboxSeparator = (props)=>{
2692
2697
  if (!isInsideDialogCombobox) {
2693
2698
  throw new Error('`DialogComboboxSeparator` must be used within `DialogCombobox`');
2694
2699
  }
2695
- return /*#__PURE__*/ jsx(Separator, {
2700
+ return /*#__PURE__*/ jsx(Separator$1, {
2696
2701
  ...props
2697
2702
  });
2698
2703
  };
@@ -3132,6 +3137,8 @@ children, dangerouslySetAntdProps, onClick, ...restProps }, ref) {
3132
3137
  children: /*#__PURE__*/ jsx("input", {
3133
3138
  ref: mergedRef,
3134
3139
  type: "checkbox",
3140
+ className: "db-switch-input",
3141
+ // oxlint-disable-next-line jsx-a11y/role-has-required-aria-props
3135
3142
  role: "switch",
3136
3143
  id: uniqueId,
3137
3144
  ...checkedStateProps,
@@ -3431,17 +3438,16 @@ const getToggleButtonStyles$1 = (theme, disabled)=>{
3431
3438
  });
3432
3439
  });
3433
3440
 
3434
- /** Height of the non-inline controls block, for callers that position it themselves. */ const TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT = 16;
3435
3441
  const TypeaheadComboboxControls$1 = ({ getDownshiftToggleButtonProps, showClearSelectionButton, showComboboxToggleButton = true, handleClear, disabled, loading = false, inline = false, className })=>{
3436
3442
  return /*#__PURE__*/ jsxs("div", {
3437
3443
  className: className,
3438
3444
  css: {
3439
- // Centers the 12px clear icon against the 16px toggle button.
3445
+ // Centers the 12px clear icon against the 16px toggle button, and (when the caller sizes
3446
+ // this block to the tag row) centers the whole controls block on the row's centerline.
3440
3447
  display: 'flex',
3441
3448
  alignItems: 'center',
3442
3449
  cursor: disabled ? 'not-allowed' : undefined,
3443
3450
  ...inline ? {} : {
3444
- height: TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT,
3445
3451
  zIndex: 1
3446
3452
  }
3447
3453
  },
@@ -3646,8 +3652,6 @@ const TAG_ROW_HEIGHT = 24;
3646
3652
  const DEFAULT_VERTICAL_PADDING = 5;
3647
3653
  const MIDDLE_VERTICAL_PADDING = 3;
3648
3654
  const getVerticalPadding = (size)=>size === 'middle' ? MIDDLE_VERTICAL_PADDING : DEFAULT_VERTICAL_PADDING;
3649
- // Centers the shorter controls block on the tag row it floats beside.
3650
- const CONTROLS_ROW_OFFSET = (TAG_ROW_HEIGHT - TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT) / 2;
3651
3655
  // Overflow lives on this inner wrapper so the floated, sticky controls
3652
3656
  // (rendered as the first child) stay pinned to the top-right of the visible
3653
3657
  // scroll viewport while the tag list scrolls.
@@ -3894,13 +3898,15 @@ size, ...restProps }, ref)=>{
3894
3898
  showClearSelectionButton: allowClear && (Boolean(inputValue) || selectedItems && selectedItems.length > 0) && !restProps.disabled,
3895
3899
  handleClear: handleClear,
3896
3900
  disabled: restProps.disabled,
3897
- // `top` equals the flow position, so scrolling the tag list leaves the controls in
3898
- // place on the first row.
3901
+ // The floated controls block is as tall as the tag row and flex-centers its icons (see
3902
+ // TypeaheadComboboxControls), so the clear/chevron sit on the row's centerline regardless
3903
+ // of their exact pixel heights. `top` is the row's top, so scrolling the tag list leaves
3904
+ // the controls pinned on the first row.
3899
3905
  css: /*#__PURE__*/ css({
3900
3906
  position: 'sticky',
3901
- top: getVerticalPadding(size) + CONTROLS_ROW_OFFSET,
3902
- marginTop: CONTROLS_ROW_OFFSET,
3903
- float: 'right'
3907
+ top: getVerticalPadding(size),
3908
+ float: 'right',
3909
+ height: TAG_ROW_HEIGHT
3904
3910
  })
3905
3911
  }),
3906
3912
  /*#__PURE__*/ jsxs("div", {
@@ -3992,7 +3998,7 @@ size, ...restProps }, ref)=>{
3992
3998
  if (!isInsideTypeaheadCombobox) {
3993
3999
  throw new Error('`TypeaheadComboboxSeparator` must be used within `TypeaheadComboboxMenu`');
3994
4000
  }
3995
- return /*#__PURE__*/ jsx(Separator, {
4001
+ return /*#__PURE__*/ jsx(Separator$1, {
3996
4002
  ...props
3997
4003
  });
3998
4004
  };
@@ -4007,7 +4013,7 @@ size, ...restProps }, ref)=>{
4007
4013
  if (!isInsideTypeaheadCombobox) {
4008
4014
  throw new Error('`TypeaheadComboboxAddButton` must be used within `TypeaheadCombobox`');
4009
4015
  }
4010
- return /*#__PURE__*/ jsx(Button, {
4016
+ return /*#__PURE__*/ jsx(Button$1, {
4011
4017
  ...restProps,
4012
4018
  // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Validated in the Root for the context exempt:844c1e83-84b8-41ba-95af-bae4799834aa
4013
4019
  componentId: `${componentId}.add_option`,
@@ -4408,10 +4414,10 @@ function RHFControlledMultiSelectTypeaheadCombobox({ name, control, rules, allIt
4408
4414
  // pull the ~175KB chunk. Generics don't flow through React.lazy, so each public wrapper re-declares the
4409
4415
  // generic signature and casts its props onto the (default-generic) lazy component; the lazy impl has the
4410
4416
  // identical prop shape.
4411
- const LazyRHFControlledTypeaheadComboboxV2 = /*#__PURE__*/ React__default.lazy(()=>import('./RHFControlledTypeaheadComboboxV2-DsH-nIEk.js').then((m)=>({
4417
+ const LazyRHFControlledTypeaheadComboboxV2 = /*#__PURE__*/ React__default.lazy(()=>import('./RHFControlledTypeaheadComboboxV2-nSSYj16I.js').then((m)=>({
4412
4418
  default: m.RHFControlledTypeaheadComboboxV2
4413
4419
  })));
4414
- const LazyRHFControlledMultiSelectTypeaheadComboboxV2 = /*#__PURE__*/ React__default.lazy(()=>import('./RHFControlledTypeaheadComboboxV2-DsH-nIEk.js').then((m)=>({
4420
+ const LazyRHFControlledMultiSelectTypeaheadComboboxV2 = /*#__PURE__*/ React__default.lazy(()=>import('./RHFControlledTypeaheadComboboxV2-nSSYj16I.js').then((m)=>({
4415
4421
  default: m.RHFControlledMultiSelectTypeaheadComboboxV2
4416
4422
  })));
4417
4423
  function RHFControlledTypeaheadComboboxV2(props) {
@@ -4995,28 +5001,39 @@ const defaultProps = {
4995
5001
  return LegacySkeleton;
4996
5002
  })();
4997
5003
 
5004
+ const getMenuIconStyles = (theme, classNamePrefix)=>({
5005
+ [`.${classNamePrefix}-menu-item :is(.anticon, .db-icon), .${classNamePrefix}-menu-submenu-title :is(.anticon, .db-icon)`]: {
5006
+ fontSize: theme.typography.fontSizeBase
5007
+ }
5008
+ });
4998
5009
  /**
4999
5010
  * @deprecated Use `DropdownMenu` instead.
5000
5011
  */ const Menu = /* #__PURE__ */ (()=>{
5001
- const Menu = ({ dangerouslySetAntdProps, ...props })=>{
5012
+ const Menu = ({ dangerouslySetAntdProps, css: cssProp, ...props })=>{
5013
+ const { theme, classNamePrefix } = useDesignSystemTheme();
5002
5014
  return /*#__PURE__*/ jsx(DesignSystemAntDConfigProvider, {
5003
5015
  children: /*#__PURE__*/ jsx(Menu$1, {
5004
5016
  ...addDebugOutlineIfEnabled(),
5005
5017
  ...props,
5006
- ...dangerouslySetAntdProps
5018
+ ...dangerouslySetAntdProps,
5019
+ css: [
5020
+ getMenuIconStyles(theme, classNamePrefix),
5021
+ cssProp
5022
+ ]
5007
5023
  })
5008
5024
  });
5009
5025
  };
5010
5026
  Menu.Item = Menu$1.Item;
5011
5027
  Menu.ItemGroup = Menu$1.ItemGroup;
5012
5028
  Menu.SubMenu = function SubMenu({ dangerouslySetAntdProps, ...props }) {
5013
- const { theme } = useDesignSystemTheme();
5029
+ const { theme, classNamePrefix } = useDesignSystemTheme();
5014
5030
  return /*#__PURE__*/ jsx(ClassNames, {
5015
5031
  children: ({ css })=>{
5016
5032
  return /*#__PURE__*/ jsx(Menu$1.SubMenu, {
5017
5033
  ...addDebugOutlineIfEnabled(),
5018
5034
  popupClassName: css({
5019
- zIndex: theme.options.zIndexBase + 50
5035
+ zIndex: theme.options.zIndexBase + 50,
5036
+ ...getMenuIconStyles(theme, classNamePrefix)
5020
5037
  }),
5021
5038
  popupOffset: [
5022
5039
  -6,
@@ -5078,14 +5095,19 @@ const getToastRootStyle = (theme, classNamePrefix)=>{
5078
5095
  return /*#__PURE__*/ css({
5079
5096
  '&&': {
5080
5097
  position: 'relative',
5098
+ // Re-enable pointer events the Viewport turns off. `!important` beats the inline
5099
+ // `pointer-events: none` a Radix modal writes on this root when it opens, keeping the toast
5100
+ // clickable over a modal.
5101
+ pointerEvents: 'auto !important',
5081
5102
  display: 'grid',
5082
- background: theme.colors.backgroundPrimary,
5083
- padding: 12,
5084
- columnGap: 4,
5085
- boxShadow: theme.shadows.lg,
5086
- borderRadius: token(ShapeTokens.POPUP_BORDER_RADIUS, theme.borders.borderRadiusSm),
5087
- lineHeight: '20px',
5088
- borderColor: `1px solid ${theme.colors.border}`,
5103
+ background: 'var(--db-notification-surface)',
5104
+ padding: 'var(--db-notification-padding)',
5105
+ columnGap: 'var(--db-notification-column-gap)',
5106
+ boxShadow: 'var(--db-notification-shadow)',
5107
+ borderRadius: 'var(--db-notification-border-radius)',
5108
+ // No v2 line-height token. TODO(FEINF-6557): adopt one when it lands.
5109
+ lineHeight: theme.typography.lineHeightBase,
5110
+ borderColor: `1px solid var(--db-notification-border)`,
5089
5111
  gridTemplateRows: '[header] auto [content] auto',
5090
5112
  gridTemplateColumns: '[icon] auto [content] 1fr [close] auto',
5091
5113
  ...getDarkModePortalStyles(theme)
@@ -5102,16 +5124,16 @@ const getToastRootStyle = (theme, classNamePrefix)=>{
5102
5124
  justifyContent: 'center'
5103
5125
  },
5104
5126
  [`.${classNamePrefix}-notification-info-icon`]: {
5105
- color: theme.colors.textSecondary
5127
+ color: 'var(--db-notification-icon)'
5106
5128
  },
5107
5129
  [`.${classNamePrefix}-notification-success-icon`]: {
5108
- color: theme.colors.textValidationSuccess
5130
+ color: 'var(--db-notification-icon-success)'
5109
5131
  },
5110
5132
  [`.${classNamePrefix}-notification-warning-icon`]: {
5111
- color: theme.colors.textValidationWarning
5133
+ color: 'var(--db-notification-icon-warning)'
5112
5134
  },
5113
5135
  [`.${classNamePrefix}-notification-error-icon`]: {
5114
- color: theme.colors.textValidationDanger
5136
+ color: 'var(--db-notification-icon-error)'
5115
5137
  },
5116
5138
  '&&[data-state="open"]': {
5117
5139
  animation: `${slideInAnimation} 300ms cubic-bezier(0.16, 1, 0.3, 1)`
@@ -5140,7 +5162,7 @@ const getToastRootStyle = (theme, classNamePrefix)=>{
5140
5162
  }
5141
5163
  });
5142
5164
  };
5143
- const Root = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
5165
+ const Root$2 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
5144
5166
  /*#__PURE__*/ forwardRef(function({ children, severity = 'info', severityLabel, componentId, analyticsEvents = [
5145
5167
  DesignSystemEventProviderAnalyticsEventTypes.OnView
5146
5168
  ], className, style, ...props }, ref) {
@@ -5172,7 +5194,7 @@ const Root = // eslint-disable-next-line react-component-name/react-component-na
5172
5194
  ...props,
5173
5195
  ...addDebugOutlineIfEnabled(),
5174
5196
  ...preventSwipeToClose(),
5175
- className: classnames(className, themeClass),
5197
+ className: classnames(className, themeClass, DU_BOIS_ENABLE_ANIMATION_CLASSNAME),
5176
5198
  style: {
5177
5199
  ...style,
5178
5200
  ...themeOverrideStyle
@@ -5192,6 +5214,16 @@ const Root = // eslint-disable-next-line react-component-name/react-component-na
5192
5214
  });
5193
5215
  });
5194
5216
  // TODO: Support light and dark mode
5217
+ // Click-through: this fixed viewport band must not intercept clicks meant for content beneath it
5218
+ // (e.g. an open modal); toasts re-enable pointer events on their Root (standard Radix Toast pattern).
5219
+ // This MUST be a css class rather than part of the inline `getViewportStyle` below: the Root
5220
+ // re-enables pointer events via its own css class, and jsdom's getComputedStyle resolves only inline
5221
+ // styles, so an inline `none` here makes @testing-library/user-event treat every toast as
5222
+ // click-blocking in jsdom (it can't see the Root's class-based override) even though the click works
5223
+ // in a real browser. Keeping both declarations on classes stays symmetric across jsdom and browsers.
5224
+ const viewportClickThroughStyle = /*#__PURE__*/ css({
5225
+ pointerEvents: 'none'
5226
+ });
5195
5227
  const getViewportStyle$1 = (theme)=>{
5196
5228
  return {
5197
5229
  position: 'fixed',
@@ -5199,19 +5231,19 @@ const getViewportStyle$1 = (theme)=>{
5199
5231
  right: 0,
5200
5232
  display: 'flex',
5201
5233
  flexDirection: 'column',
5202
- padding: 12,
5203
- gap: 12,
5204
- width: 440,
5234
+ padding: 'var(--db-notification-viewport-padding)',
5235
+ gap: 'var(--db-notification-viewport-gap)',
5236
+ width: 'var(--db-notification-viewport-width)',
5205
5237
  listStyle: 'none',
5206
5238
  zIndex: theme.options.zIndexBase + 100,
5207
5239
  outline: 'none',
5208
- maxWidth: `calc(100% - ${theme.spacing.lg}px)`
5240
+ maxWidth: 'calc(100% - var(--db-notification-viewport-margin))'
5209
5241
  };
5210
5242
  };
5211
5243
  const getTitleStyles = (theme)=>{
5212
5244
  return /*#__PURE__*/ css({
5213
5245
  fontWeight: theme.typography.typographyBoldFontWeight,
5214
- color: theme.colors.textPrimary,
5246
+ color: 'var(--db-notification-text)',
5215
5247
  gridRow: 'header / header',
5216
5248
  gridColumn: 'content / content',
5217
5249
  userSelect: 'text'
@@ -5227,50 +5259,45 @@ const Title = // eslint-disable-next-line react-component-name/react-component-n
5227
5259
  children: children
5228
5260
  });
5229
5261
  });
5230
- const getDescriptionStyles = (theme)=>{
5231
- return /*#__PURE__*/ css({
5232
- marginTop: 4,
5233
- color: theme.colors.textPrimary,
5234
- gridRow: 'content / content',
5235
- gridColumn: 'content / content',
5236
- userSelect: 'text',
5237
- wordBreak: 'break-word'
5238
- });
5239
- };
5262
+ const DESCRIPTION_STYLES = /*#__PURE__*/ css({
5263
+ marginTop: 'var(--db-notification-description-gap)',
5264
+ color: 'var(--db-notification-text)',
5265
+ gridRow: 'content / content',
5266
+ gridColumn: 'content / content',
5267
+ userSelect: 'text',
5268
+ wordBreak: 'break-word'
5269
+ });
5240
5270
  const Description = /*#__PURE__*/ forwardRef(function({ children, ...props }, ref) {
5241
- const { theme } = useDesignSystemTheme();
5242
5271
  return /*#__PURE__*/ jsx(Toast.Description, {
5243
5272
  ref: ref,
5244
- css: getDescriptionStyles(theme),
5273
+ css: DESCRIPTION_STYLES,
5245
5274
  ...props,
5246
5275
  children: children
5247
5276
  });
5248
5277
  });
5249
- const getCloseStyles = (theme)=>{
5250
- return /*#__PURE__*/ css({
5251
- color: theme.colors.textSecondary,
5252
- position: 'absolute',
5253
- // Offset close button position to align with the title, title uses 20px line height, button has 32px
5254
- right: 6,
5255
- top: 6
5256
- });
5278
+ const CLOSE_STYLES = /*#__PURE__*/ css({
5279
+ color: 'var(--db-notification-icon)',
5280
+ position: 'absolute',
5281
+ // Offset close button position to align with the title, title uses 20px line height, button has 32px
5282
+ right: 'var(--db-notification-close-offset)',
5283
+ top: 'var(--db-notification-close-offset)'
5284
+ });
5285
+ const CLOSE_WRAPPER_STYLE = {
5286
+ gridColumn: 'close / close',
5287
+ gridRow: 'header / content',
5288
+ width: 'var(--db-notification-close-size)'
5257
5289
  };
5258
5290
  const Close = /*#__PURE__*/ forwardRef(function(props, ref) {
5259
- const { theme } = useDesignSystemTheme();
5260
5291
  const { closeLabel, componentId, analyticsEvents, ...restProps } = props;
5261
5292
  return(// Wrapper to keep close column width for content sizing, close button positioned absolute for alignment without affecting the grid's first row height (title)
5262
5293
  /*#__PURE__*/ jsx("div", {
5263
- style: {
5264
- gridColumn: 'close / close',
5265
- gridRow: 'header / content',
5266
- width: 20
5267
- },
5294
+ style: CLOSE_WRAPPER_STYLE,
5268
5295
  children: /*#__PURE__*/ jsx(Toast.Close, {
5269
5296
  ref: ref,
5270
- css: getCloseStyles(theme),
5297
+ css: CLOSE_STYLES,
5271
5298
  ...restProps,
5272
5299
  asChild: true,
5273
- children: /*#__PURE__*/ jsx(Button, {
5300
+ children: /*#__PURE__*/ jsx(Button$1, {
5274
5301
  componentId: componentId ? componentId : 'codegen_design-system_src_design-system_notification_notification.tsx_224',
5275
5302
  analyticsEvents: analyticsEvents,
5276
5303
  icon: /*#__PURE__*/ jsx(CloseIcon, {}),
@@ -5289,6 +5316,7 @@ const Viewport = (props)=>{
5289
5316
  const { theme } = useDesignSystemTheme();
5290
5317
  return /*#__PURE__*/ jsx(Toast.Viewport, {
5291
5318
  className: DU_BOIS_ENABLE_ANIMATION_CLASSNAME,
5319
+ css: viewportClickThroughStyle,
5292
5320
  style: getViewportStyle$1(theme),
5293
5321
  ...props
5294
5322
  });
@@ -5299,7 +5327,7 @@ var Notification = /*#__PURE__*/Object.freeze({
5299
5327
  Close: Close,
5300
5328
  Description: Description,
5301
5329
  Provider: Provider,
5302
- Root: Root,
5330
+ Root: Root$2,
5303
5331
  Title: Title,
5304
5332
  Viewport: Viewport
5305
5333
  });
@@ -5413,6 +5441,103 @@ const ResourceStatusIndicator = (props)=>{
5413
5441
  });
5414
5442
  };
5415
5443
 
5444
+ const ROOT_STYLES = /*#__PURE__*/ css({
5445
+ position: 'relative',
5446
+ display: 'flex',
5447
+ alignItems: 'center',
5448
+ '&[data-orientation="vertical"]': {
5449
+ flexDirection: 'column',
5450
+ width: 'var(--db-slider-size)',
5451
+ height: 100
5452
+ },
5453
+ '&[data-orientation="horizontal"]': {
5454
+ height: 'var(--db-slider-size)',
5455
+ width: 200
5456
+ }
5457
+ });
5458
+ const Root$1 = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
5459
+ /*#__PURE__*/ forwardRef((props, ref)=>{
5460
+ return /*#__PURE__*/ jsx(RadixSlider.Root, {
5461
+ ...addDebugOutlineIfEnabled(),
5462
+ css: ROOT_STYLES,
5463
+ ...props,
5464
+ ref: ref
5465
+ });
5466
+ });
5467
+ const TRACK_STYLES = /*#__PURE__*/ css({
5468
+ backgroundColor: 'var(--db-slider-track-surface)',
5469
+ position: 'relative',
5470
+ flexGrow: 1,
5471
+ borderRadius: 'var(--db-slider-border-radius)',
5472
+ '&[data-orientation="vertical"]': {
5473
+ width: 'var(--db-slider-track-thickness)'
5474
+ },
5475
+ '&[data-orientation="horizontal"]': {
5476
+ height: 'var(--db-slider-track-thickness)'
5477
+ }
5478
+ });
5479
+ const Track = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
5480
+ /*#__PURE__*/ forwardRef((props, ref)=>{
5481
+ return /*#__PURE__*/ jsx(RadixSlider.Track, {
5482
+ css: TRACK_STYLES,
5483
+ ...props,
5484
+ ref: ref
5485
+ });
5486
+ });
5487
+ const RANGE_STYLES = /*#__PURE__*/ css({
5488
+ backgroundColor: 'var(--db-slider-range-surface)',
5489
+ position: 'absolute',
5490
+ borderRadius: 'var(--db-slider-border-radius)',
5491
+ height: '100%',
5492
+ '&[data-disabled]': {
5493
+ backgroundColor: 'var(--db-slider-range-surface-disabled)'
5494
+ }
5495
+ });
5496
+ const Range = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
5497
+ /*#__PURE__*/ forwardRef((props, ref)=>{
5498
+ return /*#__PURE__*/ jsx(RadixSlider.Range, {
5499
+ css: RANGE_STYLES,
5500
+ ...props,
5501
+ ref: ref
5502
+ });
5503
+ });
5504
+ const THUMB_STYLES = /*#__PURE__*/ css({
5505
+ display: 'block',
5506
+ width: 'var(--db-slider-thumb-size)',
5507
+ height: 'var(--db-slider-thumb-size)',
5508
+ backgroundColor: 'var(--db-slider-thumb-surface)',
5509
+ boxShadow: 'none',
5510
+ borderRadius: 'var(--db-slider-border-radius)',
5511
+ outline: 'none',
5512
+ '&:hover': {
5513
+ backgroundColor: 'var(--db-slider-thumb-surface-hover)'
5514
+ },
5515
+ '&:focus': {
5516
+ backgroundColor: 'var(--db-slider-thumb-surface-press)'
5517
+ },
5518
+ '&[data-disabled]': {
5519
+ backgroundColor: 'var(--db-slider-thumb-surface-disabled)',
5520
+ boxShadow: 'none'
5521
+ }
5522
+ });
5523
+ const Thumb = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
5524
+ /*#__PURE__*/ forwardRef((props, ref)=>{
5525
+ return /*#__PURE__*/ jsx(RadixSlider.Thumb, {
5526
+ css: THUMB_STYLES,
5527
+ "aria-label": "Slider thumb",
5528
+ ...props,
5529
+ ref: ref
5530
+ });
5531
+ });
5532
+
5533
+ var Slider = /*#__PURE__*/Object.freeze({
5534
+ __proto__: null,
5535
+ Range: Range,
5536
+ Root: Root$1,
5537
+ Thumb: Thumb,
5538
+ Track: Track
5539
+ });
5540
+
5416
5541
  /**
5417
5542
  * SnackBarManager is a store for managing SnackBar state.
5418
5543
  * It maintains the list of active snacks and notifies subscribers when state changes.
@@ -5484,18 +5609,19 @@ const snackBarManager = new SnackBarManager();
5484
5609
 
5485
5610
  const getCloseButtonStyles = (clsPrefix)=>{
5486
5611
  const notLink = `:not(${getBtnClassName(clsPrefix, '-link', '')})`;
5612
+ const iconSelector = `${getIconClassName()}`;
5487
5613
  return /*#__PURE__*/ css({
5488
5614
  marginLeft: 'var(--db-snackbar-close-button-spacing)',
5489
5615
  flexShrink: 0,
5490
5616
  // Override design system colors to use dark mode colors in both light and dark modes for proper contrast
5491
- [`&&:enabled${notLink} > .anticon`]: {
5617
+ [`&&:enabled${notLink} > ${iconSelector}`]: {
5492
5618
  color: 'var(--db-snackbar-close-icon) !important'
5493
5619
  },
5494
- [`&&:enabled${notLink}:hover > .anticon`]: {
5620
+ [`&&:enabled${notLink}:hover > ${iconSelector}`]: {
5495
5621
  color: 'var(--db-snackbar-close-icon-hover) !important'
5496
5622
  },
5497
- [`&&:enabled${notLink}:active > .anticon`]: {
5498
- color: 'var(--db-snackbar-close-icon-press) !important'
5623
+ [`&&:enabled${notLink}:active > ${iconSelector}`]: {
5624
+ color: 'var(--db-snackbar-close-icon-active) !important'
5499
5625
  }
5500
5626
  });
5501
5627
  };
@@ -5622,7 +5748,7 @@ const SnackBarRoot = /*#__PURE__*/ forwardRef(function SnackBarRoot({ snack }, r
5622
5748
  return /*#__PURE__*/ jsxs(Toast.Root, {
5623
5749
  ref: ref,
5624
5750
  css: getSnackBarRootStyle(snack.backgroundColor, snack.textColor),
5625
- className: themeClass,
5751
+ className: `${themeClass} ${DU_BOIS_ENABLE_ANIMATION_CLASSNAME}`,
5626
5752
  style: {
5627
5753
  ...snack.closeButton === false ? {
5628
5754
  cursor: 'pointer'
@@ -5642,7 +5768,7 @@ const SnackBarRoot = /*#__PURE__*/ forwardRef(function SnackBarRoot({ snack }, r
5642
5768
  }),
5643
5769
  snack.closeButton !== false && /*#__PURE__*/ jsx(Toast.Close, {
5644
5770
  asChild: true,
5645
- children: /*#__PURE__*/ jsx(Button, {
5771
+ children: /*#__PURE__*/ jsx(Button$1, {
5646
5772
  css: getCloseButtonStyles(classNamePrefix),
5647
5773
  componentId: "design-system.snackbar.close",
5648
5774
  icon: /*#__PURE__*/ jsx(CloseIcon, {}),
@@ -5763,7 +5889,7 @@ const TableFilterInput = /*#__PURE__*/ forwardRef(function SearchInput({ onSubmi
5763
5889
  flex: 1
5764
5890
  })
5765
5891
  }),
5766
- /*#__PURE__*/ jsx(Button, {
5892
+ /*#__PURE__*/ jsx(Button$1, {
5767
5893
  componentId: componentId ? `${componentId}.search_submit` : 'codegen_design-system_src_design-system_tableui_tablefilterinput.tsx_65',
5768
5894
  htmlType: "submit",
5769
5895
  "aria-label": "Search",
@@ -5911,7 +6037,7 @@ const TableHeaderResizeHandle = /*#__PURE__*/ forwardRef(function TableHeaderRes
5911
6037
  css: tableStyles.resizeHandle
5912
6038
  })
5913
6039
  });
5914
- return increaseWidthHandler && decreaseWidthHandler ? /*#__PURE__*/ jsxs(Root$1, {
6040
+ return increaseWidthHandler && decreaseWidthHandler ? /*#__PURE__*/ jsxs(Root$3, {
5915
6041
  componentId: "codegen_design-system_src_design-system_tableui_tableheader.tsx_114",
5916
6042
  onOpenChange: setIsPopoverOpen,
5917
6043
  children: [
@@ -5949,7 +6075,7 @@ const TableHeaderResizeHandle = /*#__PURE__*/ forwardRef(function TableHeaderRes
5949
6075
  alignItems: 'center'
5950
6076
  },
5951
6077
  children: [
5952
- /*#__PURE__*/ jsx(Button, {
6078
+ /*#__PURE__*/ jsx(Button$1, {
5953
6079
  onClick: ()=>{
5954
6080
  decreaseWidthHandler();
5955
6081
  },
@@ -5960,7 +6086,7 @@ const TableHeaderResizeHandle = /*#__PURE__*/ forwardRef(function TableHeaderRes
5960
6086
  backgroundColor: theme.colors.actionTertiaryBackgroundHover
5961
6087
  }
5962
6088
  }),
5963
- /*#__PURE__*/ jsx(Button, {
6089
+ /*#__PURE__*/ jsx(Button$1, {
5964
6090
  onClick: ()=>{
5965
6091
  increaseWidthHandler();
5966
6092
  },
@@ -6238,6 +6364,90 @@ const TableRowSelectCell = /*#__PURE__*/ forwardRef(function TableRowSelectCell(
6238
6364
  });
6239
6365
  });
6240
6366
 
6367
+ const rootStyles = /*#__PURE__*/ css({
6368
+ alignItems: 'center',
6369
+ backgroundColor: 'var(--db-toolbar-surface)',
6370
+ border: '1px solid var(--db-toolbar-border)',
6371
+ borderRadius: 'var(--db-toolbar-border-radius)',
6372
+ boxShadow: 'var(--db-toolbar-shadow)',
6373
+ display: 'flex',
6374
+ gap: 'var(--db-toolbar-gap)',
6375
+ width: 'max-content',
6376
+ padding: 'var(--db-toolbar-spacing)'
6377
+ });
6378
+ const Root = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
6379
+ /*#__PURE__*/ forwardRef((props, ref)=>{
6380
+ return /*#__PURE__*/ jsx(RadixToolbar.Root, {
6381
+ ...addDebugOutlineIfEnabled(),
6382
+ css: rootStyles,
6383
+ ...props,
6384
+ ref: ref
6385
+ });
6386
+ });
6387
+ const Button = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
6388
+ (props, ref)=>{
6389
+ return /*#__PURE__*/ jsx(RadixToolbar.Button, {
6390
+ ...props,
6391
+ ref: ref
6392
+ });
6393
+ });
6394
+ const separatorStyles = /*#__PURE__*/ css({
6395
+ alignSelf: 'stretch',
6396
+ backgroundColor: 'var(--db-toolbar-separator-surface)',
6397
+ width: 1
6398
+ });
6399
+ const Separator = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
6400
+ (props, ref)=>{
6401
+ return /*#__PURE__*/ jsx(RadixToolbar.Separator, {
6402
+ css: separatorStyles,
6403
+ ...props,
6404
+ ref: ref
6405
+ });
6406
+ });
6407
+ const Link = // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
6408
+ /*#__PURE__*/ forwardRef((props, ref)=>{
6409
+ return /*#__PURE__*/ jsx(RadixToolbar.Link, {
6410
+ ...props,
6411
+ ref: ref
6412
+ });
6413
+ });
6414
+ const ToggleGroup = /*#__PURE__*/ forwardRef((props, ref)=>{
6415
+ return /*#__PURE__*/ jsx(RadixToolbar.ToggleGroup, {
6416
+ ...props,
6417
+ ref: ref
6418
+ });
6419
+ });
6420
+ const toggleItemStyles = /*#__PURE__*/ css({
6421
+ background: 'none',
6422
+ color: 'var(--db-toolbar-toggle-item-text)',
6423
+ border: 'none',
6424
+ cursor: 'pointer',
6425
+ '&:hover': {
6426
+ color: 'var(--db-toolbar-toggle-item-text-hover)'
6427
+ },
6428
+ '&[data-state="on"]': {
6429
+ color: 'var(--db-toolbar-toggle-item-text-press)'
6430
+ }
6431
+ });
6432
+ const ToggleItem = /*#__PURE__*/ forwardRef(// eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)
6433
+ (props, ref)=>{
6434
+ return /*#__PURE__*/ jsx(RadixToolbar.ToggleItem, {
6435
+ css: toggleItemStyles,
6436
+ ...props,
6437
+ ref: ref
6438
+ });
6439
+ });
6440
+
6441
+ var Toolbar = /*#__PURE__*/Object.freeze({
6442
+ __proto__: null,
6443
+ Button: Button,
6444
+ Link: Link,
6445
+ Root: Root,
6446
+ Separator: Separator,
6447
+ ToggleGroup: ToggleGroup,
6448
+ ToggleItem: ToggleItem
6449
+ });
6450
+
6241
6451
  function treeGridReducer(state, action) {
6242
6452
  switch(action.type){
6243
6453
  case 'TOGGLE_ROW_EXPANDED':
@@ -6484,7 +6694,8 @@ const TreeGrid = ({ data, columns, renderCell, renderRow, renderTable, renderHea
6484
6694
  const defaultRenderHeader = useCallback(({ columns, headerProps })=>/*#__PURE__*/ jsx("thead", {
6485
6695
  ...headerProps,
6486
6696
  children: /*#__PURE__*/ jsx("tr", {
6487
- children: columns.map((column)=>/*#__PURE__*/ jsx("th", {
6697
+ children: columns.map((column)=>// oxlint-disable-next-line jsx-a11y/no-redundant-roles
6698
+ /*#__PURE__*/ jsx("th", {
6488
6699
  role: "columnheader",
6489
6700
  children: column.header
6490
6701
  }, column.id))
@@ -7626,7 +7837,7 @@ const TypeaheadComboboxSeparator = (props)=>{
7626
7837
  }
7627
7838
  // role="presentation" keeps the decorative separator out of the listbox's owned children (which
7628
7839
  // must be only options) now that menu children render as direct children of the <ul role="listbox">.
7629
- return /*#__PURE__*/ jsx(Separator, {
7840
+ return /*#__PURE__*/ jsx(Separator$1, {
7630
7841
  role: "presentation",
7631
7842
  ...props
7632
7843
  });
@@ -7638,7 +7849,7 @@ const TypeaheadComboboxAddButton = /*#__PURE__*/ forwardRef(function TypeaheadCo
7638
7849
  if (!isInsideTypeaheadCombobox) {
7639
7850
  throw new Error('`TypeaheadComboboxAddButton` must be used within `TypeaheadComboboxRoot`');
7640
7851
  }
7641
- return /*#__PURE__*/ jsx(Button, {
7852
+ return /*#__PURE__*/ jsx(Button$1, {
7642
7853
  ...restProps,
7643
7854
  // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Validated in the Root for the context exempt:ae0b57c6-871d-4375-a3ea-2574d7a3899e
7644
7855
  componentId: componentIdProp ?? `${componentId}.add_option`,
@@ -8304,5 +8515,5 @@ const DM_SANS_FONT_FAMILY = "'DM Sans', -apple-system, BlinkMacSystemFont, 'Sego
8304
8515
  // code and other tabular text keep a fixed-width face if the web font fails to load.
8305
8516
  const DM_MONO_FONT_FAMILY = "'DM Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace";
8306
8517
 
8307
- export { TableHeader as $, Alert as A, Breadcrumb as B, Card as C, DBAssistantAvatar as D, ROW_GUTTER_SIZE as E, FormUI as F, GenericSkeleton as G, Header as H, InfoPopover as I, ResourceStatusIndicator as J, Row as K, LegacyDatePicker as L, Menu as M, Notification as N, Overflow as O, PageWrapper as P, Space as Q, RHFControlledComponents as R, SnackBar as S, TypeaheadComboboxRoot as T, Steps as U, Switch as V, Table as W, TableCell as X, TableContext as Y, TableFilterInput as Z, TableFilterLayout as _, TypeaheadComboboxMultiSelectInput as a, TableRow as a0, TableRowAction as a1, TableRowActionHeader as a2, TableRowContext as a3, TableRowMenuContainer as a4, TableRowMultiAction as a5, TableRowSelectCell as a6, TableSkeleton as a7, TableSkeletonRows as a8, TreeGrid as a9, useLegacyNotification as aA, useSnackBar as aB, useThemedStyles as aC, withNotifications as aD, TruncationTooltip as aa, TypeaheadComboboxAddButton$1 as ab, TypeaheadComboboxInput$1 as ac, TypeaheadComboboxMenu$1 as ad, TypeaheadComboboxMultiSelectInput$1 as ae, TypeaheadComboboxRoot$1 as af, TypeaheadComboboxSectionHeader$1 as ag, TypeaheadComboboxSeparator$1 as ah, TypeaheadComboboxToggleButton$1 as ai, index as aj, consumerDarkColorList as ak, consumerLightColorList as al, flushFastdomForTesting as am, getGlobalResetStyles as an, getGlobalStyles as ao, getSwitchWithLabelStyles as ap, isSafeRelativeUrl as aq, isSafeUrl as ar, measure as as, sanitizeNextUrl as at, setupDesignSystemEventProviderForTesting as au, snackBarManager as av, update as aw, useDefaultTreeGridState as ax, useDesignSystemFlags as ay, useFastDom as az, TypeaheadComboboxMenu as b, TypeaheadComboboxInput as c, ApplyGlobalStyles as d, AssistantAvatar as e, AutoComplete as f, Avatar as g, AvatarGroup as h, Col as i, DM_MONO_FONT_FAMILY as j, DM_SANS_FONT_FAMILY as k, DesignTokenScopeWithEmotionTheme as l, DialogComboboxAddButton as m, DialogComboboxFooter as n, DialogComboboxHintRow as o, DialogComboboxOptionControlledList as p, DialogComboboxOptionListSearch as q, DialogComboboxSeparator as r, Dropdown as s, DuboisDatePicker as t, useComboboxState as u, HoverCard as v, LegacyPopover as w, LegacySkeleton as x, OverflowPopover as y, ParagraphSkeleton as z };
8308
- //# sourceMappingURL=index-BRAVZg-S.js.map
8518
+ export { TableFilterLayout as $, Alert as A, Breadcrumb as B, Card as C, DBAssistantAvatar as D, ROW_GUTTER_SIZE as E, FormUI as F, GenericSkeleton as G, Header as H, InfoPopover as I, ResourceStatusIndicator as J, Row as K, LegacyDatePicker as L, Menu as M, Notification as N, Overflow as O, PageWrapper as P, SnackBar as Q, RHFControlledComponents as R, Slider as S, TypeaheadComboboxRoot as T, Space as U, Steps as V, Switch as W, Table as X, TableCell as Y, TableContext as Z, TableFilterInput as _, TypeaheadComboboxMultiSelectInput as a, TableHeader as a0, TableRow as a1, TableRowAction as a2, TableRowActionHeader as a3, TableRowContext as a4, TableRowMenuContainer as a5, TableRowMultiAction as a6, TableRowSelectCell as a7, TableSkeleton as a8, TableSkeletonRows as a9, useDesignSystemFlags as aA, useFastDom as aB, useLegacyNotification as aC, useSnackBar as aD, useThemedStyles as aE, withNotifications as aF, Toolbar as aa, TreeGrid as ab, TruncationTooltip as ac, TypeaheadComboboxAddButton$1 as ad, TypeaheadComboboxInput$1 as ae, TypeaheadComboboxMenu$1 as af, TypeaheadComboboxMultiSelectInput$1 as ag, TypeaheadComboboxRoot$1 as ah, TypeaheadComboboxSectionHeader$1 as ai, TypeaheadComboboxSeparator$1 as aj, TypeaheadComboboxToggleButton$1 as ak, index as al, consumerDarkColorList as am, consumerLightColorList as an, flushFastdomForTesting as ao, getGlobalResetStyles as ap, getGlobalStyles as aq, getSwitchWithLabelStyles as ar, isSafeRelativeUrl as as, isSafeUrl as at, measure as au, sanitizeNextUrl as av, setupDesignSystemEventProviderForTesting as aw, snackBarManager as ax, update as ay, useDefaultTreeGridState as az, TypeaheadComboboxMenu as b, TypeaheadComboboxInput as c, ApplyGlobalStyles as d, AssistantAvatar as e, AutoComplete as f, Avatar as g, AvatarGroup as h, Col as i, DM_MONO_FONT_FAMILY as j, DM_SANS_FONT_FAMILY as k, DesignTokenScopeWithEmotionTheme as l, DialogComboboxAddButton as m, DialogComboboxFooter as n, DialogComboboxHintRow as o, DialogComboboxOptionControlledList as p, DialogComboboxOptionListSearch as q, DialogComboboxSeparator as r, Dropdown as s, DuboisDatePicker as t, useComboboxState as u, HoverCard as v, LegacyPopover as w, LegacySkeleton as x, OverflowPopover as y, ParagraphSkeleton as z };
8519
+ //# sourceMappingURL=index-CUCuUviS.js.map