@moderneinc/design-system-components 6.0.1-next.d0f7d0 → 6.1.0-alpha.034d53

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.
package/dist/index.js CHANGED
@@ -26,9 +26,11 @@ var Divider = require('@mui/material/Divider');
26
26
  var InputAdornment = require('@mui/material/InputAdornment');
27
27
  var InputBase = require('@mui/material/InputBase');
28
28
  var TextField = require('@mui/material/TextField');
29
+ var FormControl = require('@mui/material/FormControl');
29
30
  var FormLabel = require('@mui/material/FormLabel');
30
- var InputLabel = require('@mui/material/InputLabel');
31
+ var MuiInputLabel = require('@mui/material/InputLabel');
31
32
  var MuiSelect = require('@mui/material/Select');
33
+ var utils = require('@mui/material/utils');
32
34
  var MenuItem = require('@mui/material/MenuItem');
33
35
  var Tooltip = require('@mui/material/Tooltip');
34
36
  var DateCalendar = require('@mui/x-date-pickers/DateCalendar');
@@ -43,7 +45,6 @@ var dateFns = require('date-fns');
43
45
  var LinearProgress = require('@mui/material/LinearProgress');
44
46
  var Paper = require('@mui/material/Paper');
45
47
  var Stack = require('@mui/material/Stack');
46
- var FormControl = require('@mui/material/FormControl');
47
48
  var FormHelperText = require('@mui/material/FormHelperText');
48
49
  var ListItemButton = require('@mui/material/ListItemButton');
49
50
  var ListItemIcon = require('@mui/material/ListItemIcon');
@@ -82,29 +83,35 @@ var RichTreeViewPro = require('@mui/x-tree-view-pro/RichTreeViewPro');
82
83
  const MUI_INTERNAL_PROPS = ['ownerState', 'theme', 'sx', 'as'];
83
84
  const isMuiInternalProp = (prop) => MUI_INTERNAL_PROPS.includes(prop);
84
85
 
86
+ // semanticColors.status.<name> feeds `palette` below, read with
87
+ // .light/.dark/.transparent, so the phase-2 token restructure's codemod
88
+ // (driven from literal TOKEN_MAP paths) cannot reach either — fixed by hand,
89
+ // mirroring ModStatusCell/Dot. See
90
+ // docs/superpowers/plans/2026-08-05-semantic-restructure.md
91
+ // "Dynamic access — the codemod cannot see these".
85
92
  const STATUS_COLOR_CLASSES = [
86
- [Chip.chipClasses.colorDefault, designSystemTokens.semanticColors.status.neutral],
87
- [Chip.chipClasses.colorError, designSystemTokens.semanticColors.status.error],
88
- [Chip.chipClasses.colorWarning, designSystemTokens.semanticColors.status.warning],
89
- [Chip.chipClasses.colorSuccess, designSystemTokens.semanticColors.status.success],
90
- [Chip.chipClasses.colorInfo, designSystemTokens.semanticColors.status.info],
93
+ [Chip.chipClasses.colorDefault, designSystemTokens.semanticColors.color.status.neutral],
94
+ [Chip.chipClasses.colorError, designSystemTokens.semanticColors.color.status.error],
95
+ [Chip.chipClasses.colorWarning, designSystemTokens.semanticColors.color.status.warning],
96
+ [Chip.chipClasses.colorSuccess, designSystemTokens.semanticColors.color.status.success],
97
+ [Chip.chipClasses.colorInfo, designSystemTokens.semanticColors.color.status.info],
91
98
  ];
92
99
  const outlinedColorOverrides = {
93
100
  backgroundColor: 'transparent',
94
- color: designSystemTokens.semanticColors.typography.bodySecondary,
95
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
101
+ color: designSystemTokens.semanticColors.color.text.secondary,
102
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
96
103
  [`& .${Chip.chipClasses.icon}, & .${Chip.chipClasses.deleteIcon}`]: {
97
- color: designSystemTokens.semanticColors.typography.bodySecondary,
104
+ color: designSystemTokens.semanticColors.color.text.secondary,
98
105
  },
99
106
  };
100
107
  const filledColorRules = Object.fromEntries(STATUS_COLOR_CLASSES.map(([className, palette]) => [
101
108
  `&.${className}`,
102
109
  {
103
- backgroundColor: palette.light,
104
- color: palette.dark,
105
- border: `1px solid ${palette.transparent}`,
110
+ backgroundColor: palette.bg,
111
+ color: palette.fg,
112
+ border: `1px solid ${palette.tint}`,
106
113
  [`& .${Chip.chipClasses.icon}, & .${Chip.chipClasses.deleteIcon}`]: {
107
- color: palette.dark,
114
+ color: palette.fg,
108
115
  },
109
116
  },
110
117
  ]));
@@ -178,7 +185,7 @@ const avatarIndexFromSeed = (seed) => seed ? ((djb2Hash(seed) % 7) + 1) : undefi
178
185
  * Produces a double-ring effect: a white inner gap (via outline-offset) and a colored outer ring.
179
186
  */
180
187
  const focusRingStyles = {
181
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
188
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
182
189
  outlineOffset: '2px',
183
190
  };
184
191
 
@@ -186,9 +193,14 @@ const sizeConfig$1 = {
186
193
  small: { size: designSystemTokens.spacing.spacing_2_1_2, fontSize: designSystemTokens.typography.fontSize.xs },
187
194
  medium: { size: designSystemTokens.spacing.spacing_4, fontSize: designSystemTokens.typography.fontSize.xs },
188
195
  };
196
+ // semanticColors.avatar.initials[...] is a computed member access, so the
197
+ // phase-2 token restructure's codemod (driven from literal TOKEN_MAP paths)
198
+ // cannot reach it — fixed by hand, mirroring ModStatusCell/Dot. See
199
+ // docs/superpowers/plans/2026-08-05-semantic-restructure.md
200
+ // "Dynamic access — the codemod cannot see these".
189
201
  const indexedColors = (colorIndex) => ({
190
- color: designSystemTokens.semanticColors.avatar.initials[`text${colorIndex}`],
191
- backgroundColor: designSystemTokens.semanticColors.avatar.initials[`background${colorIndex}`],
202
+ color: designSystemTokens.semanticColors.avatar.initials[`fg${colorIndex}`],
203
+ backgroundColor: designSystemTokens.semanticColors.avatar.initials[`bg${colorIndex}`],
192
204
  borderColor: designSystemTokens.semanticColors.avatar.initials[`border${colorIndex}`],
193
205
  });
