@omnitron-dev/prism 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/blocks/index.js +49 -9
  2. package/dist/blocks/index.js.map +1 -1
  3. package/dist/chunk-2FYNRDXR.js +192 -0
  4. package/dist/chunk-2FYNRDXR.js.map +1 -0
  5. package/dist/chunk-A2Z7NVGL.js +11496 -0
  6. package/dist/chunk-A2Z7NVGL.js.map +1 -0
  7. package/dist/{chunk-E3XANPTO.js → chunk-IZOIO7PA.js} +5 -191
  8. package/dist/{chunk-E3XANPTO.js.map → chunk-IZOIO7PA.js.map} +1 -1
  9. package/dist/{chunk-LAEY5USO.js → chunk-KTCWPGON.js} +55 -25
  10. package/dist/chunk-KTCWPGON.js.map +1 -0
  11. package/dist/{chunk-DXXZ3ITR.js → chunk-MEFT6XPH.js} +721 -455
  12. package/dist/chunk-MEFT6XPH.js.map +1 -0
  13. package/dist/{chunk-BTIT7WYH.js → chunk-SNKGGHBT.js} +2 -2
  14. package/dist/chunk-SNKGGHBT.js.map +1 -0
  15. package/dist/{chunk-UR6X3W5I.js → chunk-VAAIHNWQ.js} +3 -3
  16. package/dist/{chunk-UR6X3W5I.js.map → chunk-VAAIHNWQ.js.map} +1 -1
  17. package/dist/{chunk-GYDT5EKX.js → chunk-XQXGE2PW.js} +760 -472
  18. package/dist/chunk-XQXGE2PW.js.map +1 -0
  19. package/dist/{chunk-WC2WM2JD.js → chunk-XXP3ZGU6.js} +18 -8
  20. package/dist/chunk-XXP3ZGU6.js.map +1 -0
  21. package/dist/chunk-YJMAQL3S.js +1887 -0
  22. package/dist/chunk-YJMAQL3S.js.map +1 -0
  23. package/dist/cli/index.js +4 -4
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/components/editor/index.d.ts +107 -0
  26. package/dist/components/editor/index.js +4 -0
  27. package/dist/components/editor/index.js.map +1 -0
  28. package/dist/components/index.css +131 -0
  29. package/dist/components/index.css.map +1 -0
  30. package/dist/components/index.d.ts +7073 -0
  31. package/dist/components/index.js +13 -0
  32. package/dist/components/index.js.map +1 -0
  33. package/dist/components-BCGZ-Rwt.d.ts +142 -0
  34. package/dist/{config-BA6IeTq9.d.ts → config-Pct0n_Kq.d.ts} +2 -2
  35. package/dist/core/index.d.ts +20 -5
  36. package/dist/core/index.js +2 -2
  37. package/dist/hooks/index.d.ts +3 -2
  38. package/dist/hooks/index.js +4 -3
  39. package/dist/{index-odhPSv9I.d.ts → index-nmJ8Muwg.d.ts} +4 -127
  40. package/dist/index.d.ts +265 -6615
  41. package/dist/index.js +119 -11662
  42. package/dist/index.js.map +1 -1
  43. package/dist/layouts/index.js +1 -1
  44. package/dist/popover-Dmw7SJLR.d.ts +127 -0
  45. package/dist/registry/index.d.ts +2 -2
  46. package/dist/{registry-BrDNftd5.d.ts → registry-DQcIzW2s.d.ts} +2 -2
  47. package/dist/{settings-plpR26Xk.d.ts → settings-CAC0qFjS.d.ts} +2 -2
  48. package/dist/state/index.d.ts +2 -2
  49. package/dist/state/index.js +1 -1
  50. package/dist/text-transform-D6MzzF7V.d.ts +165 -0
  51. package/dist/theme/index.d.ts +2 -2
  52. package/dist/theme/index.js +2 -2
  53. package/dist/{theme-CrXLfP1c.d.ts → theme-B4Q3Bg5o.d.ts} +1 -1
  54. package/dist/types/index.d.ts +6 -145
  55. package/package.json +46 -40
  56. package/dist/chunk-BTIT7WYH.js.map +0 -1
  57. package/dist/chunk-DXXZ3ITR.js.map +0 -1
  58. package/dist/chunk-GYDT5EKX.js.map +0 -1
  59. package/dist/chunk-LAEY5USO.js.map +0 -1
  60. package/dist/chunk-WC2WM2JD.js.map +0 -1
@@ -2,8 +2,6 @@ import { buttonClasses } from '@mui/material/Button';
2
2
  import { iconButtonClasses } from '@mui/material/IconButton';
3
3
  import { accordionClasses } from '@mui/material/Accordion';
4
4
  import { accordionSummaryClasses } from '@mui/material/AccordionSummary';
5
- import { autocompleteClasses } from '@mui/material/Autocomplete';
6
- import SvgIcon, { svgIconClasses } from '@mui/material/SvgIcon';
7
5
  import { tableRowClasses } from '@mui/material/TableRow';
8
6
  import { tableCellClasses } from '@mui/material/TableCell';
9
7
  import { stepIconClasses } from '@mui/material/StepIcon';
@@ -16,12 +14,14 @@ import { outlinedInputClasses } from '@mui/material/OutlinedInput';
16
14
  import { filledInputClasses } from '@mui/material/FilledInput';
17
15
  import { inputAdornmentClasses } from '@mui/material/InputAdornment';
18
16
  import { inputLabelClasses } from '@mui/material/InputLabel';
17
+ import SvgIcon, { svgIconClasses } from '@mui/material/SvgIcon';
19
18
  import { checkboxClasses } from '@mui/material/Checkbox';
20
19
  import { radioClasses } from '@mui/material/Radio';
21
20
  import { switchClasses } from '@mui/material/Switch';
22
21
  import { formLabelClasses } from '@mui/material/FormLabel';
23
22
  import { jsx } from 'react/jsx-runtime';
24
23
  import { tabClasses } from '@mui/material/Tab';
24
+ import { autocompleteClasses } from '@mui/material/Autocomplete';
25
25
  import { createTheme, responsiveFontSizes } from '@mui/material/styles';
26
26
  import * as locales from '@mui/material/locale';
27
27
 
@@ -601,6 +601,20 @@ function getGreyChannel(theme, shade = "500") {
601
601
  };
602
602
  return vars?.[channelKey] ?? fallbacks[shade];
603
603
  }