194
206
  const StyledAvatar = styles.styled(MuiAvatar, {
@@ -203,13 +215,13 @@ const StyledAvatar = styles.styled(MuiAvatar, {
203
215
  fontFamily: designSystemTokens.typography.fontFamily.body,
204
216
  fontWeight: designSystemTokens.typography.fontWeight.regular,
205
217
  lineHeight: 1,
206
- color: designSystemTokens.semanticColors.avatar.userDefaultText,
207
- backgroundColor: designSystemTokens.semanticColors.avatar.userDefaultBg,
208
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
218
+ color: designSystemTokens.semanticColors.avatar.user.fg,
219
+ backgroundColor: designSystemTokens.semanticColors.avatar.user.bg,
220
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
209
221
  ...(avatarColorIndex && indexedColors(avatarColorIndex)),
210
222
  '&:focus-visible': {
211
223
  ...focusRingStyles,
212
- borderColor: designSystemTokens.semanticColors.border.focus,
224
+ borderColor: designSystemTokens.semanticColors.color.border.focus,
213
225
  },
214
226
  };
215
227
  });
@@ -324,7 +336,7 @@ const HeaderContainer = styles.styled(Box)(({ size }) => {
324
336
  return {
325
337
  width: '34px',
326
338
  height: `${modRowHeights[size]}px`,
327
- borderBottom: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
339
+ borderBottom: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
328
340
  boxSizing: 'border-box',
329
341
  display: 'flex',
330
342
  alignItems: 'center',
@@ -432,7 +444,7 @@ const ModActivityIndicatorCell = ({ event = 'commit-job', secondaryEvent, scene
432
444
  if (scene === exports.ActivityScene.BLANK) {
433
445
  return null;
434
446
  }
435
- const color = event !== 'none' ? ACTIVITY_COLORS[event] : designSystemTokens.semanticColors.border.secondary;
447
+ const color = event !== 'none' ? ACTIVITY_COLORS[event] : designSystemTokens.semanticColors.color.border.primary;
436
448
  // Use secondary color for paths if specified, otherwise use primary color
437
449
  const pathColor = secondaryEvent && secondaryEvent !== 'none' ? ACTIVITY_COLORS[secondaryEvent] : color;
438
450
  switch (scene) {
@@ -460,12 +472,18 @@ const ModActivityIndicatorCell = ({ event = 'commit-job', secondaryEvent, scene
460
472
  ModActivityIndicatorCell.displayName = 'ModActivityIndicatorCell';
461
473
 
462
474
  const neutralSmallShadow = `${designSystemTokens.shadows.neutral.small.x}px ${designSystemTokens.shadows.neutral.small.y}px ${designSystemTokens.shadows.neutral.small.blur}px ${designSystemTokens.shadows.neutral.small.spread}px ${designSystemTokens.shadows.neutral.small.shadow}`;
475
+ // semanticColors.status[intent] is read dynamically below, so the phase-2
476
+ // token restructure's codemod (driven from literal TOKEN_MAP paths) cannot
477
+ // reach these group references or the .default/.dark/.light/.transparent
478
+ // reads on `palette` — fixed by hand, mirroring ModStatusCell/Dot. See
479
+ // docs/superpowers/plans/2026-08-05-semantic-restructure.md
480
+ // "Dynamic access — the codemod cannot see these".
463
481
  const intentColors$1 = {
464
- success: designSystemTokens.semanticColors.status.success,
465
- error: designSystemTokens.semanticColors.status.error,
466
- warning: designSystemTokens.semanticColors.status.warning,
467
- offline: designSystemTokens.semanticColors.status.neutral,
468
- info: designSystemTokens.semanticColors.status.info,
482
+ success: designSystemTokens.semanticColors.color.status.success,
483
+ error: designSystemTokens.semanticColors.color.status.error,
484
+ warning: designSystemTokens.semanticColors.color.status.warning,
485
+ offline: designSystemTokens.semanticColors.color.status.neutral,
486
+ info: designSystemTokens.semanticColors.color.status.info,
469
487
  };
470
488
  // biome-ignore lint/suspicious/noExplicitAny: Type cast required to override MUI Alert variant type without global augmentation
471
489
  const StyledAlert$2 = styles.styled(Alert, {
@@ -474,10 +492,10 @@ const StyledAlert$2 = styles.styled(Alert, {
474
492
  const palette = intentColors$1[intent];
475
493
  const isFilled = alertType === 'filled';
476
494
  const isCompact = alertSize === 'compact';
477
- const iconColor = isFilled ? designSystemTokens.semanticColors.typography.tooltip.default : palette.default;
495
+ const iconColor = isFilled ? designSystemTokens.semanticColors.color.text.tooltip : palette.solid;
478
496
  const messageColor = isFilled
479
- ? designSystemTokens.semanticColors.typography.tooltip.default
480
- : designSystemTokens.semanticColors.typography.body;
497
+ ? designSystemTokens.semanticColors.color.text.tooltip
498
+ : designSystemTokens.semanticColors.color.text.primary;
481
499
  return {
482
500
  ...(isCompact
483
501
  ? { minHeight: designSystemTokens.spacing.spacing_5 }
@@ -494,9 +512,9 @@ const StyledAlert$2 = styles.styled(Alert, {
494
512
  padding: hasChildren
495
513
  ? `${designSystemTokens.spacing.spacing_1_1_2}px ${designSystemTokens.spacing.spacing_2}px`
496
514
  : `0 ${designSystemTokens.spacing.spacing_2}px`,
497
- backgroundColor: isFilled ? palette.dark : palette.light,
498
- border: isFilled ? 'none' : `1px solid ${palette.transparent}`,
499
- color: isFilled ? designSystemTokens.semanticColors.typography.tooltip.default : designSystemTokens.semanticColors.typography.body,
515
+ backgroundColor: isFilled ? palette.fg : palette.bg,
516
+ border: isFilled ? 'none' : `1px solid ${palette.tint}`,
517
+ color: isFilled ? designSystemTokens.semanticColors.color.text.tooltip : designSystemTokens.semanticColors.color.text.primary,
500
518
  boxShadow: isFilled ? neutralSmallShadow : undefined,
501
519
  [`& .${Alert.alertClasses.icon}`]: {
502
520
  color: iconColor,
@@ -514,9 +532,7 @@ const StyledAlert$2 = styles.styled(Alert, {
514
532
  '& span:last-child': {
515
533
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
516
534
  fontWeight: designSystemTokens.typography.fontWeight.medium,
517
- color: isFilled
518
- ? designSystemTokens.semanticColors.typography.tooltip.default
519
- : designSystemTokens.semanticColors.typography.bodySecondary,
535
+ color: isFilled ? designSystemTokens.semanticColors.color.text.tooltip : designSystemTokens.semanticColors.color.text.secondary,
520
536
  lineHeight: 1.4,
521
537
  },
522
538
  },
@@ -524,7 +540,7 @@ const StyledAlert$2 = styles.styled(Alert, {
524
540
  padding: 0,
525
541
  marginRight: 0,
526
542
  ...(isFilled && {
527
- color: designSystemTokens.semanticColors.typography.tooltip.default,
543
+ color: designSystemTokens.semanticColors.color.text.tooltip,
528
544
  [`& .${ButtonBase.buttonBaseClasses.root}`]: { color: 'inherit' },
529
545
  }),
530
546
  },
@@ -546,12 +562,18 @@ const ModAlert = ({ intent = 'success', type = 'outlined', size = 'default', tit
546
562
  };
547
563
  ModAlert.displayName = 'ModAlert';
548
564
 
565
+ // semanticColors.status[intent] is read dynamically below, so the phase-2
566
+ // token restructure's codemod (driven from literal TOKEN_MAP paths) cannot
567
+ // reach these group references or the .default/.dark/.light reads on
568
+ // `palette` — fixed by hand, mirroring ModStatusCell/Dot. See
569
+ // docs/superpowers/plans/2026-08-05-semantic-restructure.md
570
+ // "Dynamic access — the codemod cannot see these".
549
571
  const intentColors = {
550
- info: designSystemTokens.semanticColors.status.info,
551
- success: designSystemTokens.semanticColors.status.success,
552
- error: designSystemTokens.semanticColors.status.error,
553
- warning: designSystemTokens.semanticColors.status.warning,
554
- neutral: designSystemTokens.semanticColors.status.neutral,
572
+ info: designSystemTokens.semanticColors.color.status.info,
573
+ success: designSystemTokens.semanticColors.color.status.success,
574
+ error: designSystemTokens.semanticColors.color.status.error,
575
+ warning: designSystemTokens.semanticColors.color.status.warning,
576
+ neutral: designSystemTokens.semanticColors.color.status.neutral,
555
577
  };
556
578
  // biome-ignore lint/suspicious/noExplicitAny: Type cast required to override MUI Alert variant type without global augmentation
557
579
  const StyledAlert$1 = styles.styled(Alert, {
@@ -560,12 +582,12 @@ const StyledAlert$1 = styles.styled(Alert, {
560
582
  const palette = intentColors[intent];
561
583
  const typeStyles = bannerType === 'filled'
562
584
  ? {
563
- backgroundColor: palette.dark,
564
- color: designSystemTokens.semanticColors.surfaces.white,
585
+ backgroundColor: palette.fg,
586
+ color: designSystemTokens.semanticColors.color.surface.raised,
565
587
  }
566
588
  : {
567
- backgroundColor: palette.light,
568
- color: designSystemTokens.semanticColors.typography.body,
589
+ backgroundColor: palette.bg,
590
+ color: designSystemTokens.semanticColors.color.text.primary,
569
591
  };
570
592
  return {
571
593
  width: '100%',
@@ -614,8 +636,8 @@ const LinkText = styles.styled('span')(({ bannerType = 'outlined' }) => ({
614
636
  marginLeft: 'auto',
615
637
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
616
638
  color: bannerType === 'filled'
617
- ? designSystemTokens.semanticColors.typography.link.white
618
- : designSystemTokens.semanticColors.typography.link.primary,
639
+ ? designSystemTokens.semanticColors.color.text.linkOnBrand
640
+ : designSystemTokens.semanticColors.color.text.link,
619
641
  cursor: 'pointer',
620
642
  whiteSpace: 'nowrap',
621
643
  '&:hover': {
@@ -642,7 +664,7 @@ const ModBanner = ({ intent = 'info', type = 'outlined', message, messagePositio
642
664
  if (dismissed) {
643
665
  return null;
644
666
  }
645
- const closeIconColor = type === 'filled' ? designSystemTokens.semanticColors.surfaces.white : intentColors[intent].default;
667
+ const closeIconColor = type === 'filled' ? designSystemTokens.semanticColors.color.surface.raised : intentColors[intent].solid;
646
668
  return (jsxRuntime.jsx(StyledAlert$1, { ...props, intent: intent, bannerType: type, messagePosition: messagePosition, icon: messagePosition === 'left' ? icon || false : false, action: showClose ? (jsxRuntime.jsx(StyledIconButton, { size: "small", onClick: handleClose, closeIconColor: closeIconColor, children: jsxRuntime.jsx(lucideReact.X, { size: 16 }) })) : undefined, children: messagePosition === 'center' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [icon, jsxRuntime.jsx("span", { children: message }), linkText && (jsxRuntime.jsx(LinkText, { bannerType: type, onClick: onLinkClick, children: linkText }))] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { children: message }), linkText && (jsxRuntime.jsx(LinkText, { bannerType: type, onClick: onLinkClick, children: linkText }))] })) }));
647
669
  };
648
670
  ModBanner.displayName = 'ModBanner';
@@ -650,7 +672,7 @@ ModBanner.displayName = 'ModBanner';
650
672
  const StyledBreadcrumbs = styles.styled(Breadcrumbs)(() => ({
651
673
  [`& .${Breadcrumbs.breadcrumbsClasses.separator}`]: {
652
674
  margin: 0,
653
- color: designSystemTokens.semanticColors.icons.utility,
675
+ color: designSystemTokens.semanticColors.color.icon.utility,
654
676
  },
655
677
  [`& .${Breadcrumbs.breadcrumbsClasses.ol}`]: {
656
678
  gap: designSystemTokens.spacing.spacing_1,
@@ -663,15 +685,15 @@ const StyledBreadcrumbLink = styles.styled(Link, {
663
685
  fontWeight: designSystemTokens.typography.fontWeight.medium,
664
686
  lineHeight: 1,
665
687
  textDecoration: 'none',
666
- color: current ? designSystemTokens.semanticColors.typography.bodySecondary : designSystemTokens.semanticColors.typography.link.primary,
688
+ color: current ? designSystemTokens.semanticColors.color.text.secondary : designSystemTokens.semanticColors.color.text.link,
667
689
  cursor: current ? 'default' : 'pointer',
668
690
  borderRadius: designSystemTokens.borderRadius.xS,
669
691
  transition: 'color 0.2s ease-in-out',
670
692
  '&:hover': {
671
- color: current ? designSystemTokens.semanticColors.icons.hover : designSystemTokens.semanticColors.buttons.tertiary.hover,
693
+ color: current ? designSystemTokens.semanticColors.color.icon.hover : designSystemTokens.semanticColors.button.tertiary.fgHover,
672
694
  },
673
695
  '&:focus-visible': {
674
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
696
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
675
697
  outlineOffset: 2,
676
698
  },
677
699
  }));
@@ -709,7 +731,7 @@ function ModBreadcrumbLink({ current = false, children, component, ...props }) {
709
731
  * ```
710
732
  */
711
733
  function ModBreadcrumbs({ children, className }) {
712
- return (jsxRuntime.jsx(StyledBreadcrumbs, { separator: jsxRuntime.jsx(lucideReact.ChevronRight, { size: 10.67, color: designSystemTokens.semanticColors.icons.utility }), className: className, "aria-label": "breadcrumb", children: children }));
734
+ return (jsxRuntime.jsx(StyledBreadcrumbs, { separator: jsxRuntime.jsx(lucideReact.ChevronRight, { size: 10.67, color: designSystemTokens.semanticColors.color.icon.utility }), className: className, "aria-label": "breadcrumb", children: children }));
713
735
  }
714
736
 
715
737
  // Props that should not be forwarded to ButtonBase (Button-specific props that ButtonBase doesn't support)
@@ -761,90 +783,90 @@ const StyledButtonBase$1 = styles.styled(ButtonBase, {
761
783
  },
762
784
  // Focus visible for keyboard navigation
763
785
  [`&.${ButtonBase.buttonBaseClasses.focusVisible}`]: {
764
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
786
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
765
787
  outlineOffset: 2,
766
788
  },
767
789
  };
768
790
  // Variant-specific styles
769
791
  const variantStyles = {
770
792
  primary: {
771
- backgroundColor: designSystemTokens.semanticColors.buttons.primary.default,
772
- color: designSystemTokens.semanticColors.surfaces.white,
793
+ backgroundColor: designSystemTokens.semanticColors.button.primary.bg,
794
+ color: designSystemTokens.semanticColors.color.surface.raised,
773
795
  border: 'none',
774
796
  '&:hover': {
775
- backgroundColor: designSystemTokens.semanticColors.buttons.primary.hover,
797
+ backgroundColor: designSystemTokens.semanticColors.button.primary.bgHover,
776
798
  },
777
799
  '&:active': {
778
- backgroundColor: designSystemTokens.semanticColors.buttons.primary.pressed,
800
+ backgroundColor: designSystemTokens.semanticColors.button.primary.bgPressed,
779
801
  },
780
802
  ...(loading
781
803
  ? {}
782
804
  : {
783
805
  [`&.${ButtonBase.buttonBaseClasses.disabled}`]: {
784
- backgroundColor: designSystemTokens.semanticColors.buttons.primary.disabled,
785
- color: designSystemTokens.semanticColors.typography.button.disabled,
806
+ backgroundColor: designSystemTokens.semanticColors.button.primary.bgDisabled,
807
+ color: designSystemTokens.semanticColors.button.fgDisabled,
786
808
  },
787
809
  }),
788
810
  },
789
811
  secondary: {
790
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.defaultBackground,
791
- color: designSystemTokens.semanticColors.buttons.secondary.default,
792
- border: `1px solid ${designSystemTokens.semanticColors.buttons.secondary.defaultBorder}`,
812
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bg,
813
+ color: designSystemTokens.semanticColors.button.secondary.fg,
814
+ border: `1px solid ${designSystemTokens.semanticColors.button.secondary.border}`,
793
815
  '&:hover': {
794
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
816
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
795
817
  },
796
818
  '&:active': {
797
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.pressedBackground,
819
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgPressed,
798
820
  },
799
821
  ...(loading
800
822
  ? {}
801
823
  : {
802
824
  [`&.${ButtonBase.buttonBaseClasses.disabled}`]: {
803
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.disabledBackground,
804
- borderColor: designSystemTokens.semanticColors.border.secondary,
805
- color: designSystemTokens.semanticColors.typography.button.disabled,
825
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgDisabled,
826
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
827
+ color: designSystemTokens.semanticColors.button.fgDisabled,
806
828
  },
807
829
  }),
808
830
  },
809
831
  destructive: {
810
- backgroundColor: designSystemTokens.semanticColors.buttons.destructive,
811
- color: designSystemTokens.semanticColors.surfaces.white,
832
+ backgroundColor: designSystemTokens.semanticColors.button.destructive.bg,
833
+ color: designSystemTokens.semanticColors.color.surface.raised,
812
834
  border: 'none',
813
835
  '&:hover': {
814
- backgroundColor: designSystemTokens.semanticColors.status.error.dark,
836
+ backgroundColor: designSystemTokens.semanticColors.color.status.error.fg,
815
837
  },
816
838
  '&:active': {
817
- backgroundColor: designSystemTokens.semanticColors.status.error.dark,
839
+ backgroundColor: designSystemTokens.semanticColors.color.status.error.fg,
818
840
  filter: 'brightness(0.9)',
819
841
  },
820
842
  ...(loading
821
843
  ? {}
822
844
  : {
823
845
  [`&.${ButtonBase.buttonBaseClasses.disabled}`]: {
824
- backgroundColor: designSystemTokens.semanticColors.buttons.primary.disabled,
825
- color: designSystemTokens.semanticColors.typography.button.disabled,
846
+ backgroundColor: designSystemTokens.semanticColors.button.primary.bgDisabled,
847
+ color: designSystemTokens.semanticColors.button.fgDisabled,
826
848
  },
827
849
  }),
828
850
  },
829
851
  tertiary: {
830
852
  backgroundColor: 'transparent',
831
- color: designSystemTokens.semanticColors.typography.input.default,
853
+ color: designSystemTokens.semanticColors.color.text.input,
832
854
  border: 'none',
833
855
  padding: 0,
834
856
  lineHeight: 1,
835
857
  '&:hover': {
836
858
  backgroundColor: 'transparent',
837
- color: designSystemTokens.semanticColors.buttons.tertiary.hover,
859
+ color: designSystemTokens.semanticColors.button.tertiary.fgHover,
838
860
  },
839
861
  '&:active': {
840
- color: designSystemTokens.semanticColors.buttons.tertiary.pressed,
862
+ color: designSystemTokens.semanticColors.button.tertiary.fgPressed,
841
863
  },
842
864
  ...(loading
843
865
  ? {}
844
866
  : {
845
867
  [`&.${ButtonBase.buttonBaseClasses.disabled}`]: {
846
868
  backgroundColor: 'transparent',
847
- color: designSystemTokens.semanticColors.buttons.tertiary.disabled,
869
+ color: designSystemTokens.semanticColors.button.tertiary.fgDisabled,
848
870
  },
849
871
  }),
850
872
  },
@@ -859,10 +881,10 @@ const LoadingSpinner = styles.styled(CircularProgress, {
859
881
  })(({ $variant }) => {
860
882
  // Use appropriate spinner color for each variant to ensure visibility
861
883
  const spinnerColors = {
862
- primary: designSystemTokens.semanticColors.surfaces.white,
863
- secondary: designSystemTokens.semanticColors.buttons.primary.default,
864
- destructive: designSystemTokens.semanticColors.surfaces.white,
865
- tertiary: designSystemTokens.semanticColors.buttons.tertiary.default,
884
+ primary: designSystemTokens.semanticColors.color.surface.raised,
885
+ secondary: designSystemTokens.semanticColors.button.primary.bg,
886
+ destructive: designSystemTokens.semanticColors.color.surface.raised,
887
+ tertiary: designSystemTokens.semanticColors.button.tertiary.fg,
866
888
  };
867
889
  return {
868
890
  color: spinnerColors[$variant],
@@ -880,7 +902,7 @@ const StyledButtonTab = styles.styled(MuiToggleButton)(({ theme }) => ({
880
902
  fontFamily: designSystemTokens.typography.fontFamily.body,
881
903
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
882
904
  lineHeight: 1,
883
- color: designSystemTokens.semanticColors.typography.tab.inactive,
905
+ color: designSystemTokens.semanticColors.color.text.tabInactive,
884
906
  backgroundColor: 'transparent',
885
907
  border: 'none',
886
908
  padding: `${designSystemTokens.spacing.spacing_1}px ${designSystemTokens.spacing.spacing_1_1_2}px`,
@@ -890,15 +912,15 @@ const StyledButtonTab = styles.styled(MuiToggleButton)(({ theme }) => ({
890
912
  duration: theme.transitions.duration.short,
891
913
  }),
892
914
  '&:hover': {
893
- color: designSystemTokens.semanticColors.typography.tab.active,
915
+ color: designSystemTokens.semanticColors.color.text.tabActive,
894
916
  },
895
917
  '&.Mui-focusVisible': {
896
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
918
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
897
919
  outlineOffset: -2,
898
920
  borderRadius: designSystemTokens.borderRadius.xXS,
899
921
  },
900
922
  '&.Mui-disabled': {
901
- color: designSystemTokens.semanticColors.typography.button.disabled,
923
+ color: designSystemTokens.semanticColors.button.fgDisabled,
902
924
  cursor: 'default',
903
925
  pointerEvents: 'none',
904
926
  },
@@ -960,7 +982,7 @@ const StyledButtonTabGroup = styles.styled(MuiToggleButtonGroup)(({ theme, size
960
982
  };
961
983
  return {
962
984
  borderRadius: designSystemTokens.borderRadius.button,
963
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
985
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
964
986
  overflow: 'hidden',
965
987
  // Style all grouped children
966
988
  [`& .${MuiToggleButtonGroup.toggleButtonGroupClasses.grouped}`]: {
@@ -973,26 +995,26 @@ const StyledButtonTabGroup = styles.styled(MuiToggleButtonGroup)(({ theme, size
973
995
  lineHeight: 1,
974
996
  textTransform: 'none',
975
997
  border: 'none',
976
- borderRight: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
998
+ borderRight: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
977
999
  borderRadius: 0,
978
- color: designSystemTokens.semanticColors.typography.tab.inactive,
979
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.disabledBackground,
1000
+ color: designSystemTokens.semanticColors.color.text.tabInactive,
1001
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgDisabled,
980
1002
  transition: theme.transitions.create(['background-color', 'color', 'border-color'], {
981
1003
  duration: theme.transitions.duration.short,
982
1004
  }),
983
1005
  // Selected state — double selector for specificity over MUI ToggleButton defaults
984
1006
  [`&.${MuiToggleButton.toggleButtonClasses.selected}.${MuiToggleButton.toggleButtonClasses.selected}`]: {
985
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
986
- color: designSystemTokens.semanticColors.buttons.tertiary.default,
1007
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
1008
+ color: designSystemTokens.semanticColors.button.tertiary.fg,
987
1009
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
988
1010
  },
989
1011
  // Hover state
990
1012
  [`&:hover, &.${MuiToggleButton.toggleButtonClasses.selected}:hover`]: {
991
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
1013
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
992
1014
  },
993
1015
  // Focus visible for keyboard navigation
994
1016
  '&.Mui-focusVisible': {
995
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
1017
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
996
1018
  outlineOffset: -2,
997
1019
  zIndex: 1,
998
1020
  },
@@ -1009,8 +1031,8 @@ const StyledButtonTabGroup = styles.styled(MuiToggleButtonGroup)(({ theme, size
1009
1031
  },
1010
1032
  // Disabled state
1011
1033
  [`&.${MuiToggleButton.toggleButtonClasses.disabled}`]: {
1012
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.disabledBackground,
1013
- color: designSystemTokens.semanticColors.typography.button.disabled,
1034
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgDisabled,
1035
+ color: designSystemTokens.semanticColors.button.fgDisabled,
1014
1036
  cursor: 'not-allowed',
1015
1037
  pointerEvents: 'auto',
1016
1038
  },
@@ -1055,18 +1077,18 @@ const SmallStyledCard = styles.styled(MuiCard, {
1055
1077
  display: 'flex',
1056
1078
  flexDirection: 'column',
1057
1079
  gap: designSystemTokens.spacing.spacing_2, // 16px
1058
- backgroundColor: designSystemTokens.semanticColors.surfaces.card,
1059
- border: `1px solid ${selected ? designSystemTokens.semanticColors.buttons.primary.default : designSystemTokens.semanticColors.border.primary}`,
1080
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
1081
+ border: `1px solid ${selected ? designSystemTokens.semanticColors.button.primary.bg : designSystemTokens.semanticColors.color.border.primary}`,
1060
1082
  borderRadius: designSystemTokens.borderRadius.card,
1061
1083
  boxShadow: selected ? activeShadow : 'none',
1062
1084
  transition: theme.transitions.create(['border-color', 'background-color', 'box-shadow']),
1063
1085
  cursor: 'pointer',
1064
1086
  '&:hover': {
1065
- borderColor: designSystemTokens.semanticColors.buttons.primary.default,
1087
+ borderColor: designSystemTokens.semanticColors.button.primary.bg,
1066
1088
  boxShadow: activeShadow,
1067
1089
  },
1068
1090
  '&:focus-visible': {
1069
- borderColor: designSystemTokens.semanticColors.buttons.primary.default,
1091
+ borderColor: designSystemTokens.semanticColors.button.primary.bg,
1070
1092
  ...focusRingStyles,
1071
1093
  },
1072
1094
  ...(disabled && {
@@ -1091,7 +1113,7 @@ const SmallRecipeCount = styles.styled('p')(({ theme }) => ({
1091
1113
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.xxs), // 10px
1092
1114
  fontWeight: designSystemTokens.typography.fontWeight.semiBold, // 600
1093
1115
  lineHeight: 1.2,
1094
- color: designSystemTokens.semanticColors.typography.body,
1116
+ color: designSystemTokens.semanticColors.color.text.primary,
1095
1117
  whiteSpace: 'nowrap',
1096
1118
  }));
1097
1119
  const SmallCardContent = styles.styled('div')(() => ({
@@ -1105,7 +1127,7 @@ const SmallTitle = styles.styled('p')(({ theme }) => ({
1105
1127
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.h6), // 16px
1106
1128
  fontWeight: designSystemTokens.typography.fontWeight.semiBold, // 600
1107
1129
  lineHeight: 1.4,
1108
- color: designSystemTokens.semanticColors.typography.body,
1130
+ color: designSystemTokens.semanticColors.color.text.primary,
1109
1131
  width: '100%',
1110
1132
  }));
1111
1133
  const SmallDescription = styles.styled('p')(({ theme }) => ({
@@ -1113,7 +1135,7 @@ const SmallDescription = styles.styled('p')(({ theme }) => ({
1113
1135
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.xs), // 12px
1114
1136
  fontWeight: designSystemTokens.typography.fontWeight.regular, // 400
1115
1137
  lineHeight: 1.5,
1116
- color: designSystemTokens.semanticColors.typography.body,
1138
+ color: designSystemTokens.semanticColors.color.text.primary,
1117
1139
  width: '100%',
1118
1140
  display: '-webkit-box',
1119
1141
  WebkitLineClamp: 2,
@@ -1130,12 +1152,10 @@ const LargeStyledCard = styles.styled(MuiCard, {
1130
1152
  // sourcing one side from `semanticColors` (which flips) and the other from a
1131
1153
  // primitive (which doesn't) puts light-mode text on a dark surface in dark
1132
1154
  // mode. `semanticColorsDark` is the literal-hex escape hatch for exactly this.
1133
- const activeBorderColor = isLight
1134
- ? designSystemTokens.semanticColors.buttons.primary.default
1135
- : designSystemTokens.colors.digitalGreen[300];
1155
+ const activeBorderColor = isLight ? designSystemTokens.semanticColors.button.primary.bg : designSystemTokens.colors.digitalGreen[300];
1136
1156
  const defaultBorderColor = isLight
1137
- ? designSystemTokens.semanticColors.border.primary
1138
- : designSystemTokens.semanticColorsDark.border.primary;
1157
+ ? designSystemTokens.semanticColors.color.border.primary
1158
+ : designSystemTokens.semanticColorsDark.color.border.primary;
1139
1159
  return {
1140
1160
  width: 340,
1141
1161
  height: 162,
@@ -1145,7 +1165,9 @@ const LargeStyledCard = styles.styled(MuiCard, {
1145
1165
  alignItems: 'flex-start',
1146
1166
  padding: designSystemTokens.spacing.spacing_2,
1147
1167
  borderRadius: designSystemTokens.borderRadius.card,
1148
- backgroundColor: isLight ? designSystemTokens.semanticColors.surfaces.card : designSystemTokens.semanticColorsDark.surfaces.card,
1168
+ backgroundColor: isLight
1169
+ ? designSystemTokens.semanticColors.color.surface.raised
1170
+ : designSystemTokens.semanticColorsDark.color.surface.raised,
1149
1171
  border: `1px solid ${defaultBorderColor}`,
1150
1172
  boxShadow: 'none',
1151
1173
  overflow: 'hidden',
@@ -1200,7 +1222,9 @@ const LargeHeaderTitle = styles.styled('span', {
1200
1222
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
1201
1223
  fontSize: designSystemTokens.typography.fontSize.h6,
1202
1224
  lineHeight: 1.4,
1203
- color: cardTheme === 'light' ? designSystemTokens.semanticColors.typography.body : designSystemTokens.semanticColorsDark.typography.body,
1225
+ color: cardTheme === 'light'
1226
+ ? designSystemTokens.semanticColors.color.text.primary
1227
+ : designSystemTokens.semanticColorsDark.color.text.primary,
1204
1228
  flexShrink: 0,
1205
1229
  }));
1206
1230
  const LargeDescription = styles.styled('p', {
@@ -1210,7 +1234,9 @@ const LargeDescription = styles.styled('p', {
1210
1234
  fontWeight: designSystemTokens.typography.fontWeight.regular,
1211
1235
  fontSize: designSystemTokens.typography.fontSize.xs,
1212
1236
  lineHeight: 1.5,
1213
- color: cardTheme === 'light' ? designSystemTokens.semanticColors.typography.body : designSystemTokens.semanticColorsDark.typography.body,
1237
+ color: cardTheme === 'light'
1238
+ ? designSystemTokens.semanticColors.color.text.primary
1239
+ : designSystemTokens.semanticColorsDark.color.text.primary,
1214
1240
  margin: 0,
1215
1241
  minWidth: '100%',
1216
1242
  wordWrap: 'break-word',
@@ -1259,7 +1285,7 @@ const Label$4 = styles.styled('span')(({ theme, size = 'medium' }) => ({
1259
1285
  : designSystemTokens.typography.fontSize.default),
1260
1286
  fontWeight: designSystemTokens.typography.fontWeight.medium,
1261
1287
  lineHeight: size === 'xs' ? 1.5 : size === 'small' ? 1.4 : 1.5,
1262
- color: designSystemTokens.semanticColors.typography.input.default,
1288
+ color: designSystemTokens.semanticColors.color.text.input,
1263
1289
  }));
1264
1290
  const HelperText$2 = styles.styled('span')(({ theme, size = 'medium' }) => ({
1265
1291
  fontSize: theme.typography.pxToRem(size === 'xs'
@@ -1269,7 +1295,7 @@ const HelperText$2 = styles.styled('span')(({ theme, size = 'medium' }) => ({
1269
1295
  : designSystemTokens.typography.fontSize.default),
1270
1296
  fontWeight: designSystemTokens.typography.fontWeight.regular,
1271
1297
  lineHeight: size === 'xs' ? 1.5 : size === 'small' ? 1.4 : 1.5,
1272
- color: designSystemTokens.semanticColors.typography.bodySecondary,
1298
+ color: designSystemTokens.semanticColors.color.text.secondary,
1273
1299
  }));
1274
1300
  // xs focus-ring radius — no matching design token (box corner comes from the icon)
1275
1301
  const FIGMA_XS_BORDER_RADIUS = 1;
@@ -1297,7 +1323,7 @@ const StyledCheckbox = styles.styled(Checkbox, {
1297
1323
  height: config.size,
1298
1324
  padding: 0,
1299
1325
  marginTop: size === 'xs' ? 3 : 2,
1300
- color: designSystemTokens.semanticColors.border.strong,
1326
+ color: designSystemTokens.semanticColors.color.border.strong,
1301
1327
  borderRadius: config.borderRadius,
1302
1328
  flexShrink: 0,
1303
1329
  // Suppress MUI's grey hover background
@@ -1323,11 +1349,11 @@ const StyledCheckbox = styles.styled(Checkbox, {
1323
1349
  cursor: 'not-allowed',
1324
1350
  },
1325
1351
  [`&.${Checkbox.checkboxClasses.disabled}:not(.${Checkbox.checkboxClasses.checked}):not(.${Checkbox.checkboxClasses.indeterminate})`]: {
1326
- color: designSystemTokens.semanticColors.border.primary,
1352
+ color: designSystemTokens.semanticColors.color.border.primary,
1327
1353
  },
1328
1354
  // Focus visible for keyboard navigation
1329
1355
  '&.Mui-focusVisible': {
1330
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
1356
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
1331
1357
  outlineOffset: 2,
1332
1358
  borderRadius: config.borderRadius,
1333
1359
  },
@@ -1454,20 +1480,20 @@ const StyledButtonBase = styles.styled(ButtonBase, {
1454
1480
  cursor: 'text',
1455
1481
  // Focus visible for keyboard navigation
1456
1482
  [`&.${ButtonBase.buttonBaseClasses.focusVisible}`]: {
1457
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
1483
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
1458
1484
  outlineOffset: 2,
1459
1485
  },
1460
1486
  };
1461
1487
  // Variant-specific styles
1462
1488
  const variantStyles = {
1463
1489
  outlined: {
1464
- backgroundColor: designSystemTokens.semanticColors.code.background,
1465
- color: designSystemTokens.semanticColors.typography.code.primary,
1490
+ backgroundColor: designSystemTokens.semanticColors.code.bg,
1491
+ color: designSystemTokens.semanticColors.color.text.code,
1466
1492
  border: 'none',
1467
1493
  },
1468
1494
  filled: {
1469
- backgroundColor: designSystemTokens.semanticColors.surfaces.tooltip,
1470
- color: designSystemTokens.semanticColors.typography.tooltip.default,
1495
+ backgroundColor: designSystemTokens.semanticColors.color.surface.tooltip,
1496
+ color: designSystemTokens.semanticColors.color.text.tooltip,
1471
1497
  border: 'none',
1472
1498
  },
1473
1499
  };
@@ -1509,15 +1535,15 @@ ModCodeSnippet.displayName = 'ModCodeSnippet';
1509
1535
  * they carry this surface themselves.
1510
1536
  */
1511
1537
  const panelSurfaceStyles = {
1512
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
1538
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
1513
1539
  };
1514
1540
  const getDataGridHeaderStyles = () => {
1515
1541
  return {
1516
1542
  // Header cell container styles - from Figma: bg, border, padding
1517
1543
  // Height is set via density-specific selectors in DataGrid.tsx
1518
1544
  [`& .${xDataGrid.gridClasses.columnHeader}`]: {
1519
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.header,
1520
- borderBottom: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
1545
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.header,
1546
+ borderBottom: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
1521
1547
  paddingTop: `${designSystemTokens.spacing.spacing_1_1_2}px`,
1522
1548
  paddingBottom: `${designSystemTokens.spacing.spacing_1_1_2}px`,
1523
1549
  paddingLeft: `${designSystemTokens.spacing.spacing_2}px`,
@@ -1527,8 +1553,8 @@ const getDataGridHeaderStyles = () => {
1527
1553
  // Style the filler element to match header
1528
1554
  // Height is set via density-specific selectors in DataGrid.tsx
1529
1555
  [`& .${xDataGrid.gridClasses.filler}`]: {
1530
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.header,
1531
- borderBottom: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
1556
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.header,
1557
+ borderBottom: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
1532
1558
  boxSizing: 'border-box',
1533
1559
  },
1534
1560
  // Style the default MUI column header title text to match Figma
@@ -1537,14 +1563,14 @@ const getDataGridHeaderStyles = () => {
1537
1563
  fontSize: designSystemTokens.typography.fontSize.sm,
1538
1564
  fontWeight: designSystemTokens.typography.fontWeight.semiBold, // Always semiBold (600)
1539
1565
  lineHeight: 'normal',
1540
- color: designSystemTokens.semanticColors.typography.bodySecondary, // #6b7280 by default
1566
+ color: designSystemTokens.semanticColors.color.text.secondary, // #6b7280 by default
1541
1567
  transition: 'color 0.2s',
1542
1568
  textOverflow: 'clip',
1543
1569
  whiteSpace: 'break-spaces',
1544
1570
  },
1545
1571
  // Change text color on hover
1546
1572
  [`& .${xDataGrid.gridClasses.columnHeader}:hover .${xDataGrid.gridClasses.columnHeaderTitle}`]: {
1547
- color: designSystemTokens.semanticColors.icons.default, // #1f2937 on hover
1573
+ color: designSystemTokens.semanticColors.color.icon.default, // #1f2937 on hover
1548
1574
  },
1549
1575
  // Style the checkbox in header to match design system (16x16 from Figma)
1550
1576
  [`& .${xDataGrid.gridClasses.columnHeaderCheckbox}`]: {
@@ -1578,7 +1604,7 @@ const getDataGridHeaderStyles = () => {
1578
1604
  '& svg': {
1579
1605
  width: 16,
1580
1606
  height: 16,
1581
- color: designSystemTokens.semanticColors.icons.utility,
1607
+ color: designSystemTokens.semanticColors.color.icon.utility,
1582
1608
  },
1583
1609
  },
1584
1610
  },
@@ -1586,16 +1612,16 @@ const getDataGridHeaderStyles = () => {
1586
1612
  };
1587
1613
  const getDataGridRowStyles = () => ({
1588
1614
  [`& .${xDataGrid.gridClasses.row}`]: {
1589
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.default,
1615
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.default,
1590
1616
  },
1591
1617
  [`& .${xDataGrid.gridClasses.row}:hover`]: {
1592
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.hover,
1618
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.hover,
1593
1619
  },
1594
1620
  [`& .${xDataGrid.gridClasses.row}.Mui-selected`]: {
1595
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.selected,
1621
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.selected,
1596
1622
  },
1597
1623
  [`& .${xDataGrid.gridClasses.row}.Mui-selected:hover`]: {
1598
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.selectedHover,
1624
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.selectedHover,
1599
1625
  },
1600
1626
  });
1601
1627
 
@@ -1624,8 +1650,8 @@ const StyledSearchField = styles.styled(TextField)(({ theme }) => ({
1624
1650
  height: designSystemTokens.spacing.spacing_5,
1625
1651
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
1626
1652
  borderRadius: designSystemTokens.borderRadius.input,
1627
- backgroundColor: designSystemTokens.semanticColors.input.background,
1628
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
1653
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
1654
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
1629
1655
  paddingTop: designSystemTokens.spacing.spacing_1,
1630
1656
  paddingBottom: designSystemTokens.spacing.spacing_1,
1631
1657
  paddingLeft: designSystemTokens.spacing.spacing_1_1_2,
@@ -1636,22 +1662,22 @@ const StyledSearchField = styles.styled(TextField)(({ theme }) => ({
1636
1662
  },
1637
1663
  [`& .${InputBase.inputBaseClasses.input}`]: {
1638
1664
  padding: 0,
1639
- color: designSystemTokens.semanticColors.typography.input.default,
1665
+ color: designSystemTokens.semanticColors.color.text.input,
1640
1666
  '&::placeholder': {
1641
- color: designSystemTokens.semanticColors.typography.input.placeholder,
1667
+ color: designSystemTokens.semanticColors.color.text.inputPlaceholder,
1642
1668
  opacity: 1,
1643
1669
  },
1644
1670
  },
1645
1671
  '&:hover': {
1646
- backgroundColor: designSystemTokens.semanticColors.input.hoverBackground,
1672
+ backgroundColor: designSystemTokens.semanticColors.input.bgHover,
1647
1673
  },
1648
1674
  [`&.${InputBase.inputBaseClasses.focused}`]: {
1649
- backgroundColor: designSystemTokens.semanticColors.input.background,
1650
- borderColor: designSystemTokens.semanticColors.buttons.primary.default,
1675
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
1676
+ borderColor: designSystemTokens.semanticColors.button.primary.bg,
1651
1677
  },
1652
1678
  },
1653
1679
  [`& .${InputAdornment.inputAdornmentClasses.root}`]: {
1654
- color: designSystemTokens.semanticColors.icons.placeholder,
1680
+ color: designSystemTokens.semanticColors.color.icon.placeholder,
1655
1681
  '& svg': {
1656
1682
  width: 20,
1657
1683
  height: 20,
@@ -1674,14 +1700,14 @@ const MenuItemContent$1 = styles.styled('div')(() => ({
1674
1700
  borderRadius: MENU_ITEM_BORDER_RADIUS,
1675
1701
  width: '100%',
1676
1702
  '&:hover': {
1677
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
1703
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
1678
1704
  },
1679
1705
  }));
1680
1706
  const MenuItemLabel = styles.styled('span')(({ theme, fontWeight = 500 }) => ({
1681
1707
  fontSize: theme.typography.pxToRem(16),
1682
1708
  fontWeight,
1683
1709
  lineHeight: 1.5,
1684
- color: designSystemTokens.semanticColors.typography.body,
1710
+ color: designSystemTokens.semanticColors.color.text.primary,
1685
1711
  whiteSpace: 'nowrap',
1686
1712
  }));
1687
1713
  const DividerContainer = styles.styled('div')(() => ({
@@ -1689,7 +1715,7 @@ const DividerContainer = styles.styled('div')(() => ({
1689
1715
  paddingBottom: designSystemTokens.spacing.spacing_1_2,
1690
1716
  }));
1691
1717
  const StyledDivider$1 = styles.styled(Divider)(() => ({
1692
- borderColor: designSystemTokens.semanticColors.border.primary,
1718
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
1693
1719
  }));
1694
1720
  const FooterRow = styles.styled(Box)(() => ({
1695
1721
  display: 'flex',
@@ -1701,16 +1727,16 @@ const FooterRow = styles.styled(Box)(() => ({
1701
1727
  const ResetButton = styles.styled(Button)(({ theme }) => ({
1702
1728
  fontSize: theme.typography.pxToRem(16),
1703
1729
  fontWeight: designSystemTokens.typography.fontWeight.regular,
1704
- color: designSystemTokens.semanticColors.buttons.primary.default,
1730
+ color: designSystemTokens.semanticColors.button.primary.bg,
1705
1731
  textTransform: 'none',
1706
1732
  padding: designSystemTokens.spacing.spacing_1,
1707
1733
  minWidth: 'auto',
1708
1734
  '&:hover': {
1709
1735
  backgroundColor: 'transparent',
1710
- color: designSystemTokens.semanticColors.typography.bodySecondary,
1736
+ color: designSystemTokens.semanticColors.color.text.secondary,
1711
1737
  },
1712
1738
  '&:disabled': {
1713
- color: designSystemTokens.semanticColors.typography.button.disabled,
1739
+ color: designSystemTokens.semanticColors.button.fgDisabled,
1714
1740
  },
1715
1741
  }));
1716
1742
  const ModDataGridColumnsPanel = ({ showSearch = false,
@@ -1774,7 +1800,7 @@ const StyledMenuItem = styles.styled(MenuItem)(({ theme }) => ({
1774
1800
  minHeight: designSystemTokens.spacing.spacing_5,
1775
1801
  gap: designSystemTokens.spacing.spacing_2,
1776
1802
  borderRadius: 0,
1777
- color: designSystemTokens.semanticColors.icons.default,
1803
+ color: designSystemTokens.semanticColors.color.icon.default,
1778
1804
  textDecoration: 'none',
1779
1805
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
1780
1806
  fontWeight: designSystemTokens.typography.fontWeight.regular,
@@ -1783,19 +1809,19 @@ const StyledMenuItem = styles.styled(MenuItem)(({ theme }) => ({
1783
1809
  duration: theme.transitions.duration.shortest,
1784
1810
  }),
1785
1811
  '&:hover': {
1786
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
1812
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
1787
1813
  },
1788
1814
  [`&.${MenuItem.menuItemClasses.selected}`]: {
1789
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
1815
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
1790
1816
  '&:hover': {
1791
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
1817
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
1792
1818
  },
1793
1819
  },
1794
1820
  [`&.${MenuItem.menuItemClasses.disabled}`]: {
1795
1821
  opacity: 0.5,
1796
1822
  },
1797
1823
  [`&.${MenuItem.menuItemClasses.focusVisible}`]: {
1798
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
1824
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
1799
1825
  },
1800
1826
  }));
1801
1827
  const MenuItemContent = styles.styled('div')({
@@ -1810,7 +1836,7 @@ const IconWrapper$1 = styles.styled('span')(({ theme }) => ({
1810
1836
  justifyContent: 'center',
1811
1837
  flexShrink: 0,
1812
1838
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.h4),
1813
- color: designSystemTokens.semanticColors.icons.default,
1839
+ color: designSystemTokens.semanticColors.color.icon.default,
1814
1840
  }));
1815
1841
  const LabelContainer$3 = styles.styled('div')({
1816
1842
  flex: 1,
@@ -1820,24 +1846,24 @@ const LabelContainer$3 = styles.styled('div')({
1820
1846
  minWidth: 0,
1821
1847
  });
1822
1848
  const Label$3 = styles.styled('span')({
1823
- color: designSystemTokens.semanticColors.icons.default,
1849
+ color: designSystemTokens.semanticColors.color.icon.default,
1824
1850
  flexShrink: 0,
1825
1851
  });
1826
1852
  const SecondaryLabel = styles.styled('span')({
1827
- color: designSystemTokens.semanticColors.typography.bodySecondary,
1853
+ color: designSystemTokens.semanticColors.color.text.secondary,
1828
1854
  fontWeight: designSystemTokens.typography.fontWeight.regular,
1829
1855
  flexShrink: 0,
1830
1856
  });
1831
1857
  const Shortcut = styles.styled('span')(({ theme }) => ({
1832
1858
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.xs),
1833
1859
  fontWeight: designSystemTokens.typography.fontWeight.medium,
1834
- color: designSystemTokens.semanticColors.typography.bodySecondary,
1860
+ color: designSystemTokens.semanticColors.color.text.secondary,
1835
1861
  marginLeft: 'auto',
1836
1862
  flexShrink: 0,
1837
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
1863
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
1838
1864
  borderRadius: designSystemTokens.borderRadius.xS,
1839
1865
  padding: `${designSystemTokens.spacing.spacing_1_4}px ${designSystemTokens.spacing.spacing_3_4}px`,
1840
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
1866
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
1841
1867
  }));
1842
1868
  /**
1843
1869
  * ModMenuItem - Menu item component based on MUI MenuItem
@@ -1882,22 +1908,22 @@ ModMenuItem.displayName = 'ModMenuItem';
1882
1908
  * Custom chevron icon for select
1883
1909
  * Must accept props from MUI Select to work correctly
1884
1910
  */
1885
- const ChevronDownIcon = (props) => (jsxRuntime.jsx(lucideReact.ChevronDown, { ...props, size: designSystemTokens.spacing.spacing_2_1_2, color: designSystemTokens.semanticColors.typography.input.default, style: { ...props.style } }));
1911
+ const ChevronDownIcon = (props) => (jsxRuntime.jsx(lucideReact.ChevronDown, { ...props, size: designSystemTokens.spacing.spacing_2_1_2, color: designSystemTokens.semanticColors.color.text.input, style: { ...props.style } }));
1886
1912
  /**
1887
1913
  * Styled Select component with design system styling
1888
1914
  */
1889
1915
  const StyledSelect = styles.styled(MuiSelect)({
1890
1916
  minHeight: designSystemTokens.spacing.spacing_5,
1891
- backgroundColor: designSystemTokens.semanticColors.input.background,
1892
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
1917
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
1918
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
1893
1919
  borderRadius: `${designSystemTokens.borderRadius.input}px`,
1894
1920
  '&:hover': {
1895
- backgroundColor: designSystemTokens.semanticColors.input.hoverBackground,
1896
- borderColor: designSystemTokens.semanticColors.border.primary,
1921
+ backgroundColor: designSystemTokens.semanticColors.input.bgHover,
1922
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
1897
1923
  },
1898
1924
  '&.Mui-focused': {
1899
- backgroundColor: designSystemTokens.semanticColors.input.background,
1900
- borderColor: designSystemTokens.semanticColors.buttons.primary.default,
1925
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
1926
+ borderColor: designSystemTokens.semanticColors.button.primary.bg,
1901
1927
  },
1902
1928
  '&::before': {
1903
1929
  display: 'none',
@@ -1912,7 +1938,7 @@ const StyledSelect = styles.styled(MuiSelect)({
1912
1938
  paddingRight: designSystemTokens.spacing.spacing_5,
1913
1939
  fontSize: designSystemTokens.typography.fontSize.sm,
1914
1940
  fontWeight: designSystemTokens.typography.fontWeight.regular,
1915
- color: designSystemTokens.semanticColors.typography.input.default,
1941
+ color: designSystemTokens.semanticColors.color.text.input,
1916
1942
  },
1917
1943
  [`& .${MuiSelect.selectClasses.icon}`]: {
1918
1944
  right: designSystemTokens.spacing.spacing_1_1_2,
@@ -1934,37 +1960,34 @@ const StyledSelect = styles.styled(MuiSelect)({
1934
1960
  * </ModSelect>
1935
1961
  * ```
1936
1962
  */
1937
- const ModSelect = (props) => {
1938
- const paperSlotProps = props.MenuProps?.slotProps?.paper;
1939
- const incomingPaperSx = typeof paperSlotProps === 'function' ? undefined : paperSlotProps?.sx;
1940
- return (jsxRuntime.jsx(StyledSelect, { ...props, IconComponent: ChevronDownIcon, variant: "standard", MenuProps: {
1941
- ...props.MenuProps,
1942
- slotProps: {
1943
- ...props.MenuProps?.slotProps,
1944
- paper: {
1945
- sx: {
1946
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
1947
- borderRadius: `${designSystemTokens.borderRadius.s}px`,
1948
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
1949
- boxShadow: `${designSystemTokens.shadows.dropdown.x}px ${designSystemTokens.shadows.dropdown.y}px ${designSystemTokens.shadows.dropdown.blur}px ${designSystemTokens.shadows.dropdown.spread}px ${designSystemTokens.shadows.dropdown.shadow}`,
1950
- marginTop: 1,
1951
- ...incomingPaperSx,
1952
- },
1963
+ const ModSelect = (props) => (jsxRuntime.jsx(StyledSelect, { ...props, IconComponent: ChevronDownIcon, variant: "standard", MenuProps: {
1964
+ ...props.MenuProps,
1965
+ slotProps: {
1966
+ ...props.MenuProps?.slotProps,
1967
+ // Caller wins, caller `sx` last — and unlike a spread, handles `sx` arrays and the
1968
+ // callback form of `slotProps.paper`.
1969
+ paper: utils.mergeSlotProps(props.MenuProps?.slotProps?.paper, {
1970
+ sx: {
1971
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
1972
+ borderRadius: `${designSystemTokens.borderRadius.s}px`,
1973
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
1974
+ boxShadow: `${designSystemTokens.shadows.dropdown.x}px ${designSystemTokens.shadows.dropdown.y}px ${designSystemTokens.shadows.dropdown.blur}px ${designSystemTokens.shadows.dropdown.spread}px ${designSystemTokens.shadows.dropdown.shadow}`,
1975
+ marginTop: 1,
1953
1976
  },
1954
- },
1955
- } }));
1956
- };
1977
+ }),
1978
+ },
1979
+ } }));
1957
1980
  ModSelect.displayName = 'ModSelect';
1958
1981
 
1959
1982
  /**
1960
1983
  * Icon components for DataGrid filter panel slots
1961
1984
  * These must be passed to the DataGrid's slots prop
1962
1985
  */
1963
- const ModDataGridFilterPanelAddIcon = () => (jsxRuntime.jsx(lucideReact.Plus, { size: designSystemTokens.spacing.spacing_2, color: designSystemTokens.semanticColors.buttons.tertiary.default }));
1986
+ const ModDataGridFilterPanelAddIcon = () => (jsxRuntime.jsx(lucideReact.Plus, { size: designSystemTokens.spacing.spacing_2, color: designSystemTokens.semanticColors.button.tertiary.fg }));
1964
1987
  ModDataGridFilterPanelAddIcon.displayName = 'ModDataGridFilterPanelAddIcon';
1965
- const ModDataGridFilterPanelDeleteIcon = () => (jsxRuntime.jsx(lucideReact.X, { size: designSystemTokens.spacing.spacing_2_1_2, color: designSystemTokens.semanticColors.icons.default }));
1988
+ const ModDataGridFilterPanelDeleteIcon = () => (jsxRuntime.jsx(lucideReact.X, { size: designSystemTokens.spacing.spacing_2_1_2, color: designSystemTokens.semanticColors.color.icon.default }));
1966
1989
  ModDataGridFilterPanelDeleteIcon.displayName = 'ModDataGridFilterPanelDeleteIcon';
1967
- const ModDataGridFilterPanelRemoveAllIcon = () => (jsxRuntime.jsx(lucideReact.Trash2, { size: designSystemTokens.spacing.spacing_2, color: designSystemTokens.semanticColors.buttons.tertiary.default }));
1990
+ const ModDataGridFilterPanelRemoveAllIcon = () => (jsxRuntime.jsx(lucideReact.Trash2, { size: designSystemTokens.spacing.spacing_2, color: designSystemTokens.semanticColors.button.tertiary.fg }));
1968
1991
  ModDataGridFilterPanelRemoveAllIcon.displayName = 'ModDataGridFilterPanelRemoveAllIcon';
1969
1992
  /**
1970
1993
  * Base styled GridFilterPanel with design system styling
@@ -2013,20 +2036,20 @@ const StyledGridFilterPanel = styles.styled(xDataGrid.GridFilterPanel)({
2013
2036
  [`& .${xDataGrid.gridClasses.filterForm} .${InputBase.inputBaseClasses.root}`]: {
2014
2037
  position: 'relative',
2015
2038
  minHeight: designSystemTokens.spacing.spacing_5,
2016
- backgroundColor: designSystemTokens.semanticColors.input.background,
2017
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
2039
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
2040
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
2018
2041
  borderRadius: `${designSystemTokens.borderRadius.input}px`,
2019
2042
  fontSize: designSystemTokens.typography.fontSize.default,
2020
2043
  fontWeight: designSystemTokens.typography.fontWeight.regular,
2021
- color: designSystemTokens.semanticColors.typography.input.default,
2044
+ color: designSystemTokens.semanticColors.color.text.input,
2022
2045
  },
2023
2046
  [`& .${xDataGrid.gridClasses.filterForm} .${InputBase.inputBaseClasses.root}:hover`]: {
2024
- backgroundColor: designSystemTokens.semanticColors.input.hoverBackground,
2025
- borderColor: designSystemTokens.semanticColors.border.primary,
2047
+ backgroundColor: designSystemTokens.semanticColors.input.bgHover,
2048
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
2026
2049
  },
2027
2050
  [`& .${xDataGrid.gridClasses.filterForm} .${InputBase.inputBaseClasses.root}.${InputBase.inputBaseClasses.focused}`]: {
2028
- backgroundColor: designSystemTokens.semanticColors.input.background,
2029
- borderColor: designSystemTokens.semanticColors.border.primary,
2051
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
2052
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
2030
2053
  },
2031
2054
  [`& .${xDataGrid.gridClasses.filterForm} .${InputBase.inputBaseClasses.root}::before`]: {
2032
2055
  display: 'none',
@@ -2041,9 +2064,9 @@ const StyledGridFilterPanel = styles.styled(xDataGrid.GridFilterPanel)({
2041
2064
  paddingRight: designSystemTokens.spacing.spacing_1_1_2,
2042
2065
  fontSize: designSystemTokens.typography.fontSize.default,
2043
2066
  fontWeight: designSystemTokens.typography.fontWeight.regular,
2044
- color: designSystemTokens.semanticColors.typography.input.default,
2067
+ color: designSystemTokens.semanticColors.color.text.input,
2045
2068
  '&::placeholder': {
2046
- color: designSystemTokens.semanticColors.typography.input.placeholder,
2069
+ color: designSystemTokens.semanticColors.color.text.inputPlaceholder,
2047
2070
  opacity: 1,
2048
2071
  },
2049
2072
  },
@@ -2058,24 +2081,28 @@ const StyledGridFilterPanel = styles.styled(xDataGrid.GridFilterPanel)({
2058
2081
  [`& .${xDataGrid.gridClasses.filterForm} .${FormLabel.formLabelClasses.root}`]: {
2059
2082
  fontSize: designSystemTokens.typography.fontSize.sm,
2060
2083
  fontWeight: designSystemTokens.typography.fontWeight.medium,
2061
- color: designSystemTokens.semanticColors.typography.input.label,
2084
+ color: designSystemTokens.semanticColors.color.text.inputLabel,
2062
2085
  marginBottom: designSystemTokens.spacing.spacing_1_2,
2063
2086
  position: 'static',
2064
2087
  transform: 'none',
2065
2088
  },
2066
- [`& .${xDataGrid.gridClasses.filterForm} .${InputLabel.inputLabelClasses.root}`]: {
2089
+ [`& .${xDataGrid.gridClasses.filterForm} .${MuiInputLabel.inputLabelClasses.root}`]: {
2067
2090
  fontSize: designSystemTokens.typography.fontSize.sm,
2068
2091
  fontWeight: designSystemTokens.typography.fontWeight.medium,
2069
- color: designSystemTokens.semanticColors.typography.input.label,
2092
+ color: designSystemTokens.semanticColors.color.text.inputLabel,
2070
2093
  marginBottom: designSystemTokens.spacing.spacing_1_2,
2071
2094
  position: 'static',
2072
2095
  transform: 'none',
2073
2096
  },
2074
2097
  [`& .${xDataGrid.gridClasses.filterForm} .${FormLabel.formLabelClasses.root}.${FormLabel.formLabelClasses.focused}`]: {
2075
- color: designSystemTokens.semanticColors.typography.input.label,
2098
+ color: designSystemTokens.semanticColors.color.text.inputLabel,
2099
+ },
2100
+ [`& .${xDataGrid.gridClasses.filterForm} .${MuiInputLabel.inputLabelClasses.root}.${MuiInputLabel.inputLabelClasses.focused}`]: {
2101
+ color: designSystemTokens.semanticColors.color.text.inputLabel,
2076
2102
  },
2077
- [`& .${xDataGrid.gridClasses.filterForm} .${InputLabel.inputLabelClasses.root}.${InputLabel.inputLabelClasses.focused}`]: {
2078
- color: designSystemTokens.semanticColors.typography.input.label,
2103
+ // Reclaim the 16px MUI's standard Input reserves for a floating label; these sit statically.
2104
+ [`& .${xDataGrid.gridClasses.filterForm} label + .${InputBase.inputBaseClasses.root}`]: {
2105
+ marginTop: 0,
2079
2106
  },
2080
2107
  // Remove fieldset/legend
2081
2108
  '& fieldset': {
@@ -2099,13 +2126,13 @@ const StyledGridFilterPanel = styles.styled(xDataGrid.GridFilterPanel)({
2099
2126
  minHeight: 'auto',
2100
2127
  height: 'auto',
2101
2128
  gap: designSystemTokens.spacing.spacing_1_2,
2102
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.defaultBackground,
2103
- color: designSystemTokens.semanticColors.typography.input.default,
2104
- border: `1px solid ${designSystemTokens.semanticColors.buttons.secondary.defaultBorder}`,
2129
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bg,
2130
+ color: designSystemTokens.semanticColors.color.text.input,
2131
+ border: `1px solid ${designSystemTokens.semanticColors.button.secondary.border}`,
2105
2132
  },
2106
2133
  [`& .${xDataGrid.gridClasses.panelFooter} .${Button.buttonClasses.root}:first-child:hover`]: {
2107
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
2108
- borderColor: designSystemTokens.semanticColors.buttons.secondary.defaultBorder,
2134
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
2135
+ borderColor: designSystemTokens.semanticColors.button.secondary.border,
2109
2136
  },
2110
2137
  // Clear all button (second button) - styled to match ModButton link variant
2111
2138
  [`& .${xDataGrid.gridClasses.panelFooter} .${Button.buttonClasses.root}:nth-child(2)`]: {
@@ -2117,39 +2144,58 @@ const StyledGridFilterPanel = styles.styled(xDataGrid.GridFilterPanel)({
2117
2144
  textTransform: 'none',
2118
2145
  minHeight: 'auto',
2119
2146
  backgroundColor: 'transparent',
2120
- color: designSystemTokens.semanticColors.buttons.tertiary.default,
2147
+ color: designSystemTokens.semanticColors.button.tertiary.fg,
2121
2148
  border: 'none',
2122
2149
  [`& .${Button.buttonClasses.startIcon}`]: {
2123
2150
  display: 'none', // Hide the trash icon
2124
2151
  },
2125
2152
  '&:hover': {
2126
2153
  backgroundColor: 'transparent',
2127
- color: designSystemTokens.semanticColors.buttons.tertiary.hover,
2154
+ color: designSystemTokens.semanticColors.button.tertiary.fgHover,
2128
2155
  },
2129
2156
  },
2130
2157
  // Icon buttons (delete/trash icon)
2131
2158
  [`& .${xDataGrid.gridClasses.filterForm} .${IconButton.iconButtonClasses.root}`]: {
2132
2159
  width: designSystemTokens.spacing.spacing_5_1_2,
2133
2160
  height: designSystemTokens.spacing.spacing_5_1_2,
2134
- color: designSystemTokens.semanticColors.icons.default,
2161
+ color: designSystemTokens.semanticColors.color.icon.default,
2135
2162
  },
2136
2163
  [`& .${xDataGrid.gridClasses.filterForm} .${IconButton.iconButtonClasses.root}:hover`]: {
2137
- backgroundColor: designSystemTokens.semanticColors.input.hoverBackground,
2164
+ backgroundColor: designSystemTokens.semanticColors.input.bgHover,
2138
2165
  },
2139
2166
  });
2140
2167
  StyledGridFilterPanel.displayName = 'StyledGridFilterPanel';
2141
2168
  /**
2142
- * ModSelect, typed for the DataGrid `baseSelect` slot.
2143
- *
2144
- * The grid's own `SelectProps` shares MUI's prop names and semantics, but types
2145
- * `onChange` as a bare `ChangeEventHandler` and adds `aria-*`/`data-*` index
2146
- * signatures — structurally incompatible, behaviourally identical. Asserted
2147
- * once here rather than at every call site; #721 tracks replacing the assertion
2148
- * with a real adapter. Intersected rather than replaced so direct consumers keep
2149
- * `ModSelectProps` — casting to the slot type alone drops `variant`, `MenuProps`
2150
- * and the `SelectChangeEvent` signature.
2169
+ * ModDataGridSelect - ModSelect adapted to the DataGrid `baseSelect` slot contract.
2170
+ *
2171
+ * Kept structurally parallel to MUI's own `BaseSelect` (`@mui/x-data-grid/material`) so the two
2172
+ * can be diffed on upgrade.
2173
+ *
2174
+ * @example
2175
+ * ```tsx
2176
+ * <ModDataGrid rows={rows} columns={columns} slots={{ baseSelect: ModDataGridSelect }} />
2177
+ * ```
2151
2178
  */
2152
- const ModDataGridSelect = ModSelect;
2179
+ const ModDataGridSelect = React.forwardRef(function ModDataGridSelect({ id, label, labelId, disabled, fullWidth, size, style, slotProps, material, onChange, onClose, onKeyDown, ...rest }, ref) {
2180
+ const theme = styles.useTheme();
2181
+ const hasLabel = label !== undefined;
2182
+ // The grid omits `size` in edit cells, where MUI's adapter falls back to the theme's TextField
2183
+ // default — without this the select renders medium beside small fields.
2184
+ const computedSize = size ?? theme.components?.MuiTextField?.defaultProps?.size;
2185
+ return (jsxRuntime.jsxs(FormControl
2186
+ // Bridges Ref<HTMLElement> to FormControl's Ref<HTMLDivElement>; neither direct form typechecks.
2187
+ , {
2188
+ // Bridges Ref<HTMLElement> to FormControl's Ref<HTMLDivElement>; neither direct form typechecks.
2189
+ ref: utils.useForkRef(ref), disabled: disabled, fullWidth: fullWidth, size: computedSize, style: style, children: [hasLabel && (jsxRuntime.jsx(MuiInputLabel, { id: labelId, htmlFor: id, variant: "standard", shrink: true, children: label })), jsxRuntime.jsx(ModSelect, { ...rest, id: id, label: label, labelId: hasLabel ? labelId : undefined, size: computedSize, displayEmpty: true, inputProps: slotProps?.htmlInput,
2190
+ // The grid types this as a ChangeEventHandler; MUI emits a SelectChangeEvent. MUI's own
2191
+ // adapter forwards it unchanged, so the divergence is only in the type.
2192
+ onChange: onChange, MenuProps: {
2193
+ // Must stay absent when absent: MUI spreads MenuProps over its own `onClose: handleClose`,
2194
+ // so an explicit `undefined` stops Escape and backdrop click closing the menu.
2195
+ ...(onClose && { onClose }),
2196
+ slotProps: { paper: { onKeyDown } },
2197
+ }, ...material })] }));
2198
+ });
2153
2199
  /**
2154
2200
  * ModDataGridFilterPanel - MUI GridFilterPanel with design system styling and Lucide icons
2155
2201
  *
@@ -2191,13 +2237,13 @@ ModDataGridFilterPanel.displayName = 'ModDataGridFilterPanel';
2191
2237
  * Use these with DataGrid's slots API to replace default sort indicators.
2192
2238
  */
2193
2239
  function SortedDescendingIcon() {
2194
- return jsxRuntime.jsx(lucideReact.ArrowDown, { size: 16, color: designSystemTokens.semanticColors.icons.utility });
2240
+ return jsxRuntime.jsx(lucideReact.ArrowDown, { size: 16, color: designSystemTokens.semanticColors.color.icon.utility });
2195
2241
  }
2196
2242
  function SortedAscendingIcon() {
2197
- return jsxRuntime.jsx(lucideReact.ArrowUp, { size: 16, color: designSystemTokens.semanticColors.icons.utility });
2243
+ return jsxRuntime.jsx(lucideReact.ArrowUp, { size: 16, color: designSystemTokens.semanticColors.color.icon.utility });
2198
2244
  }
2199
2245
  function UnsortedIcon() {
2200
- return jsxRuntime.jsx(lucideReact.ChevronsUpDown, { size: 16, color: designSystemTokens.semanticColors.icons.utility });
2246
+ return jsxRuntime.jsx(lucideReact.ChevronsUpDown, { size: 16, color: designSystemTokens.semanticColors.color.icon.utility });
2201
2247
  }
2202
2248
 
2203
2249
  /**
@@ -2208,7 +2254,7 @@ function UnsortedIcon() {
2208
2254
  */
2209
2255
  const ModGridPanel = styles.styled(xDataGrid.GridPanel)({
2210
2256
  [`& .${xDataGrid.gridPanelClasses.paper}`]: {
2211
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
2257
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
2212
2258
  },
2213
2259
  });
2214
2260
  /**
@@ -2284,27 +2330,27 @@ function ModDataGrid({ autoHeight = false, toolbar, slots, sx, density = 'standa
2284
2330
  // See: https://github.com/mui/mui-x/issues/20107
2285
2331
  // This must be set to prevent scroll shadow artifacts
2286
2332
  [`& .${xDataGrid.gridClasses.main}`]: {
2287
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.background,
2333
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.default,
2288
2334
  },
2289
2335
  // White background for empty/loading overlays
2290
2336
  [`& .${xDataGrid.gridClasses.overlay}`]: {
2291
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.background,
2337
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.default,
2292
2338
  },
2293
2339
  // The root keeps MUI's background.paper (#fff), which the note above
2294
2340
  // requires us to leave alone. Everything outside `main` therefore showed
2295
2341
  // white under [data-theme="dark"] — the footer, and the filler strips
2296
2342
  // beyond the last column and next to the scrollbar.
2297
2343
  [`& .${xDataGrid.gridClasses.footerContainer}`]: {
2298
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.background,
2344
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.default,
2299
2345
  },
2300
2346
  // `&&` doubles specificity: MUI paints the filler strips itself, so a
2301
2347
  // single-class rule loses to its own.
2302
2348
  [`&& .${xDataGrid.gridClasses.filler}, && .${xDataGrid.gridClasses.scrollbarFiller}`]: {
2303
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.background,
2349
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.default,
2304
2350
  },
2305
2351
  ...getDataGridHeaderStyles(),
2306
2352
  ...getDataGridRowStyles(),
2307
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
2353
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
2308
2354
  // Target `& svg` (not `.MuiSvgIcon-root`) to match the lucide icons
2309
2355
  // ModCheckbox renders, mirroring the header rule below.
2310
2356
  // flexShrink: 0 stops the icon collapsing to 0 width when the checkbox
@@ -2359,7 +2405,7 @@ ModDataGrid.displayName = 'ModDataGrid';
2359
2405
  * ```
2360
2406
  */
2361
2407
  function ModDataGridColumnsButton() {
2362
- return (jsxRuntime.jsx(xDataGrid.ColumnsPanelTrigger, { render: jsxRuntime.jsx(xDataGrid.ToolbarButton, { render: jsxRuntime.jsxs(ModButton, { variant: "secondary", size: "small", children: [jsxRuntime.jsx(lucideReact.Columns3, { size: 16, color: designSystemTokens.semanticColors.buttons.primary.default }), "Columns"] }) }) }));
2408
+ return (jsxRuntime.jsx(xDataGrid.ColumnsPanelTrigger, { render: jsxRuntime.jsx(xDataGrid.ToolbarButton, { render: jsxRuntime.jsxs(ModButton, { variant: "secondary", size: "small", children: [jsxRuntime.jsx(lucideReact.Columns3, { size: 16, color: designSystemTokens.semanticColors.button.primary.bg }), "Columns"] }) }) }));
2363
2409
  }
2364
2410
  ModDataGridColumnsButton.displayName = 'ModDataGridColumnsButton';
2365
2411
 
@@ -2385,69 +2431,69 @@ const sizeStyles$1 = {
2385
2431
  };
2386
2432
  const outlinedColorStyles = {
2387
2433
  default: {
2388
- backgroundColor: designSystemTokens.semanticColors.status.neutral.light,
2389
- color: designSystemTokens.semanticColors.status.neutral.dark,
2390
- borderColor: designSystemTokens.semanticColors.status.neutral.transparent,
2434
+ backgroundColor: designSystemTokens.semanticColors.color.status.neutral.bg,
2435
+ color: designSystemTokens.semanticColors.color.status.neutral.fg,
2436
+ borderColor: designSystemTokens.semanticColors.color.status.neutral.tint,
2391
2437
  },
2392
2438
  error: {
2393
- backgroundColor: designSystemTokens.semanticColors.status.error.light,
2394
- color: designSystemTokens.semanticColors.status.error.dark,
2395
- borderColor: designSystemTokens.semanticColors.status.error.transparent,
2439
+ backgroundColor: designSystemTokens.semanticColors.color.status.error.bg,
2440
+ color: designSystemTokens.semanticColors.color.status.error.fg,
2441
+ borderColor: designSystemTokens.semanticColors.color.status.error.tint,
2396
2442
  },
2397
2443
  warning: {
2398
- backgroundColor: designSystemTokens.semanticColors.status.warning.light,
2399
- color: designSystemTokens.semanticColors.status.warning.dark,
2400
- borderColor: designSystemTokens.semanticColors.status.warning.transparent,
2444
+ backgroundColor: designSystemTokens.semanticColors.color.status.warning.bg,
2445
+ color: designSystemTokens.semanticColors.color.status.warning.fg,
2446
+ borderColor: designSystemTokens.semanticColors.color.status.warning.tint,
2401
2447
  },
2402
2448
  success: {
2403
- backgroundColor: designSystemTokens.semanticColors.status.success.light,
2404
- color: designSystemTokens.semanticColors.status.success.dark,
2405
- borderColor: designSystemTokens.semanticColors.status.success.transparent,
2449
+ backgroundColor: designSystemTokens.semanticColors.color.status.success.bg,
2450
+ color: designSystemTokens.semanticColors.color.status.success.fg,
2451
+ borderColor: designSystemTokens.semanticColors.color.status.success.tint,
2406
2452
  },
2407
2453
  info: {
2408
- backgroundColor: designSystemTokens.semanticColors.status.info.light,
2409
- color: designSystemTokens.semanticColors.status.info.dark,
2410
- borderColor: designSystemTokens.semanticColors.status.info.transparent,
2454
+ backgroundColor: designSystemTokens.semanticColors.color.status.info.bg,
2455
+ color: designSystemTokens.semanticColors.color.status.info.fg,
2456
+ borderColor: designSystemTokens.semanticColors.color.status.info.tint,
2411
2457
  },
2412
2458
  violet: {
2413
- backgroundColor: designSystemTokens.semanticColors.status.active.light,
2414
- color: designSystemTokens.semanticColors.status.active.dark,
2415
- borderColor: designSystemTokens.semanticColors.status.active.transparent,
2459
+ backgroundColor: designSystemTokens.semanticColors.color.status.active.bg,
2460
+ color: designSystemTokens.semanticColors.color.status.active.fg,
2461
+ borderColor: designSystemTokens.semanticColors.color.status.active.tint,
2416
2462
  },
2417
2463
  beta: {
2418
2464
  backgroundColor: 'transparent',
2419
- color: designSystemTokens.semanticColors.typography.bodySecondary,
2465
+ color: designSystemTokens.semanticColors.color.text.secondary,
2420
2466
  borderColor: 'transparent',
2421
2467
  },
2422
2468
  };
2423
2469
  const filledColorStyles = {
2424
2470
  default: {
2425
- backgroundColor: designSystemTokens.semanticColors.status.neutral.dark,
2426
- color: designSystemTokens.semanticColors.status.neutral.light,
2471
+ backgroundColor: designSystemTokens.semanticColors.color.status.neutral.fg,
2472
+ color: designSystemTokens.semanticColors.color.status.neutral.bg,
2427
2473
  },
2428
2474
  error: {
2429
- backgroundColor: designSystemTokens.semanticColors.status.error.dark,
2430
- color: designSystemTokens.semanticColors.status.error.light,
2475
+ backgroundColor: designSystemTokens.semanticColors.color.status.error.fg,
2476
+ color: designSystemTokens.semanticColors.color.status.error.bg,
2431
2477
  },
2432
2478
  warning: {
2433
- backgroundColor: designSystemTokens.semanticColors.status.warning.dark,
2434
- color: designSystemTokens.semanticColors.status.warning.light,
2479
+ backgroundColor: designSystemTokens.semanticColors.color.status.warning.fg,
2480
+ color: designSystemTokens.semanticColors.color.status.warning.bg,
2435
2481
  },
2436
2482
  success: {
2437
- backgroundColor: designSystemTokens.semanticColors.status.success.dark,
2438
- color: designSystemTokens.semanticColors.status.success.light,
2483
+ backgroundColor: designSystemTokens.semanticColors.color.status.success.fg,
2484
+ color: designSystemTokens.semanticColors.color.status.success.bg,
2439
2485
  },
2440
2486
  info: {
2441
- backgroundColor: designSystemTokens.semanticColors.status.info.dark,
2442
- color: designSystemTokens.semanticColors.status.info.light,
2487
+ backgroundColor: designSystemTokens.semanticColors.color.status.info.fg,
2488
+ color: designSystemTokens.semanticColors.color.status.info.bg,
2443
2489
  },
2444
2490
  violet: {
2445
- backgroundColor: designSystemTokens.semanticColors.status.active.dark,
2446
- color: designSystemTokens.semanticColors.status.active.light,
2491
+ backgroundColor: designSystemTokens.semanticColors.color.status.active.fg,
2492
+ color: designSystemTokens.semanticColors.color.status.active.bg,
2447
2493
  },
2448
2494
  beta: {
2449
2495
  backgroundColor: 'transparent',
2450
- color: designSystemTokens.semanticColors.typography.bodySecondary,
2496
+ color: designSystemTokens.semanticColors.color.text.secondary,
2451
2497
  },
2452
2498
  };
2453
2499
  const StyledChip$2 = styles.styled(Chip, {
@@ -2501,7 +2547,7 @@ function ModDataGridFiltersButton() {
2501
2547
  const filterModel = xDataGrid.useGridSelector(apiRef, xDataGrid.gridFilterModelSelector);
2502
2548
  const activeFilters = filterModel.items.filter(item => item.value != null && item.value !== '');
2503
2549
  const filterCount = activeFilters.length;
2504
- return (jsxRuntime.jsx(xDataGrid.FilterPanelTrigger, { render: jsxRuntime.jsx(xDataGrid.ToolbarButton, { render: jsxRuntime.jsxs(ModButton, { variant: "secondary", size: "small", children: [jsxRuntime.jsx(lucideReact.ListFilter, { size: 16, color: designSystemTokens.semanticColors.buttons.primary.default }), "Filters", filterCount > 0 && (jsxRuntime.jsx(ModTag, { size: "medium", variant: "filled", intent: "info", label: String(filterCount) }))] }) }) }));
2550
+ return (jsxRuntime.jsx(xDataGrid.FilterPanelTrigger, { render: jsxRuntime.jsx(xDataGrid.ToolbarButton, { render: jsxRuntime.jsxs(ModButton, { variant: "secondary", size: "small", children: [jsxRuntime.jsx(lucideReact.ListFilter, { size: 16, color: designSystemTokens.semanticColors.button.primary.bg }), "Filters", filterCount > 0 && (jsxRuntime.jsx(ModTag, { size: "medium", variant: "filled", intent: "info", label: String(filterCount) }))] }) }) }));
2505
2551
  }
2506
2552
  ModDataGridFiltersButton.displayName = 'ModDataGridFiltersButton';
2507
2553
 
@@ -2536,14 +2582,14 @@ const LabelText$1 = styles.styled('p')({
2536
2582
  fontSize: designSystemTokens.typography.fontSize.sm,
2537
2583
  fontWeight: designSystemTokens.typography.fontWeight.semiBold, // Always semiBold (600)
2538
2584
  lineHeight: 'normal',
2539
- color: designSystemTokens.semanticColors.typography.bodySecondary, // #6b7280 by default
2585
+ color: designSystemTokens.semanticColors.color.text.secondary, // #6b7280 by default
2540
2586
  whiteSpace: 'nowrap',
2541
2587
  margin: 0,
2542
2588
  padding: 0,
2543
2589
  transition: 'color 0.2s',
2544
2590
  // Hover state - changes to primary text color
2545
2591
  '&:hover': {
2546
- color: designSystemTokens.semanticColors.icons.default, // #1f2937 on hover
2592
+ color: designSystemTokens.semanticColors.color.icon.default, // #1f2937 on hover
2547
2593
  },
2548
2594
  });
2549
2595
  const IconWrapper = styles.styled('div')({
@@ -2556,7 +2602,7 @@ const IconWrapper = styles.styled('div')({
2556
2602
  '& svg': {
2557
2603
  width: 16,
2558
2604
  height: 16,
2559
- color: designSystemTokens.semanticColors.icons.utility,
2605
+ color: designSystemTokens.semanticColors.color.icon.utility,
2560
2606
  },
2561
2607
  });
2562
2608
  function ModDataGridHeaderLabel({ children, helpTooltip, className, }) {
@@ -2595,9 +2641,9 @@ const StyledNavButton = styles.styled(IconButton, {
2595
2641
  };
2596
2642
  const sizeStyles = sizeConfig[size];
2597
2643
  const activeNavStyles = {
2598
- backgroundColor: designSystemTokens.semanticColors.icons.pressedBackground,
2644
+ backgroundColor: designSystemTokens.semanticColors.color.icon.bgPressed,
2599
2645
  borderColor: 'transparent',
2600
- color: designSystemTokens.semanticColors.buttons.primary.pressed,
2646
+ color: designSystemTokens.semanticColors.button.primary.bgPressed,
2601
2647
  };
2602
2648
  return {
2603
2649
  width: sizeStyles.width,
@@ -2608,25 +2654,25 @@ const StyledNavButton = styles.styled(IconButton, {
2608
2654
  duration: theme.transitions.duration.short,
2609
2655
  }),
2610
2656
  '&:focus-visible': {
2611
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
2657
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
2612
2658
  outlineOffset: 2,
2613
2659
  },
2614
2660
  // Nav styles
2615
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
2616
- color: designSystemTokens.semanticColors.icons.default,
2617
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
2661
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
2662
+ color: designSystemTokens.semanticColors.color.icon.default,
2663
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
2618
2664
  '&:hover': {
2619
- backgroundColor: designSystemTokens.semanticColors.input.hoverBackground,
2620
- borderColor: designSystemTokens.semanticColors.border.primary,
2621
- color: designSystemTokens.semanticColors.icons.default,
2665
+ backgroundColor: designSystemTokens.semanticColors.input.bgHover,
2666
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
2667
+ color: designSystemTokens.semanticColors.color.icon.default,
2622
2668
  },
2623
2669
  '&:active': activeNavStyles,
2624
2670
  [`&.${IconButton.iconButtonClasses.disabled}`]: {
2625
2671
  cursor: 'not-allowed',
2626
2672
  pointerEvents: 'auto',
2627
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
2628
- borderColor: designSystemTokens.semanticColors.border.secondary,
2629
- color: designSystemTokens.semanticColors.icons.disabled,
2673
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
2674
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
2675
+ color: designSystemTokens.semanticColors.color.icon.disabled,
2630
2676
  opacity: 0.5,
2631
2677
  },
2632
2678
  ...(active ? activeNavStyles : {}),
@@ -2703,80 +2749,80 @@ const defaultRangeShortcuts = [
2703
2749
  // Styled DatePicker with design system tokens
2704
2750
  const StyledDatePicker = styles.styled(DatePicker.DatePicker)(({ theme }) => ({
2705
2751
  [`& .${internals.pickerPopperClasses.paper}`]: {
2706
- backgroundColor: designSystemTokens.semanticColors.surfaces.card,
2752
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
2707
2753
  boxShadow: `${designSystemTokens.shadows.dropdown.x}px ${designSystemTokens.shadows.dropdown.y}px ${designSystemTokens.shadows.dropdown.blur}px ${designSystemTokens.shadows.dropdown.spread}px ${designSystemTokens.shadows.dropdown.shadow}`,
2708
2754
  borderRadius: `${designSystemTokens.borderRadius.s}px`,
2709
2755
  },
2710
2756
  [`& .${DateCalendar.dayCalendarClasses.weekDayLabel}`]: {
2711
2757
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
2712
2758
  fontWeight: designSystemTokens.typography.fontWeight.medium,
2713
- color: designSystemTokens.semanticColors.typography.bodySecondary,
2759
+ color: designSystemTokens.semanticColors.color.text.secondary,
2714
2760
  },
2715
2761
  [`& .${PickerDay.pickerDayClasses.root}`]: {
2716
2762
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
2717
- color: designSystemTokens.semanticColors.typography.bodySecondary,
2763
+ color: designSystemTokens.semanticColors.color.text.secondary,
2718
2764
  borderRadius: designSystemTokens.borderRadius.l,
2719
2765
  '&:hover': {
2720
- backgroundColor: designSystemTokens.semanticColors.icons.hoverBackground,
2766
+ backgroundColor: designSystemTokens.semanticColors.color.icon.bgHover,
2721
2767
  },
2722
2768
  '&.Mui-selected': {
2723
- backgroundColor: designSystemTokens.semanticColors.icons.active,
2724
- color: designSystemTokens.semanticColors.surfaces.white,
2769
+ backgroundColor: designSystemTokens.semanticColors.color.icon.active,
2770
+ color: designSystemTokens.semanticColors.color.surface.raised,
2725
2771
  '&:hover': {
2726
- backgroundColor: designSystemTokens.semanticColors.icons.active,
2772
+ backgroundColor: designSystemTokens.semanticColors.color.icon.active,
2727
2773
  },
2728
2774
  },
2729
2775
  [`&.${PickerDay.pickerDayClasses.today}`]: {
2730
- border: `2px solid ${designSystemTokens.semanticColors.border.strong}`,
2776
+ border: `2px solid ${designSystemTokens.semanticColors.color.border.strong}`,
2731
2777
  backgroundColor: 'transparent',
2732
2778
  },
2733
2779
  },
2734
2780
  [`& .${PickersCalendarHeader.pickersCalendarHeaderClasses.label}`]: {
2735
2781
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
2736
2782
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
2737
- color: designSystemTokens.semanticColors.typography.body,
2783
+ color: designSystemTokens.semanticColors.color.text.primary,
2738
2784
  },
2739
2785
  }));
2740
2786
  // Styled DateRangePicker with design system tokens
2741
2787
  const StyledDateRangePicker = styles.styled(DateRangePicker.DateRangePicker)(({ theme }) => ({
2742
2788
  [`& .${internals.pickerPopperClasses.paper}`]: {
2743
- backgroundColor: designSystemTokens.semanticColors.surfaces.card,
2789
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
2744
2790
  boxShadow: `${designSystemTokens.shadows.dropdown.x}px ${designSystemTokens.shadows.dropdown.y}px ${designSystemTokens.shadows.dropdown.blur}px ${designSystemTokens.shadows.dropdown.spread}px ${designSystemTokens.shadows.dropdown.shadow}`,
2745
2791
  borderRadius: `${designSystemTokens.borderRadius.s}px`,
2746
2792
  },
2747
2793
  [`& .${DateCalendar.dayCalendarClasses.weekDayLabel}`]: {
2748
2794
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
2749
2795
  fontWeight: designSystemTokens.typography.fontWeight.medium,
2750
- color: designSystemTokens.semanticColors.typography.bodySecondary,
2796
+ color: designSystemTokens.semanticColors.color.text.secondary,
2751
2797
  },
2752
2798
  [`& .${DateRangePickerDay.dateRangePickerDayClasses.root}`]: {
2753
2799
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
2754
- color: designSystemTokens.semanticColors.typography.bodySecondary,
2800
+ color: designSystemTokens.semanticColors.color.text.secondary,
2755
2801
  borderRadius: designSystemTokens.borderRadius.l,
2756
2802
  '&:hover': {
2757
- backgroundColor: designSystemTokens.semanticColors.icons.hoverBackground,
2803
+ backgroundColor: designSystemTokens.semanticColors.color.icon.bgHover,
2758
2804
  },
2759
2805
  '&.Mui-selected': {
2760
- backgroundColor: designSystemTokens.semanticColors.icons.active,
2761
- color: designSystemTokens.semanticColors.surfaces.white,
2806
+ backgroundColor: designSystemTokens.semanticColors.color.icon.active,
2807
+ color: designSystemTokens.semanticColors.color.surface.raised,
2762
2808
  },
2763
2809
  },
2764
2810
  [`& .${DateRangePickerDay.dateRangePickerDayClasses.insideSelection}`]: {
2765
- backgroundColor: designSystemTokens.semanticColors.icons.hoverBackground,
2766
- color: designSystemTokens.semanticColors.typography.input.default,
2811
+ backgroundColor: designSystemTokens.semanticColors.color.icon.bgHover,
2812
+ color: designSystemTokens.semanticColors.color.text.input,
2767
2813
  },
2768
2814
  [`& .${DateRangePickerDay.dateRangePickerDayClasses.selectionStart}, & .${DateRangePickerDay.dateRangePickerDayClasses.selectionEnd}`]: {
2769
- backgroundColor: designSystemTokens.semanticColors.icons.active,
2815
+ backgroundColor: designSystemTokens.semanticColors.color.icon.active,
2770
2816
  },
2771
2817
  [`& .${PickersCalendarHeader.pickersCalendarHeaderClasses.label}`]: {
2772
2818
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
2773
2819
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
2774
- color: designSystemTokens.semanticColors.typography.body,
2820
+ color: designSystemTokens.semanticColors.color.text.primary,
2775
2821
  },
2776
2822
  }));
2777
- const ClearIcon = () => jsxRuntime.jsx(lucideReact.X, { size: 20, color: designSystemTokens.semanticColors.icons.placeholder });
2823
+ const ClearIcon = () => jsxRuntime.jsx(lucideReact.X, { size: 20, color: designSystemTokens.semanticColors.color.icon.placeholder });
2778
2824
  // Custom calendar icon component
2779
- const CalendarIcon = () => jsxRuntime.jsx(lucideReact.CalendarDays, { size: 20, color: designSystemTokens.semanticColors.icons.placeholder });
2825
+ const CalendarIcon = () => jsxRuntime.jsx(lucideReact.CalendarDays, { size: 20, color: designSystemTokens.semanticColors.color.icon.placeholder });
2780
2826
  // Shortcut styles to match Figma list item design (no borders, plain text)
2781
2827
  const shortcutChipStyles = {
2782
2828
  // Container (MuiList) styles
@@ -2785,7 +2831,7 @@ const shortcutChipStyles = {
2785
2831
  [`& .${Chip.chipClasses.root}`]: {
2786
2832
  fontSize: designSystemTokens.typography.fontSize.sm,
2787
2833
  fontWeight: designSystemTokens.typography.fontWeight.medium,
2788
- color: designSystemTokens.semanticColors.typography.input.default,
2834
+ color: designSystemTokens.semanticColors.color.text.input,
2789
2835
  backgroundColor: 'transparent',
2790
2836
  borderRadius: `${designSystemTokens.spacing.spacing_3_4}px`,
2791
2837
  border: 'none',
@@ -2798,7 +2844,7 @@ const shortcutChipStyles = {
2798
2844
  padding: 0,
2799
2845
  },
2800
2846
  '&:hover': {
2801
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
2847
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
2802
2848
  },
2803
2849
  },
2804
2850
  };
@@ -2892,7 +2938,7 @@ const ModDatePicker = ({ type = 'single', open, label, value, rangeValue, onChan
2892
2938
  ModDatePicker.displayName = 'ModDatePicker';
2893
2939
 
2894
2940
  const StyledDivider = styles.styled(Divider)(() => ({
2895
- borderColor: designSystemTokens.semanticColors.border.secondary,
2941
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
2896
2942
  marginTop: designSystemTokens.spacing.spacing_1,
2897
2943
  marginBottom: designSystemTokens.spacing.spacing_1,
2898
2944
  }));
@@ -2933,7 +2979,11 @@ const StyledDot = styles.styled('span', {
2933
2979
  shouldForwardProp: prop => prop !== 'ownerState',
2934
2980
  })(({ ownerState }) => {
2935
2981
  const size = sizeMap[ownerState.size];
2936
- const palette = designSystemTokens.semanticColors.status[ownerState.color];
2982
+ // Computed member access — the phase-2 restructure's codemod (driven from
2983
+ // literal TOKEN_MAP paths) cannot reach this. Fixed by hand. See
2984
+ // docs/superpowers/plans/2026-08-05-semantic-restructure.md
2985
+ // "Dynamic access — the codemod cannot see these".
2986
+ const palette = designSystemTokens.semanticColors.color.status[ownerState.color];
2937
2987
  return {
2938
2988
  display: 'inline-flex',
2939
2989
  alignItems: 'center',
@@ -2944,10 +2994,10 @@ const StyledDot = styles.styled('span', {
2944
2994
  borderRadius: '50%',
2945
2995
  flexShrink: 0,
2946
2996
  boxSizing: 'border-box',
2947
- backgroundColor: palette.default,
2948
- color: designSystemTokens.semanticColors.typography.tooltip.default,
2997
+ backgroundColor: palette.solid,
2998
+ color: designSystemTokens.semanticColors.color.text.tooltip,
2949
2999
  ...(ownerState.variant === 'outline' && {
2950
- border: `3px solid ${palette.light}`,
3000
+ border: `3px solid ${palette.bg}`,
2951
3001
  }),
2952
3002
  '& > svg': {
2953
3003
  width: '70%',
@@ -2966,9 +3016,9 @@ ModDot.displayName = 'ModDot';
2966
3016
  const StyledRoot$1 = styles.styled(Paper)({
2967
3017
  padding: designSystemTokens.spacing.spacing_2,
2968
3018
  borderRadius: designSystemTokens.borderRadius.s,
2969
- backgroundColor: designSystemTokens.semanticColors.surfaces.card,
2970
- color: designSystemTokens.semanticColors.typography.body,
2971
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
3019
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
3020
+ color: designSystemTokens.semanticColors.color.text.primary,
3021
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
2972
3022
  boxShadow: `${designSystemTokens.shadows.neutral.regular.x}px ${designSystemTokens.shadows.neutral.regular.y}px ${designSystemTokens.shadows.neutral.regular.blur}px ${designSystemTokens.shadows.neutral.regular.spread}px ${designSystemTokens.shadows.neutral.regular.shadow}`,
2973
3023
  display: 'flex',
2974
3024
  flexDirection: 'column',
@@ -2979,14 +3029,14 @@ const Title = styles.styled('p')(({ theme }) => ({
2979
3029
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
2980
3030
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
2981
3031
  lineHeight: 1.4,
2982
- color: designSystemTokens.semanticColors.typography.bodySecondary,
3032
+ color: designSystemTokens.semanticColors.color.text.secondary,
2983
3033
  }));
2984
3034
  const FileName = styles.styled('p')(({ theme }) => ({
2985
3035
  margin: 0,
2986
3036
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.xs),
2987
3037
  fontWeight: designSystemTokens.typography.fontWeight.medium,
2988
3038
  lineHeight: 1.5,
2989
- color: designSystemTokens.semanticColors.typography.body,
3039
+ color: designSystemTokens.semanticColors.color.text.primary,
2990
3040
  overflow: 'hidden',
2991
3041
  textOverflow: 'ellipsis',
2992
3042
  whiteSpace: 'nowrap',
@@ -2997,16 +3047,16 @@ const ProgressLabel$1 = styles.styled('p')(({ theme }) => ({
2997
3047
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.xs),
2998
3048
  fontWeight: designSystemTokens.typography.fontWeight.medium,
2999
3049
  lineHeight: 1.5,
3000
- color: designSystemTokens.semanticColors.typography.body,
3050
+ color: designSystemTokens.semanticColors.color.text.primary,
3001
3051
  flexShrink: 0,
3002
3052
  }));
3003
3053
  const StyledLinearProgress$1 = styles.styled(LinearProgress)({
3004
3054
  width: '100%',
3005
3055
  height: designSystemTokens.spacing.spacing_1,
3006
3056
  borderRadius: designSystemTokens.borderRadius.s,
3007
- backgroundColor: designSystemTokens.semanticColors.border.secondary,
3057
+ backgroundColor: designSystemTokens.semanticColors.color.border.primary,
3008
3058
  [`& .${LinearProgress.linearProgressClasses.bar}`]: {
3009
- backgroundColor: designSystemTokens.semanticColors.buttons.primary.default,
3059
+ backgroundColor: designSystemTokens.semanticColors.button.primary.bg,
3010
3060
  borderRadius: `${designSystemTokens.borderRadius.xS}px 0 0 ${designSystemTokens.borderRadius.xS}px`,
3011
3061
  },
3012
3062
  });
@@ -3014,7 +3064,7 @@ const ActionButton = styles.styled(IconButton)({
3014
3064
  padding: 0,
3015
3065
  width: designSystemTokens.spacing.spacing_2,
3016
3066
  height: designSystemTokens.spacing.spacing_2,
3017
- color: designSystemTokens.semanticColors.icons.utility,
3067
+ color: designSystemTokens.semanticColors.color.icon.utility,
3018
3068
  '&:hover': {
3019
3069
  backgroundColor: 'transparent',
3020
3070
  },
@@ -3046,50 +3096,50 @@ const ModDownloadToast = ({ title, fileName, progress, showClose = true, showPau
3046
3096
  ModDownloadToast.displayName = 'ModDownloadToast';
3047
3097
 
3048
3098
  const buildFilledIcon = ({ displayName, fillColor, body, knockout }) => {
3049
- const Component = (props) => (jsxRuntime.jsxs(SvgIcon, { viewBox: "0 0 16 16", ...props, children: [jsxRuntime.jsx("g", { fill: fillColor, children: body }), jsxRuntime.jsx("g", { stroke: designSystemTokens.semanticColors.surfaces.white, strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", fill: "none", children: knockout })] }));
3099
+ const Component = (props) => (jsxRuntime.jsxs(SvgIcon, { viewBox: "0 0 16 16", ...props, children: [jsxRuntime.jsx("g", { fill: fillColor, children: body }), jsxRuntime.jsx("g", { stroke: designSystemTokens.semanticColors.color.surface.raised, strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", fill: "none", children: knockout })] }));
3050
3100
  Component.displayName = displayName;
3051
3101
  return Component;
3052
3102
  };
3053
3103
  const CIRCLE_BODY = (jsxRuntime.jsx("path", { d: "M8.00001 14.6666C11.6819 14.6666 14.6667 11.6818 14.6667 7.99992C14.6667 4.31802 11.6819 1.33325 8.00001 1.33325C4.31811 1.33325 1.33334 4.31802 1.33334 7.99992C1.33334 11.6818 4.31811 14.6666 8.00001 14.6666Z" }));
3054
3104
  const ModFilledSuccess = buildFilledIcon({
3055
3105
  displayName: 'ModFilledSuccess',
3056
- fillColor: designSystemTokens.semanticColors.status.success.default,
3106
+ fillColor: designSystemTokens.semanticColors.color.status.success.solid,
3057
3107
  body: CIRCLE_BODY,
3058
3108
  knockout: jsxRuntime.jsx("path", { d: "M6 8.00008L7.33333 9.33341L10 6.66675" }),
3059
3109
  });
3060
3110
  const ModFilledQueued = buildFilledIcon({
3061
3111
  displayName: 'ModFilledQueued',
3062
- fillColor: designSystemTokens.semanticColors.status.active.default,
3112
+ fillColor: designSystemTokens.semanticColors.color.status.active.solid,
3063
3113
  body: CIRCLE_BODY,
3064
3114
  knockout: jsxRuntime.jsx("path", { d: "M8 4V8L10.6667 9.33333" }),
3065
3115
  });
3066
3116
  const ModFilledInfo = buildFilledIcon({
3067
3117
  displayName: 'ModFilledInfo',
3068
- fillColor: designSystemTokens.semanticColors.status.info.default,
3118
+ fillColor: designSystemTokens.semanticColors.color.status.info.solid,
3069
3119
  body: CIRCLE_BODY,
3070
3120
  knockout: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M8 10.6667V8" }), jsxRuntime.jsx("path", { d: "M8 5.33325H8.00667" })] })),
3071
3121
  });
3072
3122
  const ModFilledWarning = buildFilledIcon({
3073
3123
  displayName: 'ModFilledWarning',
3074
- fillColor: designSystemTokens.semanticColors.status.warning.default,
3124
+ fillColor: designSystemTokens.semanticColors.color.status.warning.solid,
3075
3125
  body: (jsxRuntime.jsx("path", { d: "M14.4867 12L9.15335 2.66665C9.03706 2.46146 8.86842 2.29078 8.66463 2.17203C8.46084 2.05329 8.22921 1.99072 7.99335 1.99072C7.75749 1.99072 7.52585 2.05329 7.32206 2.17203C7.11828 2.29078 6.94964 2.46146 6.83335 2.66665L1.50001 12C1.38247 12.2036 1.32083 12.4346 1.32135 12.6697C1.32187 12.9047 1.38453 13.1355 1.50298 13.3385C1.62142 13.5416 1.79145 13.7097 1.99581 13.8259C2.20018 13.942 2.43162 14.0021 2.66668 14H13.3333C13.5673 13.9997 13.797 13.938 13.9995 13.8208C14.202 13.7037 14.3702 13.5354 14.487 13.3327C14.6039 13.1301 14.6654 12.9002 14.6653 12.6663C14.6653 12.4324 14.6036 12.2026 14.4867 12Z" })),
3076
3126
  knockout: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M8 6V8.66667" }), jsxRuntime.jsx("path", { d: "M8 11.3333H8.00667" })] })),
3077
3127
  });
3078
3128
  const ModFilledError = buildFilledIcon({
3079
3129
  displayName: 'ModFilledError',
3080
- fillColor: designSystemTokens.semanticColors.status.error.default,
3130
+ fillColor: designSystemTokens.semanticColors.color.status.error.solid,
3081
3131
  body: (jsxRuntime.jsx("path", { d: "M10.208 1.33325C10.5616 1.33333 10.9007 1.47385 11.1507 1.72392L14.276 4.84925C14.5261 5.09924 14.6666 5.43832 14.6667 5.79192V10.2079C14.6666 10.5615 14.5261 10.9006 14.276 11.1506L11.1507 14.2759C10.9007 14.526 10.5616 14.6665 10.208 14.6666H5.79201C5.43842 14.6665 5.09933 14.526 4.84934 14.2759L1.72401 11.1506C1.47394 10.9006 1.33342 10.5615 1.33334 10.2079V5.79192C1.33342 5.43832 1.47394 5.09924 1.72401 4.84925L4.84934 1.72392C5.09933 1.47385 5.43842 1.33333 5.79201 1.33325H10.208Z" })),
3082
3132
  knockout: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M8 5.33325V7.99992" }), jsxRuntime.jsx("path", { d: "M8 10.6667H8.00667" })] })),
3083
3133
  });
3084
3134
  const ModFilledNeutral = buildFilledIcon({
3085
3135
  displayName: 'ModFilledNeutral',
3086
- fillColor: designSystemTokens.semanticColors.status.neutral.default,
3136
+ fillColor: designSystemTokens.semanticColors.color.status.neutral.solid,
3087
3137
  body: CIRCLE_BODY,
3088
3138
  knockout: jsxRuntime.jsx("path", { d: "M5.33334 8H10.6667" }),
3089
3139
  });
3090
3140
  const ModFilledCanceled = buildFilledIcon({
3091
3141
  displayName: 'ModFilledCanceled',
3092
- fillColor: designSystemTokens.semanticColors.status.canceled.default,
3142
+ fillColor: designSystemTokens.semanticColors.color.status.canceled.solid,
3093
3143
  body: CIRCLE_BODY,
3094
3144
  knockout: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M10 6L6 10" }), jsxRuntime.jsx("path", { d: "M6 6L10 10" })] })),
3095
3145
  });
@@ -3099,17 +3149,17 @@ const StyledChip$1 = styles.styled(Chip, {
3099
3149
  shouldForwardProp: prop => !filterChipOnlyProps.includes(prop),
3100
3150
  })(({ theme, selected }) => ({
3101
3151
  borderRadius: designSystemTokens.borderRadius.full,
3102
- border: `1px solid ${designSystemTokens.semanticColors.buttons.secondary.defaultBorder}`,
3152
+ border: `1px solid ${designSystemTokens.semanticColors.button.secondary.border}`,
3103
3153
  backgroundColor: selected
3104
- ? designSystemTokens.semanticColors.buttons.secondary.pressedBackground
3105
- : designSystemTokens.semanticColors.surfaces.white,
3154
+ ? designSystemTokens.semanticColors.button.secondary.bgPressed
3155
+ : designSystemTokens.semanticColors.color.surface.raised,
3106
3156
  minHeight: 40,
3107
3157
  padding: `${designSystemTokens.spacing.spacing_3_4}px ${designSystemTokens.spacing.spacing_1_1_2}px`,
3108
3158
  gap: designSystemTokens.spacing.spacing_1,
3109
3159
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
3110
3160
  fontWeight: designSystemTokens.typography.fontWeight.medium,
3111
3161
  lineHeight: 1,
3112
- color: designSystemTokens.semanticColors.typography.body,
3162
+ color: designSystemTokens.semanticColors.color.text.primary,
3113
3163
  [`& .${Chip.chipClasses.label}`]: {
3114
3164
  padding: 0,
3115
3165
  overflow: 'visible',
@@ -3117,23 +3167,23 @@ const StyledChip$1 = styles.styled(Chip, {
3117
3167
  alignItems: 'center',
3118
3168
  },
3119
3169
  [`& .${Chip.chipClasses.deleteIcon}`]: {
3120
- color: designSystemTokens.semanticColors.icons.default,
3170
+ color: designSystemTokens.semanticColors.color.icon.default,
3121
3171
  width: 24,
3122
3172
  height: 24,
3123
3173
  margin: 0,
3124
3174
  flexShrink: 0,
3125
3175
  '&:hover': {
3126
- color: designSystemTokens.semanticColors.icons.default,
3176
+ color: designSystemTokens.semanticColors.color.icon.default,
3127
3177
  },
3128
3178
  },
3129
3179
  '&:hover': {
3130
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
3180
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
3131
3181
  },
3132
3182
  [`&.${Chip.chipClasses.focusVisible}`]: {
3133
3183
  ...focusRingStyles,
3134
3184
  backgroundColor: selected
3135
- ? designSystemTokens.semanticColors.buttons.secondary.pressedBackground
3136
- : designSystemTokens.semanticColors.surfaces.white,
3185
+ ? designSystemTokens.semanticColors.button.secondary.bgPressed
3186
+ : designSystemTokens.semanticColors.color.surface.raised,
3137
3187
  },
3138
3188
  }));
3139
3189
  const LabelContent = styles.styled('span')({
@@ -3152,13 +3202,13 @@ const HeaderLabel = styles.styled('span')(({ theme }) => ({
3152
3202
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.xxs),
3153
3203
  fontWeight: designSystemTokens.typography.fontWeight.regular,
3154
3204
  lineHeight: '120%',
3155
- color: designSystemTokens.semanticColors.typography.bodySecondary,
3205
+ color: designSystemTokens.semanticColors.color.text.secondary,
3156
3206
  }));
3157
3207
  const SelectedLabel = styles.styled('span')(({ theme }) => ({
3158
3208
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
3159
3209
  fontWeight: designSystemTokens.typography.fontWeight.medium,
3160
3210
  lineHeight: 1,
3161
- color: designSystemTokens.semanticColors.buttons.secondary.default,
3211
+ color: designSystemTokens.semanticColors.button.secondary.fg,
3162
3212
  }));
3163
3213
  const CountBadge = styles.styled('span')(({ theme }) => ({
3164
3214
  display: 'inline-flex',
@@ -3168,8 +3218,8 @@ const CountBadge = styles.styled('span')(({ theme }) => ({
3168
3218
  height: 16,
3169
3219
  padding: `0 ${designSystemTokens.spacing.spacing_1_2}px`,
3170
3220
  borderRadius: designSystemTokens.borderRadius.full,
3171
- backgroundColor: designSystemTokens.semanticColors.brand,
3172
- color: designSystemTokens.semanticColors.surfaces.white,
3221
+ backgroundColor: designSystemTokens.semanticColors.color.action.brand,
3222
+ color: designSystemTokens.semanticColors.color.surface.raised,
3173
3223
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.xs),
3174
3224
  fontWeight: designSystemTokens.typography.fontWeight.medium,
3175
3225
  lineHeight: 1,
@@ -3213,7 +3263,7 @@ const SpinnerWrapper = styles.styled('div')({
3213
3263
  * @example
3214
3264
  * <ModLoadingSpinner size={32} color="#ff0000" />
3215
3265
  */
3216
- const ModLoadingSpinner = ({ size = 24, color = designSystemTokens.semanticColors.buttons.primary.default, }) => {
3266
+ const ModLoadingSpinner = ({ size = 24, color = designSystemTokens.semanticColors.button.primary.bg, }) => {
3217
3267
  return (jsxRuntime.jsx(SpinnerWrapper, { style: { width: size, height: size }, children: jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntime.jsx("title", { children: "Loading Spinner" }), jsxRuntime.jsx("g", { opacity: "0.2", children: jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", stroke: color, strokeWidth: "2.1" }) }), jsxRuntime.jsx("path", { d: "M12 2C6.477 2 2 6.477 2 12", stroke: color, strokeWidth: "2.1", strokeLinecap: "round" })] }) }));
3218
3268
  };
3219
3269
  ModLoadingSpinner.displayName = 'ModLoadingSpinner';
@@ -3221,8 +3271,8 @@ ModLoadingSpinner.displayName = 'ModLoadingSpinner';
3221
3271
  const StyledFooter = styles.styled(Box, {
3222
3272
  shouldForwardProp: prop => prop !== 'showShadow',
3223
3273
  })(({ theme, showShadow = false }) => ({
3224
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
3225
- borderTop: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
3274
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
3275
+ borderTop: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
3226
3276
  display: 'flex',
3227
3277
  alignItems: 'center',
3228
3278
  justifyContent: 'center',
@@ -3250,7 +3300,7 @@ const ResultText = styles.styled('p')(({ theme }) => ({
3250
3300
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
3251
3301
  fontWeight: designSystemTokens.typography.fontWeight.regular,
3252
3302
  lineHeight: 1.5,
3253
- color: designSystemTokens.semanticColors.typography.body, // typography/body: #232342
3303
+ color: designSystemTokens.semanticColors.color.text.primary, // typography/body: #232342
3254
3304
  margin: 0,
3255
3305
  whiteSpace: 'pre',
3256
3306
  }));
@@ -3259,7 +3309,7 @@ const LoadMoreButton = styles.styled('button')(({ theme }) => ({
3259
3309
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
3260
3310
  fontWeight: designSystemTokens.typography.fontWeight.regular,
3261
3311
  lineHeight: 'normal',
3262
- color: designSystemTokens.semanticColors.typography.link.primary,
3312
+ color: designSystemTokens.semanticColors.color.text.link,
3263
3313
  background: 'none',
3264
3314
  border: 'none',
3265
3315
  padding: 0,
@@ -3269,7 +3319,7 @@ const LoadMoreButton = styles.styled('button')(({ theme }) => ({
3269
3319
  textDecoration: 'underline',
3270
3320
  },
3271
3321
  '&:disabled': {
3272
- color: designSystemTokens.semanticColors.typography.button.disabled,
3322
+ color: designSystemTokens.semanticColors.button.fgDisabled,
3273
3323
  cursor: 'not-allowed',
3274
3324
  },
3275
3325
  }));
@@ -3278,7 +3328,7 @@ const SelectedText = styles.styled('p')(({ theme }) => ({
3278
3328
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
3279
3329
  fontWeight: designSystemTokens.typography.fontWeight.regular,
3280
3330
  lineHeight: 1.5,
3281
- color: designSystemTokens.semanticColors.typography.body,
3331
+ color: designSystemTokens.semanticColors.color.text.primary,
3282
3332
  margin: 0,
3283
3333
  whiteSpace: 'pre',
3284
3334
  }));
@@ -3292,15 +3342,15 @@ const PaginationButton = styles.styled(IconButton)(({ disabled }) => ({
3292
3342
  width: designSystemTokens.spacing.spacing_5_1_2,
3293
3343
  height: designSystemTokens.spacing.spacing_5_1_2,
3294
3344
  padding: designSystemTokens.spacing.spacing_1,
3295
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
3345
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
3296
3346
  borderRadius: designSystemTokens.borderRadius.full,
3297
3347
  '&:hover': {
3298
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
3348
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
3299
3349
  },
3300
3350
  '& svg': {
3301
3351
  width: 24,
3302
3352
  height: 24,
3303
- color: disabled ? designSystemTokens.semanticColors.icons.disabled : designSystemTokens.semanticColors.icons.default,
3353
+ color: disabled ? designSystemTokens.semanticColors.color.icon.disabled : designSystemTokens.semanticColors.color.icon.default,
3304
3354
  },
3305
3355
  }));
3306
3356
  const PaginationText = styles.styled('p')(({ theme }) => ({
@@ -3308,7 +3358,7 @@ const PaginationText = styles.styled('p')(({ theme }) => ({
3308
3358
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
3309
3359
  fontWeight: designSystemTokens.typography.fontWeight.regular,
3310
3360
  lineHeight: 1.5,
3311
- color: designSystemTokens.semanticColors.typography.body, // typography/body: #232342
3361
+ color: designSystemTokens.semanticColors.color.text.primary, // typography/body: #232342
3312
3362
  margin: 0,
3313
3363
  whiteSpace: 'pre',
3314
3364
  }));
@@ -3567,31 +3617,31 @@ const StyledFormControl = styles.styled(FormControl, {
3567
3617
  width: '100%',
3568
3618
  };
3569
3619
  });
3570
- const StyledInputLabel = styles.styled(InputLabel, {
3620
+ const StyledInputLabel = styles.styled(MuiInputLabel, {
3571
3621
  shouldForwardProp: prop => prop !== 'size' && prop !== 'infoIcon',
3572
3622
  })(({ theme }) => ({
3573
3623
  position: 'static',
3574
3624
  transform: 'none',
3575
3625
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
3576
3626
  fontWeight: designSystemTokens.typography.fontWeight.medium,
3577
- color: designSystemTokens.semanticColors.typography.input.label,
3627
+ color: designSystemTokens.semanticColors.color.text.inputLabel,
3578
3628
  display: 'flex',
3579
3629
  alignItems: 'center',
3580
3630
  gap: designSystemTokens.spacing.spacing_1_4,
3581
- [`&.${InputLabel.inputLabelClasses.focused}`]: {
3582
- color: designSystemTokens.semanticColors.typography.input.label,
3631
+ [`&.${MuiInputLabel.inputLabelClasses.focused}`]: {
3632
+ color: designSystemTokens.semanticColors.color.text.inputLabel,
3583
3633
  },
3584
- [`&.${InputLabel.inputLabelClasses.disabled}`]: {
3585
- color: designSystemTokens.semanticColors.typography.button.disabled,
3634
+ [`&.${MuiInputLabel.inputLabelClasses.disabled}`]: {
3635
+ color: designSystemTokens.semanticColors.button.fgDisabled,
3586
3636
  },
3587
- [`&.${InputLabel.inputLabelClasses.error}`]: {
3588
- color: designSystemTokens.semanticColors.typography.input.label,
3637
+ [`&.${MuiInputLabel.inputLabelClasses.error}`]: {
3638
+ color: designSystemTokens.semanticColors.color.text.inputLabel,
3589
3639
  },
3590
3640
  }));
3591
3641
  const InfoIconWrapper = styles.styled('span')({
3592
3642
  display: 'inline-flex',
3593
3643
  alignItems: 'center',
3594
- color: designSystemTokens.semanticColors.icons.placeholder,
3644
+ color: designSystemTokens.semanticColors.color.icon.placeholder,
3595
3645
  });
3596
3646
  const StyledInputBase = styles.styled(InputBase, {
3597
3647
  shouldForwardProp: prop => prop !== 'size' && prop !== 'destructive',
@@ -3615,50 +3665,52 @@ const StyledInputBase = styles.styled(InputBase, {
3615
3665
  height: multiline ? 'auto' : sizeStyles.height,
3616
3666
  fontSize: sizeStyles.fontSize,
3617
3667
  borderRadius: sizeStyles.borderRadius,
3618
- backgroundColor: designSystemTokens.semanticColors.input.background,
3619
- border: `1px solid ${destructive ? designSystemTokens.semanticColors.status.error.default : designSystemTokens.semanticColors.border.primary}`,
3668
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
3669
+ border: `1px solid ${destructive ? designSystemTokens.semanticColors.color.status.error.solid : designSystemTokens.semanticColors.color.border.primary}`,
3620
3670
  transition: theme.transitions.create(['border-color', 'background-color'], {
3621
3671
  duration: theme.transitions.duration.short,
3622
3672
  }),
3623
3673
  [`& .${InputBase.inputBaseClasses.input}`]: {
3624
3674
  padding: sizeStyles.padding,
3625
- color: designSystemTokens.semanticColors.typography.input.default,
3675
+ color: designSystemTokens.semanticColors.color.text.input,
3626
3676
  // Tabular figures, no tracking — see Badge.tsx.
3627
3677
  fontVariantNumeric: 'tabular-nums',
3628
3678
  '&::placeholder': {
3629
- color: designSystemTokens.semanticColors.typography.input.placeholder,
3679
+ color: designSystemTokens.semanticColors.color.text.inputPlaceholder,
3630
3680
  },
3631
3681
  },
3632
3682
  // Hover state
3633
3683
  '&:hover': {
3634
- backgroundColor: designSystemTokens.semanticColors.input.hoverBackground,
3684
+ backgroundColor: designSystemTokens.semanticColors.input.bgHover,
3635
3685
  borderColor: destructive
3636
- ? designSystemTokens.semanticColors.status.error.default
3637
- : designSystemTokens.semanticColors.border.primary,
3686
+ ? designSystemTokens.semanticColors.color.status.error.solid
3687
+ : designSystemTokens.semanticColors.color.border.primary,
3638
3688
  },
3639
3689
  // Focused state
3640
3690
  [`&.${InputBase.inputBaseClasses.focused}`]: {
3641
- backgroundColor: designSystemTokens.semanticColors.input.background,
3691
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
3642
3692
  borderColor: destructive
3643
- ? designSystemTokens.semanticColors.status.error.default
3644
- : designSystemTokens.semanticColors.buttons.primary.default,
3693
+ ? designSystemTokens.semanticColors.color.status.error.solid
3694
+ : designSystemTokens.semanticColors.button.primary.bg,
3645
3695
  },
3646
3696
  // Disabled state
3647
3697
  [`&.${InputBase.inputBaseClasses.disabled}`]: {
3648
- backgroundColor: designSystemTokens.semanticColors.input.disabledBackground,
3649
- borderColor: designSystemTokens.semanticColors.border.primary,
3650
- color: designSystemTokens.semanticColors.typography.button.disabled,
3698
+ backgroundColor: designSystemTokens.semanticColors.input.bgDisabled,
3699
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
3700
+ color: designSystemTokens.semanticColors.button.fgDisabled,
3651
3701
  [`& .${InputBase.inputBaseClasses.input}`]: {
3652
- WebkitTextFillColor: designSystemTokens.semanticColors.typography.button.disabled,
3702
+ WebkitTextFillColor: designSystemTokens.semanticColors.button.fgDisabled,
3653
3703
  },
3654
3704
  },
3655
3705
  // Error state
3656
3706
  [`&.${InputBase.inputBaseClasses.error}`]: {
3657
- borderColor: designSystemTokens.semanticColors.status.error.default,
3707
+ borderColor: designSystemTokens.semanticColors.color.status.error.solid,
3658
3708
  },
3659
3709
  // Adornment styling
3660
3710
  [`& .${InputAdornment.inputAdornmentClasses.root}`]: {
3661
- color: destructive ? designSystemTokens.semanticColors.status.error.default : designSystemTokens.semanticColors.icons.placeholder,
3711
+ color: destructive
3712
+ ? designSystemTokens.semanticColors.color.status.error.solid
3713
+ : designSystemTokens.semanticColors.color.icon.placeholder,
3662
3714
  },
3663
3715
  };
3664
3716
  });
@@ -3670,12 +3722,12 @@ const StyledFormHelperText = styles.styled(FormHelperText, {
3670
3722
  marginRight: 0,
3671
3723
  // Figma specifies 14px for helper text
3672
3724
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
3673
- color: designSystemTokens.semanticColors.typography.input.helper,
3725
+ color: designSystemTokens.semanticColors.color.text.inputHelper,
3674
3726
  [`&.${FormHelperText.formHelperTextClasses.error}`]: {
3675
- color: designSystemTokens.semanticColors.status.error.default,
3727
+ color: designSystemTokens.semanticColors.color.status.error.solid,
3676
3728
  },
3677
3729
  [`&.${FormHelperText.formHelperTextClasses.disabled}`]: {
3678
- color: designSystemTokens.semanticColors.typography.button.disabled,
3730
+ color: designSystemTokens.semanticColors.button.fgDisabled,
3679
3731
  },
3680
3732
  };
3681
3733
  });
@@ -3783,7 +3835,7 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
3783
3835
  paddingBottom: config.paddingBottom,
3784
3836
  paddingLeft: config.paddingLeft,
3785
3837
  borderRadius: designSystemTokens.spacing.spacing_3_4, // 6px
3786
- backgroundColor: designSystemTokens.semanticColors.input.background,
3838
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
3787
3839
  gap: config.gap,
3788
3840
  // Icon is always centered vertically per Figma design
3789
3841
  alignItems: 'center',
@@ -3795,7 +3847,7 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
3795
3847
  minWidth: config.iconSize, // Override MUI's default 56px
3796
3848
  width: config.iconSize,
3797
3849
  height: config.iconSize,
3798
- color: designSystemTokens.semanticColors.icons.placeholder,
3850
+ color: designSystemTokens.semanticColors.color.icon.placeholder,
3799
3851
  transition: theme.transitions.create(['color'], {
3800
3852
  duration: theme.transitions.duration.short,
3801
3853
  }),
@@ -3812,9 +3864,7 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
3812
3864
  : size === 'small' || size === 'medium'
3813
3865
  ? designSystemTokens.typography.fontWeight.regular
3814
3866
  : designSystemTokens.typography.fontWeight.medium,
3815
- color: isLink
3816
- ? designSystemTokens.semanticColors.typography.link.primary
3817
- : designSystemTokens.semanticColors.typography.navigation.default,
3867
+ color: isLink ? designSystemTokens.semanticColors.color.text.link : designSystemTokens.semanticColors.color.text.nav,
3818
3868
  overflow: 'hidden',
3819
3869
  textOverflow: 'ellipsis',
3820
3870
  whiteSpace: 'nowrap',
@@ -3834,14 +3884,14 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
3834
3884
  : 12),
3835
3885
  lineHeight: 1.5,
3836
3886
  fontWeight: designSystemTokens.typography.fontWeight.regular,
3837
- color: designSystemTokens.semanticColors.typography.bodySecondary,
3887
+ color: designSystemTokens.semanticColors.color.text.secondary,
3838
3888
  },
3839
3889
  // Secondary text styling - wraps with word break
3840
3890
  '& .list-item-secondary': {
3841
3891
  fontSize: theme.typography.pxToRem('secondaryFontSize' in config ? config.secondaryFontSize : config.fontSize),
3842
3892
  lineHeight: size === 'large' ? 1.5 : 1.4,
3843
3893
  fontWeight: designSystemTokens.typography.fontWeight.regular,
3844
- color: designSystemTokens.semanticColors.typography.bodySecondary,
3894
+ color: designSystemTokens.semanticColors.color.text.secondary,
3845
3895
  wordBreak: 'break-word',
3846
3896
  whiteSpace: 'normal',
3847
3897
  ...(size === 'large' && {
@@ -3854,29 +3904,29 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
3854
3904
  alignItems: 'center',
3855
3905
  flexShrink: 0,
3856
3906
  marginLeft: designSystemTokens.spacing.spacing_1,
3857
- color: designSystemTokens.semanticColors.icons.default,
3907
+ color: designSystemTokens.semanticColors.color.icon.default,
3858
3908
  },
3859
3909
  // Hover state
3860
3910
  '&:hover': {
3861
- backgroundColor: designSystemTokens.semanticColors.input.background,
3911
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
3862
3912
  },
3863
3913
  // Selected/Active state
3864
3914
  // Font weights per Figma:
3865
3915
  // - Primary: small/medium/xxlarge use 500, large/xlarge use 600
3866
3916
  // - Secondary: large/xlarge use 500, xxlarge uses 400
3867
3917
  [`&.${ListItemButton.listItemButtonClasses.selected}`]: {
3868
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
3918
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
3869
3919
  '&:hover': {
3870
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
3920
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
3871
3921
  },
3872
3922
  [`& .${ListItemIcon.listItemIconClasses.root}`]: {
3873
- color: designSystemTokens.semanticColors.icons.pressed,
3923
+ color: designSystemTokens.semanticColors.color.icon.pressed,
3874
3924
  },
3875
3925
  '& .list-item-primary': {
3876
3926
  fontWeight: size === 'large' || size === 'xlarge'
3877
3927
  ? designSystemTokens.typography.fontWeight.semiBold
3878
3928
  : designSystemTokens.typography.fontWeight.medium,
3879
- color: designSystemTokens.semanticColors.typography.navigation.default,
3929
+ color: designSystemTokens.semanticColors.color.text.nav,
3880
3930
  },
3881
3931
  '& .list-item-secondary': {
3882
3932
  fontWeight: size === 'large' || size === 'xlarge'
@@ -3886,22 +3936,22 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
3886
3936
  },
3887
3937
  // Disabled state
3888
3938
  [`&.${ListItemButton.listItemButtonClasses.disabled}`]: {
3889
- backgroundColor: designSystemTokens.semanticColors.input.disabledBackground,
3939
+ backgroundColor: designSystemTokens.semanticColors.input.bgDisabled,
3890
3940
  opacity: 1,
3891
3941
  [`& .${ListItemIcon.listItemIconClasses.root}`]: {
3892
- color: designSystemTokens.semanticColors.icons.disabled,
3942
+ color: designSystemTokens.semanticColors.color.icon.disabled,
3893
3943
  },
3894
3944
  '& .list-item-primary': {
3895
- color: designSystemTokens.semanticColors.buttons.tertiary.disabled,
3945
+ color: designSystemTokens.semanticColors.button.tertiary.fgDisabled,
3896
3946
  },
3897
3947
  '& .list-item-secondary': {
3898
- color: designSystemTokens.semanticColors.buttons.tertiary.disabled,
3948
+ color: designSystemTokens.semanticColors.button.tertiary.fgDisabled,
3899
3949
  },
3900
3950
  '& .list-item-badge': {
3901
- color: designSystemTokens.semanticColors.buttons.tertiary.disabled,
3951
+ color: designSystemTokens.semanticColors.button.tertiary.fgDisabled,
3902
3952
  },
3903
3953
  '& .list-item-trailing': {
3904
- color: designSystemTokens.semanticColors.icons.disabled,
3954
+ color: designSystemTokens.semanticColors.color.icon.disabled,
3905
3955
  },
3906
3956
  },
3907
3957
  };
@@ -3956,28 +4006,28 @@ function navVariantStyles(theme) {
3956
4006
  paddingLeft: designSystemTokens.spacing.spacing_2,
3957
4007
  paddingRight: designSystemTokens.spacing.spacing_2,
3958
4008
  border: 'none',
3959
- color: designSystemTokens.semanticColors.typography.bodySecondary,
4009
+ color: designSystemTokens.semanticColors.color.text.secondary,
3960
4010
  backgroundColor: 'transparent',
3961
4011
  transition: theme.transitions.create(['background-color', 'color']),
3962
4012
  [`&.${ListItemButton.listItemButtonClasses.selected}`]: {
3963
- backgroundColor: designSystemTokens.semanticColors.surfaces.activeHighlight,
3964
- color: designSystemTokens.semanticColors.typography.body,
4013
+ backgroundColor: designSystemTokens.semanticColors.color.surface.highlightActive,
4014
+ color: designSystemTokens.semanticColors.color.text.primary,
3965
4015
  '&:hover': {
3966
- backgroundColor: designSystemTokens.semanticColors.surfaces.activeHighlight,
4016
+ backgroundColor: designSystemTokens.semanticColors.color.surface.highlightActive,
3967
4017
  },
3968
4018
  },
3969
4019
  [`&:not(.${ListItemButton.listItemButtonClasses.selected}):not(.${ListItemButton.listItemButtonClasses.disabled})`]: {
3970
4020
  '&:hover': {
3971
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
3972
- color: designSystemTokens.semanticColors.typography.body,
4021
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
4022
+ color: designSystemTokens.semanticColors.color.text.primary,
3973
4023
  },
3974
4024
  },
3975
4025
  [`&.${ListItemButton.listItemButtonClasses.focusVisible}`]: {
3976
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
4026
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
3977
4027
  outlineOffset: -2,
3978
4028
  },
3979
4029
  [`&.${ListItemButton.listItemButtonClasses.disabled}`]: {
3980
- color: designSystemTokens.semanticColors.typography.button.disabled,
4030
+ color: designSystemTokens.semanticColors.button.fgDisabled,
3981
4031
  opacity: 1,
3982
4032
  },
3983
4033
  };
@@ -3992,71 +4042,71 @@ function cardVariantStyles(theme) {
3992
4042
  paddingBottom: designSystemTokens.spacing.spacing_1,
3993
4043
  paddingLeft: designSystemTokens.spacing.spacing_3_4,
3994
4044
  paddingRight: designSystemTokens.spacing.spacing_3_4,
3995
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
3996
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
4045
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
4046
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
3997
4047
  transition: theme.transitions.create(['border', 'background-color']),
3998
4048
  // Active (selected) state
3999
4049
  [`&.${ListItemButton.listItemButtonClasses.selected}`]: {
4000
- border: `2px solid ${designSystemTokens.semanticColors.buttons.primary.default}`,
4001
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
4050
+ border: `2px solid ${designSystemTokens.semanticColors.button.primary.bg}`,
4051
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
4002
4052
  '&:hover': {
4003
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
4053
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
4004
4054
  },
4005
4055
  // Icon color in selected state
4006
4056
  [`& .${ListItemIcon.listItemIconClasses.root}`]: {
4007
- color: designSystemTokens.semanticColors.icons.default,
4057
+ color: designSystemTokens.semanticColors.color.icon.default,
4008
4058
  },
4009
4059
  // Text colors in selected state
4010
4060
  [`& .${ListItemText.listItemTextClasses.primary}`]: {
4011
- color: designSystemTokens.semanticColors.typography.body,
4061
+ color: designSystemTokens.semanticColors.color.text.primary,
4012
4062
  },
4013
4063
  [`& .${ListItemText.listItemTextClasses.secondary}`]: {
4014
- color: designSystemTokens.semanticColors.typography.bodySecondary,
4064
+ color: designSystemTokens.semanticColors.color.text.secondary,
4015
4065
  },
4016
4066
  },
4017
4067
  // Deselected (default) state
4018
4068
  [`&:not(.${ListItemButton.listItemButtonClasses.selected}):not(.${ListItemButton.listItemButtonClasses.disabled})`]: {
4019
4069
  '&:hover': {
4020
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
4070
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
4021
4071
  },
4022
4072
  [`& .${ListItemIcon.listItemIconClasses.root}`]: {
4023
- color: designSystemTokens.semanticColors.icons.disabled,
4073
+ color: designSystemTokens.semanticColors.color.icon.disabled,
4024
4074
  },
4025
4075
  [`& .${ListItemText.listItemTextClasses.primary}`]: {
4026
- color: designSystemTokens.semanticColors.buttons.tertiary.disabled,
4076
+ color: designSystemTokens.semanticColors.button.tertiary.fgDisabled,
4027
4077
  },
4028
4078
  [`& .${ListItemText.listItemTextClasses.secondary}`]: {
4029
- color: designSystemTokens.semanticColors.typography.button.disabled,
4079
+ color: designSystemTokens.semanticColors.button.fgDisabled,
4030
4080
  },
4031
4081
  },
4032
4082
  // Focus state
4033
4083
  [`&.${ListItemButton.listItemButtonClasses.focusVisible}`]: {
4034
- outline: `2px solid ${designSystemTokens.semanticColors.buttons.primary.default}`,
4084
+ outline: `2px solid ${designSystemTokens.semanticColors.button.primary.bg}`,
4035
4085
  outlineOffset: 2,
4036
- border: `2px solid ${designSystemTokens.semanticColors.buttons.primary.default}`,
4037
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
4086
+ border: `2px solid ${designSystemTokens.semanticColors.button.primary.bg}`,
4087
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
4038
4088
  [`& .${ListItemIcon.listItemIconClasses.root}`]: {
4039
- color: designSystemTokens.semanticColors.icons.default,
4089
+ color: designSystemTokens.semanticColors.color.icon.default,
4040
4090
  },
4041
4091
  [`& .${ListItemText.listItemTextClasses.primary}`]: {
4042
- color: designSystemTokens.semanticColors.typography.body,
4092
+ color: designSystemTokens.semanticColors.color.text.primary,
4043
4093
  },
4044
4094
  [`& .${ListItemText.listItemTextClasses.secondary}`]: {
4045
- color: designSystemTokens.semanticColors.typography.bodySecondary,
4095
+ color: designSystemTokens.semanticColors.color.text.secondary,
4046
4096
  },
4047
4097
  },
4048
4098
  // Disabled state
4049
4099
  [`&.${ListItemButton.listItemButtonClasses.disabled}`]: {
4050
- backgroundColor: designSystemTokens.semanticColors.surface.sunken,
4100
+ backgroundColor: designSystemTokens.semanticColors.color.surface.sunken,
4051
4101
  opacity: 1, // Override MUI default opacity
4052
4102
  [`& .${ListItemIcon.listItemIconClasses.root}`]: {
4053
- color: designSystemTokens.semanticColors.icons.disabled,
4103
+ color: designSystemTokens.semanticColors.color.icon.disabled,
4054
4104
  },
4055
4105
  [`& .${ListItemText.listItemTextClasses.primary}`]: {
4056
- color: designSystemTokens.semanticColors.typography.button.disabled,
4106
+ color: designSystemTokens.semanticColors.button.fgDisabled,
4057
4107
  },
4058
4108
  [`& .${ListItemText.listItemTextClasses.secondary}`]: {
4059
- color: designSystemTokens.semanticColors.typography.button.disabled,
4109
+ color: designSystemTokens.semanticColors.button.fgDisabled,
4060
4110
  },
4061
4111
  },
4062
4112
  };
@@ -4101,9 +4151,9 @@ ModListItemButton.displayName = 'ModListItemButton';
4101
4151
 
4102
4152
  const StyledMenu = styles.styled(Menu)(() => ({
4103
4153
  [`& .${Paper.paperClasses.root}`]: {
4104
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
4154
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
4105
4155
  borderRadius: designSystemTokens.borderRadius.s,
4106
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
4156
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
4107
4157
  boxShadow: `${designSystemTokens.shadows.dropdown.x}px ${designSystemTokens.shadows.dropdown.y}px ${designSystemTokens.shadows.dropdown.blur}px ${designSystemTokens.shadows.dropdown.spread}px ${designSystemTokens.shadows.dropdown.shadow}`,
4108
4158
  marginTop: designSystemTokens.spacing.spacing_1,
4109
4159
  paddingTop: designSystemTokens.spacing.spacing_1,
@@ -4159,8 +4209,8 @@ const StyledCell$1 = styles.styled('div', {
4159
4209
  paddingTop: designSystemTokens.spacing.spacing_1_2, // 4px — input-vertical
4160
4210
  paddingBottom: designSystemTokens.spacing.spacing_1_2,
4161
4211
  backgroundColor: disabled
4162
- ? designSystemTokens.semanticColors.surfaces.dataGrid.disabled
4163
- : designSystemTokens.semanticColors.surfaces.dataGrid.default,
4212
+ ? designSystemTokens.semanticColors.color.surface.dataGrid.disabled
4213
+ : designSystemTokens.semanticColors.color.surface.dataGrid.default,
4164
4214
  boxSizing: 'border-box',
4165
4215
  }));
4166
4216
  const LabelText = styles.styled('span', {
@@ -4173,7 +4223,7 @@ const LabelText = styles.styled('span', {
4173
4223
  fontSize: designSystemTokens.typography.fontSize.xs,
4174
4224
  fontWeight: designSystemTokens.typography.fontWeight.regular,
4175
4225
  lineHeight: 1.5,
4176
- color: disabled ? designSystemTokens.semanticColors.typography.bodySecondary : designSystemTokens.semanticColors.typography.body,
4226
+ color: disabled ? designSystemTokens.semanticColors.color.text.secondary : designSystemTokens.semanticColors.color.text.primary,
4177
4227
  }));
4178
4228
  /**
4179
4229
  * ModAvatarCell — DataGrid cell displaying a user avatar with optional label.
@@ -4191,9 +4241,9 @@ ModAvatarCell.displayName = 'ModAvatarCell';
4191
4241
  // ============================================================================
4192
4242
  const StyledDialog = styles.styled(Dialog)({
4193
4243
  [`& .${Dialog.dialogClasses.paper}`]: {
4194
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
4244
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
4195
4245
  borderRadius: designSystemTokens.borderRadius.card,
4196
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
4246
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
4197
4247
  boxShadow: 'none',
4198
4248
  },
4199
4249
  [`& .${Dialog.dialogClasses.container}`]: {
@@ -4253,7 +4303,7 @@ const ModalHeaderTitle = styles.styled('h2')(({ theme }) => ({
4253
4303
  fontWeight: designSystemTokens.typography.fontWeight.medium,
4254
4304
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.h3),
4255
4305
  lineHeight: 1.4,
4256
- color: designSystemTokens.semanticColors.typography.navigation.default,
4306
+ color: designSystemTokens.semanticColors.color.text.nav,
4257
4307
  }));
4258
4308
  const modalHeaderTitleLinkStyles = {
4259
4309
  margin: 0,
@@ -4261,10 +4311,10 @@ const modalHeaderTitleLinkStyles = {
4261
4311
  fontWeight: designSystemTokens.typography.fontWeight.medium,
4262
4312
  fontSize: designSystemTokens.typography.fontSize.h3,
4263
4313
  lineHeight: 1.4,
4264
- color: designSystemTokens.semanticColors.typography.link.primary,
4314
+ color: designSystemTokens.semanticColors.color.text.link,
4265
4315
  textDecoration: 'none',
4266
4316
  '&:hover': {
4267
- color: designSystemTokens.semanticColors.buttons.tertiary.hover,
4317
+ color: designSystemTokens.semanticColors.button.tertiary.fgHover,
4268
4318
  textDecoration: 'underline',
4269
4319
  },
4270
4320
  };
@@ -4274,10 +4324,10 @@ const ModalHeaderSubtitle = styles.styled('p')(({ theme }) => ({
4274
4324
  fontWeight: designSystemTokens.typography.fontWeight.regular,
4275
4325
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
4276
4326
  lineHeight: 1.4,
4277
- color: designSystemTokens.semanticColors.typography.bodySecondary,
4327
+ color: designSystemTokens.semanticColors.color.text.secondary,
4278
4328
  }));
4279
4329
  const StyledCloseButton = styles.styled(IconButton)({
4280
- color: designSystemTokens.semanticColors.icons.utility,
4330
+ color: designSystemTokens.semanticColors.color.icon.utility,
4281
4331
  paddingTop: 0,
4282
4332
  paddingRight: 0,
4283
4333
  paddingBottom: 0,
@@ -4287,7 +4337,7 @@ const StyledCloseButton = styles.styled(IconButton)({
4287
4337
  flexShrink: 0,
4288
4338
  '&:hover': {
4289
4339
  backgroundColor: 'transparent',
4290
- color: designSystemTokens.semanticColors.icons.utility,
4340
+ color: designSystemTokens.semanticColors.color.icon.utility,
4291
4341
  },
4292
4342
  });
4293
4343
  /**
@@ -4321,7 +4371,7 @@ const StyledDialogContent = styles.styled(DialogContent)(({ theme }) => ({
4321
4371
  fontWeight: designSystemTokens.typography.fontWeight.regular,
4322
4372
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
4323
4373
  lineHeight: 1.5,
4324
- color: designSystemTokens.semanticColors.typography.navigation.default,
4374
+ color: designSystemTokens.semanticColors.color.text.nav,
4325
4375
  [`&.${DialogContent.dialogContentClasses.root}`]: {
4326
4376
  paddingTop: 0,
4327
4377
  paddingRight: designSystemTokens.spacing.spacing_4,
@@ -4376,7 +4426,7 @@ const CellRoot = styles.styled('div', {
4376
4426
  justifyContent: 'center',
4377
4427
  width: '100%',
4378
4428
  height: '100%',
4379
- color: disabled ? designSystemTokens.semanticColors.icons.disabled : designSystemTokens.semanticColors.icons.default,
4429
+ color: disabled ? designSystemTokens.semanticColors.color.icon.disabled : designSystemTokens.semanticColors.color.icon.default,
4380
4430
  }));
4381
4431
  /**
4382
4432
  * ModIconCell — Icon cell for DataGrid. Renders an icon centered in the cell.
@@ -4399,8 +4449,8 @@ const CellWrapper = styles.styled('div', {
4399
4449
  paddingLeft: designSystemTokens.spacing.spacing_1,
4400
4450
  paddingRight: designSystemTokens.spacing.spacing_1,
4401
4451
  backgroundColor: disabled
4402
- ? designSystemTokens.semanticColors.surfaces.dataGrid.disabled
4403
- : designSystemTokens.semanticColors.surfaces.dataGrid.default,
4452
+ ? designSystemTokens.semanticColors.color.surface.dataGrid.disabled
4453
+ : designSystemTokens.semanticColors.color.surface.dataGrid.default,
4404
4454
  '& img': {
4405
4455
  display: 'block',
4406
4456
  maxHeight: 32,
@@ -4438,13 +4488,13 @@ const StyledLinearProgress = styles.styled(LinearProgress, {
4438
4488
  [`&.${LinearProgress.linearProgressClasses.colorPrimary}`]: {
4439
4489
  backgroundColor: designSystemTokens.semanticColors.progress.track,
4440
4490
  [`& .${LinearProgress.linearProgressClasses.bar}`]: {
4441
- backgroundColor: designSystemTokens.semanticColors.status.active.default,
4491
+ backgroundColor: designSystemTokens.semanticColors.color.status.active.solid,
4442
4492
  },
4443
4493
  },
4444
4494
  // Cancelled variant uses warning color
4445
4495
  '&[data-variant="cancelled"]': {
4446
4496
  [`& .${LinearProgress.linearProgressClasses.bar}`]: {
4447
- backgroundColor: designSystemTokens.semanticColors.status.warning.default,
4497
+ backgroundColor: designSystemTokens.semanticColors.color.status.warning.solid,
4448
4498
  },
4449
4499
  },
4450
4500
  }));
@@ -4473,7 +4523,7 @@ const ProgressWrapper = styles.styled('div')(({ labelPosition }) => ({
4473
4523
  const ProgressLabel = styles.styled(Typography)(({ theme }) => ({
4474
4524
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
4475
4525
  fontWeight: designSystemTokens.typography.fontWeight.medium,
4476
- color: designSystemTokens.semanticColors.typography.body,
4526
+ color: designSystemTokens.semanticColors.color.text.primary,
4477
4527
  lineHeight: 1.4,
4478
4528
  whiteSpace: 'nowrap',
4479
4529
  flexShrink: 0,
@@ -4507,8 +4557,8 @@ const StyledCell = styles.styled('div', {
4507
4557
  paddingLeft: designSystemTokens.spacing.spacing_1_1_2, // 12px input-horizontal
4508
4558
  paddingRight: designSystemTokens.spacing.spacing_1_1_2,
4509
4559
  backgroundColor: disabled
4510
- ? designSystemTokens.semanticColors.surfaces.dataGrid.disabled
4511
- : designSystemTokens.semanticColors.surfaces.dataGrid.default,
4560
+ ? designSystemTokens.semanticColors.color.surface.dataGrid.disabled
4561
+ : designSystemTokens.semanticColors.color.surface.dataGrid.default,
4512
4562
  boxSizing: 'border-box',
4513
4563
  }));
4514
4564
  /**
@@ -4520,10 +4570,14 @@ const ModProgressCell = ({ value = 0, disabled = false, empty = false, }) => {
4520
4570
  };
4521
4571
  ModProgressCell.displayName = 'ModProgressCell';
4522
4572
 
4573
+ // semanticColors.status[variant] is a computed member access, so the phase-2
4574
+ // token restructure's codemod (driven from literal TOKEN_MAP paths) cannot
4575
+ // reach it — fixed by hand. See docs/superpowers/plans/2026-08-05-semantic-restructure.md
4576
+ // "Dynamic access — the codemod cannot see these".
4523
4577
  const variantColors = (variant) => ({
4524
- bg: designSystemTokens.semanticColors.status[variant].light,
4525
- fg: designSystemTokens.semanticColors.status[variant].dark,
4526
- border: designSystemTokens.semanticColors.status[variant].transparent,
4578
+ bg: designSystemTokens.semanticColors.color.status[variant].bg,
4579
+ fg: designSystemTokens.semanticColors.color.status[variant].fg,
4580
+ border: designSystemTokens.semanticColors.color.status[variant].tint,
4527
4581
  });
4528
4582
  const StyledChip = styles.styled('div', {
4529
4583
  shouldForwardProp: prop => prop !== 'disabled' && prop !== 'variant',
@@ -4538,9 +4592,9 @@ const StyledChip = styles.styled('div', {
4538
4592
  paddingLeft: designSystemTokens.spacing.spacing_1_1_2,
4539
4593
  paddingRight: designSystemTokens.spacing.spacing_1_1_2,
4540
4594
  borderRadius: designSystemTokens.borderRadius.full,
4541
- border: `1px solid ${disabled ? designSystemTokens.semanticColors.border.secondary : colors.border}`,
4542
- backgroundColor: disabled ? designSystemTokens.semanticColors.surfaces.dataGrid.disabled : colors.bg,
4543
- color: disabled ? designSystemTokens.semanticColors.icons.disabled : colors.fg,
4595
+ border: `1px solid ${disabled ? designSystemTokens.semanticColors.color.border.primary : colors.border}`,
4596
+ backgroundColor: disabled ? designSystemTokens.semanticColors.color.surface.dataGrid.disabled : colors.bg,
4597
+ color: disabled ? designSystemTokens.semanticColors.color.icon.disabled : colors.fg,
4544
4598
  fontFamily: designSystemTokens.typography.fontFamily.body,
4545
4599
  fontSize: designSystemTokens.typography.fontSize.xs,
4546
4600
  fontWeight: designSystemTokens.typography.fontWeight.medium,
@@ -4565,7 +4619,7 @@ const TooltipErrorPre = styles.styled('pre')({
4565
4619
  fontSize: designSystemTokens.typography.fontSize.sm,
4566
4620
  fontWeight: designSystemTokens.typography.fontWeight.regular,
4567
4621
  lineHeight: 1.5,
4568
- color: designSystemTokens.semanticColors.typography.tooltip.default,
4622
+ color: designSystemTokens.semanticColors.color.text.tooltip,
4569
4623
  whiteSpace: 'pre-wrap',
4570
4624
  wordBreak: 'break-all',
4571
4625
  maxHeight: 200,
@@ -4573,12 +4627,12 @@ const TooltipErrorPre = styles.styled('pre')({
4573
4627
  });
4574
4628
  const StyledTooltip$1 = styles.styled(Tooltip)({
4575
4629
  [`& .${Tooltip.tooltipClasses.tooltip}`]: {
4576
- backgroundColor: designSystemTokens.semanticColors.surfaces.tooltip,
4630
+ backgroundColor: designSystemTokens.semanticColors.color.surface.tooltip,
4577
4631
  maxWidth: 400,
4578
4632
  padding: `${designSystemTokens.spacing.spacing_1}px ${designSystemTokens.spacing.spacing_1_1_2}px`,
4579
4633
  },
4580
4634
  [`& .${Tooltip.tooltipClasses.arrow}`]: {
4581
- color: designSystemTokens.semanticColors.surfaces.tooltip,
4635
+ color: designSystemTokens.semanticColors.color.surface.tooltip,
4582
4636
  },
4583
4637
  });
4584
4638
  /**
@@ -4587,7 +4641,7 @@ const StyledTooltip$1 = styles.styled(Tooltip)({
4587
4641
  const ModStatusCell = ({ icon, label, details, disabled = false, variant = 'success', empty = false, }) => {
4588
4642
  if (empty) {
4589
4643
  return (jsxRuntime.jsx(Box, { component: "span", sx: {
4590
- color: designSystemTokens.semanticColors.typography.body,
4644
+ color: designSystemTokens.semanticColors.color.text.primary,
4591
4645
  fontSize: designSystemTokens.typography.fontSize.sm,
4592
4646
  lineHeight: 1,
4593
4647
  }, children: '—' }));
@@ -4608,10 +4662,10 @@ const NavigationAvatarContainer = styles.styled('div')({
4608
4662
  justifyContent: 'center',
4609
4663
  alignItems: 'center',
4610
4664
  borderRadius: '50%',
4611
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
4612
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.defaultBackground,
4665
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
4666
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bg,
4613
4667
  '&:focus-within': {
4614
- borderColor: designSystemTokens.semanticColors.border.focus,
4668
+ borderColor: designSystemTokens.semanticColors.color.border.focus,
4615
4669
  },
4616
4670
  });
4617
4671
  /**
@@ -4635,19 +4689,19 @@ const useModSideNav = () => React.useContext(ModSideNavContext);
4635
4689
  */
4636
4690
  const variantConfig = {
4637
4691
  light: {
4638
- backgroundColor: designSystemTokens.semanticColors.surfaces.tooltip, // #4b5563 - medium gray
4639
- color: designSystemTokens.semanticColors.typography.tooltip.default, // #ffffff - white
4692
+ backgroundColor: designSystemTokens.semanticColors.color.surface.tooltip, // #4b5563 - medium gray
4693
+ color: designSystemTokens.semanticColors.color.text.tooltip, // #ffffff - white
4640
4694
  },
4641
4695
  dark: {
4642
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
4643
- color: designSystemTokens.semanticColors.typography.body,
4696
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
4697
+ color: designSystemTokens.semanticColors.color.text.primary,
4644
4698
  },
4645
4699
  brand: {
4646
4700
  // snackbarBrand is one of the few tokens Figma fixes across both modes, so
4647
4701
  // its foreground must be fixed too. typography.tooltip.default flips
4648
4702
  // (#ffffff -> #232342), which would put dark navy on dark blue in dark mode.
4649
- backgroundColor: designSystemTokens.semanticColors.surfaces.snackbarBrand,
4650
- color: designSystemTokens.semanticColors.typography.linkWhite,
4703
+ backgroundColor: designSystemTokens.semanticColors.color.surface.snackbarBrand,
4704
+ color: designSystemTokens.semanticColors.color.text.linkOnDark,
4651
4705
  },
4652
4706
  };
4653
4707
  /**
@@ -4731,11 +4785,11 @@ const StyledRoot = styles.styled(ButtonBase, {
4731
4785
  cursor: 'pointer',
4732
4786
  textDecoration: 'none',
4733
4787
  '&:hover .mod-nav-icon-padding': {
4734
- backgroundColor: designSystemTokens.semanticColors.accent.tint,
4735
- borderColor: designSystemTokens.semanticColors.accent.border,
4788
+ backgroundColor: designSystemTokens.semanticColors.color.action.tint,
4789
+ borderColor: designSystemTokens.semanticColors.color.action.border,
4736
4790
  },
4737
4791
  '&:hover .mod-nav-label': {
4738
- color: designSystemTokens.semanticColors.text.primary,
4792
+ color: designSystemTokens.semanticColors.color.text.primary,
4739
4793
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
4740
4794
  },
4741
4795
  [`& .${Chip.chipClasses.root}`]: {
@@ -4746,16 +4800,16 @@ const StyledRoot = styles.styled(ButtonBase, {
4746
4800
  },
4747
4801
  ...(selected && {
4748
4802
  '& .mod-nav-icon-padding': {
4749
- backgroundColor: designSystemTokens.semanticColors.accent.tint,
4750
- borderColor: designSystemTokens.semanticColors.accent.border,
4751
- color: designSystemTokens.semanticColors.accent.deep,
4803
+ backgroundColor: designSystemTokens.semanticColors.color.action.tint,
4804
+ borderColor: designSystemTokens.semanticColors.color.action.border,
4805
+ color: designSystemTokens.semanticColors.color.action.navy,
4752
4806
  },
4753
4807
  '& .mod-nav-label': {
4754
- color: designSystemTokens.semanticColors.accent.deep,
4808
+ color: designSystemTokens.semanticColors.color.action.navy,
4755
4809
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
4756
4810
  },
4757
4811
  '&:hover .mod-nav-label': {
4758
- color: designSystemTokens.semanticColors.accent.deep,
4812
+ color: designSystemTokens.semanticColors.color.action.navy,
4759
4813
  },
4760
4814
  }),
4761
4815
  }));
@@ -4765,7 +4819,7 @@ const IconPadding = styles.styled('span')({
4765
4819
  padding: designSystemTokens.spacing.spacing_1, // 8px
4766
4820
  borderRadius: designSystemTokens.borderRadius.xS, // 4px
4767
4821
  border: '1px solid transparent',
4768
- color: designSystemTokens.semanticColors.icons.default,
4822
+ color: designSystemTokens.semanticColors.color.icon.default,
4769
4823
  transition: 'background-color 150ms, border-color 150ms, color 150ms',
4770
4824
  });
4771
4825
  const navLabel = designSystemTokens.semanticTypography.navigationLabel.default;
@@ -4775,7 +4829,7 @@ const Label$2 = styles.styled('span')(({ theme }) => ({
4775
4829
  fontSize: theme.typography.pxToRem(navLabel.fontSize),
4776
4830
  lineHeight: navLabel.lineHeight,
4777
4831
  textAlign: 'center',
4778
- color: designSystemTokens.semanticColors.text.primary,
4832
+ color: designSystemTokens.semanticColors.color.text.primary,
4779
4833
  width: '100%',
4780
4834
  transition: 'color 150ms',
4781
4835
  }));
@@ -4802,7 +4856,7 @@ const StickyHeader = styles.styled(Box)(({ theme }) => ({
4802
4856
  position: 'sticky',
4803
4857
  top: 0,
4804
4858
  zIndex: theme.zIndex.appBar,
4805
- backgroundColor: designSystemTokens.semanticColors.surface.canvasContent,
4859
+ backgroundColor: designSystemTokens.semanticColors.color.surface.canvas,
4806
4860
  flexShrink: 0,
4807
4861
  }));
4808
4862
  /**
@@ -4811,14 +4865,14 @@ const StickyHeader = styles.styled(Box)(({ theme }) => ({
4811
4865
  const PageTitle = styles.styled(Typography)(() => ({
4812
4866
  ...designSystemTokens.semanticTypography.titles.pageHeader,
4813
4867
  lineHeight: 1.4,
4814
- color: designSystemTokens.semanticColors.typography.body,
4868
+ color: designSystemTokens.semanticColors.color.text.primary,
4815
4869
  }));
4816
4870
  /**
4817
4871
  * Subtitle typography
4818
4872
  */
4819
4873
  const Subtitle = styles.styled(Typography)(() => ({
4820
4874
  fontSize: designSystemTokens.typography.fontSize.sm,
4821
- color: designSystemTokens.semanticColors.typography.bodySecondary,
4875
+ color: designSystemTokens.semanticColors.color.text.secondary,
4822
4876
  }));
4823
4877
  /**
4824
4878
  * ModPageContent - Page content surface from the Moderne Design System
@@ -4913,8 +4967,8 @@ function ModPageContent({ pageTitle, subtitle, breadcrumbs, action, sticky = fal
4913
4967
  minHeight: '50vh',
4914
4968
  }, children: jsxRuntime.jsx(ModLoadingSpinner, {}) })) : (children);
4915
4969
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Box, { sx: {
4916
- backgroundColor: designSystemTokens.semanticColors.surface.canvasContent,
4917
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
4970
+ backgroundColor: designSystemTokens.semanticColors.color.surface.canvas,
4971
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
4918
4972
  borderRadius: `${designSystemTokens.borderRadius.input}px`,
4919
4973
  height: '100%',
4920
4974
  display: 'flex',
@@ -4957,10 +5011,10 @@ function ModPageContent({ pageTitle, subtitle, breadcrumbs, action, sticky = fal
4957
5011
  right: designSystemTokens.spacing.spacing_4,
4958
5012
  zIndex: 1000,
4959
5013
  }, children: jsxRuntime.jsx(Fab, { sx: {
4960
- backgroundColor: `color-mix(in srgb, ${designSystemTokens.semanticColors.buttons.primary.default} 12.5%, transparent)`,
4961
- color: designSystemTokens.semanticColors.buttons.primary.default,
5014
+ backgroundColor: `color-mix(in srgb, ${designSystemTokens.semanticColors.button.primary.bg} 12.5%, transparent)`,
5015
+ color: designSystemTokens.semanticColors.button.primary.bg,
4962
5016
  '&:hover': {
4963
- backgroundColor: `color-mix(in srgb, ${designSystemTokens.semanticColors.buttons.primary.default} 18.8%, transparent)`,
5017
+ backgroundColor: `color-mix(in srgb, ${designSystemTokens.semanticColors.button.primary.bg} 18.8%, transparent)`,
4964
5018
  },
4965
5019
  }, title: "Back to top", size: "small", onClick: handleScrollToTop, children: jsxRuntime.jsx(lucideReact.ChevronUp, { size: 20 }) }) }) }))] }));
4966
5020
  }
@@ -5017,8 +5071,8 @@ const StyledTextField = styles.styled(TextField)(({ theme }) => ({
5017
5071
  height: designSystemTokens.spacing.spacing_5,
5018
5072
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.default),
5019
5073
  borderRadius: designSystemTokens.borderRadius.input,
5020
- backgroundColor: designSystemTokens.semanticColors.input.background,
5021
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
5074
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
5075
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
5022
5076
  paddingTop: designSystemTokens.spacing.spacing_1,
5023
5077
  paddingBottom: designSystemTokens.spacing.spacing_1,
5024
5078
  paddingLeft: designSystemTokens.spacing.spacing_1_1_2,
@@ -5029,26 +5083,26 @@ const StyledTextField = styles.styled(TextField)(({ theme }) => ({
5029
5083
  },
5030
5084
  [`& .${InputBase.inputBaseClasses.input}`]: {
5031
5085
  padding: 0,
5032
- color: designSystemTokens.semanticColors.typography.input.default,
5086
+ color: designSystemTokens.semanticColors.color.text.input,
5033
5087
  '&::placeholder': {
5034
- color: designSystemTokens.semanticColors.typography.input.placeholder,
5088
+ color: designSystemTokens.semanticColors.color.text.inputPlaceholder,
5035
5089
  opacity: 1,
5036
5090
  },
5037
5091
  },
5038
5092
  '&:hover': {
5039
- backgroundColor: designSystemTokens.semanticColors.input.hoverBackground,
5093
+ backgroundColor: designSystemTokens.semanticColors.input.bgHover,
5040
5094
  },
5041
5095
  [`&.${InputBase.inputBaseClasses.focused}`]: {
5042
- backgroundColor: designSystemTokens.semanticColors.input.background,
5043
- borderColor: designSystemTokens.semanticColors.buttons.primary.default,
5096
+ backgroundColor: designSystemTokens.semanticColors.input.bg,
5097
+ borderColor: designSystemTokens.semanticColors.button.primary.bg,
5044
5098
  },
5045
5099
  [`&.${InputBase.inputBaseClasses.disabled}`]: {
5046
- backgroundColor: designSystemTokens.semanticColors.input.disabledBackground,
5047
- color: designSystemTokens.semanticColors.typography.button.disabled,
5100
+ backgroundColor: designSystemTokens.semanticColors.input.bgDisabled,
5101
+ color: designSystemTokens.semanticColors.button.fgDisabled,
5048
5102
  },
5049
5103
  },
5050
5104
  [`& .${InputAdornment.inputAdornmentClasses.root}`]: {
5051
- color: designSystemTokens.semanticColors.icons.placeholder,
5105
+ color: designSystemTokens.semanticColors.color.icon.placeholder,
5052
5106
  '& svg': {
5053
5107
  width: 14,
5054
5108
  height: 14,
@@ -5058,10 +5112,10 @@ const StyledTextField = styles.styled(TextField)(({ theme }) => ({
5058
5112
  marginRight: 0,
5059
5113
  },
5060
5114
  [`& .${IconButton.iconButtonClasses.root}`]: {
5061
- color: designSystemTokens.semanticColors.icons.placeholder,
5115
+ color: designSystemTokens.semanticColors.color.icon.placeholder,
5062
5116
  '&:hover': {
5063
- backgroundColor: designSystemTokens.semanticColors.icons.hoverBackground,
5064
- color: designSystemTokens.semanticColors.icons.utility,
5117
+ backgroundColor: designSystemTokens.semanticColors.color.icon.bgHover,
5118
+ color: designSystemTokens.semanticColors.color.icon.utility,
5065
5119
  },
5066
5120
  '& svg': {
5067
5121
  width: 16,
@@ -5108,14 +5162,14 @@ ModQuickFilter.displayName = 'ModQuickFilter';
5108
5162
  const UncheckedIcon = ({ size, disabled }) => {
5109
5163
  const dimensions = size === 'small' ? 16 : 20;
5110
5164
  const radius = size === 'small' ? 8 : 10;
5111
- return (jsxRuntime.jsxs("svg", { width: dimensions, height: dimensions, viewBox: `0 0 ${dimensions} ${dimensions}`, fill: "none", "aria-hidden": "true", children: [jsxRuntime.jsx("title", { children: "Unchecked radio button" }), jsxRuntime.jsx("circle", { cx: dimensions / 2, cy: dimensions / 2, r: radius - 0.5, stroke: designSystemTokens.semanticColors.border.strong, strokeWidth: "1", fill: disabled ? designSystemTokens.semanticColors.buttons.primary.disabled : 'transparent' })] }));
5165
+ return (jsxRuntime.jsxs("svg", { width: dimensions, height: dimensions, viewBox: `0 0 ${dimensions} ${dimensions}`, fill: "none", "aria-hidden": "true", children: [jsxRuntime.jsx("title", { children: "Unchecked radio button" }), jsxRuntime.jsx("circle", { cx: dimensions / 2, cy: dimensions / 2, r: radius - 0.5, stroke: designSystemTokens.semanticColors.color.border.strong, strokeWidth: "1", fill: disabled ? designSystemTokens.semanticColors.button.primary.bgDisabled : 'transparent' })] }));
5112
5166
  };
5113
5167
  const CheckedIcon = ({ size, disabled }) => {
5114
5168
  const dimensions = size === 'small' ? 16 : 20;
5115
5169
  const radius = size === 'small' ? 8 : 10;
5116
5170
  const inset = size === 'small' ? 0.3125 : 0.3; // 31.25% or 30%
5117
5171
  const innerRadius = radius * (1 - 2 * inset);
5118
- return (jsxRuntime.jsxs("svg", { width: dimensions, height: dimensions, viewBox: `0 0 ${dimensions} ${dimensions}`, fill: "none", "aria-hidden": "true", children: [jsxRuntime.jsx("title", { children: "Checked radio button" }), jsxRuntime.jsx("circle", { cx: dimensions / 2, cy: dimensions / 2, r: radius - 0.5, fill: disabled ? designSystemTokens.semanticColors.buttons.primary.disabled : designSystemTokens.semanticColors.icons.active, stroke: disabled ? designSystemTokens.semanticColors.border.primary : designSystemTokens.semanticColors.icons.active, strokeWidth: "1" }), jsxRuntime.jsx("circle", { cx: dimensions / 2, cy: dimensions / 2, r: innerRadius, fill: disabled ? designSystemTokens.semanticColors.icons.disabled : designSystemTokens.semanticColors.surfaces.white })] }));
5172
+ return (jsxRuntime.jsxs("svg", { width: dimensions, height: dimensions, viewBox: `0 0 ${dimensions} ${dimensions}`, fill: "none", "aria-hidden": "true", children: [jsxRuntime.jsx("title", { children: "Checked radio button" }), jsxRuntime.jsx("circle", { cx: dimensions / 2, cy: dimensions / 2, r: radius - 0.5, fill: disabled ? designSystemTokens.semanticColors.button.primary.bgDisabled : designSystemTokens.semanticColors.color.icon.active, stroke: disabled ? designSystemTokens.semanticColors.color.border.primary : designSystemTokens.semanticColors.color.icon.active, strokeWidth: "1" }), jsxRuntime.jsx("circle", { cx: dimensions / 2, cy: dimensions / 2, r: innerRadius, fill: disabled ? designSystemTokens.semanticColors.color.icon.disabled : designSystemTokens.semanticColors.color.surface.raised })] }));
5119
5173
  };
5120
5174
  const RadioContainer = styles.styled('label')(({ disabled }) => ({
5121
5175
  display: 'inline-flex',
@@ -5141,13 +5195,13 @@ const Label$1 = styles.styled('span')(({ theme, size = 'medium' }) => ({
5141
5195
  fontSize: theme.typography.pxToRem(size === 'small' ? designSystemTokens.typography.fontSize.sm : designSystemTokens.typography.fontSize.default),
5142
5196
  fontWeight: designSystemTokens.typography.fontWeight.medium,
5143
5197
  lineHeight: size === 'small' ? 1.4 : 1.5,
5144
- color: designSystemTokens.semanticColors.typography.input.default,
5198
+ color: designSystemTokens.semanticColors.color.text.input,
5145
5199
  }));
5146
5200
  const HelperText$1 = styles.styled('span')(({ theme, size = 'medium' }) => ({
5147
5201
  fontSize: theme.typography.pxToRem(size === 'small' ? designSystemTokens.typography.fontSize.sm : designSystemTokens.typography.fontSize.default),
5148
5202
  fontWeight: designSystemTokens.typography.fontWeight.regular,
5149
5203
  lineHeight: size === 'small' ? 1.4 : 1.5,
5150
- color: designSystemTokens.semanticColors.typography.bodySecondary,
5204
+ color: designSystemTokens.semanticColors.color.text.secondary,
5151
5205
  }));
5152
5206
  const StyledRadio = styles.styled(Radio, {
5153
5207
  shouldForwardProp: prop => prop !== 'size',
@@ -5160,9 +5214,9 @@ const StyledRadio = styles.styled(Radio, {
5160
5214
  height: dimensions,
5161
5215
  flexShrink: 0,
5162
5216
  borderRadius: radius,
5163
- color: designSystemTokens.semanticColors.border.strong,
5217
+ color: designSystemTokens.semanticColors.color.border.strong,
5164
5218
  [`&.${Radio.radioClasses.checked}`]: {
5165
- color: designSystemTokens.semanticColors.icons.active,
5219
+ color: designSystemTokens.semanticColors.color.icon.active,
5166
5220
  },
5167
5221
  '&:hover': {
5168
5222
  backgroundColor: 'transparent',
@@ -5175,7 +5229,7 @@ const StyledRadio = styles.styled(Radio, {
5175
5229
  // Focus state for keyboard navigation
5176
5230
  [`&.${ButtonBase.buttonBaseClasses.focusVisible}`]: {
5177
5231
  // Unchecked focus state: white background
5178
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
5232
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
5179
5233
  // Checked focus state: keep the blue circle visible
5180
5234
  [`&.${Radio.radioClasses.checked}`]: {
5181
5235
  backgroundColor: 'transparent',
@@ -5183,9 +5237,9 @@ const StyledRadio = styles.styled(Radio, {
5183
5237
  },
5184
5238
  // Disabled state — icons handle their own disabled colors
5185
5239
  [`&.${Radio.radioClasses.disabled}`]: {
5186
- color: designSystemTokens.semanticColors.border.primary,
5240
+ color: designSystemTokens.semanticColors.color.border.primary,
5187
5241
  [`&.${Radio.radioClasses.checked}`]: {
5188
- color: designSystemTokens.semanticColors.border.primary,
5242
+ color: designSystemTokens.semanticColors.color.border.primary,
5189
5243
  },
5190
5244
  },
5191
5245
  };
@@ -5279,15 +5333,15 @@ ModRipplingDot.displayName = 'ModRipplingDot';
5279
5333
 
5280
5334
  const StyledSearchChip = styles.styled(InputBase)(({ theme }) => ({
5281
5335
  borderRadius: designSystemTokens.borderRadius.button,
5282
- border: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
5283
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
5336
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
5337
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
5284
5338
  height: 40,
5285
5339
  padding: `0 ${designSystemTokens.spacing.spacing_1_1_2}px`,
5286
5340
  gap: designSystemTokens.spacing.spacing_1_2,
5287
5341
  fontSize: theme.typography.pxToRem(designSystemTokens.typography.fontSize.sm),
5288
5342
  fontWeight: designSystemTokens.typography.fontWeight.medium,
5289
5343
  lineHeight: 1,
5290
- color: designSystemTokens.semanticColors.typography.input.default,
5344
+ color: designSystemTokens.semanticColors.color.text.input,
5291
5345
  cursor: 'text',
5292
5346
  boxSizing: 'border-box',
5293
5347
  transition: theme.transitions.create(['border-color', 'background-color'], {
@@ -5298,7 +5352,7 @@ const StyledSearchChip = styles.styled(InputBase)(({ theme }) => ({
5298
5352
  height: 'auto',
5299
5353
  lineHeight: 1,
5300
5354
  '&::placeholder': {
5301
- color: designSystemTokens.semanticColors.typography.input.placeholder,
5355
+ color: designSystemTokens.semanticColors.color.text.inputPlaceholder,
5302
5356
  opacity: 1,
5303
5357
  },
5304
5358
  // Hide native browser clear button for type="search" (we provide our own)
@@ -5307,22 +5361,22 @@ const StyledSearchChip = styles.styled(InputBase)(({ theme }) => ({
5307
5361
  },
5308
5362
  },
5309
5363
  '&:hover': {
5310
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
5311
- borderColor: designSystemTokens.semanticColors.accent.border,
5364
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
5365
+ borderColor: designSystemTokens.semanticColors.color.action.border,
5312
5366
  },
5313
5367
  // After `&:hover` so a disabled chip takes no hover feedback -- MUI leaves pointer-events
5314
5368
  // live on the disabled root, so `&:hover` matches it too.
5315
5369
  [`&.${InputBase.inputBaseClasses.disabled}`]: {
5316
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
5317
- borderColor: designSystemTokens.semanticColors.border.primary,
5370
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
5371
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
5318
5372
  },
5319
5373
  // A tint hugging the border, not focusRingStyles' detached ring: even :focus-visible matches a
5320
5374
  // clicked text input, so this has to stay calm. Keep below `&:hover` -- equal specificity, so
5321
5375
  // source order is what keeps a hovered+focused chip white.
5322
5376
  [`&.${InputBase.inputBaseClasses.focused}`]: {
5323
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
5324
- borderColor: designSystemTokens.semanticColors.border.focus,
5325
- outline: `3px solid ${designSystemTokens.semanticColors.accent.tint}`,
5377
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
5378
+ borderColor: designSystemTokens.semanticColors.color.border.focus,
5379
+ outline: `3px solid ${designSystemTokens.semanticColors.color.action.tint}`,
5326
5380
  },
5327
5381
  }));
5328
5382
  const ClearButton = styles.styled(ButtonBase)({
@@ -5335,11 +5389,11 @@ const ClearButton = styles.styled(ButtonBase)({
5335
5389
  border: 'none',
5336
5390
  backgroundColor: 'transparent',
5337
5391
  cursor: 'pointer',
5338
- color: designSystemTokens.semanticColors.icons.default,
5392
+ color: designSystemTokens.semanticColors.color.icon.default,
5339
5393
  flexShrink: 0,
5340
5394
  borderRadius: designSystemTokens.borderRadius.button,
5341
5395
  '&:hover': {
5342
- backgroundColor: designSystemTokens.semanticColors.buttons.secondary.hoverBackground,
5396
+ backgroundColor: designSystemTokens.semanticColors.button.secondary.bgHover,
5343
5397
  },
5344
5398
  });
5345
5399
  /**
@@ -5350,7 +5404,7 @@ const ClearButton = styles.styled(ButtonBase)({
5350
5404
  */
5351
5405
  const ModSearchChip = ({ onClear, value, ...props }) => {
5352
5406
  const hasValue = Boolean(value && String(value).length > 0);
5353
- return (jsxRuntime.jsx(StyledSearchChip, { type: "search", value: value, startAdornment: jsxRuntime.jsx(lucideReact.Search, { size: 16, color: designSystemTokens.semanticColors.icons.placeholder, style: { flexShrink: 0 } }), endAdornment: hasValue && onClear ? (jsxRuntime.jsx(ClearButton, { type: "button", onClick: onClear, "aria-label": "Clear search", children: jsxRuntime.jsx(lucideReact.X, { size: 16 }) })) : undefined, ...props }));
5407
+ return (jsxRuntime.jsx(StyledSearchChip, { type: "search", value: value, startAdornment: jsxRuntime.jsx(lucideReact.Search, { size: 16, color: designSystemTokens.semanticColors.color.icon.placeholder, style: { flexShrink: 0 } }), endAdornment: hasValue && onClear ? (jsxRuntime.jsx(ClearButton, { type: "button", onClick: onClear, "aria-label": "Clear search", children: jsxRuntime.jsx(lucideReact.X, { size: 16 }) })) : undefined, ...props }));
5354
5408
  };
5355
5409
  ModSearchChip.displayName = 'ModSearchChip';
5356
5410
 
@@ -5384,7 +5438,7 @@ const useIsomorphicLayoutEffect = typeof window === 'undefined' ? React.useEffec
5384
5438
  const EXPANDED_WIDTH = 98;
5385
5439
  const COLLAPSED_WIDTH = 68;
5386
5440
  // The fade overlay must end on the same color as the rail to blend cleanly.
5387
- const RAIL_BACKGROUND = designSystemTokens.semanticColors.surfaces.page;
5441
+ const RAIL_BACKGROUND = designSystemTokens.semanticColors.color.surface.page;
5388
5442
  // Unclipped positioning context so the edge handle can straddle the rail's
5389
5443
  // trailing edge (Root itself clips its overflow during the width transition).
5390
5444
  const Frame = styles.styled('div', {
@@ -5495,12 +5549,12 @@ const Handle = styles.styled(ButtonBase)(({ theme }) => ({
5495
5549
  height: designSystemTokens.spacing.spacing_5,
5496
5550
  borderRadius: designSystemTokens.borderRadius.s,
5497
5551
  backgroundColor: RAIL_BACKGROUND,
5498
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
5499
- color: designSystemTokens.semanticColors.typography.bodySecondary,
5552
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
5553
+ color: designSystemTokens.semanticColors.color.text.secondary,
5500
5554
  transition: theme.transitions.create(['color', 'border-color']),
5501
5555
  '&:hover': {
5502
- color: designSystemTokens.semanticColors.typography.body,
5503
- borderColor: designSystemTokens.semanticColors.border.primary,
5556
+ color: designSystemTokens.semanticColors.color.text.primary,
5557
+ borderColor: designSystemTokens.semanticColors.color.border.primary,
5504
5558
  },
5505
5559
  }));
5506
5560
  /**
@@ -5587,7 +5641,7 @@ const StyledSkeleton = styles.styled(Skeleton, {
5587
5641
  transform: 'none',
5588
5642
  // Light theme colors
5589
5643
  ...(colorTheme === 'light' && {
5590
- backgroundColor: designSystemTokens.semanticColors.skeleton.background,
5644
+ backgroundColor: designSystemTokens.semanticColors.skeleton.bg,
5591
5645
  '&::after': {
5592
5646
  background: `linear-gradient(90deg, transparent, ${designSystemTokens.semanticColors.skeleton.wave}, transparent)`,
5593
5647
  },
@@ -5634,23 +5688,23 @@ const StyledTable = styles.styled(MuiTable, {
5634
5688
  borderCollapse: 'separate',
5635
5689
  borderSpacing: 0,
5636
5690
  [`& .${TableCell.tableCellClasses.head}`]: {
5637
- backgroundColor: designSystemTokens.semanticColors.surfaces.dataGrid.header,
5638
- color: designSystemTokens.semanticColors.typography.body,
5691
+ backgroundColor: designSystemTokens.semanticColors.color.surface.dataGrid.header,
5692
+ color: designSystemTokens.semanticColors.color.text.primary,
5639
5693
  fontFamily: designSystemTokens.typography.fontFamily.body,
5640
5694
  fontSize: theme.typography.pxToRem(sizeFontSize[tableSize]),
5641
5695
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
5642
5696
  lineHeight: 1.4,
5643
5697
  padding: sizePadding[tableSize],
5644
- borderBottom: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
5698
+ borderBottom: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
5645
5699
  },
5646
5700
  [`& .${TableCell.tableCellClasses.body}`]: {
5647
- color: designSystemTokens.semanticColors.typography.body,
5701
+ color: designSystemTokens.semanticColors.color.text.primary,
5648
5702
  fontFamily: designSystemTokens.typography.fontFamily.body,
5649
5703
  fontSize: theme.typography.pxToRem(sizeFontSize[tableSize]),
5650
5704
  fontWeight: designSystemTokens.typography.fontWeight.regular,
5651
5705
  lineHeight: 1.4,
5652
5706
  padding: sizePadding[tableSize],
5653
- borderBottom: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
5707
+ borderBottom: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
5654
5708
  },
5655
5709
  // Drop the trailing row's bottom border so the container border (if
5656
5710
  // any) is the visual edge.
@@ -5662,10 +5716,10 @@ const StyledContainer = styles.styled('div', {
5662
5716
  shouldForwardProp: prop => prop !== 'tableVariant',
5663
5717
  })(({ tableVariant = 'bordered' }) => tableVariant === 'bordered'
5664
5718
  ? {
5665
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
5719
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
5666
5720
  borderRadius: designSystemTokens.borderRadius.card,
5667
5721
  overflow: 'hidden',
5668
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
5722
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
5669
5723
  }
5670
5724
  : { backgroundColor: 'transparent' });
5671
5725
  /**
@@ -5693,7 +5747,7 @@ ModTable.displayName = 'ModTable';
5693
5747
  const StyledTabPanel = styles.styled(Box, {
5694
5748
  shouldForwardProp: prop => prop !== 'tabPanelVariant',
5695
5749
  })(({ tabPanelVariant = 'default' }) => ({
5696
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
5750
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
5697
5751
  // default: 16px top padding for content-driven pages.
5698
5752
  // flush: zero padding so content sits directly against the tab bar's
5699
5753
  // bottom border (sidebars, panels, builders, canvases).
@@ -5731,7 +5785,7 @@ ModTabPanel.displayName = 'ModTabPanel';
5731
5785
  const ModTabs = styles.styled(MuiTabs)(() => ({
5732
5786
  minHeight: designSystemTokens.spacing.spacing_5,
5733
5787
  [`& .${MuiTabs.tabsClasses.indicator}`]: {
5734
- backgroundColor: designSystemTokens.semanticColors.buttons.navigation.activeBorder,
5788
+ backgroundColor: designSystemTokens.semanticColors.button.nav.borderActive,
5735
5789
  height: 2,
5736
5790
  },
5737
5791
  [`& .${MuiTabs.tabsClasses.list}`]: {
@@ -5746,14 +5800,14 @@ const StyledTab = styles.styled(MuiTab)(({ theme }) => ({
5746
5800
  fontWeight: designSystemTokens.typography.fontWeight.regular,
5747
5801
  fontSize: theme.typography.pxToRem(14),
5748
5802
  lineHeight: '1.5rem',
5749
- color: designSystemTokens.semanticColors.typography.tab.inactive,
5803
+ color: designSystemTokens.semanticColors.color.text.tabInactive,
5750
5804
  transition: 'none', // Remove animation
5751
5805
  [`&.${MuiTab.tabClasses.selected}`]: {
5752
- color: designSystemTokens.semanticColors.typography.tab.active,
5806
+ color: designSystemTokens.semanticColors.color.text.tabActive,
5753
5807
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
5754
5808
  },
5755
5809
  '&:hover': {
5756
- color: designSystemTokens.semanticColors.typography.tab.active,
5810
+ color: designSystemTokens.semanticColors.color.text.tabActive,
5757
5811
  [`&.${MuiTab.tabClasses.selected}::after`]: {
5758
5812
  content: '""',
5759
5813
  position: 'absolute',
@@ -5761,23 +5815,23 @@ const StyledTab = styles.styled(MuiTab)(({ theme }) => ({
5761
5815
  left: 0,
5762
5816
  right: 0,
5763
5817
  height: 2,
5764
- backgroundColor: designSystemTokens.semanticColors.buttons.navigation.activeBorder,
5818
+ backgroundColor: designSystemTokens.semanticColors.button.nav.borderActive,
5765
5819
  },
5766
5820
  },
5767
5821
  [`&.${ButtonBase.buttonBaseClasses.focusVisible}`]: {
5768
- color: designSystemTokens.semanticColors.typography.tab.active,
5769
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
5822
+ color: designSystemTokens.semanticColors.color.text.tabActive,
5823
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
5770
5824
  outlineOffset: -2,
5771
5825
  },
5772
5826
  [`&.${MuiTab.tabClasses.disabled}`]: {
5773
- color: designSystemTokens.semanticColors.typography.button.disabled,
5827
+ color: designSystemTokens.semanticColors.button.fgDisabled,
5774
5828
  cursor: 'not-allowed',
5775
5829
  pointerEvents: 'auto',
5776
5830
  '&:hover': {
5777
5831
  backgroundColor: 'transparent',
5778
5832
  },
5779
5833
  [`&.${MuiTab.tabClasses.selected}`]: {
5780
- color: designSystemTokens.semanticColors.typography.button.disabled,
5834
+ color: designSystemTokens.semanticColors.button.fgDisabled,
5781
5835
  '&::after': {
5782
5836
  content: '""',
5783
5837
  position: 'absolute',
@@ -5785,7 +5839,7 @@ const StyledTab = styles.styled(MuiTab)(({ theme }) => ({
5785
5839
  left: 0,
5786
5840
  right: 0,
5787
5841
  height: 2,
5788
- backgroundColor: designSystemTokens.semanticColors.buttons.tertiary.disabled,
5842
+ backgroundColor: designSystemTokens.semanticColors.button.tertiary.fgDisabled,
5789
5843
  },
5790
5844
  },
5791
5845
  },
@@ -5806,34 +5860,34 @@ ModTab.displayName = 'ModTab';
5806
5860
 
5807
5861
  const intentStyles = {
5808
5862
  neutral: {
5809
- background: designSystemTokens.semanticColors.status.neutral.light,
5810
- border: designSystemTokens.semanticColors.border.primary,
5811
- text: designSystemTokens.semanticColors.status.neutral.dark,
5812
- action: designSystemTokens.semanticColors.typography.link.default,
5863
+ background: designSystemTokens.semanticColors.color.status.neutral.bg,
5864
+ border: designSystemTokens.semanticColors.color.border.primary,
5865
+ text: designSystemTokens.semanticColors.color.status.neutral.fg,
5866
+ action: designSystemTokens.semanticColors.color.text.link,
5813
5867
  },
5814
5868
  info: {
5815
- background: designSystemTokens.semanticColors.toast.infoBg,
5816
- border: designSystemTokens.semanticColors.toast.infoBorder,
5817
- text: designSystemTokens.semanticColors.toast.infoText,
5818
- action: designSystemTokens.semanticColors.toast.infoText,
5869
+ background: designSystemTokens.semanticColors.toast.info.bg,
5870
+ border: designSystemTokens.semanticColors.toast.info.border,
5871
+ text: designSystemTokens.semanticColors.toast.info.fg,
5872
+ action: designSystemTokens.semanticColors.toast.info.fg,
5819
5873
  },
5820
5874
  success: {
5821
- background: designSystemTokens.semanticColors.toast.successBg,
5822
- border: designSystemTokens.semanticColors.toast.successBorder,
5823
- text: designSystemTokens.semanticColors.toast.successText,
5824
- action: designSystemTokens.semanticColors.toast.successText,
5875
+ background: designSystemTokens.semanticColors.toast.success.bg,
5876
+ border: designSystemTokens.semanticColors.toast.success.border,
5877
+ text: designSystemTokens.semanticColors.toast.success.fg,
5878
+ action: designSystemTokens.semanticColors.toast.success.fg,
5825
5879
  },
5826
5880
  error: {
5827
- background: designSystemTokens.semanticColors.toast.errorBg,
5828
- border: designSystemTokens.semanticColors.toast.errorBorder,
5829
- text: designSystemTokens.semanticColors.toast.errorText,
5830
- action: designSystemTokens.semanticColors.toast.errorText,
5881
+ background: designSystemTokens.semanticColors.toast.error.bg,
5882
+ border: designSystemTokens.semanticColors.toast.error.border,
5883
+ text: designSystemTokens.semanticColors.toast.error.fg,
5884
+ action: designSystemTokens.semanticColors.toast.error.fg,
5831
5885
  },
5832
5886
  warning: {
5833
- background: designSystemTokens.semanticColors.toast.warningBg,
5834
- border: designSystemTokens.semanticColors.toast.warningBorder,
5835
- text: designSystemTokens.semanticColors.toast.warningText,
5836
- action: designSystemTokens.semanticColors.toast.warningText,
5887
+ background: designSystemTokens.semanticColors.toast.warning.bg,
5888
+ border: designSystemTokens.semanticColors.toast.warning.border,
5889
+ text: designSystemTokens.semanticColors.toast.warning.fg,
5890
+ action: designSystemTokens.semanticColors.toast.warning.fg,
5837
5891
  },
5838
5892
  };
5839
5893
  const shadowRegular = designSystemTokens.shadows.neutral.regular;
@@ -5908,7 +5962,7 @@ const ToastButton = styles.styled(Button, {
5908
5962
  * ModToast - Notification/Toast component based on MUI Alert
5909
5963
  */
5910
5964
  const ModToast = ({ intent = 'neutral', type: _type, title, message, showClose = false, actions, onClose, ...props }) => {
5911
- return (jsxRuntime.jsxs(StyledAlert, { ...props, intent: intent, action: showClose ? (jsxRuntime.jsx(IconButton, { size: "small", onClick: onClose, sx: { color: designSystemTokens.semanticColors.icons.utility }, children: jsxRuntime.jsx(lucideReact.X, { size: 16 }) })) : undefined, children: [jsxRuntime.jsxs(Stack, { sx: { gap: `${designSystemTokens.spacing.spacing_1}px`, width: '100%' }, children: [title && jsxRuntime.jsx(ToastTitle, { intent: intent, children: title }), message && jsxRuntime.jsx(ToastMessage, { intent: intent, children: message })] }), actions && jsxRuntime.jsx(ToastActions, { direction: "row", children: actions })] }));
5965
+ return (jsxRuntime.jsxs(StyledAlert, { ...props, intent: intent, action: showClose ? (jsxRuntime.jsx(IconButton, { size: "small", onClick: onClose, sx: { color: designSystemTokens.semanticColors.color.icon.utility }, children: jsxRuntime.jsx(lucideReact.X, { size: 16 }) })) : undefined, children: [jsxRuntime.jsxs(Stack, { sx: { gap: `${designSystemTokens.spacing.spacing_1}px`, width: '100%' }, children: [title && jsxRuntime.jsx(ToastTitle, { intent: intent, children: title }), message && jsxRuntime.jsx(ToastMessage, { intent: intent, children: message })] }), actions && jsxRuntime.jsx(ToastActions, { direction: "row", children: actions })] }));
5912
5966
  };
5913
5967
  /**
5914
5968
  * Helper component for creating toast action buttons with proper styling
@@ -5935,13 +5989,13 @@ const Label = styles.styled('span')(({ theme, size = 'medium' }) => ({
5935
5989
  fontSize: theme.typography.pxToRem(size === 'small' ? designSystemTokens.typography.fontSize.sm : designSystemTokens.typography.fontSize.default),
5936
5990
  fontWeight: designSystemTokens.typography.fontWeight.medium,
5937
5991
  lineHeight: size === 'small' ? 1.4 : 1.5,
5938
- color: designSystemTokens.semanticColors.typography.input.default,
5992
+ color: designSystemTokens.semanticColors.color.text.input,
5939
5993
  }));
5940
5994
  const HelperText = styles.styled('span')(({ theme, size = 'medium' }) => ({
5941
5995
  fontSize: theme.typography.pxToRem(size === 'small' ? designSystemTokens.typography.fontSize.sm : designSystemTokens.typography.fontSize.default),
5942
5996
  fontWeight: designSystemTokens.typography.fontWeight.regular,
5943
5997
  lineHeight: size === 'small' ? 1.4 : 1.5,
5944
- color: designSystemTokens.semanticColors.typography.bodySecondary,
5998
+ color: designSystemTokens.semanticColors.color.text.secondary,
5945
5999
  }));
5946
6000
  const StyledSwitch = styles.styled(Switch, {
5947
6001
  shouldForwardProp: prop => prop !== 'size',
@@ -5974,23 +6028,23 @@ const StyledSwitch = styles.styled(Switch, {
5974
6028
  // Root element
5975
6029
  [`& .${Switch.switchClasses.switchBase}`]: {
5976
6030
  padding: config.trackPadding,
5977
- color: designSystemTokens.semanticColors.surfaces.toggleKnob,
6031
+ color: designSystemTokens.semanticColors.control.knob,
5978
6032
  transition: theme.transitions.create(['transform'], {
5979
6033
  duration: theme.transitions.duration.shortest,
5980
6034
  }),
5981
6035
  // Focus visible for keyboard navigation
5982
6036
  '&.Mui-focusVisible': {
5983
6037
  [`& + .${Switch.switchClasses.track}`]: {
5984
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
6038
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
5985
6039
  outlineOffset: 2,
5986
6040
  },
5987
6041
  },
5988
6042
  // Checked state
5989
6043
  [`&.${Switch.switchClasses.checked}`]: {
5990
6044
  transform: `translateX(${thumbTranslate}px)`,
5991
- color: designSystemTokens.semanticColors.surfaces.toggleKnob,
6045
+ color: designSystemTokens.semanticColors.control.knob,
5992
6046
  [`& + .${Switch.switchClasses.track}`]: {
5993
- backgroundColor: designSystemTokens.semanticColors.buttons.primary.default,
6047
+ backgroundColor: designSystemTokens.semanticColors.button.primary.bg,
5994
6048
  opacity: 1,
5995
6049
  border: 'none',
5996
6050
  },
@@ -5998,18 +6052,18 @@ const StyledSwitch = styles.styled(Switch, {
5998
6052
  // Disabled state
5999
6053
  [`&.${Switch.switchClasses.disabled}`]: {
6000
6054
  // Thumb changes to disabled background color for both checked and unchecked
6001
- color: designSystemTokens.semanticColors.input.disabledBackground,
6055
+ color: designSystemTokens.semanticColors.input.bgDisabled,
6002
6056
  cursor: 'not-allowed',
6003
6057
  // Both checked and unchecked use the same grey track when disabled
6004
6058
  [`& + .${Switch.switchClasses.track}`]: {
6005
- backgroundColor: designSystemTokens.semanticColors.border.secondary,
6059
+ backgroundColor: designSystemTokens.semanticColors.color.border.primary,
6006
6060
  opacity: 1,
6007
6061
  border: 'none',
6008
6062
  },
6009
6063
  },
6010
6064
  // More specific selector for disabled+checked to override checked color
6011
6065
  [`&.${Switch.switchClasses.disabled}.${Switch.switchClasses.checked}`]: {
6012
- color: designSystemTokens.semanticColors.input.disabledBackground,
6066
+ color: designSystemTokens.semanticColors.input.bgDisabled,
6013
6067
  },
6014
6068
  },
6015
6069
  // Thumb
@@ -6026,12 +6080,12 @@ const StyledSwitch = styles.styled(Switch, {
6026
6080
  width: config.width,
6027
6081
  height: config.height,
6028
6082
  borderRadius: config.height / 2,
6029
- backgroundColor: designSystemTokens.semanticColors.surface.sunken2,
6083
+ backgroundColor: designSystemTokens.semanticColors.color.surface.sunkenDeep,
6030
6084
  opacity: 1,
6031
6085
  // Off track carries a border; box-sizing keeps the 1px inside the
6032
6086
  // configured width/height. Checked/disabled states reset it below.
6033
6087
  boxSizing: 'border-box',
6034
- border: `1px solid ${designSystemTokens.semanticColors.border.strong}`,
6088
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.strong}`,
6035
6089
  transition: theme.transitions.create(['background-color'], {
6036
6090
  duration: theme.transitions.duration.short,
6037
6091
  }),
@@ -6092,7 +6146,7 @@ const StyledToggleButton$1 = styles.styled(MuiToggleButton, {
6092
6146
  fontSize: theme.typography.pxToRem(sizeStyles[toggleSize].fontSize),
6093
6147
  fontWeight: designSystemTokens.typography.fontWeight.regular,
6094
6148
  lineHeight: 1,
6095
- color: segmented ? designSystemTokens.semanticColors.typography.body : designSystemTokens.semanticColors.typography.bodySecondary,
6149
+ color: segmented ? designSystemTokens.semanticColors.color.text.primary : designSystemTokens.semanticColors.color.text.secondary,
6096
6150
  backgroundColor: 'transparent',
6097
6151
  border: 'none',
6098
6152
  // Segmented buttons are independent rounded pills on the group's track.
@@ -6102,22 +6156,22 @@ const StyledToggleButton$1 = styles.styled(MuiToggleButton, {
6102
6156
  duration: theme.transitions.duration.short,
6103
6157
  }),
6104
6158
  '&:hover': {
6105
- backgroundColor: segmented ? 'transparent' : designSystemTokens.semanticColors.surfaces.tabActive,
6106
- color: designSystemTokens.semanticColors.typography.body,
6159
+ backgroundColor: segmented ? 'transparent' : designSystemTokens.semanticColors.color.surface.tabActive,
6160
+ color: designSystemTokens.semanticColors.color.text.primary,
6107
6161
  },
6108
6162
  '&.Mui-selected, &.Mui-selected:hover': {
6109
6163
  backgroundColor: segmented
6110
- ? designSystemTokens.semanticColors.surfaces.card
6111
- : designSystemTokens.semanticColors.surfaces.tabActive,
6112
- color: segmented ? designSystemTokens.semanticColors.accent.default : designSystemTokens.semanticColors.typography.body,
6164
+ ? designSystemTokens.semanticColors.color.surface.raised
6165
+ : designSystemTokens.semanticColors.color.surface.tabActive,
6166
+ color: segmented ? designSystemTokens.semanticColors.color.action.default : designSystemTokens.semanticColors.color.text.primary,
6113
6167
  fontWeight: designSystemTokens.typography.fontWeight.semiBold,
6114
6168
  },
6115
6169
  '&.Mui-focusVisible': {
6116
- outline: `2px solid ${designSystemTokens.semanticColors.border.focus}`,
6170
+ outline: `2px solid ${designSystemTokens.semanticColors.color.border.focus}`,
6117
6171
  outlineOffset: -2,
6118
6172
  },
6119
6173
  '&.Mui-disabled': {
6120
- color: designSystemTokens.semanticColors.typography.button.disabled,
6174
+ color: designSystemTokens.semanticColors.button.fgDisabled,
6121
6175
  cursor: 'default',
6122
6176
  pointerEvents: 'none',
6123
6177
  },
@@ -6141,7 +6195,7 @@ const StyledToggleButtonGroup$1 = styles.styled(MuiToggleButtonGroup, {
6141
6195
  ...(segmented
6142
6196
  ? {
6143
6197
  // Sunken track holding raised pills (the Morpheus `.seg` control).
6144
- backgroundColor: designSystemTokens.semanticColors.surface.sunken2,
6198
+ backgroundColor: designSystemTokens.semanticColors.color.surface.sunkenDeep,
6145
6199
  borderRadius: designSystemTokens.borderRadius.input,
6146
6200
  border: 'none',
6147
6201
  padding: designSystemTokens.spacing.spacing_1_2,
@@ -6149,7 +6203,7 @@ const StyledToggleButtonGroup$1 = styles.styled(MuiToggleButtonGroup, {
6149
6203
  }
6150
6204
  : {
6151
6205
  borderRadius: designSystemTokens.borderRadius.button,
6152
- border: `1px solid ${designSystemTokens.semanticColors.border.secondary}`,
6206
+ border: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
6153
6207
  overflow: 'hidden',
6154
6208
  }),
6155
6209
  // Default fuses the children (square inner corners, no gap); segmented
@@ -6183,7 +6237,7 @@ const ModToggleButtonGroup = ({ size = 'medium', variant = 'default', children,
6183
6237
  ModToggleButtonGroup.displayName = 'ModToggleButtonGroup';
6184
6238
 
6185
6239
  const StyledToolbar = styles.styled(xDataGrid.Toolbar)(({ theme }) => ({
6186
- backgroundColor: designSystemTokens.semanticColors.surfaces.white,
6240
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
6187
6241
  minHeight: 'auto',
6188
6242
  justifyContent: 'space-between',
6189
6243
  // Apply padding directly to match Figma design (16px horizontal, 12px vertical)
@@ -6276,7 +6330,7 @@ const ItemIcon = styles.styled('span')({
6276
6330
  width: 16,
6277
6331
  height: 16,
6278
6332
  flexShrink: 0,
6279
- color: designSystemTokens.semanticColors.icons.default,
6333
+ color: designSystemTokens.semanticColors.color.icon.default,
6280
6334
  '& svg': {
6281
6335
  width: 16,
6282
6336
  height: 16,
@@ -6294,13 +6348,13 @@ const ItemSecondaryLabel = styles.styled('span')({
6294
6348
  fontSize: designSystemTokens.typography.fontSize.xs,
6295
6349
  fontWeight: designSystemTokens.typography.fontWeight.regular,
6296
6350
  fontFamily: designSystemTokens.typography.fontFamily.body,
6297
- color: designSystemTokens.semanticColors.typography.link.primary,
6351
+ color: designSystemTokens.semanticColors.color.text.link,
6298
6352
  });
6299
6353
  const ItemEndAction = styles.styled('span')({
6300
6354
  display: 'inline-flex',
6301
6355
  alignItems: 'center',
6302
6356
  flexShrink: 0,
6303
- color: designSystemTokens.semanticColors.icons.utility,
6357
+ color: designSystemTokens.semanticColors.color.icon.utility,
6304
6358
  '& svg': {
6305
6359
  width: 16,
6306
6360
  height: 16,
@@ -6336,36 +6390,36 @@ const StyledTreeView = styles.styled(RichTreeViewPro.RichTreeViewPro)({
6336
6390
  borderRadius: 0,
6337
6391
  },
6338
6392
  [`& .${TreeItem.treeItemClasses.content}:hover`]: {
6339
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
6393
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
6340
6394
  },
6341
6395
  [`& .${TreeItem.treeItemClasses.content}[data-focused]`]: {
6342
- boxShadow: `inset 0 0 0 2px ${designSystemTokens.semanticColors.border.focus}`,
6396
+ boxShadow: `inset 0 0 0 2px ${designSystemTokens.semanticColors.color.border.focus}`,
6343
6397
  backgroundColor: 'transparent',
6344
6398
  },
6345
6399
  [`& .${TreeItem.treeItemClasses.content}[data-selected]`]: {
6346
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
6400
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
6347
6401
  },
6348
6402
  [`& .${TreeItem.treeItemClasses.content}[data-selected][data-focused]`]: {
6349
- backgroundColor: designSystemTokens.semanticColors.surfaces.listHover,
6350
- boxShadow: `inset 0 0 0 2px ${designSystemTokens.semanticColors.border.focus}`,
6403
+ backgroundColor: designSystemTokens.semanticColors.color.surface.rowHover,
6404
+ boxShadow: `inset 0 0 0 2px ${designSystemTokens.semanticColors.color.border.focus}`,
6351
6405
  },
6352
6406
  [`& .${TreeItem.treeItemClasses.label}`]: {
6353
6407
  fontSize: designSystemTokens.typography.fontSize.xs,
6354
6408
  fontWeight: designSystemTokens.typography.fontWeight.regular,
6355
6409
  fontFamily: designSystemTokens.typography.fontFamily.body,
6356
- color: designSystemTokens.semanticColors.typography.body,
6410
+ color: designSystemTokens.semanticColors.color.text.primary,
6357
6411
  padding: 0,
6358
6412
  },
6359
6413
  [`& .${TreeItem.treeItemClasses.iconContainer}`]: {
6360
6414
  width: 16,
6361
- color: designSystemTokens.semanticColors.icons.default,
6415
+ color: designSystemTokens.semanticColors.color.icon.default,
6362
6416
  '& svg': {
6363
6417
  width: 16,
6364
6418
  height: 16,
6365
6419
  },
6366
6420
  },
6367
6421
  [`& .${TreeItem.treeItemClasses.groupTransition}`]: {
6368
- borderLeft: `1px solid ${designSystemTokens.semanticColors.border.primary}`,
6422
+ borderLeft: `1px solid ${designSystemTokens.semanticColors.color.border.primary}`,
6369
6423
  marginLeft: designSystemTokens.spacing.spacing_1_1_4,
6370
6424
  },
6371
6425
  });
@@ -6373,7 +6427,7 @@ const StyledTreeView = styles.styled(RichTreeViewPro.RichTreeViewPro)({
6373
6427
  // Figma-exact border radius for toggle buttons — no matching design token
6374
6428
  const TOGGLE_BUTTON_BORDER_RADIUS = 14;
6375
6429
  const StyledToggleButtonGroup = styles.styled(MuiToggleButtonGroup)(({ theme }) => ({
6376
- backgroundColor: designSystemTokens.semanticColors.surfaces.card,
6430
+ backgroundColor: designSystemTokens.semanticColors.color.surface.raised,
6377
6431
  padding: theme.spacing(0.625, 0.875),
6378
6432
  borderRadius: designSystemTokens.borderRadius.m,
6379
6433
  gap: 0,
@@ -6393,7 +6447,7 @@ const StyledToggleButtonGroup = styles.styled(MuiToggleButtonGroup)(({ theme })
6393
6447
  const StyledToggleButton = styles.styled(MuiToggleButton)(({ theme }) => ({
6394
6448
  padding: theme.spacing(0.625),
6395
6449
  minWidth: 'auto',
6396
- color: designSystemTokens.semanticColors.icons.default,
6450
+ color: designSystemTokens.semanticColors.color.icon.default,
6397
6451
  border: 'none',
6398
6452
  '& svg': {
6399
6453
  width: 20,
@@ -6403,10 +6457,10 @@ const StyledToggleButton = styles.styled(MuiToggleButton)(({ theme }) => ({
6403
6457
  backgroundColor: 'transparent',
6404
6458
  },
6405
6459
  [`&.${MuiToggleButton.toggleButtonClasses.selected}`]: {
6406
- backgroundColor: designSystemTokens.semanticColors.buttons.navigation.pressedBackground,
6407
- color: designSystemTokens.semanticColors.icons.active,
6460
+ backgroundColor: designSystemTokens.semanticColors.button.nav.bgPressed,
6461
+ color: designSystemTokens.semanticColors.color.icon.active,
6408
6462
  '&:hover': {
6409
- backgroundColor: designSystemTokens.semanticColors.buttons.navigation.pressedBackground,
6463
+ backgroundColor: designSystemTokens.semanticColors.button.nav.bgPressed,
6410
6464
  },
6411
6465
  },
6412
6466
  }));