604
+ function paletteVar(theme, path) {
605
+ const segments = path.split(".");
606
+ const fromVars = theme.vars?.palette ?? void 0;
607
+ const fromFallback = theme.palette;
608
+ const walk = (obj) => segments.reduce(
609
+ (acc, key) => acc && typeof acc === "object" ? acc[key] : void 0,
610
+ obj
611
+ );
612
+ const fromVarsVal = walk(fromVars);
613
+ if (typeof fromVarsVal === "string") return fromVarsVal;
614
+ const fromFallbackVal = walk(fromFallback);
615
+ if (typeof fromFallbackVal === "string") return fromFallbackVal;
616
+ return "";
617
+ }
604
618
  function getColorChannel(theme, color) {
605
619
  const vars = theme.vars?.palette[color];
606
620
  const fallbacks = {
@@ -771,7 +785,20 @@ function createButtonOverrides(config) {
771
785
  ...shapeVariants,
772
786
  ...outlinedNeutralVariants,
773
787
  ...sizeVariants,
774
- ...disabledVariants
788
+ ...disabledVariants,
789
+ // MUI v9 replacement for the removed `outlinedSize*` slots.
790
+ {
791
+ props: { variant: "outlined", size: "large" },
792
+ style: { paddingTop: 9 * dm, paddingBottom: 9 * dm }
793
+ },
794
+ {
795
+ props: { variant: "outlined", size: "medium" },
796
+ style: { paddingTop: 7 * dm, paddingBottom: 7 * dm }
797
+ },
798
+ {
799
+ props: { variant: "outlined", size: "small" },
800
+ style: { paddingTop: 5 * dm, paddingBottom: 5 * dm }
801
+ }
775
802
  ]
776
803
  },
777
804
  sizeLarge: {
@@ -784,18 +811,9 @@ function createButtonOverrides(config) {
784
811
  fontSize: "13px",
785
812
  lineHeight: 1.286
786
813
  },
787
- outlinedSizeLarge: {
788
- paddingTop: 9 * dm,
789
- paddingBottom: 9 * dm
790
- },
791
- outlinedSizeMedium: {
792
- paddingTop: 7 * dm,
793
- paddingBottom: 7 * dm
794
- },
795
- outlinedSizeSmall: {
796
- paddingTop: 5 * dm,
797
- paddingBottom: 5 * dm
798
- },
814
+ // outlinedSize* class slots were removed in MUI v9 in favour
815
+ // of the `variants` array on the component override. See
816
+ // https://mui.com/material-ui/migration/upgrade-to-v9/.
799
817
  startIcon: {
800
818
  marginRight: 4,
801
819
  [`& > *:first-of-type`]: {
@@ -1268,17 +1286,21 @@ function createChipOverrides(config) {
1268
1286
  height: 32 * densityMultiplier
1269
1287
  },
1270
1288
  label: {
1271
- fontWeight: 500
1272
- },
1273
- labelSmall: {
1274
- fontSize: "0.75rem",
1275
- paddingLeft: 8,
1276
- paddingRight: 8
1277
- },
1278
- labelMedium: {
1279
- fontSize: "0.8125rem",
1280
- paddingLeft: 12,
1281
- paddingRight: 12
1289
+ fontWeight: 500,
1290
+ // MUI v9: size-scoped label rules moved from `labelSmall`/
1291
+ // `labelMedium` slots to nested selectors. The class names
1292
+ // themselves still ship (and styles still apply), only the
1293
+ // top-level `styleOverrides.labelSmall` slot was removed.
1294
+ "&.MuiChip-labelSmall": {
1295
+ fontSize: "0.75rem",
1296
+ paddingLeft: 8,
1297
+ paddingRight: 8
1298
+ },
1299
+ "&.MuiChip-labelMedium": {
1300
+ fontSize: "0.8125rem",
1301
+ paddingLeft: 12,
1302
+ paddingRight: 12
1303
+ }
1282
1304
  },
1283
1305
  icon: {
1284
1306
  fontSize: 18,
@@ -1301,13 +1323,20 @@ var INPUT_TYPOGRAPHY = {
1301
1323
  lineHeight: 24
1302
1324
  };
1303
1325
  var INPUT_PADDING = {
1326
+ base: {
1327
+ small: { paddingTop: 0, paddingBottom: 4 },
1328
+ medium: { paddingTop: 4, paddingBottom: 4 }
1329
+ },
1304
1330
  outlined: {
1305
1331
  small: { paddingTop: 8, paddingBottom: 8 },
1306
1332
  medium: { paddingTop: 16, paddingBottom: 16 }
1307
1333
  },
1308
1334
  filled: {
1309
1335
  small: { paddingTop: 20 },
1310
- medium: { paddingTop: 24 }}
1336
+ medium: { paddingTop: 24 },
1337
+ smallHidden: { paddingTop: 8, paddingBottom: 8 },
1338
+ mediumHidden: { paddingTop: 16, paddingBottom: 16 }
1339
+ }
1311
1340
  };
1312
1341
  function getInputTypography(theme, keys) {
1313
1342
  const { fontSize, lineHeight } = INPUT_TYPOGRAPHY;
@@ -1330,81 +1359,210 @@ function getErrorChannel(theme) {
1330
1359
  const vars = theme.vars?.palette.error;
1331
1360
  return vars?.mainChannel ?? "208 34 65";
1332
1361
  }
1362
+ var multilineInputVariants = [
1363
+ {
1364
+ props: (props) => !!props.multiline,
1365
+ style: { padding: 0 }
1366
+ }
1367
+ ];
1368
+ var inputBaseStyles = {
1369
+ root: (theme) => ({
1370
+ "--disabled-color": theme.vars?.palette.action.disabled || theme.palette.action.disabled,
1371
+ ...getInputTypography(theme, ["lineHeight"]),
1372
+ [`&.${inputBaseClasses.disabled}`]: {
1373
+ [`& .${inputAdornmentClasses.root} *`]: { color: "var(--disabled-color)" }
1374
+ }
1375
+ }),
1376
+ input: (theme) => ({
1377
+ ...getInputTypography(theme, ["fontSize", "height", "lineHeight"]),
1378
+ "&:focus": { borderRadius: "inherit" },
1379
+ "&::placeholder": {
1380
+ color: theme.vars?.palette.text.disabled || theme.palette.text.disabled,
1381
+ opacity: 1
1382
+ }
1383
+ })
1384
+ };
1385
+ var inputBaseVariants = {
1386
+ // Root-side multiline padding (single-line keeps the inner one).
1387
+ // Mirrors the outlined/filled root variants so a bare InputBase
1388
+ // (no decorator variant) still renders consistent multiline
1389
+ // padding even when consumers swap variants.
1390
+ root: [
1391
+ {
1392
+ props: (props) => !!props.multiline,
1393
+ style: { ...INPUT_PADDING.base.medium }
1394
+ },
1395
+ {
1396
+ props: (props) => !!props.multiline && props.size === "small",
1397
+ style: { ...INPUT_PADDING.base.small }
1398
+ }
1399
+ ],
1400
+ input: [
1401
+ {
1402
+ props: {},
1403
+ style: { ...INPUT_PADDING.base.medium }
1404
+ },
1405
+ {
1406
+ props: (props) => props.size === "small",
1407
+ style: { ...INPUT_PADDING.base.small }
1408
+ }
1409
+ ]
1410
+ };
1333
1411
  function createInputBaseOverrides(_config) {
1334
1412
  return {
1335
1413
  styleOverrides: {
1336
1414
  root: ({ theme }) => ({
1337
- "--disabled-color": theme.vars?.palette.action.disabled || theme.palette.action.disabled,
1338
- ...getInputTypography(theme, ["lineHeight"]),
1339
- [`&.${inputBaseClasses.disabled}`]: {
1340
- [`& .${inputAdornmentClasses.root} *`]: { color: "var(--disabled-color)" }
1341
- }
1415
+ ...inputBaseStyles.root(theme),
1416
+ variants: inputBaseVariants.root
1342
1417
  }),
1343
1418
  input: ({ theme }) => ({
1344
- ...getInputTypography(theme, ["fontSize", "height", "lineHeight"]),
1345
- "&:focus": { borderRadius: "inherit" },
1346
- "&::placeholder": {
1347
- color: theme.vars?.palette.text.disabled || theme.palette.text.disabled,
1348
- opacity: 1
1349
- }
1419
+ ...inputBaseStyles.input(theme),
1420
+ variants: [...inputBaseVariants.input, ...multilineInputVariants]
1350
1421
  })
1351
1422
  }
1352
1423
  };
1353
1424
  }
1425
+ var inputStyles = {
1426
+ root: (theme) => ({
1427
+ "&::before": {
1428
+ borderBottomColor: varAlpha(getGreyChannel(theme), 0.2)
1429
+ },
1430
+ "&::after": {
1431
+ borderBottomColor: theme.vars?.palette.text.primary || theme.palette.text.primary
1432
+ }
1433
+ })
1434
+ };
1354
1435
  function createInputOverrides(_config) {
1355
1436
  return {
1356
1437
  styleOverrides: {
1357
- root: ({ theme }) => ({
1358
- "&::before": {
1359
- borderBottomColor: varAlpha(getGreyChannel(theme), 0.2)
1360
- },
1361
- "&::after": {
1362
- borderBottomColor: theme.vars?.palette.text.primary || theme.palette.text.primary
1363
- }
1364
- })
1438
+ root: ({ theme }) => inputStyles.root(theme)
1365
1439
  }
1366
1440
  };
1367
1441
  }
1442
+ var outlinedInputStyles = {
1443
+ root: (theme, borderRadius) => ({
1444
+ borderRadius,
1445
+ [`&.${outlinedInputClasses.focused}:not(.${outlinedInputClasses.error})`]: {
1446
+ [`& .${outlinedInputClasses.notchedOutline}`]: {
1447
+ borderColor: theme.vars?.palette.text.primary || theme.palette.text.primary
1448
+ }
1449
+ },
1450
+ [`&.${outlinedInputClasses.disabled}`]: {
1451
+ [`& .${outlinedInputClasses.notchedOutline}`]: {
1452
+ borderColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground
1453
+ }
1454
+ }
1455
+ }),
1456
+ notchedOutline: (theme) => ({
1457
+ borderColor: varAlpha(getGreyChannel(theme), 0.2),
1458
+ transition: theme.transitions.create(["border-color"], {
1459
+ duration: theme.transitions.duration.shortest
1460
+ }),
1461
+ // Align fieldset font-size with InputLabel (14px) so the legend
1462
+ // notch width (0.75em) matches the visually-scaled label exactly.
1463
+ fontSize: theme.typography.pxToRem(14),
1464
+ "& legend > span": { paddingInline: 3 }
1465
+ })
1466
+ };
1467
+ var outlinedInputVariants = {
1468
+ root: [
1469
+ {
1470
+ props: (props) => !!props.multiline,
1471
+ style: { ...INPUT_PADDING.outlined.medium }
1472
+ },
1473
+ {
1474
+ props: (props) => !!props.multiline && props.size === "small",
1475
+ style: { ...INPUT_PADDING.outlined.small }
1476
+ }
1477
+ ],
1478
+ input: [
1479
+ {
1480
+ props: {},
1481
+ style: { ...INPUT_PADDING.outlined.medium }
1482
+ },
1483
+ {
1484
+ props: (props) => props.size === "small",
1485
+ style: { ...INPUT_PADDING.outlined.small }
1486
+ }
1487
+ ]
1488
+ };
1368
1489
  function createOutlinedInputOverrides(config) {
1369
1490
  const { borderRadius } = config;
1370
1491
  return {
1371
1492
  styleOverrides: {
1372
1493
  root: ({ theme }) => ({
1373
- borderRadius,
1374
- [`&.${outlinedInputClasses.focused}:not(.${outlinedInputClasses.error})`]: {
1375
- [`& .${outlinedInputClasses.notchedOutline}`]: {
1376
- borderColor: theme.vars?.palette.text.primary || theme.palette.text.primary
1377
- }
1378
- },
1379
- [`&.${outlinedInputClasses.disabled}`]: {
1380
- [`& .${outlinedInputClasses.notchedOutline}`]: {
1381
- borderColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground
1382
- }
1383
- }
1494
+ ...outlinedInputStyles.root(theme, borderRadius),
1495
+ variants: outlinedInputVariants.root
1384
1496
  }),
1385
1497
  input: {
1386
- ...INPUT_PADDING.outlined.medium,
1387
- "&.MuiInputBase-inputSizeSmall": {
1388
- ...INPUT_PADDING.outlined.small
1389
- },
1390
- "&.MuiInputBase-inputMultiline": {
1391
- paddingTop: 0,
1392
- paddingBottom: 0
1393
- }
1498
+ variants: [...outlinedInputVariants.input, ...multilineInputVariants]
1394
1499
  },
1395
- notchedOutline: ({ theme }) => ({
1396
- borderColor: varAlpha(getGreyChannel(theme), 0.2),
1397
- transition: theme.transitions.create(["border-color"], {
1398
- duration: theme.transitions.duration.shortest
1399
- }),
1400
- // Align fieldset font-size with InputLabel (14px) so the legend
1401
- // notch width (0.75em) matches the visually-scaled label exactly.
1402
- fontSize: theme.typography.pxToRem(14),
1403
- "& legend > span": { paddingInline: 3 }
1404
- })
1500
+ notchedOutline: ({ theme }) => outlinedInputStyles.notchedOutline(theme)
1405
1501
  }
1406
1502
  };
1407
1503
  }
1504
+ var filledInputStyles = {
1505
+ root: (theme, borderRadius) => {
1506
+ const greyChannel = getGreyChannel(theme);
1507
+ const errChannel = getErrorChannel(theme);
1508
+ const baseBg = varAlpha(greyChannel, 0.08);
1509
+ const hoverBg = varAlpha(greyChannel, 0.16);
1510
+ const errorBg = varAlpha(errChannel, 0.08);
1511
+ const errorHoverBg = varAlpha(errChannel, 0.16);
1512
+ const disabledBg = theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground;
1513
+ return {
1514
+ backgroundColor: baseBg,
1515
+ borderRadius,
1516
+ [`&:hover, &.${filledInputClasses.focused}`]: { backgroundColor: hoverBg },
1517
+ [`&.${filledInputClasses.error}`]: {
1518
+ backgroundColor: errorBg,
1519
+ [`&:hover, &.${filledInputClasses.focused}`]: { backgroundColor: errorHoverBg }
1520
+ },
1521
+ [`&.${filledInputClasses.disabled}`]: { backgroundColor: disabledBg }
1522
+ };
1523
+ }
1524
+ };
1525
+ var filledInputVariants = {
1526
+ // FilledInput has an extra dimension: `hiddenLabel`. When the
1527
+ // label is hidden, the visible inset shrinks because there's no
1528
+ // label to clear, so a separate padding set applies.
1529
+ root: [
1530
+ {
1531
+ props: (props) => !!props.multiline,
1532
+ style: { ...INPUT_PADDING.filled.medium }
1533
+ },
1534
+ {
1535
+ props: (props) => !!props.multiline && props.size === "small",
1536
+ style: { ...INPUT_PADDING.filled.small }
1537
+ },
1538
+ {
1539
+ props: (props) => !!props.multiline && !!props.hiddenLabel,
1540
+ style: { ...INPUT_PADDING.filled.mediumHidden }
1541
+ },
1542
+ {
1543
+ props: (props) => !!props.multiline && !!props.hiddenLabel && props.size === "small",
1544
+ style: { ...INPUT_PADDING.filled.smallHidden }
1545
+ }
1546
+ ],
1547
+ input: [
1548
+ {
1549
+ props: {},
1550
+ style: { ...INPUT_PADDING.filled.medium }
1551
+ },
1552
+ {
1553
+ props: (props) => props.size === "small",
1554
+ style: { ...INPUT_PADDING.filled.small }
1555
+ },
1556
+ {
1557
+ props: (props) => !!props.hiddenLabel,
1558
+ style: { ...INPUT_PADDING.filled.mediumHidden }
1559
+ },
1560
+ {
1561
+ props: (props) => !!props.hiddenLabel && props.size === "small",
1562
+ style: { ...INPUT_PADDING.filled.smallHidden }
1563
+ }
1564
+ ]
1565
+ };
1408
1566
  function createFilledInputOverrides(config) {
1409
1567
  const { borderRadius } = config;
1410
1568
  return {
@@ -1412,34 +1570,12 @@ function createFilledInputOverrides(config) {
1412
1570
  disableUnderline: true
1413
1571
  },
1414
1572
  styleOverrides: {
1415
- root: ({ theme }) => {
1416
- const greyChannel = getGreyChannel(theme);
1417
- const errChannel = getErrorChannel(theme);
1418
- const baseBg = varAlpha(greyChannel, 0.08);
1419
- const hoverBg = varAlpha(greyChannel, 0.16);
1420
- const errorBg = varAlpha(errChannel, 0.08);
1421
- const errorHoverBg = varAlpha(errChannel, 0.16);
1422
- const disabledBg = theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground;
1423
- return {
1424
- backgroundColor: baseBg,
1425
- borderRadius,
1426
- [`&:hover, &.${filledInputClasses.focused}`]: { backgroundColor: hoverBg },
1427
- [`&.${filledInputClasses.error}`]: {
1428
- backgroundColor: errorBg,
1429
- [`&:hover, &.${filledInputClasses.focused}`]: { backgroundColor: errorHoverBg }
1430
- },
1431
- [`&.${filledInputClasses.disabled}`]: { backgroundColor: disabledBg }
1432
- };
1433
- },
1573
+ root: ({ theme }) => ({
1574
+ ...filledInputStyles.root(theme, borderRadius),
1575
+ variants: filledInputVariants.root
1576
+ }),
1434
1577
  input: {
1435
- ...INPUT_PADDING.filled.medium,
1436
- "&.MuiInputBase-inputSizeSmall": {
1437
- ...INPUT_PADDING.filled.small
1438
- },
1439
- "&.MuiInputBase-inputMultiline": {
1440
- paddingTop: 0,
1441
- paddingBottom: 0
1442
- }
1578
+ variants: [...filledInputVariants.input, ...multilineInputVariants]
1443
1579
  }
1444
1580
  }
1445
1581
  };
@@ -1801,129 +1937,81 @@ function createTabOverrides(config) {
1801
1937
  };
1802
1938
  }
1803
1939
 
1804
- // src/theme/components/index.ts
1805
- function componentOverrides(config) {
1940
+ // src/theme/components/Dialog.ts
1941
+ function createDialogOverrides(config) {
1806
1942
  const { density, borderRadius } = config;
1807
1943
  const dm = getDensityMultiplier(density);
1808
1944
  return {
1809
- // =========================================================================
1810
- // BUTTONS (Modular)
1811
- // =========================================================================
1812
- MuiButton: createButtonOverrides(config),
1813
- MuiButtonBase: createButtonBaseOverrides(),
1814
- MuiButtonGroup: createButtonGroupOverrides(config),
1815
- // =========================================================================
1816
- // ICON BUTTON
1817
- // =========================================================================
1818
- MuiIconButton: {
1945
+ MuiDialog: {
1819
1946
  styleOverrides: {
1820
- root: ({ theme }) => ({
1821
- borderRadius,
1822
- "&:hover": {
1823
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
1824
- }
1947
+ paper: ({ theme }) => ({
1948
+ boxShadow: `0 24px 48px -12px rgba(${getGreyChannel(theme, "900")} / 0.24)`,
1949
+ variants: [
1950
+ // Mobile-first: any dialog (non-fullScreen included) goes
1951
+ // edge-to-edge on < sm. MUI's `maxWidth`/`fullWidth` props
1952
+ // attach their own paper-sizing rules at the same
1953
+ // specificity tier — encoding the rule as a `variants`
1954
+ // entry lets MUI's styled engine compose it without the
1955
+ // !important pile that the old descendant override used.
1956
+ {
1957
+ props: () => true,
1958
+ style: {
1959
+ [theme.breakpoints.down("sm")]: {
1960
+ margin: 0,
1961
+ width: "100%",
1962
+ maxWidth: "none",
1963
+ maxHeight: "none",
1964
+ height: "100%",
1965
+ borderRadius: 0
1966
+ }
1967
+ }
1968
+ },
1969
+ {
1970
+ props: (props) => !props.fullScreen,
1971
+ style: {
1972
+ borderRadius: borderRadius * 2,
1973
+ [theme.breakpoints.up("sm")]: {
1974
+ margin: theme.spacing(2)
1975
+ }
1976
+ }
1977
+ }
1978
+ ]
1825
1979
  })
1826
1980
  }
1827
1981
  },
1828
- MuiInputAdornment: {
1829
- styleOverrides: {
1830
- root: {
1831
- [`& .${iconButtonClasses.root}:hover`]: {
1832
- backgroundColor: "transparent"
1833
- }
1834
- }
1835
- }
1836
- },
1837
- // =========================================================================
1838
- // FAB
1839
- // =========================================================================
1840
- MuiFab: {
1841
- defaultProps: {
1842
- color: "primary"
1843
- },
1982
+ MuiDialogTitle: {
1844
1983
  styleOverrides: {
1845
1984
  root: ({ theme }) => ({
1846
- boxShadow: `0 8px 16px 0 rgba(${getColorChannel(theme, "primary")} / 0.24)`,
1847
- "&:hover": {
1848
- boxShadow: `0 8px 16px 0 rgba(${getColorChannel(theme, "primary")} / 0.32)`
1849
- }
1985
+ padding: `${20 * dm}px ${24 * dm}px`,
1986
+ fontSize: theme.typography.pxToRem(18),
1987
+ fontWeight: 600,
1988
+ lineHeight: 28 / 18
1850
1989
  })
1851
1990
  }
1852
1991
  },
1853
- // =========================================================================
1854
- // INPUTS (Refined - from Minimals patterns)
1855
- // =========================================================================
1856
- MuiInputBase: createInputBaseOverrides(),
1857
- MuiInput: createInputOverrides(),
1858
- MuiTextField: createTextFieldOverrides(config),
1859
- MuiOutlinedInput: createOutlinedInputOverrides(config),
1860
- MuiFilledInput: createFilledInputOverrides(config),
1861
- MuiInputLabel: createInputLabelOverrides(),
1862
- MuiFormHelperText: createFormHelperTextOverrides(),
1863
- MuiSelect: {
1864
- styleOverrides: {
1865
- select: {
1866
- // Reset minHeight so Select matches TextField height exactly.
1867
- minHeight: "auto",
1868
- display: "flex",
1869
- alignItems: "center"
1870
- },
1871
- icon: {
1872
- right: 10,
1873
- width: 18,
1874
- height: 18,
1875
- top: "calc(50% - 9px)"
1876
- }
1877
- }
1878
- },
1879
- MuiNativeSelect: {
1992
+ MuiDialogContent: {
1880
1993
  styleOverrides: {
1881
- icon: {
1882
- right: 10,
1883
- width: 18,
1884
- height: 18,
1885
- top: "calc(50% - 9px)"
1994
+ root: {
1995
+ padding: `${16 * dm}px ${24 * dm}px`
1886
1996
  }
1887
1997
  }
1888
1998
  },
1889
- MuiAutocomplete: {
1999
+ MuiDialogActions: {
1890
2000
  styleOverrides: {
1891
- paper: ({ theme }) => ({
1892
- borderRadius,
1893
- boxShadow: `0 0 2px 0 rgba(${getGreyChannel(theme)} / 0.24), -20px 20px 40px -4px rgba(${getGreyChannel(theme)} / 0.24)`
1894
- }),
1895
- listbox: {
1896
- padding: 4
1897
- },
1898
- option: ({ theme }) => ({
1899
- borderRadius: borderRadius - 2,
1900
- margin: 2,
1901
- [`&.${autocompleteClasses.focused}`]: {
1902
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
1903
- },
1904
- '&[aria-selected="true"]': {
1905
- backgroundColor: theme.vars?.palette.action.selected || theme.palette.action.selected,
1906
- fontWeight: 500,
1907
- [`&.${autocompleteClasses.focused}`]: {
1908
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
1909
- }
1910
- }
1911
- }),
1912
- popupIndicator: {
1913
- [`& .${svgIconClasses.root}`]: {
1914
- fontSize: 20
1915
- }
1916
- },
1917
- clearIndicator: {
1918
- [`& .${svgIconClasses.root}`]: {
1919
- fontSize: 18
1920
- }
2001
+ root: {
2002
+ padding: `${16 * dm}px ${24 * dm}px`,
2003
+ gap: 8
1921
2004
  }
1922
2005
  }
1923
- },
1924
- // =========================================================================
1925
- // CARDS
1926
- // =========================================================================
2006
+ }
2007
+ };
2008
+ }
2009
+
2010
+ // src/theme/components/Card.ts
2011
+ function createCardOverrides(config) {
2012
+ const { density, borderRadius } = config;
2013
+ const dm = getDensityMultiplier(density);
2014
+ return {
1927
2015
  MuiCard: {
1928
2016
  defaultProps: {
1929
2017
  elevation: 0
@@ -1934,7 +2022,7 @@ function componentOverrides(config) {
1934
2022
  zIndex: 0,
1935
2023
  // Safari stacking context fix
1936
2024
  borderRadius: borderRadius * 1.5,
1937
- border: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,
2025
+ border: `1px solid ${paletteVar(theme, "divider")}`,
1938
2026
  backgroundImage: "none",
1939
2027
  boxShadow: `0 0 2px 0 rgba(${getGreyChannel(theme)} / 0.2), 0 12px 24px -4px rgba(${getGreyChannel(theme)} / 0.12)`
1940
2028
  })
@@ -1942,8 +2030,10 @@ function componentOverrides(config) {
1942
2030
  },
1943
2031
  MuiCardHeader: {
1944
2032
  defaultProps: {
1945
- titleTypographyProps: { variant: "h6" },
1946
- subheaderTypographyProps: { variant: "body2" }
2033
+ slotProps: {
2034
+ title: { variant: "h6" },
2035
+ subheader: { variant: "body2" }
2036
+ }
1947
2037
  },
1948
2038
  styleOverrides: {
1949
2039
  root: {
@@ -1957,7 +2047,7 @@ function componentOverrides(config) {
1957
2047
  subheader: ({ theme }) => ({
1958
2048
  fontSize: theme.typography.pxToRem(14),
1959
2049
  lineHeight: 22 / 14,
1960
- color: theme.vars?.palette.text.secondary || theme.palette.text.secondary
2050
+ color: paletteVar(theme, "text.secondary")
1961
2051
  })
1962
2052
  }
1963
2053
  },
@@ -1978,18 +2068,270 @@ function componentOverrides(config) {
1978
2068
  gap: 8
1979
2069
  }
1980
2070
  }
1981
- },
1982
- // =========================================================================
1983
- // PAPER & SURFACES
1984
- // =========================================================================
1985
- MuiPaper: {
1986
- defaultProps: {
1987
- elevation: 0
1988
- },
1989
- styleOverrides: {
1990
- root: {
1991
- backgroundImage: "none"
1992
- },
2071
+ }
2072
+ };
2073
+ }
2074
+ function createAutocompleteOverrides(config) {
2075
+ const { borderRadius } = config;
2076
+ return {
2077
+ styleOverrides: {
2078
+ paper: ({ theme }) => ({
2079
+ borderRadius,
2080
+ boxShadow: `0 0 2px 0 rgba(${getGreyChannel(theme)} / 0.24), -20px 20px 40px -4px rgba(${getGreyChannel(theme)} / 0.24)`
2081
+ }),
2082
+ listbox: {
2083
+ padding: 4
2084
+ },
2085
+ option: ({ theme }) => ({
2086
+ borderRadius: borderRadius - 2,
2087
+ margin: 2,
2088
+ [`&.${autocompleteClasses.focused}`]: {
2089
+ backgroundColor: paletteVar(theme, "action.hover")
2090
+ },
2091
+ '&[aria-selected="true"]': {
2092
+ backgroundColor: paletteVar(theme, "action.selected"),
2093
+ fontWeight: 500,
2094
+ [`&.${autocompleteClasses.focused}`]: {
2095
+ backgroundColor: paletteVar(theme, "action.hover")
2096
+ }
2097
+ }
2098
+ }),
2099
+ popupIndicator: {
2100
+ [`& .${svgIconClasses.root}`]: {
2101
+ fontSize: 20
2102
+ }
2103
+ },
2104
+ clearIndicator: {
2105
+ [`& .${svgIconClasses.root}`]: {
2106
+ fontSize: 18
2107
+ }
2108
+ }
2109
+ }
2110
+ };
2111
+ }
2112
+
2113
+ // src/theme/components/DataGrid.ts
2114
+ function createDataGridOverrides(config) {
2115
+ const { borderRadius } = config;
2116
+ return {
2117
+ styleOverrides: {
2118
+ root: ({ theme }) => ({
2119
+ border: "none",
2120
+ borderRadius,
2121
+ // background.neutral falls back to grey[50] (different path
2122
+ // on either side) — kept as a manual chain rather than
2123
+ // paletteVar() so the fallback is explicit.
2124
+ "--DataGrid-containerBackground": theme.vars?.palette.background.neutral || theme.palette.grey[50],
2125
+ "--DataGrid-pinnedBackground": paletteVar(theme, "background.paper"),
2126
+ "& .MuiDataGrid-columnHeaders": {
2127
+ borderBottom: `1px solid ${paletteVar(theme, "divider")}`
2128
+ },
2129
+ "& .MuiDataGrid-columnHeader": {
2130
+ fontWeight: 600,
2131
+ fontSize: theme.typography.pxToRem(14),
2132
+ color: paletteVar(theme, "text.secondary"),
2133
+ "&:focus, &:focus-within": {
2134
+ outline: "none"
2135
+ }
2136
+ },
2137
+ "& .MuiDataGrid-cell": {
2138
+ borderBottom: `1px solid rgba(${getGreyChannel(theme)} / 0.12)`,
2139
+ "&:focus, &:focus-within": {
2140
+ outline: "none"
2141
+ }
2142
+ },
2143
+ "& .MuiDataGrid-row": {
2144
+ "&:hover": {
2145
+ backgroundColor: paletteVar(theme, "action.hover")
2146
+ },
2147
+ "&.Mui-selected": {
2148
+ backgroundColor: `rgba(${getColorChannel(theme, "primary")} / 0.08)`,
2149
+ "&:hover": {
2150
+ backgroundColor: `rgba(${getColorChannel(theme, "primary")} / 0.12)`
2151
+ }
2152
+ }
2153
+ },
2154
+ "& .MuiDataGrid-footerContainer": {
2155
+ borderTop: `1px solid ${paletteVar(theme, "divider")}`
2156
+ },
2157
+ "& .MuiDataGrid-selectedRowCount": {
2158
+ whiteSpace: "nowrap"
2159
+ },
2160
+ "& .MuiDataGrid-toolbarContainer": {
2161
+ padding: theme.spacing(1.5, 1.5, 0.5),
2162
+ gap: theme.spacing(1)
2163
+ },
2164
+ "& .MuiDataGrid-columnSeparator": {
2165
+ color: paletteVar(theme, "divider")
2166
+ }
2167
+ })
2168
+ }
2169
+ };
2170
+ }
2171
+
2172
+ // src/theme/components/DatePicker.ts
2173
+ function createDatePickerOverrides(config) {
2174
+ const { density, borderRadius } = config;
2175
+ return {
2176
+ MuiDatePicker: {
2177
+ defaultProps: {
2178
+ slotProps: {
2179
+ openPickerButton: {
2180
+ size: density === "compact" ? "small" : "medium"
2181
+ }
2182
+ }
2183
+ }
2184
+ },
2185
+ MuiPickersLayout: {
2186
+ styleOverrides: {
2187
+ root: ({ theme }) => ({
2188
+ "& .MuiPickersLayout-actionBar": {
2189
+ padding: theme.spacing(1, 2)
2190
+ }
2191
+ })
2192
+ }
2193
+ },
2194
+ MuiPickersDay: {
2195
+ styleOverrides: {
2196
+ root: () => ({
2197
+ borderRadius: borderRadius - 2,
2198
+ fontWeight: 400,
2199
+ "&.Mui-selected": {
2200
+ fontWeight: 600
2201
+ }
2202
+ }),
2203
+ today: ({ theme }) => ({
2204
+ borderColor: paletteVar(theme, "primary.main"),
2205
+ "&:not(.Mui-selected)": {
2206
+ backgroundColor: "transparent"
2207
+ }
2208
+ })
2209
+ }
2210
+ },
2211
+ MuiPickersYear: {
2212
+ styleOverrides: {
2213
+ yearButton: () => ({
2214
+ borderRadius,
2215
+ "&.Mui-selected": {
2216
+ fontWeight: 600
2217
+ }
2218
+ })
2219
+ }
2220
+ },
2221
+ MuiPickersMonth: {
2222
+ styleOverrides: {
2223
+ monthButton: () => ({
2224
+ borderRadius,
2225
+ "&.Mui-selected": {
2226
+ fontWeight: 600
2227
+ }
2228
+ })
2229
+ }
2230
+ }
2231
+ };
2232
+ }
2233
+
2234
+ // src/theme/components/index.ts
2235
+ function componentOverrides(config) {
2236
+ const { density, borderRadius } = config;
2237
+ const dm = getDensityMultiplier(density);
2238
+ return {
2239
+ // =========================================================================
2240
+ // BUTTONS (Modular)
2241
+ // =========================================================================
2242
+ MuiButton: createButtonOverrides(config),
2243
+ MuiButtonBase: createButtonBaseOverrides(),
2244
+ MuiButtonGroup: createButtonGroupOverrides(config),
2245
+ // =========================================================================
2246
+ // ICON BUTTON
2247
+ // =========================================================================
2248
+ MuiIconButton: {
2249
+ styleOverrides: {
2250
+ root: ({ theme }) => ({
2251
+ borderRadius,
2252
+ "&:hover": {
2253
+ backgroundColor: paletteVar(theme, "action.hover")
2254
+ }
2255
+ })
2256
+ }
2257
+ },
2258
+ MuiInputAdornment: {
2259
+ styleOverrides: {
2260
+ root: {
2261
+ [`& .${iconButtonClasses.root}:hover`]: {
2262
+ backgroundColor: "transparent"
2263
+ }
2264
+ }
2265
+ }
2266
+ },
2267
+ // =========================================================================
2268
+ // FAB
2269
+ // =========================================================================
2270
+ MuiFab: {
2271
+ defaultProps: {
2272
+ color: "primary"
2273
+ },
2274
+ styleOverrides: {
2275
+ root: ({ theme }) => ({
2276
+ boxShadow: `0 8px 16px 0 rgba(${getColorChannel(theme, "primary")} / 0.24)`,
2277
+ "&:hover": {
2278
+ boxShadow: `0 8px 16px 0 rgba(${getColorChannel(theme, "primary")} / 0.32)`
2279
+ }
2280
+ })
2281
+ }
2282
+ },
2283
+ // =========================================================================
2284
+ // INPUTS (Refined - from Minimals patterns)
2285
+ // =========================================================================
2286
+ MuiInputBase: createInputBaseOverrides(),
2287
+ MuiInput: createInputOverrides(),
2288
+ MuiTextField: createTextFieldOverrides(config),
2289
+ MuiOutlinedInput: createOutlinedInputOverrides(config),
2290
+ MuiFilledInput: createFilledInputOverrides(config),
2291
+ MuiInputLabel: createInputLabelOverrides(),
2292
+ MuiFormHelperText: createFormHelperTextOverrides(),
2293
+ MuiSelect: {
2294
+ styleOverrides: {
2295
+ select: {
2296
+ // Reset minHeight so Select matches TextField height exactly.
2297
+ minHeight: "auto",
2298
+ display: "flex",
2299
+ alignItems: "center"
2300
+ },
2301
+ icon: {
2302
+ right: 10,
2303
+ width: 18,
2304
+ height: 18,
2305
+ top: "calc(50% - 9px)"
2306
+ }
2307
+ }
2308
+ },
2309
+ MuiNativeSelect: {
2310
+ styleOverrides: {
2311
+ icon: {
2312
+ right: 10,
2313
+ width: 18,
2314
+ height: 18,
2315
+ top: "calc(50% - 9px)"
2316
+ }
2317
+ }
2318
+ },
2319
+ MuiAutocomplete: createAutocompleteOverrides(config),
2320
+ // =========================================================================
2321
+ // CARDS — modularized in ./Card.ts
2322
+ // =========================================================================
2323
+ ...createCardOverrides(config),
2324
+ // =========================================================================
2325
+ // PAPER & SURFACES
2326
+ // =========================================================================
2327
+ MuiPaper: {
2328
+ defaultProps: {
2329
+ elevation: 0
2330
+ },
2331
+ styleOverrides: {
2332
+ root: {
2333
+ backgroundImage: "none"
2334
+ },
1993
2335
  rounded: {
1994
2336
  borderRadius: borderRadius * 1.5
1995
2337
  },
@@ -2014,60 +2356,9 @@ function componentOverrides(config) {
2014
2356
  }
2015
2357
  },
2016
2358
  // =========================================================================
2017
- // DIALOGS
2359
+ // DIALOGS — modularized in ./Dialog.ts
2018
2360
  // =========================================================================
2019
- MuiDialog: {
2020
- styleOverrides: {
2021
- paper: ({ theme }) => ({
2022
- boxShadow: `0 24px 48px -12px rgba(${getGreyChannel(theme, "900")} / 0.24)`,
2023
- // Mobile-first: fullscreen on < sm (600px)
2024
- [theme.breakpoints.down("sm")]: {
2025
- margin: 0,
2026
- width: "100% !important",
2027
- maxWidth: "none !important",
2028
- maxHeight: "none !important",
2029
- height: "100%",
2030
- borderRadius: "0 !important"
2031
- },
2032
- variants: [
2033
- {
2034
- props: (props) => !props.fullScreen,
2035
- style: {
2036
- borderRadius: borderRadius * 2,
2037
- [theme.breakpoints.up("sm")]: {
2038
- margin: theme.spacing(2)
2039
- }
2040
- }
2041
- }
2042
- ]
2043
- })
2044
- }
2045
- },
2046
- MuiDialogTitle: {
2047
- styleOverrides: {
2048
- root: ({ theme }) => ({
2049
- padding: `${20 * dm}px ${24 * dm}px`,
2050
- fontSize: theme.typography.pxToRem(18),
2051
- fontWeight: 600,
2052
- lineHeight: 28 / 18
2053
- })
2054
- }
2055
- },
2056
- MuiDialogContent: {
2057
- styleOverrides: {
2058
- root: {
2059
- padding: `${16 * dm}px ${24 * dm}px`
2060
- }
2061
- }
2062
- },
2063
- MuiDialogActions: {
2064
- styleOverrides: {
2065
- root: {
2066
- padding: `${16 * dm}px ${24 * dm}px`,
2067
- gap: 8
2068
- }
2069
- }
2070
- },
2361
+ ...createDialogOverrides(config),
2071
2362
  // =========================================================================
2072
2363
  // NAVIGATION
2073
2364
  // =========================================================================
@@ -2085,7 +2376,7 @@ function componentOverrides(config) {
2085
2376
  styleOverrides: {
2086
2377
  root: ({ theme }) => ({
2087
2378
  backgroundImage: "none",
2088
- borderBottom: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`
2379
+ borderBottom: `1px solid ${paletteVar(theme, "divider")}`
2089
2380
  })
2090
2381
  }
2091
2382
  },
@@ -2110,7 +2401,7 @@ function componentOverrides(config) {
2110
2401
  },
2111
2402
  styleOverrides: {
2112
2403
  root: ({ theme }) => ({
2113
- border: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,
2404
+ border: `1px solid ${paletteVar(theme, "divider")}`,
2114
2405
  borderRadius,
2115
2406
  "&::before": {
2116
2407
  display: "none"
@@ -2157,7 +2448,7 @@ function componentOverrides(config) {
2157
2448
  }
2158
2449
  },
2159
2450
  expandIconWrapper: ({ theme }) => ({
2160
- color: theme.vars?.palette.text.secondary || theme.palette.text.secondary
2451
+ color: paletteVar(theme, "text.secondary")
2161
2452
  })
2162
2453
  }
2163
2454
  },
@@ -2165,7 +2456,7 @@ function componentOverrides(config) {
2165
2456
  styleOverrides: {
2166
2457
  root: ({ theme }) => ({
2167
2458
  padding: `${8 * dm}px ${16 * dm}px ${16 * dm}px`,
2168
- borderTop: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`
2459
+ borderTop: `1px solid ${paletteVar(theme, "divider")}`
2169
2460
  })
2170
2461
  }
2171
2462
  },
@@ -2186,11 +2477,11 @@ function componentOverrides(config) {
2186
2477
  fontWeight: 500,
2187
2478
  [`&.${stepLabelClasses.active}`]: {
2188
2479
  fontWeight: 600,
2189
- color: theme.vars?.palette.text.primary || theme.palette.text.primary
2480
+ color: paletteVar(theme, "text.primary")
2190
2481
  },
2191
2482
  [`&.${stepLabelClasses.completed}`]: {
2192
2483
  fontWeight: 500,
2193
- color: theme.vars?.palette.text.primary || theme.palette.text.primary
2484
+ color: paletteVar(theme, "text.primary")
2194
2485
  }
2195
2486
  }),
2196
2487
  iconContainer: {
@@ -2201,7 +2492,7 @@ function componentOverrides(config) {
2201
2492
  MuiStepConnector: {
2202
2493
  styleOverrides: {
2203
2494
  line: ({ theme }) => ({
2204
- borderColor: theme.vars?.palette.divider || theme.palette.divider,
2495
+ borderColor: paletteVar(theme, "divider"),
2205
2496
  borderTopWidth: 2
2206
2497
  })
2207
2498
  }
@@ -2209,12 +2500,12 @@ function componentOverrides(config) {
2209
2500
  MuiStepIcon: {
2210
2501
  styleOverrides: {
2211
2502
  root: ({ theme }) => ({
2212
- color: theme.vars?.palette.grey?.[300] || theme.palette.grey[300],
2503
+ color: paletteVar(theme, "grey.300"),
2213
2504
  [`&.${stepIconClasses.active}`]: {
2214
- color: theme.vars?.palette.primary.main || theme.palette.primary.main
2505
+ color: paletteVar(theme, "primary.main")
2215
2506
  },
2216
2507
  [`&.${stepIconClasses.completed}`]: {
2217
- color: theme.vars?.palette.primary.main || theme.palette.primary.main
2508
+ color: paletteVar(theme, "primary.main")
2218
2509
  }
2219
2510
  }),
2220
2511
  text: {
@@ -2226,7 +2517,7 @@ function componentOverrides(config) {
2226
2517
  MuiStepContent: {
2227
2518
  styleOverrides: {
2228
2519
  root: ({ theme }) => ({
2229
- borderLeft: `2px solid ${theme.vars?.palette.divider || theme.palette.divider}`,
2520
+ borderLeft: `2px solid ${paletteVar(theme, "divider")}`,
2230
2521
  marginLeft: 11,
2231
2522
  paddingLeft: 20,
2232
2523
  paddingRight: 8
@@ -2252,25 +2543,25 @@ function componentOverrides(config) {
2252
2543
  }
2253
2544
  }),
2254
2545
  outlined: ({ theme }) => ({
2255
- borderColor: theme.vars?.palette.divider || theme.palette.divider,
2546
+ borderColor: paletteVar(theme, "divider"),
2256
2547
  [`&.${paginationItemClasses.selected}`]: {
2257
2548
  backgroundColor: `rgba(${getColorChannel(theme, "primary")} / 0.08)`,
2258
- borderColor: theme.vars?.palette.primary.main || theme.palette.primary.main
2549
+ borderColor: paletteVar(theme, "primary.main")
2259
2550
  }
2260
2551
  }),
2261
2552
  text: ({ theme }) => ({
2262
2553
  [`&.${paginationItemClasses.selected}`]: {
2263
- backgroundColor: theme.vars?.palette.primary.main || theme.palette.primary.main,
2264
- color: theme.vars?.palette.primary.contrastText || theme.palette.primary.contrastText,
2554
+ backgroundColor: paletteVar(theme, "primary.main"),
2555
+ color: paletteVar(theme, "primary.contrastText"),
2265
2556
  "&:hover": {
2266
- backgroundColor: theme.vars?.palette.primary.dark || theme.palette.primary.dark
2557
+ backgroundColor: paletteVar(theme, "primary.dark")
2267
2558
  }
2268
2559
  }
2269
2560
  }),
2270
2561
  previousNext: ({ theme }) => ({
2271
2562
  borderRadius: borderRadius - 2,
2272
2563
  "&:hover": {
2273
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
2564
+ backgroundColor: paletteVar(theme, "action.hover")
2274
2565
  }
2275
2566
  }),
2276
2567
  firstLast: ({ theme }) => ({
@@ -2306,10 +2597,10 @@ function componentOverrides(config) {
2306
2597
  borderRadius: borderRadius - 2,
2307
2598
  fontSize: theme.typography.pxToRem(12),
2308
2599
  padding: "6px 12px",
2309
- backgroundColor: theme.vars?.palette.grey?.[800] || theme.palette.grey[800]
2600
+ backgroundColor: paletteVar(theme, "grey.800")
2310
2601
  }),
2311
2602
  arrow: ({ theme }) => ({
2312
- color: theme.vars?.palette.grey?.[800] || theme.palette.grey[800]
2603
+ color: paletteVar(theme, "grey.800")
2313
2604
  })
2314
2605
  }
2315
2606
  },
@@ -2329,7 +2620,7 @@ function componentOverrides(config) {
2329
2620
  [`& .${tableCellClasses.head}`]: {
2330
2621
  fontWeight: 600,
2331
2622
  backgroundColor: theme.vars?.palette.background.neutral || theme.palette.grey[50],
2332
- color: theme.vars?.palette.text.secondary || theme.palette.text.secondary
2623
+ color: paletteVar(theme, "text.secondary")
2333
2624
  }
2334
2625
  })
2335
2626
  }
@@ -2362,13 +2653,19 @@ function componentOverrides(config) {
2362
2653
  },
2363
2654
  MuiTablePagination: {
2364
2655
  defaultProps: {
2365
- backIconButtonProps: { size: "small" },
2366
- nextIconButtonProps: { size: "small" },
2367
- slotProps: { select: { name: "table-pagination-select" } }
2656
+ // MUI v9 removed `backIconButtonProps`/`nextIconButtonProps` —
2657
+ // both replaced by slotProps.
2658
+ slotProps: {
2659
+ select: { name: "table-pagination-select" },
2660
+ actions: {
2661
+ previousButton: { size: "small" },
2662
+ nextButton: { size: "small" }
2663
+ }
2664
+ }
2368
2665
  },
2369
2666
  styleOverrides: {
2370
2667
  root: ({ theme }) => ({
2371
- borderTop: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`
2668
+ borderTop: `1px solid ${paletteVar(theme, "divider")}`
2372
2669
  }),
2373
2670
  toolbar: {
2374
2671
  minHeight: 44 * dm,
@@ -2400,25 +2697,36 @@ function componentOverrides(config) {
2400
2697
  // FEEDBACK
2401
2698
  // =========================================================================
2402
2699
  MuiAlert: {
2700
+ // MUI v9: `standardSuccess`/`standardError`/`standardWarning`/
2701
+ // `standardInfo` slots were removed in favour of the variants
2702
+ // array (props-matched style rules).
2403
2703
  styleOverrides: {
2404
- root: {
2405
- borderRadius
2406
- },
2407
- standardSuccess: ({ theme }) => ({
2408
- backgroundColor: `rgba(${getColorChannel(theme, "success")} / 0.08)`,
2409
- color: theme.vars?.palette.success.dark || theme.palette.success.dark
2410
- }),
2411
- standardError: ({ theme }) => ({
2412
- backgroundColor: `rgba(${getColorChannel(theme, "error")} / 0.08)`,
2413
- color: theme.vars?.palette.error.dark || theme.palette.error.dark
2414
- }),
2415
- standardWarning: ({ theme }) => ({
2416
- backgroundColor: `rgba(${getColorChannel(theme, "warning")} / 0.08)`,
2417
- color: theme.vars?.palette.warning.dark || theme.palette.warning.dark
2418
- }),
2419
- standardInfo: ({ theme }) => ({
2420
- backgroundColor: `rgba(${getColorChannel(theme, "info")} / 0.08)`,
2421
- color: theme.vars?.palette.info.dark || theme.palette.info.dark
2704
+ root: ({ theme }) => ({
2705
+ borderRadius,
2706
+ variants: ["success", "error", "warning", "info"].map(
2707
+ (severity) => ({
2708
+ props: { severity, variant: "standard" },
2709
+ style: {
2710
+ backgroundColor: `rgba(${getColorChannel(theme, severity)} / 0.08)`,
2711
+ color: theme.vars?.palette[severity].dark || theme.palette[severity].dark
2712
+ }
2713
+ })
2714
+ )
2715
+ })
2716
+ }
2717
+ },
2718
+ MuiAlertTitle: {
2719
+ // The title slot in Alert was unstyled — defaulted to MUI's
2720
+ // generic Typography preset and stuck out vs the Alert body
2721
+ // text, especially at compact density where 14/16 became
2722
+ // 13/14 around it. Pin to a slightly larger weight with the
2723
+ // alert's own colour inheritance.
2724
+ styleOverrides: {
2725
+ root: ({ theme }) => ({
2726
+ fontWeight: 600,
2727
+ fontSize: theme.typography.pxToRem(14),
2728
+ marginBottom: theme.spacing(0.5),
2729
+ lineHeight: 1.5
2422
2730
  })
2423
2731
  }
2424
2732
  },
@@ -2439,6 +2747,14 @@ function componentOverrides(config) {
2439
2747
  }
2440
2748
  }
2441
2749
  },
2750
+ MuiCircularProgress: {
2751
+ // Density-aware default size — the bare MUI default is 40px,
2752
+ // which dwarfs adornments / inline loaders at compact density.
2753
+ // Consumers can still override per-instance.
2754
+ defaultProps: {
2755
+ size: density === "compact" ? 20 : density === "comfortable" ? 32 : 24
2756
+ }
2757
+ },
2442
2758
  // =========================================================================
2443
2759
  // SLIDER
2444
2760
  // =========================================================================
@@ -2449,12 +2765,12 @@ function componentOverrides(config) {
2449
2765
  styleOverrides: {
2450
2766
  root: ({ theme }) => ({
2451
2767
  "&.Mui-disabled": {
2452
- color: theme.vars?.palette.action.disabled || theme.palette.action.disabled
2768
+ color: paletteVar(theme, "action.disabled")
2453
2769
  }
2454
2770
  }),
2455
2771
  rail: ({ theme }) => ({
2456
2772
  opacity: 0.32,
2457
- backgroundColor: theme.vars?.palette.grey?.[500] || theme.palette.grey[500]
2773
+ backgroundColor: paletteVar(theme, "grey.500")
2458
2774
  }),
2459
2775
  track: {
2460
2776
  border: "none"
@@ -2462,7 +2778,7 @@ function componentOverrides(config) {
2462
2778
  thumb: ({ theme }) => ({
2463
2779
  width: density === "compact" ? 16 : 20,
2464
2780
  height: density === "compact" ? 16 : 20,
2465
- backgroundColor: theme.vars?.palette.common.white || theme.palette.common.white,
2781
+ backgroundColor: paletteVar(theme, "common.white"),
2466
2782
  border: "2px solid currentColor",
2467
2783
  boxShadow: `0 1px 3px 0 rgba(${getGreyChannel(theme, "900")} / 0.2)`,
2468
2784
  "&::before": {
@@ -2477,7 +2793,7 @@ function componentOverrides(config) {
2477
2793
  }),
2478
2794
  valueLabel: ({ theme }) => ({
2479
2795
  borderRadius: borderRadius - 2,
2480
- backgroundColor: theme.vars?.palette.grey?.[800] || theme.palette.grey[800],
2796
+ backgroundColor: paletteVar(theme, "grey.800"),
2481
2797
  "&::before": {
2482
2798
  display: "none"
2483
2799
  }
@@ -2486,10 +2802,10 @@ function componentOverrides(config) {
2486
2802
  width: 4,
2487
2803
  height: 4,
2488
2804
  borderRadius: "50%",
2489
- backgroundColor: theme.vars?.palette.grey?.[400] || theme.palette.grey[400]
2805
+ backgroundColor: paletteVar(theme, "grey.400")
2490
2806
  }),
2491
2807
  markActive: ({ theme }) => ({
2492
- backgroundColor: theme.vars?.palette.common.white || theme.palette.common.white
2808
+ backgroundColor: paletteVar(theme, "common.white")
2493
2809
  })
2494
2810
  }
2495
2811
  },
@@ -2512,13 +2828,13 @@ function componentOverrides(config) {
2512
2828
  fontSize: "inherit"
2513
2829
  },
2514
2830
  iconEmpty: ({ theme }) => ({
2515
- color: theme.vars?.palette.grey?.[300] || theme.palette.grey[300]
2831
+ color: paletteVar(theme, "grey.300")
2516
2832
  }),
2517
2833
  iconFilled: ({ theme }) => ({
2518
- color: theme.vars?.palette.warning.main || theme.palette.warning.main
2834
+ color: paletteVar(theme, "warning.main")
2519
2835
  }),
2520
2836
  iconHover: ({ theme }) => ({
2521
- color: theme.vars?.palette.warning.dark || theme.palette.warning.dark
2837
+ color: paletteVar(theme, "warning.dark")
2522
2838
  }),
2523
2839
  sizeSmall: {
2524
2840
  fontSize: "1.125rem"
@@ -2543,6 +2859,20 @@ function componentOverrides(config) {
2543
2859
  // =========================================================================
2544
2860
  // LISTS
2545
2861
  // =========================================================================
2862
+ MuiList: {
2863
+ // Default MUI list padding is 8/0/8/0 — fine for spacious lists
2864
+ // but it stacks awkwardly with our ListItemButton's `margin: 2`
2865
+ // (the first/last buttons end up indented away from the
2866
+ // container edge). Density-aware top/bottom keeps the seam tight
2867
+ // while leaving the side at 0 so the row hover bleed reaches
2868
+ // the container border.
2869
+ styleOverrides: {
2870
+ root: {
2871
+ paddingTop: density === "compact" ? 4 : 8,
2872
+ paddingBottom: density === "compact" ? 4 : 8
2873
+ }
2874
+ }
2875
+ },
2546
2876
  MuiListItemButton: {
2547
2877
  styleOverrides: {
2548
2878
  root: ({ theme }) => ({
@@ -2553,7 +2883,7 @@ function componentOverrides(config) {
2553
2883
  fontWeight: 500
2554
2884
  },
2555
2885
  "&:hover": {
2556
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
2886
+ backgroundColor: paletteVar(theme, "action.hover")
2557
2887
  }
2558
2888
  })
2559
2889
  }
@@ -2565,6 +2895,28 @@ function componentOverrides(config) {
2565
2895
  }
2566
2896
  }
2567
2897
  },
2898
+ MuiListItemText: {
2899
+ // Multiline rows (primary + secondary) inherited MUI defaults
2900
+ // that left an awkward 6px gap between the two lines at any
2901
+ // density. Tighten the inter-line gap and reduce horizontal
2902
+ // padding so dense rows actually FEEL dense.
2903
+ styleOverrides: {
2904
+ root: {
2905
+ marginTop: 0,
2906
+ marginBottom: 0
2907
+ },
2908
+ primary: ({ theme }) => ({
2909
+ fontSize: theme.typography.pxToRem(density === "compact" ? 13 : 14),
2910
+ fontWeight: 500,
2911
+ lineHeight: 1.5
2912
+ }),
2913
+ secondary: ({ theme }) => ({
2914
+ fontSize: theme.typography.pxToRem(density === "compact" ? 12 : 13),
2915
+ lineHeight: 1.5,
2916
+ color: paletteVar(theme, "text.secondary")
2917
+ })
2918
+ }
2919
+ },
2568
2920
  // =========================================================================
2569
2921
  // MENUS (Refined - with proper menu item styles)
2570
2922
  // =========================================================================
@@ -2592,9 +2944,9 @@ function componentOverrides(config) {
2592
2944
  },
2593
2945
  "&.Mui-selected": {
2594
2946
  fontWeight: 500,
2595
- backgroundColor: theme.vars?.palette.action.selected || theme.palette.action.selected,
2947
+ backgroundColor: paletteVar(theme, "action.selected"),
2596
2948
  "&:hover": {
2597
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
2949
+ backgroundColor: paletteVar(theme, "action.hover")
2598
2950
  }
2599
2951
  }
2600
2952
  })
@@ -2641,7 +2993,7 @@ function componentOverrides(config) {
2641
2993
  },
2642
2994
  styleOverrides: {
2643
2995
  root: ({ theme }) => ({
2644
- color: theme.vars?.palette.primary.main || theme.palette.primary.main,
2996
+ color: paletteVar(theme, "primary.main"),
2645
2997
  textDecorationColor: "transparent",
2646
2998
  transition: "color 150ms, text-decoration-color 150ms",
2647
2999
  "&:hover": {
@@ -2659,17 +3011,17 @@ function componentOverrides(config) {
2659
3011
  borderRadius,
2660
3012
  fontWeight: 500,
2661
3013
  textTransform: "none",
2662
- border: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,
3014
+ border: `1px solid ${paletteVar(theme, "divider")}`,
2663
3015
  [`&.${toggleButtonClasses.selected}`]: {
2664
3016
  backgroundColor: `rgba(${getColorChannel(theme, "primary")} / 0.08)`,
2665
- borderColor: theme.vars?.palette.primary.main || theme.palette.primary.main,
2666
- color: theme.vars?.palette.primary.main || theme.palette.primary.main,
3017
+ borderColor: paletteVar(theme, "primary.main"),
3018
+ color: paletteVar(theme, "primary.main"),
2667
3019
  "&:hover": {
2668
3020
  backgroundColor: `rgba(${getColorChannel(theme, "primary")} / 0.16)`
2669
3021
  }
2670
3022
  },
2671
3023
  [`&.${toggleButtonClasses.disabled}`]: {
2672
- borderColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground
3024
+ borderColor: paletteVar(theme, "action.disabledBackground")
2673
3025
  }
2674
3026
  }),
2675
3027
  sizeSmall: {
@@ -2685,21 +3037,39 @@ function componentOverrides(config) {
2685
3037
  }
2686
3038
  }
2687
3039
  },
3040
+ // The group only owns layout (gap, sibling border). Per-button
3041
+ // styling (border, radius, padding) is already covered by the
3042
+ // MuiToggleButton override above — the previous descendant
3043
+ // selector with `!important` here was redundant.
3044
+ //
3045
+ // The sibling-border explicitly carries the same `divider`
3046
+ // colour used by each button's own border, otherwise the
3047
+ // shorthand `1px solid` would fall back to `currentColor`
3048
+ // (text colour) and the first-of-type's left edge looked
3049
+ // brighter than the seams between subsequent buttons.
2688
3050
  MuiToggleButtonGroup: {
2689
3051
  styleOverrides: {
2690
3052
  root: {
2691
- gap: 4,
2692
- "& .MuiToggleButton-root": {
2693
- border: "1px solid",
2694
- borderRadius: `${borderRadius}px !important`
2695
- }
3053
+ gap: 4
2696
3054
  },
2697
- grouped: {
3055
+ grouped: ({ theme }) => ({
2698
3056
  "&:not(:first-of-type)": {
2699
3057
  marginLeft: 0,
2700
- borderLeft: "1px solid"
3058
+ borderLeft: `1px solid ${paletteVar(theme, "divider")}`,
3059
+ // The MuiToggleButton override sets `borderColor: primary`
3060
+ // when selected via a longhand on the .selected class, but
3061
+ // that rule's specificity equals ours and MUI's
3062
+ // toggle-button-group styleOverrides land later in source
3063
+ // order — so the left edge stayed `divider` even after
3064
+ // selection. Re-state the primary colour inside our
3065
+ // selected branch so it wins on cascade (specificity here
3066
+ // is one class higher than the MuiToggleButton.selected
3067
+ // rule).
3068
+ [`&.${toggleButtonClasses.selected}`]: {
3069
+ borderLeftColor: paletteVar(theme, "primary.main")
3070
+ }
2701
3071
  }
2702
- }
3072
+ })
2703
3073
  }
2704
3074
  },
2705
3075
  // =========================================================================
@@ -2729,7 +3099,7 @@ function componentOverrides(config) {
2729
3099
  padding: 3
2730
3100
  }),
2731
3101
  outlined: ({ theme }) => ({
2732
- borderColor: theme.vars?.palette.divider || theme.palette.divider,
3102
+ borderColor: paletteVar(theme, "divider"),
2733
3103
  backgroundColor: "transparent"
2734
3104
  })
2735
3105
  }
@@ -2737,7 +3107,7 @@ function componentOverrides(config) {
2737
3107
  MuiTimelineConnector: {
2738
3108
  styleOverrides: {
2739
3109
  root: ({ theme }) => ({
2740
- backgroundColor: theme.vars?.palette.divider || theme.palette.divider,
3110
+ backgroundColor: paletteVar(theme, "divider"),
2741
3111
  width: 2
2742
3112
  })
2743
3113
  }
@@ -2751,117 +3121,13 @@ function componentOverrides(config) {
2751
3121
  }
2752
3122
  },
2753
3123
  // =========================================================================
2754
- // DATA GRID (MUI X)
3124
+ // DATA GRID (MUI X) — modularized in ./DataGrid.ts
2755
3125
  // =========================================================================
2756
- MuiDataGrid: {
2757
- styleOverrides: {
2758
- root: ({ theme }) => ({
2759
- border: "none",
2760
- borderRadius,
2761
- "--DataGrid-containerBackground": theme.vars?.palette.background.neutral || theme.palette.grey[50],
2762
- "--DataGrid-pinnedBackground": theme.vars?.palette.background.paper || theme.palette.background.paper,
2763
- "& .MuiDataGrid-columnHeaders": {
2764
- borderBottom: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`
2765
- },
2766
- "& .MuiDataGrid-columnHeader": {
2767
- fontWeight: 600,
2768
- fontSize: theme.typography.pxToRem(14),
2769
- color: theme.vars?.palette.text.secondary || theme.palette.text.secondary,
2770
- "&:focus, &:focus-within": {
2771
- outline: "none"
2772
- }
2773
- },
2774
- "& .MuiDataGrid-cell": {
2775
- borderBottom: `1px solid rgba(${getGreyChannel(theme)} / 0.12)`,
2776
- "&:focus, &:focus-within": {
2777
- outline: "none"
2778
- }
2779
- },
2780
- "& .MuiDataGrid-row": {
2781
- "&:hover": {
2782
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
2783
- },
2784
- "&.Mui-selected": {
2785
- backgroundColor: `rgba(${getColorChannel(theme, "primary")} / 0.08)`,
2786
- "&:hover": {
2787
- backgroundColor: `rgba(${getColorChannel(theme, "primary")} / 0.12)`
2788
- }
2789
- }
2790
- },
2791
- "& .MuiDataGrid-footerContainer": {
2792
- borderTop: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`
2793
- },
2794
- "& .MuiDataGrid-selectedRowCount": {
2795
- whiteSpace: "nowrap"
2796
- },
2797
- "& .MuiDataGrid-toolbarContainer": {
2798
- padding: theme.spacing(1.5, 1.5, 0.5),
2799
- gap: theme.spacing(1)
2800
- },
2801
- "& .MuiDataGrid-columnSeparator": {
2802
- color: theme.vars?.palette.divider || theme.palette.divider
2803
- }
2804
- })
2805
- }
2806
- },
3126
+ MuiDataGrid: createDataGridOverrides(config),
2807
3127
  // =========================================================================
2808
- // DATE/TIME PICKERS (MUI X)
3128
+ // DATE/TIME PICKERS (MUI X) — modularized in ./DatePicker.ts
2809
3129
  // =========================================================================
2810
- MuiDatePicker: {
2811
- defaultProps: {
2812
- slotProps: {
2813
- openPickerButton: {
2814
- size: density === "compact" ? "small" : "medium"
2815
- }
2816
- }
2817
- }
2818
- },
2819
- MuiPickersLayout: {
2820
- styleOverrides: {
2821
- root: ({ theme }) => ({
2822
- "& .MuiPickersLayout-actionBar": {
2823
- padding: theme.spacing(1, 2)
2824
- }
2825
- })
2826
- }
2827
- },
2828
- MuiPickersDay: {
2829
- styleOverrides: {
2830
- root: ({ theme }) => ({
2831
- borderRadius: borderRadius - 2,
2832
- fontWeight: 400,
2833
- "&.Mui-selected": {
2834
- fontWeight: 600
2835
- }
2836
- }),
2837
- today: ({ theme }) => ({
2838
- borderColor: theme.vars?.palette.primary.main || theme.palette.primary.main,
2839
- "&:not(.Mui-selected)": {
2840
- backgroundColor: "transparent"
2841
- }
2842
- })
2843
- }
2844
- },
2845
- MuiPickersYear: {
2846
- styleOverrides: {
2847
- yearButton: ({ theme }) => ({
2848
- borderRadius,
2849
- "&.Mui-selected": {
2850
- fontWeight: 600
2851
- }
2852
- })
2853
- }
2854
- },
2855
- MuiPickersMonth: {
2856
- styleOverrides: {
2857
- monthButton: ({ theme }) => ({
2858
- borderRadius,
2859
- "&.Mui-selected": {
2860
- fontWeight: 600
2861
- }
2862
- })
2863
- }
2864
- },
3130
+ ...createDatePickerOverrides(config),
2865
3131
  // =========================================================================
2866
3132
  // TREE VIEW (MUI X)
2867
3133
  // =========================================================================
@@ -2883,7 +3149,7 @@ function componentOverrides(config) {
2883
3149
  }
2884
3150
  },
2885
3151
  "&:hover": {
2886
- backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover
3152
+ backgroundColor: paletteVar(theme, "action.hover")
2887
3153
  }
2888
3154
  }),
2889
3155
  label: ({ theme }) => ({
@@ -4223,5 +4489,5 @@ function getPresetDisplayName(preset) {
4223
4489
  }
4224
4490
 
4225
4491
  export { COLOR_GROUPS, PRESET_DISPLAY_NAMES, PRESET_INHERENT_MODE, PRESET_NAMES, arcticPreset, baseColors, basic, blue, buildAction, buildBackground, buildChartColors, buildPalette, buildPaletteColor, buildText, buildVibrant, componentOverrides, createButtonBaseOverrides, createButtonGroupOverrides, createButtonOverrides, createPaletteColorFromScale, createPrismTheme, createShadows, createTypography, cssVarRgba, customScrollbarMixin, darkShadow, darken, defaultDarkPalette, defaultLightPalette, draculaPreset, emberPreset, focusRingMixin, generateColorScale, generateColorScaleWithChannels, generatePaletteColorWithChannels, getContrastRatio, getContrastText, getLuminance, getPresetDisplayName, glassMixin, green, grey, hexToHsl, hexToRgb, hexToRgbChannel, hideScrollbarMixin, hslToHex, invertColorScale, isLightColor, lightBlue, lighten, luxuryColors, luxuryError, luxuryInfo, luxuryNeutral, luxuryPrimary, luxurySecondary, luxurySuccess, luxuryWarning, midnightPreset, minimalPreset, mix, mixins, multiLineEllipsisMixin, orange, purple, red, retroPreset, rgbToHex, rgba, shadows, textEllipsisMixin, typography };
4226
- //# sourceMappingURL=chunk-DXXZ3ITR.js.map
4227
- //# sourceMappingURL=chunk-DXXZ3ITR.js.map
4492
+ //# sourceMappingURL=chunk-MEFT6XPH.js.map
4493
+ //# sourceMappingURL=chunk-MEFT6XPH.js.map