@matteoaliano/forest-ui 0.2.0 → 0.2.2

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
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var react = require('react');
3
4
  var styles = require('@mui/material/styles');
4
5
  var CssBaseline = require('@mui/material/CssBaseline');
5
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -18,6 +19,7 @@ var MuiToggleButton = require('@mui/material/ToggleButton');
18
19
  var MuiToggleButtonGroup = require('@mui/material/ToggleButtonGroup');
19
20
  var MuiBadge = require('@mui/material/Badge');
20
21
  var MuiChip = require('@mui/material/Chip');
22
+ var utils = require('@mui/material/utils');
21
23
  var MuiDivider = require('@mui/material/Divider');
22
24
  var MuiList = require('@mui/material/List');
23
25
  var MuiListItem = require('@mui/material/ListItem');
@@ -32,6 +34,7 @@ var MuiTableCell = require('@mui/material/TableCell');
32
34
  var MuiTableContainer = require('@mui/material/TableContainer');
33
35
  var MuiTableHead = require('@mui/material/TableHead');
34
36
  var MuiTableRow = require('@mui/material/TableRow');
37
+ var xDataGrid = require('@mui/x-data-grid');
35
38
  var MuiTooltip = require('@mui/material/Tooltip');
36
39
  var MuiTypography = require('@mui/material/Typography');
37
40
  var MuiAlert = require('@mui/material/Alert');
@@ -288,1096 +291,1600 @@ var widths = {
288
291
  "5xl": 1600,
289
292
  "6xl": 1920
290
293
  };
291
-
292
- // src/theme/palette.ts
293
- var palette = {
294
+ var text = {
295
+ primary: colors.gray[900],
296
+ secondary: colors.gray[700],
297
+ secondaryHover: colors.gray[800],
298
+ tertiary: colors.gray[600],
299
+ tertiaryHover: colors.gray[700],
300
+ quaternary: colors.gray[500],
301
+ disabled: colors.gray[500],
302
+ placeholder: colors.gray[500],
303
+ placeholderSubtle: colors.gray[300],
304
+ white: colors.base.white,
305
+ brandPrimary: colors.brand[900],
306
+ brandSecondary: colors.brand[700],
307
+ brandTertiary: colors.brand[600],
308
+ brandTertiaryAlt: colors.brand[600],
309
+ primaryOnBrand: colors.base.white,
310
+ secondaryOnBrand: colors.brand[200],
311
+ tertiaryOnBrand: colors.brand[200],
312
+ quaternaryOnBrand: colors.brand[300],
313
+ errorPrimary: colors.error[600],
314
+ warningPrimary: colors.warning[600],
315
+ successPrimary: colors.success[600]
316
+ };
317
+ var bg = {
318
+ primary: colors.base.white,
319
+ primaryAlt: colors.base.white,
320
+ primaryHover: colors.gray[50],
321
+ primarySolid: colors.gray[950],
322
+ secondary: colors.gray[50],
323
+ secondaryAlt: colors.gray[50],
324
+ secondarySubtle: colors.gray[25],
325
+ secondaryHover: colors.gray[100],
326
+ secondarySolid: colors.gray[600],
327
+ tertiary: colors.gray[100],
328
+ quaternary: colors.gray[200],
329
+ active: colors.gray[50],
330
+ disabled: colors.gray[100],
331
+ disabledSubtle: colors.gray[50],
332
+ overlay: colors.gray[950],
333
+ brandPrimary: colors.brand[50],
334
+ brandPrimaryAlt: colors.brand[50],
335
+ brandSecondary: colors.brand[100],
336
+ brandSolid: colors.brand[600],
337
+ brandSolidHover: colors.brand[700],
338
+ brandSection: colors.brand[800],
339
+ brandSectionSubtle: colors.brand[700],
340
+ errorPrimary: colors.error[50],
341
+ errorSecondary: colors.error[100],
342
+ errorSolid: colors.error[600],
343
+ warningPrimary: colors.warning[50],
344
+ warningSecondary: colors.warning[100],
345
+ warningSolid: colors.warning[600],
346
+ successPrimary: colors.success[50],
347
+ successSecondary: colors.success[100],
348
+ successSolid: colors.success[600]
349
+ };
350
+ var fg = {
351
+ primary: colors.gray[900],
352
+ secondary: colors.gray[700],
353
+ secondaryHover: colors.gray[800],
354
+ tertiary: colors.gray[600],
355
+ tertiaryHover: colors.gray[700],
356
+ quaternary: colors.gray[500],
357
+ quaternaryHover: colors.gray[600],
358
+ quinary: colors.gray[400],
359
+ quinaryHover: colors.gray[500],
360
+ senary: colors.gray[300],
361
+ white: colors.base.white,
362
+ disabled: colors.gray[400],
363
+ disabledSubtle: colors.gray[300],
364
+ brandPrimary: colors.brand[600],
365
+ brandPrimaryAlt: colors.brand[600],
366
+ brandSecondary: colors.brand[500],
367
+ errorPrimary: colors.error[600],
368
+ errorSecondary: colors.error[500],
369
+ warningPrimary: colors.warning[600],
370
+ warningSecondary: colors.warning[500],
371
+ successPrimary: colors.success[600],
372
+ successSecondary: colors.success[500]
373
+ };
374
+ var border = {
375
+ primary: colors.gray[300],
376
+ secondary: colors.gray[200],
377
+ tertiary: colors.gray[100],
378
+ disabled: colors.gray[300],
379
+ disabledSubtle: colors.gray[200],
380
+ brand: colors.brand[300],
381
+ brandSolid: colors.brand[600],
382
+ brandSolidAlt: colors.brand[600],
383
+ error: colors.error[300],
384
+ errorSolid: colors.error[600]
385
+ };
386
+ var buttonColors = {
294
387
  primary: {
295
- main: colors.brand[600],
296
- light: colors.brand[400],
297
- dark: colors.brand[700],
298
- contrastText: colors.base.white
388
+ bg: colors.brand[600],
389
+ bgHover: colors.brand[700],
390
+ fg: colors.base.white,
391
+ fgHover: colors.base.white,
392
+ border: colors.brand[600],
393
+ borderHover: colors.brand[700]
299
394
  },
300
395
  secondary: {
301
- main: colors.gray[600],
302
- light: colors.gray[400],
303
- dark: colors.gray[700],
304
- contrastText: colors.base.white
305
- },
306
- error: {
307
- main: colors.error[600],
308
- light: colors.error[300],
309
- dark: colors.error[700],
310
- contrastText: colors.base.white
311
- },
312
- warning: {
313
- main: colors.warning[600],
314
- light: colors.warning[300],
315
- dark: colors.warning[700],
316
- contrastText: colors.base.white
317
- },
318
- success: {
319
- main: colors.success[600],
320
- light: colors.success[300],
321
- dark: colors.success[700],
322
- contrastText: colors.base.white
323
- },
324
- info: {
325
- main: colors.blue[600],
326
- light: colors.blue[300],
327
- dark: colors.blue[700],
328
- contrastText: colors.base.white
329
- },
330
- background: {
331
- default: colors.base.white,
332
- paper: colors.base.white
333
- },
334
- text: {
335
- primary: colors.gray[900],
336
- secondary: colors.gray[700],
337
- disabled: colors.gray[500]
338
- },
339
- divider: colors.gray[200],
340
- action: {
341
- active: colors.gray[600],
342
- hover: colors.gray[50],
343
- selected: colors.brand[50],
344
- disabled: colors.gray[400],
345
- disabledBackground: colors.gray[100]
396
+ bg: colors.base.white,
397
+ bgHover: colors.gray[50],
398
+ fg: colors.gray[700],
399
+ fgHover: colors.gray[800],
400
+ border: colors.gray[300],
401
+ borderHover: colors.gray[300]
402
+ },
403
+ secondaryColor: {
404
+ bg: colors.base.white,
405
+ bgHover: colors.brand[50],
406
+ fg: colors.brand[700],
407
+ fgHover: colors.brand[800],
408
+ border: colors.brand[300],
409
+ borderHover: colors.brand[300]
410
+ },
411
+ tertiary: {
412
+ fg: colors.gray[600],
413
+ fgHover: colors.gray[700],
414
+ bgHover: colors.gray[50]
415
+ },
416
+ tertiaryColor: {
417
+ fg: colors.brand[700],
418
+ fgHover: colors.brand[800],
419
+ bgHover: colors.brand[50]
420
+ },
421
+ primaryError: {
422
+ bg: colors.error[600],
423
+ bgHover: colors.error[700],
424
+ fg: colors.base.white,
425
+ fgHover: colors.base.white,
426
+ border: colors.error[600],
427
+ borderHover: colors.error[700]
428
+ },
429
+ secondaryError: {
430
+ bg: colors.base.white,
431
+ bgHover: colors.error[50],
432
+ fg: colors.error[700],
433
+ fgHover: colors.error[800],
434
+ border: colors.error[300],
435
+ borderHover: colors.error[300]
436
+ },
437
+ tertiaryError: {
438
+ fg: colors.error[700],
439
+ fgHover: colors.error[800],
440
+ bgHover: colors.error[50]
441
+ }
442
+ };
443
+ var avatarColors = {
444
+ bg: colors.gray[100],
445
+ contrastBorder: "#00000014",
446
+ profilePhotoBorder: colors.base.white,
447
+ focusBorder: "#98a2b324"
448
+ };
449
+ var breadcrumbColors = {
450
+ fg: colors.gray[600],
451
+ fgHover: colors.gray[700],
452
+ bgHover: colors.gray[50],
453
+ brandBgHover: colors.brand[50],
454
+ brandFgHover: colors.brand[700],
455
+ iconFg: colors.gray[500],
456
+ iconFgHover: colors.gray[700],
457
+ brandIconFgHover: colors.brand[700]
458
+ };
459
+ var iconColors = {
460
+ fgBrand: colors.brand[600],
461
+ fgBrandOnBrand: colors.brand[200],
462
+ featuredModernBorder: colors.gray[200],
463
+ featuredLightFgBrand: colors.brand[600],
464
+ featuredLightFgGray: colors.gray[500],
465
+ featuredLightFgError: colors.error[600],
466
+ featuredLightFgWarning: colors.warning[600],
467
+ featuredLightFgSuccess: colors.success[600],
468
+ featuredDarkFgBrand: colors.base.white,
469
+ featuredDarkFgGray: colors.base.white,
470
+ featuredDarkFgError: colors.base.white,
471
+ featuredDarkFgWarning: colors.base.white,
472
+ featuredDarkFgSuccess: colors.base.white
473
+ };
474
+ var navColors = {
475
+ itemIconFg: colors.gray[500],
476
+ itemIconFgActive: colors.gray[500],
477
+ itemButtonIconFg: colors.gray[500],
478
+ itemButtonIconFgActive: colors.gray[700]
479
+ };
480
+ var sliderColors = {
481
+ handleBorder: colors.brand[600],
482
+ handleBg: colors.base.white
483
+ };
484
+ var toggleColors = {
485
+ buttonFgDisabled: colors.gray[50]
486
+ };
487
+ var chartColors = {
488
+ axisFg: colors.gray[200],
489
+ gridlineFg: colors.gray[100],
490
+ labelFg: colors.gray[600],
491
+ labelFgEmphasis: colors.gray[700],
492
+ bg: colors.base.white,
493
+ bgAlt: colors.gray[50],
494
+ tooltipBg: colors.gray[950],
495
+ tooltipFg: colors.base.white,
496
+ crosshairFg: colors.gray[500],
497
+ legendFg: colors.gray[700],
498
+ series1Fg: colors.blue[600],
499
+ series1FgHover: colors.blue[700],
500
+ series1Bg: colors.blue[100],
501
+ series1BgHover: colors.blue[200],
502
+ series2Fg: colors.brand[600],
503
+ series2FgHover: colors.brand[700],
504
+ series2Bg: colors.brand[100],
505
+ series2BgHover: colors.brand[200]
506
+ };
507
+ var alpha = {
508
+ white: {
509
+ 10: "#ffffff1a",
510
+ 20: "#ffffff33",
511
+ 30: "#ffffff4d",
512
+ 40: "#ffffff66",
513
+ 50: "#ffffff80",
514
+ 60: "#ffffff99",
515
+ 70: "#ffffffb3",
516
+ 80: "#ffffffcc",
517
+ 90: "#ffffffe6",
518
+ 100: "#ffffff"
519
+ },
520
+ black: {
521
+ 10: "#0000001a",
522
+ 20: "#00000033",
523
+ 30: "#0000004d",
524
+ 40: "#00000066",
525
+ 50: "#00000080",
526
+ 60: "#00000099",
527
+ 70: "#000000b3",
528
+ 80: "#000000cc",
529
+ 90: "#000000e6",
530
+ 100: "#000000"
346
531
  }
347
532
  };
348
533
 
534
+ // src/theme/palette.ts
535
+ function buildPalette(tokens) {
536
+ const { colors: colors2, text: text2, bg: bg2, fg: fg2, border: border2 } = tokens;
537
+ return {
538
+ primary: {
539
+ main: colors2.brand[600],
540
+ light: colors2.brand[400],
541
+ dark: colors2.brand[700],
542
+ contrastText: colors2.base.white
543
+ },
544
+ secondary: {
545
+ main: colors2.gray[600],
546
+ light: colors2.gray[400],
547
+ dark: colors2.gray[700],
548
+ contrastText: colors2.base.white
549
+ },
550
+ error: {
551
+ main: colors2.error[600],
552
+ light: colors2.error[300],
553
+ dark: colors2.error[700],
554
+ contrastText: colors2.base.white
555
+ },
556
+ warning: {
557
+ main: colors2.warning[600],
558
+ light: colors2.warning[300],
559
+ dark: colors2.warning[700],
560
+ contrastText: colors2.base.white
561
+ },
562
+ success: {
563
+ main: colors2.success[600],
564
+ light: colors2.success[300],
565
+ dark: colors2.success[700],
566
+ contrastText: colors2.base.white
567
+ },
568
+ info: {
569
+ main: colors2.blue[600],
570
+ light: colors2.blue[300],
571
+ dark: colors2.blue[700],
572
+ contrastText: colors2.base.white
573
+ },
574
+ background: {
575
+ default: bg2.primary,
576
+ paper: bg2.primary
577
+ },
578
+ text: {
579
+ primary: text2.primary,
580
+ secondary: text2.secondary,
581
+ disabled: text2.disabled
582
+ },
583
+ divider: border2.secondary,
584
+ action: {
585
+ active: fg2.tertiary,
586
+ hover: bg2.primaryHover,
587
+ selected: bg2.brandPrimary,
588
+ disabled: fg2.disabled,
589
+ disabledBackground: bg2.disabled
590
+ }
591
+ };
592
+ }
593
+ var palette = buildPalette({
594
+ colors,
595
+ text,
596
+ bg,
597
+ fg,
598
+ border
599
+ });
600
+
349
601
  // src/theme/typography.ts
350
- var typography = {
602
+ function buildTypography(tokens) {
603
+ const { fontFamily: fontFamily2, display: display2, fontSize: fontSize2, lineHeight: lineHeight2, fontWeight: fontWeight2 } = tokens;
604
+ return {
605
+ fontFamily: fontFamily2,
606
+ fontWeightRegular: fontWeight2.regular,
607
+ fontWeightMedium: fontWeight2.medium,
608
+ fontWeightBold: fontWeight2.bold,
609
+ // Display styles → MUI headings
610
+ h1: {
611
+ fontSize: display2.xl.fontSize,
612
+ lineHeight: display2.xl.lineHeight,
613
+ letterSpacing: display2.xl.letterSpacing,
614
+ fontWeight: fontWeight2.semibold
615
+ },
616
+ h2: {
617
+ fontSize: display2.lg.fontSize,
618
+ lineHeight: display2.lg.lineHeight,
619
+ letterSpacing: display2.lg.letterSpacing,
620
+ fontWeight: fontWeight2.semibold
621
+ },
622
+ h3: {
623
+ fontSize: display2.md.fontSize,
624
+ lineHeight: display2.md.lineHeight,
625
+ letterSpacing: display2.md.letterSpacing,
626
+ fontWeight: fontWeight2.semibold
627
+ },
628
+ h4: {
629
+ fontSize: display2.sm.fontSize,
630
+ lineHeight: display2.sm.lineHeight,
631
+ fontWeight: fontWeight2.semibold
632
+ },
633
+ h5: {
634
+ fontSize: display2.xs.fontSize,
635
+ lineHeight: display2.xs.lineHeight,
636
+ fontWeight: fontWeight2.semibold
637
+ },
638
+ h6: {
639
+ fontSize: fontSize2.xl,
640
+ lineHeight: lineHeight2.xl,
641
+ fontWeight: fontWeight2.semibold
642
+ },
643
+ subtitle1: {
644
+ fontSize: fontSize2.lg,
645
+ lineHeight: lineHeight2.lg,
646
+ fontWeight: fontWeight2.medium
647
+ },
648
+ subtitle2: {
649
+ fontSize: fontSize2.md,
650
+ lineHeight: lineHeight2.md,
651
+ fontWeight: fontWeight2.medium
652
+ },
653
+ body1: {
654
+ fontSize: fontSize2.md,
655
+ lineHeight: lineHeight2.md,
656
+ fontWeight: fontWeight2.regular
657
+ },
658
+ body2: {
659
+ fontSize: fontSize2.sm,
660
+ lineHeight: lineHeight2.sm,
661
+ fontWeight: fontWeight2.regular
662
+ },
663
+ caption: {
664
+ fontSize: fontSize2.xs,
665
+ lineHeight: lineHeight2.xs,
666
+ fontWeight: fontWeight2.regular
667
+ },
668
+ overline: {
669
+ fontSize: fontSize2.xxs,
670
+ lineHeight: lineHeight2.xxs,
671
+ fontWeight: fontWeight2.medium,
672
+ textTransform: "uppercase",
673
+ letterSpacing: "0.08em"
674
+ },
675
+ button: {
676
+ fontSize: fontSize2.sm,
677
+ lineHeight: lineHeight2.sm,
678
+ fontWeight: fontWeight2.semibold,
679
+ textTransform: "none"
680
+ }
681
+ };
682
+ }
683
+ var typography = buildTypography({
351
684
  fontFamily,
352
- fontWeightRegular: fontWeight.regular,
353
- fontWeightMedium: fontWeight.medium,
354
- fontWeightBold: fontWeight.bold,
355
- // Display styles → MUI headings
356
- h1: {
357
- fontSize: display.xl.fontSize,
358
- lineHeight: display.xl.lineHeight,
359
- letterSpacing: display.xl.letterSpacing,
360
- fontWeight: fontWeight.semibold
361
- },
362
- h2: {
363
- fontSize: display.lg.fontSize,
364
- lineHeight: display.lg.lineHeight,
365
- letterSpacing: display.lg.letterSpacing,
366
- fontWeight: fontWeight.semibold
367
- },
368
- h3: {
369
- fontSize: display.md.fontSize,
370
- lineHeight: display.md.lineHeight,
371
- letterSpacing: display.md.letterSpacing,
372
- fontWeight: fontWeight.semibold
373
- },
374
- h4: {
375
- fontSize: display.sm.fontSize,
376
- lineHeight: display.sm.lineHeight,
377
- fontWeight: fontWeight.semibold
378
- },
379
- h5: {
380
- fontSize: display.xs.fontSize,
381
- lineHeight: display.xs.lineHeight,
382
- fontWeight: fontWeight.semibold
383
- },
384
- h6: {
385
- fontSize: fontSize.xl,
386
- lineHeight: lineHeight.xl,
387
- fontWeight: fontWeight.semibold
388
- },
389
- subtitle1: {
390
- fontSize: fontSize.lg,
391
- lineHeight: lineHeight.lg,
392
- fontWeight: fontWeight.medium
393
- },
394
- subtitle2: {
395
- fontSize: fontSize.md,
396
- lineHeight: lineHeight.md,
397
- fontWeight: fontWeight.medium
398
- },
399
- body1: {
400
- fontSize: fontSize.md,
401
- lineHeight: lineHeight.md,
402
- fontWeight: fontWeight.regular
403
- },
404
- body2: {
405
- fontSize: fontSize.sm,
406
- lineHeight: lineHeight.sm,
407
- fontWeight: fontWeight.regular
408
- },
409
- caption: {
410
- fontSize: fontSize.xs,
411
- lineHeight: lineHeight.xs,
412
- fontWeight: fontWeight.regular
413
- },
414
- overline: {
415
- fontSize: fontSize.xxs,
416
- lineHeight: lineHeight.xxs,
417
- fontWeight: fontWeight.medium,
418
- textTransform: "uppercase",
419
- letterSpacing: "0.08em"
420
- },
421
- button: {
422
- fontSize: fontSize.sm,
423
- lineHeight: lineHeight.sm,
424
- fontWeight: fontWeight.semibold,
425
- textTransform: "none"
426
- }
427
- };
685
+ display,
686
+ fontSize,
687
+ lineHeight,
688
+ fontWeight
689
+ });
428
690
 
429
691
  // src/theme/components.ts
430
- var components = {
431
- // ─── Button ─────────────────────────────────────────────────────
432
- MuiButton: {
433
- defaultProps: {
434
- disableElevation: true
435
- },
436
- styleOverrides: {
437
- root: {
438
- borderRadius: radius.md,
439
- fontWeight: 600,
440
- "&:focus-visible": {
441
- boxShadow: focusRings.brandShadowXs
442
- }
443
- },
444
- sizeLarge: {
445
- padding: "12px 20px",
446
- fontSize: 16,
447
- lineHeight: "24px"
692
+ function buildComponents(tokens) {
693
+ const {
694
+ colors: colors2,
695
+ radius: radius2,
696
+ focusRings: focusRings2,
697
+ shadows: tokenShadows,
698
+ text: text2,
699
+ bg: bg2,
700
+ fg: fg2,
701
+ border: border2,
702
+ buttonColors: buttonColors2
703
+ } = tokens;
704
+ return {
705
+ // ─── Button ─────────────────────────────────────────────────────
706
+ MuiButton: {
707
+ defaultProps: {
708
+ disableElevation: true
448
709
  },
449
- sizeMedium: {
450
- padding: "10px 16px",
451
- fontSize: 14,
452
- lineHeight: "20px"
453
- },
454
- sizeSmall: {
455
- padding: "8px 14px",
456
- fontSize: 14,
457
- lineHeight: "20px"
458
- },
459
- containedPrimary: {
460
- backgroundColor: colors.brand[600],
461
- "&:hover": {
462
- backgroundColor: colors.brand[700]
463
- }
464
- },
465
- outlinedPrimary: {
466
- borderColor: colors.brand[300],
467
- color: colors.brand[700],
468
- "&:hover": {
469
- backgroundColor: colors.brand[50],
470
- borderColor: colors.brand[300]
471
- }
472
- },
473
- textPrimary: {
474
- color: colors.brand[700],
475
- "&:hover": {
476
- backgroundColor: colors.brand[50]
710
+ styleOverrides: {
711
+ root: {
712
+ borderRadius: radius2.md,
713
+ fontWeight: 600,
714
+ boxShadow: tokenShadows.xs,
715
+ height: 32,
716
+ padding: "6px 12px",
717
+ fontSize: 14,
718
+ lineHeight: "20px",
719
+ "&:focus-visible": {
720
+ boxShadow: focusRings2.brandShadowXs
721
+ }
722
+ },
723
+ containedPrimary: {
724
+ backgroundColor: buttonColors2.primary.bg,
725
+ "&:hover": {
726
+ backgroundColor: buttonColors2.primary.bgHover
727
+ }
728
+ },
729
+ outlinedPrimary: {
730
+ borderColor: buttonColors2.secondaryColor.border,
731
+ color: buttonColors2.secondaryColor.fg,
732
+ "&:hover": {
733
+ backgroundColor: buttonColors2.secondaryColor.bgHover,
734
+ borderColor: buttonColors2.secondaryColor.borderHover
735
+ }
736
+ },
737
+ outlinedSecondary: {
738
+ borderColor: buttonColors2.secondary.border,
739
+ "&:hover": {
740
+ borderColor: buttonColors2.secondary.borderHover
741
+ }
742
+ },
743
+ text: {
744
+ boxShadow: "none"
745
+ },
746
+ textPrimary: {
747
+ color: buttonColors2.tertiaryColor.fg,
748
+ "&:hover": {
749
+ backgroundColor: buttonColors2.tertiaryColor.bgHover
750
+ }
477
751
  }
478
752
  }
479
- }
480
- },
481
- // ─── Button Group ───────────────────────────────────────────────
482
- MuiButtonGroup: {
483
- defaultProps: {
484
- disableElevation: true
485
- },
486
- styleOverrides: {
487
- root: {
488
- borderRadius: radius.md
753
+ },
754
+ // ─── Button Group ───────────────────────────────────────────────
755
+ MuiButtonGroup: {
756
+ defaultProps: {
757
+ disableElevation: true
489
758
  },
490
- grouped: {
491
- "&:not(:last-of-type)": {
492
- borderRight: `1px solid ${colors.brand[700]}`
759
+ styleOverrides: {
760
+ root: {
761
+ borderRadius: radius2.md
762
+ },
763
+ grouped: {
764
+ "&:not(:last-of-type)": {
765
+ borderRight: `1px solid ${buttonColors2.primary.borderHover}`
766
+ }
493
767
  }
494
768
  }
495
- }
496
- },
497
- // ─── FAB ────────────────────────────────────────────────────────
498
- MuiFab: {
499
- styleOverrides: {
500
- root: {
501
- boxShadow: shadows.md,
502
- "&:hover": {
503
- boxShadow: shadows.lg
769
+ },
770
+ // ─── FAB ────────────────────────────────────────────────────────
771
+ MuiFab: {
772
+ styleOverrides: {
773
+ root: {
774
+ boxShadow: tokenShadows.md,
775
+ "&:hover": {
776
+ boxShadow: tokenShadows.lg
777
+ },
778
+ "&:focus-visible": {
779
+ boxShadow: focusRings2.brandShadowSm
780
+ }
504
781
  },
505
- "&:focus-visible": {
506
- boxShadow: focusRings.brandShadowSm
782
+ primary: {
783
+ backgroundColor: buttonColors2.primary.bg,
784
+ "&:hover": {
785
+ backgroundColor: buttonColors2.primary.bgHover
786
+ }
507
787
  }
508
- },
509
- primary: {
510
- backgroundColor: colors.brand[600],
511
- "&:hover": {
512
- backgroundColor: colors.brand[700]
788
+ }
789
+ },
790
+ // ─── TextField / Input ──────────────────────────────────────────
791
+ MuiTextField: {
792
+ defaultProps: {
793
+ variant: "outlined",
794
+ size: "small"
795
+ }
796
+ },
797
+ MuiInputBase: {
798
+ styleOverrides: {
799
+ input: {
800
+ "&::placeholder": {
801
+ color: text2.placeholder,
802
+ WebkitTextFillColor: text2.placeholder,
803
+ fontWeight: 400,
804
+ opacity: 1
805
+ }
513
806
  }
514
807
  }
515
- }
516
- },
517
- // ─── TextField / Input ──────────────────────────────────────────
518
- MuiTextField: {
519
- defaultProps: {
520
- variant: "outlined",
521
- size: "small"
522
- }
523
- },
524
- MuiOutlinedInput: {
525
- styleOverrides: {
526
- root: {
527
- borderRadius: radius.md,
528
- "&:hover .MuiOutlinedInput-notchedOutline": {
529
- borderColor: colors.brand[300]
808
+ },
809
+ MuiOutlinedInput: {
810
+ styleOverrides: {
811
+ root: {
812
+ borderRadius: radius2.md,
813
+ boxShadow: tokenShadows.xs,
814
+ "&:hover .MuiOutlinedInput-notchedOutline": {
815
+ borderColor: border2.brand
816
+ },
817
+ "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
818
+ borderColor: border2.brandSolid,
819
+ borderWidth: 1,
820
+ boxShadow: "none"
821
+ },
822
+ "&.Mui-error .MuiOutlinedInput-notchedOutline": {
823
+ borderColor: border2.error
824
+ },
825
+ "&.Mui-error.Mui-focused .MuiOutlinedInput-notchedOutline": {
826
+ borderColor: border2.errorSolid,
827
+ boxShadow: "none"
828
+ }
530
829
  },
531
- "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
532
- borderColor: colors.brand[600],
533
- borderWidth: 1,
534
- boxShadow: focusRings.brand
830
+ notchedOutline: {
831
+ borderColor: border2.primary
535
832
  },
536
- "&.Mui-error .MuiOutlinedInput-notchedOutline": {
537
- borderColor: colors.error[300]
833
+ input: {
834
+ padding: "10px 14px",
835
+ fontSize: 16,
836
+ lineHeight: "24px"
538
837
  },
539
- "&.Mui-error.Mui-focused .MuiOutlinedInput-notchedOutline": {
540
- borderColor: colors.error[600],
541
- boxShadow: focusRings.error
542
- }
543
- },
544
- notchedOutline: {
545
- borderColor: colors.gray[300]
546
- },
547
- input: {
548
- padding: "10px 14px",
549
- fontSize: 16,
550
- lineHeight: "24px",
551
- "&::placeholder": {
552
- color: colors.gray[500],
553
- opacity: 1
838
+ inputSizeSmall: {
839
+ padding: "8px 12px",
840
+ fontSize: 14,
841
+ lineHeight: "20px"
554
842
  }
555
- },
556
- inputSizeSmall: {
557
- padding: "8px 12px",
558
- fontSize: 14,
559
- lineHeight: "20px"
560
843
  }
561
- }
562
- },
563
- MuiInputLabel: {
564
- styleOverrides: {
565
- root: {
566
- fontSize: 14,
567
- fontWeight: 500,
568
- color: colors.gray[700],
569
- "&.Mui-focused": {
570
- color: colors.gray[700]
571
- },
572
- "&.Mui-error": {
573
- color: colors.error[600]
844
+ },
845
+ MuiFormLabel: {
846
+ styleOverrides: {
847
+ root: {
848
+ color: text2.placeholder,
849
+ "&.Mui-focused": {
850
+ color: text2.placeholder
851
+ },
852
+ "&.Mui-error": {
853
+ color: text2.errorPrimary
854
+ }
574
855
  }
575
856
  }
576
- }
577
- },
578
- MuiFormHelperText: {
579
- styleOverrides: {
580
- root: {
581
- fontSize: 14,
582
- lineHeight: "20px",
583
- marginTop: 6,
584
- marginLeft: 0,
585
- "&.Mui-error": {
586
- color: colors.error[600]
857
+ },
858
+ MuiInputLabel: {
859
+ styleOverrides: {
860
+ root: {
861
+ fontSize: 14,
862
+ fontWeight: 500,
863
+ color: text2.placeholder,
864
+ "&.Mui-focused": {
865
+ color: text2.placeholder
866
+ },
867
+ "&.Mui-error": {
868
+ color: text2.errorPrimary
869
+ }
587
870
  }
588
871
  }
589
- }
590
- },
591
- // ─── Select ─────────────────────────────────────────────────────
592
- MuiSelect: {
593
- defaultProps: {
594
- size: "small"
595
- },
596
- styleOverrides: {
597
- icon: {
598
- color: colors.gray[500]
872
+ },
873
+ MuiFormHelperText: {
874
+ styleOverrides: {
875
+ root: {
876
+ fontSize: 14,
877
+ lineHeight: "20px",
878
+ marginTop: 6,
879
+ marginLeft: 0,
880
+ "&.Mui-error": {
881
+ color: text2.errorPrimary
882
+ }
883
+ }
599
884
  }
600
- }
601
- },
602
- // ─── Autocomplete ───────────────────────────────────────────────
603
- MuiAutocomplete: {
604
- styleOverrides: {
605
- paper: {
606
- borderRadius: radius.md,
607
- boxShadow: shadows.lg,
608
- border: `1px solid ${colors.gray[200]}`,
609
- marginTop: 4
885
+ },
886
+ // ─── Select ─────────────────────────────────────────────────────
887
+ MuiSelect: {
888
+ defaultProps: {
889
+ size: "small"
610
890
  },
611
- option: {
612
- fontSize: 16,
613
- lineHeight: "24px",
614
- padding: "10px 14px",
615
- "&.Mui-focused": {
616
- backgroundColor: colors.gray[50]
891
+ styleOverrides: {
892
+ select: {
893
+ "&.MuiSelect-select": {
894
+ "&[aria-placeholder], &:empty + .MuiSelect-nativeInput[value='']~&": {
895
+ color: text2.placeholder
896
+ }
897
+ }
617
898
  },
618
- '&[aria-selected="true"]': {
619
- backgroundColor: colors.brand[50]
899
+ icon: {
900
+ color: text2.placeholder
620
901
  }
621
- },
622
- listbox: {
623
- padding: 4
624
902
  }
625
- }
626
- },
627
- // ─── Checkbox ───────────────────────────────────────────────────
628
- MuiCheckbox: {
629
- defaultProps: {
630
- disableRipple: true
631
- },
632
- styleOverrides: {
633
- root: {
634
- color: colors.gray[300],
635
- borderRadius: radius.xs,
636
- padding: 0,
637
- width: 20,
638
- height: 20,
639
- "&:hover": {
640
- backgroundColor: "transparent",
641
- color: colors.brand[600]
642
- },
643
- "&.Mui-checked": {
644
- color: colors.brand[600]
645
- },
646
- "&.Mui-checked:hover": {
647
- color: colors.brand[700]
903
+ },
904
+ // ─── Autocomplete ───────────────────────────────────────────────
905
+ MuiAutocomplete: {
906
+ styleOverrides: {
907
+ paper: {
908
+ borderRadius: radius2.md,
909
+ boxShadow: tokenShadows.lg,
910
+ border: `1px solid ${border2.secondary}`,
911
+ marginTop: 4
648
912
  },
649
- "&.Mui-focusVisible": {
650
- outline: "none",
651
- boxShadow: focusRings.brand,
652
- borderRadius: radius.xs
913
+ option: {
914
+ fontSize: 16,
915
+ lineHeight: "24px",
916
+ padding: "10px 14px",
917
+ "&.Mui-focused": {
918
+ backgroundColor: bg2.primaryHover
919
+ },
920
+ '&[aria-selected="true"]': {
921
+ backgroundColor: bg2.brandPrimary
922
+ }
653
923
  },
654
- "&.Mui-disabled": {
655
- color: colors.gray[300]
924
+ listbox: {
925
+ padding: 4
656
926
  }
657
927
  }
658
- }
659
- },
660
- // ─── Radio ──────────────────────────────────────────────────────
661
- MuiRadio: {
662
- defaultProps: {
663
- disableRipple: true
664
- },
665
- styleOverrides: {
666
- root: {
667
- color: colors.gray[300],
668
- padding: 0,
669
- "&:hover": {
670
- backgroundColor: "transparent",
671
- color: colors.brand[600]
672
- },
673
- "&.Mui-checked": {
674
- color: colors.brand[600]
675
- },
676
- "&.Mui-checked:hover": {
677
- color: colors.brand[700]
678
- },
679
- "&.Mui-focusVisible": {
680
- outline: "none",
681
- boxShadow: focusRings.brand,
682
- borderRadius: radius.full
683
- },
684
- "&.Mui-disabled": {
685
- color: colors.gray[300]
928
+ },
929
+ // ─── Checkbox ───────────────────────────────────────────────────
930
+ MuiCheckbox: {
931
+ defaultProps: {
932
+ disableRipple: true
933
+ },
934
+ styleOverrides: {
935
+ root: {
936
+ color: border2.primary,
937
+ borderRadius: radius2.xs,
938
+ padding: 0,
939
+ width: 20,
940
+ height: 20,
941
+ "&:hover": {
942
+ backgroundColor: "transparent",
943
+ color: fg2.brandPrimary
944
+ },
945
+ "&.Mui-checked": {
946
+ color: fg2.brandPrimary
947
+ },
948
+ "&.Mui-checked:hover": {
949
+ color: colors2.brand[700]
950
+ },
951
+ "&.Mui-focusVisible": {
952
+ outline: "none",
953
+ boxShadow: focusRings2.brand,
954
+ borderRadius: radius2.xs
955
+ },
956
+ "&.Mui-disabled": {
957
+ color: border2.primary
958
+ }
686
959
  }
687
960
  }
688
- }
689
- },
690
- // ─── Switch ─────────────────────────────────────────────────────
691
- MuiSwitch: {
692
- defaultProps: {
693
- disableRipple: true
694
- },
695
- styleOverrides: {
696
- root: {
697
- width: 44,
698
- height: 24,
699
- padding: 0
961
+ },
962
+ // ─── Radio ──────────────────────────────────────────────────────
963
+ MuiRadio: {
964
+ defaultProps: {
965
+ disableRipple: true
700
966
  },
701
- switchBase: {
702
- padding: 2,
703
- "&.Mui-checked": {
704
- transform: "translateX(20px)",
705
- color: colors.base.white,
706
- "& + .MuiSwitch-track": {
707
- backgroundColor: colors.brand[600],
708
- opacity: 1
967
+ styleOverrides: {
968
+ root: {
969
+ color: border2.primary,
970
+ padding: 0,
971
+ "&:hover": {
972
+ backgroundColor: "transparent",
973
+ color: fg2.brandPrimary
974
+ },
975
+ "&.Mui-checked": {
976
+ color: fg2.brandPrimary
977
+ },
978
+ "&.Mui-checked:hover": {
979
+ color: colors2.brand[700]
980
+ },
981
+ "&.Mui-focusVisible": {
982
+ outline: "none",
983
+ boxShadow: focusRings2.brand,
984
+ borderRadius: radius2.full
985
+ },
986
+ "&.Mui-disabled": {
987
+ color: border2.primary
709
988
  }
989
+ }
990
+ }
991
+ },
992
+ // ─── Switch ─────────────────────────────────────────────────────
993
+ MuiSwitch: {
994
+ defaultProps: {
995
+ disableRipple: true
996
+ },
997
+ styleOverrides: {
998
+ root: {
999
+ width: 44,
1000
+ height: 24,
1001
+ padding: 0
710
1002
  },
711
- "&.Mui-checked:hover + .MuiSwitch-track": {
712
- backgroundColor: colors.brand[700]
713
- },
714
- "&.Mui-focusVisible .MuiSwitch-thumb": {
715
- boxShadow: focusRings.brand
1003
+ switchBase: {
1004
+ padding: 2,
1005
+ "&.Mui-checked": {
1006
+ transform: "translateX(20px)",
1007
+ color: fg2.white,
1008
+ "& + .MuiSwitch-track": {
1009
+ backgroundColor: fg2.brandPrimary,
1010
+ opacity: 1
1011
+ }
1012
+ },
1013
+ "&.Mui-checked:hover + .MuiSwitch-track": {
1014
+ backgroundColor: colors2.brand[700]
1015
+ },
1016
+ "&.Mui-focusVisible .MuiSwitch-thumb": {
1017
+ boxShadow: focusRings2.brand
1018
+ },
1019
+ "&.Mui-disabled .MuiSwitch-thumb": {
1020
+ color: bg2.disabled
1021
+ },
1022
+ "&.Mui-disabled + .MuiSwitch-track": {
1023
+ opacity: 0.5
1024
+ }
716
1025
  },
717
- "&.Mui-disabled .MuiSwitch-thumb": {
718
- color: colors.gray[100]
1026
+ thumb: {
1027
+ width: 20,
1028
+ height: 20,
1029
+ boxShadow: "0px 1px 2px 0px #1018280d"
719
1030
  },
720
- "&.Mui-disabled + .MuiSwitch-track": {
721
- opacity: 0.5
1031
+ track: {
1032
+ borderRadius: radius2.full,
1033
+ backgroundColor: border2.secondary,
1034
+ opacity: 1
722
1035
  }
723
- },
724
- thumb: {
725
- width: 20,
726
- height: 20,
727
- boxShadow: "0px 1px 2px 0px #1018280d"
728
- },
729
- track: {
730
- borderRadius: radius.full,
731
- backgroundColor: colors.gray[200],
732
- opacity: 1
733
1036
  }
734
- }
735
- },
736
- // ─── Toggle Button ─────────────────────────────────────────────
737
- MuiToggleButton: {
738
- styleOverrides: {
739
- root: {
740
- borderRadius: radius.md,
741
- borderColor: colors.gray[300],
742
- color: colors.gray[700],
743
- fontSize: 14,
744
- fontWeight: 600,
745
- lineHeight: "20px",
746
- padding: "8px 14px",
747
- textTransform: "none",
748
- "&:hover": {
749
- backgroundColor: colors.gray[50]
750
- },
751
- "&.Mui-selected": {
752
- backgroundColor: colors.brand[50],
753
- color: colors.brand[700],
754
- borderColor: colors.brand[300],
1037
+ },
1038
+ // ─── Toggle Button ─────────────────────────────────────────────
1039
+ MuiToggleButton: {
1040
+ styleOverrides: {
1041
+ root: {
1042
+ borderColor: border2.primary,
1043
+ color: text2.secondary,
1044
+ fontSize: 14,
1045
+ fontWeight: 600,
1046
+ lineHeight: "20px",
1047
+ height: 32,
1048
+ padding: "6px 12px",
1049
+ textTransform: "none",
755
1050
  "&:hover": {
756
- backgroundColor: colors.brand[100]
1051
+ backgroundColor: bg2.primaryHover,
1052
+ borderColor: border2.primary
1053
+ },
1054
+ "&.Mui-selected": {
1055
+ backgroundColor: bg2.brandPrimary,
1056
+ color: buttonColors2.secondaryColor.fg,
1057
+ borderColor: border2.brand,
1058
+ "&:hover": {
1059
+ backgroundColor: bg2.brandSecondary
1060
+ }
1061
+ },
1062
+ "&:focus-visible": {
1063
+ boxShadow: focusRings2.brandShadowXs
757
1064
  }
758
- },
759
- "&:focus-visible": {
760
- boxShadow: focusRings.brandShadowXs
761
1065
  }
762
1066
  }
763
- }
764
- },
765
- MuiToggleButtonGroup: {
766
- styleOverrides: {
767
- root: {
768
- borderRadius: radius.md
769
- },
770
- grouped: {
771
- "&:not(:first-of-type)": {
772
- borderRadius: radius.md,
773
- marginLeft: -1
1067
+ },
1068
+ MuiToggleButtonGroup: {
1069
+ styleOverrides: {
1070
+ root: {
1071
+ borderRadius: radius2.md,
1072
+ overflow: "hidden"
774
1073
  },
775
- "&:first-of-type": {
776
- borderRadius: radius.md
1074
+ grouped: {
1075
+ borderRadius: 0,
1076
+ "&:not(:first-of-type)": {
1077
+ marginLeft: -1
1078
+ },
1079
+ "&:first-of-type": {
1080
+ borderTopLeftRadius: radius2.md,
1081
+ borderBottomLeftRadius: radius2.md
1082
+ },
1083
+ "&:last-of-type": {
1084
+ borderTopRightRadius: radius2.md,
1085
+ borderBottomRightRadius: radius2.md
1086
+ }
777
1087
  }
778
1088
  }
779
- }
780
- },
781
- // ─── Card ───────────────────────────────────────────────────────
782
- MuiCard: {
783
- defaultProps: {
784
- elevation: 0
785
- },
786
- styleOverrides: {
787
- root: {
788
- borderRadius: radius.xl,
789
- border: `1px solid ${colors.gray[200]}`,
790
- backgroundColor: colors.base.white,
791
- overflow: "hidden"
1089
+ },
1090
+ // ─── Card ───────────────────────────────────────────────────────
1091
+ MuiCard: {
1092
+ defaultProps: {
1093
+ elevation: 0
1094
+ },
1095
+ styleOverrides: {
1096
+ root: {
1097
+ borderRadius: radius2.xl,
1098
+ border: `1px solid ${border2.secondary}`,
1099
+ backgroundColor: bg2.primary,
1100
+ overflow: "hidden"
1101
+ }
792
1102
  }
793
- }
794
- },
795
- MuiCardContent: {
796
- styleOverrides: {
797
- root: {
798
- padding: "24px",
799
- "&:last-child": {
800
- paddingBottom: "24px"
1103
+ },
1104
+ MuiCardContent: {
1105
+ styleOverrides: {
1106
+ root: {
1107
+ padding: "24px",
1108
+ "&:last-child": {
1109
+ paddingBottom: "24px"
1110
+ }
801
1111
  }
802
1112
  }
803
- }
804
- },
805
- MuiCardHeader: {
806
- styleOverrides: {
807
- root: {
808
- padding: "24px 24px 0 24px"
809
- },
810
- title: {
811
- fontSize: 18,
812
- fontWeight: 600,
813
- lineHeight: "28px"
814
- },
815
- subheader: {
816
- fontSize: 14,
817
- lineHeight: "20px",
818
- marginTop: 4
819
- },
820
- action: {
821
- marginTop: -4,
822
- marginRight: -4
1113
+ },
1114
+ MuiCardHeader: {
1115
+ styleOverrides: {
1116
+ root: {
1117
+ padding: "24px 24px 0 24px"
1118
+ },
1119
+ title: {
1120
+ fontSize: 18,
1121
+ fontWeight: 600,
1122
+ lineHeight: "28px"
1123
+ },
1124
+ subheader: {
1125
+ fontSize: 14,
1126
+ lineHeight: "20px",
1127
+ marginTop: 4
1128
+ },
1129
+ action: {
1130
+ marginTop: -4,
1131
+ marginRight: -4
1132
+ }
823
1133
  }
824
- }
825
- },
826
- // ─── Paper ──────────────────────────────────────────────────────
827
- MuiPaper: {
828
- defaultProps: {
829
- elevation: 0
830
- },
831
- styleOverrides: {
832
- root: {
833
- backgroundImage: "none"
834
- },
835
- rounded: {
836
- borderRadius: radius.lg
837
- },
838
- elevation1: {
839
- boxShadow: shadows.xs,
840
- border: `1px solid ${colors.gray[200]}`
841
- },
842
- elevation2: {
843
- boxShadow: shadows.sm,
844
- border: `1px solid ${colors.gray[200]}`
845
- },
846
- elevation3: {
847
- boxShadow: shadows.md,
848
- border: `1px solid ${colors.gray[200]}`
849
- },
850
- elevation4: {
851
- boxShadow: shadows.lg,
852
- border: `1px solid ${colors.gray[200]}`
853
- },
854
- elevation8: {
855
- boxShadow: shadows.xl,
856
- border: `1px solid ${colors.gray[200]}`
857
- },
858
- elevation16: {
859
- boxShadow: shadows["2xl"],
860
- border: `1px solid ${colors.gray[200]}`
1134
+ },
1135
+ // ─── Paper ──────────────────────────────────────────────────────
1136
+ MuiPaper: {
1137
+ defaultProps: {
1138
+ elevation: 0
861
1139
  },
862
- elevation24: {
863
- boxShadow: shadows["3xl"],
864
- border: `1px solid ${colors.gray[200]}`
865
- }
866
- }
867
- },
868
- // ─── Accordion ──────────────────────────────────────────────────
869
- MuiAccordion: {
870
- defaultProps: {
871
- disableGutters: true,
872
- elevation: 0
873
- },
874
- styleOverrides: {
875
- root: {
876
- border: `1px solid ${colors.gray[200]}`,
877
- borderRadius: radius.lg,
878
- "&:not(:last-child)": {
879
- marginBottom: 8
1140
+ styleOverrides: {
1141
+ root: {
1142
+ backgroundImage: "none"
1143
+ },
1144
+ rounded: {
1145
+ borderRadius: radius2.lg
1146
+ },
1147
+ elevation1: {
1148
+ boxShadow: tokenShadows.xs,
1149
+ border: `1px solid ${border2.secondary}`
1150
+ },
1151
+ elevation2: {
1152
+ boxShadow: tokenShadows.sm,
1153
+ border: `1px solid ${border2.secondary}`
880
1154
  },
881
- "&:before": {
882
- display: "none"
1155
+ elevation3: {
1156
+ boxShadow: tokenShadows.md,
1157
+ border: `1px solid ${border2.secondary}`
883
1158
  },
884
- "&.Mui-expanded": {
885
- margin: 0,
886
- marginBottom: 8,
887
- borderRadius: radius.lg
1159
+ elevation4: {
1160
+ boxShadow: tokenShadows.lg,
1161
+ border: `1px solid ${border2.secondary}`
1162
+ },
1163
+ elevation8: {
1164
+ boxShadow: tokenShadows.xl,
1165
+ border: `1px solid ${border2.secondary}`
1166
+ },
1167
+ elevation16: {
1168
+ boxShadow: tokenShadows["2xl"],
1169
+ border: `1px solid ${border2.secondary}`
1170
+ },
1171
+ elevation24: {
1172
+ boxShadow: tokenShadows["3xl"],
1173
+ border: `1px solid ${border2.secondary}`
888
1174
  }
889
1175
  }
890
- }
891
- },
892
- MuiAccordionSummary: {
893
- styleOverrides: {
894
- root: {
895
- padding: "0 24px",
896
- minHeight: 56,
897
- "&.Mui-expanded": {
898
- minHeight: 56,
899
- borderBottom: `1px solid ${colors.gray[200]}`
900
- }
1176
+ },
1177
+ // ─── Accordion ──────────────────────────────────────────────────
1178
+ MuiAccordion: {
1179
+ defaultProps: {
1180
+ disableGutters: true,
1181
+ elevation: 0
901
1182
  },
902
- content: {
903
- margin: "12px 0",
904
- "&.Mui-expanded": {
905
- margin: "12px 0"
1183
+ styleOverrides: {
1184
+ root: {
1185
+ border: `1px solid ${border2.secondary}`,
1186
+ borderRadius: radius2.lg,
1187
+ "&:not(:last-child)": {
1188
+ marginBottom: 8
1189
+ },
1190
+ "&:before": {
1191
+ display: "none"
1192
+ },
1193
+ "&.Mui-expanded": {
1194
+ margin: 0,
1195
+ marginBottom: 8,
1196
+ borderRadius: radius2.lg
1197
+ }
906
1198
  }
907
1199
  }
908
- }
909
- },
910
- MuiAccordionDetails: {
911
- styleOverrides: {
912
- root: {
913
- padding: "24px"
914
- }
915
- }
916
- },
917
- // ─── AppBar ─────────────────────────────────────────────────────
918
- MuiAppBar: {
919
- defaultProps: {
920
- elevation: 0,
921
- color: "transparent"
922
- },
923
- styleOverrides: {
924
- root: {
925
- borderBottom: `1px solid ${colors.gray[200]}`,
926
- backgroundColor: colors.base.white
1200
+ },
1201
+ MuiAccordionSummary: {
1202
+ styleOverrides: {
1203
+ root: {
1204
+ padding: "0 24px",
1205
+ minHeight: 56,
1206
+ "&.Mui-expanded": {
1207
+ minHeight: 56,
1208
+ borderBottom: `1px solid ${border2.secondary}`
1209
+ }
1210
+ },
1211
+ content: {
1212
+ margin: "12px 0",
1213
+ "&.Mui-expanded": {
1214
+ margin: "12px 0"
1215
+ }
1216
+ }
927
1217
  }
928
- }
929
- },
930
- MuiToolbar: {
931
- styleOverrides: {
932
- root: {
933
- minHeight: 64,
934
- "@media (min-width: 600px)": {
935
- minHeight: 64
1218
+ },
1219
+ MuiAccordionDetails: {
1220
+ styleOverrides: {
1221
+ root: {
1222
+ padding: "24px"
936
1223
  }
1224
+ }
1225
+ },
1226
+ // ─── AppBar ─────────────────────────────────────────────────────
1227
+ MuiAppBar: {
1228
+ defaultProps: {
1229
+ elevation: 0,
1230
+ color: "transparent"
937
1231
  },
938
- dense: {
939
- minHeight: 48,
940
- "@media (min-width: 600px)": {
941
- minHeight: 48
1232
+ styleOverrides: {
1233
+ root: {
1234
+ borderBottom: `1px solid ${border2.secondary}`,
1235
+ backgroundColor: bg2.primary
942
1236
  }
943
1237
  }
944
- }
945
- },
946
- // ─── Chip ───────────────────────────────────────────────────────
947
- MuiChip: {
948
- styleOverrides: {
949
- root: {
950
- borderRadius: radius.md,
951
- fontWeight: 500,
952
- fontSize: 14
953
- }
954
- }
955
- },
956
- // ─── Form Control / Label ───────────────────────────────────────
957
- MuiFormControlLabel: {
958
- styleOverrides: {
959
- root: {
960
- marginLeft: 0,
961
- gap: 8
962
- },
963
- label: {
964
- fontSize: 14,
965
- lineHeight: "20px",
966
- fontWeight: 500,
967
- color: colors.gray[700]
1238
+ },
1239
+ MuiToolbar: {
1240
+ styleOverrides: {
1241
+ root: {
1242
+ minHeight: 64,
1243
+ "@media (min-width: 600px)": {
1244
+ minHeight: 64
1245
+ }
1246
+ },
1247
+ dense: {
1248
+ minHeight: 48,
1249
+ "@media (min-width: 600px)": {
1250
+ minHeight: 48
1251
+ }
1252
+ }
968
1253
  }
969
- }
970
- },
971
- // ─── Table ───────────────────────────────────────────────────────
972
- MuiTable: {
973
- styleOverrides: {
974
- root: {
975
- borderCollapse: "separate",
976
- borderSpacing: 0
1254
+ },
1255
+ // ─── Chip ───────────────────────────────────────────────────────
1256
+ MuiChip: {
1257
+ styleOverrides: {
1258
+ root: {
1259
+ borderRadius: radius2.md
1260
+ },
1261
+ label: {
1262
+ fontWeight: 500
1263
+ },
1264
+ sizeSmall: {
1265
+ fontSize: 12,
1266
+ height: 20
1267
+ },
1268
+ sizeMedium: {
1269
+ fontSize: 14,
1270
+ height: 24,
1271
+ "& .MuiChip-deleteIcon": { fontSize: 16 }
1272
+ },
1273
+ colorDefault: {
1274
+ "&.MuiChip-filled": {
1275
+ backgroundColor: colors2.gray[50],
1276
+ color: colors2.gray[700],
1277
+ "& .MuiChip-deleteIcon": { color: colors2.gray[400] }
1278
+ }
1279
+ },
1280
+ colorPrimary: {
1281
+ "&.MuiChip-filled": {
1282
+ backgroundColor: colors2.brand[50],
1283
+ color: colors2.brand[700],
1284
+ "& .MuiChip-deleteIcon": { color: colors2.brand[400] }
1285
+ }
1286
+ },
1287
+ colorSecondary: {
1288
+ "&.MuiChip-filled": {
1289
+ backgroundColor: colors2.gray[50],
1290
+ color: colors2.gray[700],
1291
+ "& .MuiChip-deleteIcon": { color: colors2.gray[400] }
1292
+ }
1293
+ },
1294
+ colorError: {
1295
+ "&.MuiChip-filled": {
1296
+ backgroundColor: colors2.error[50],
1297
+ color: colors2.error[700],
1298
+ "& .MuiChip-deleteIcon": { color: colors2.error[400] }
1299
+ }
1300
+ },
1301
+ colorWarning: {
1302
+ "&.MuiChip-filled": {
1303
+ backgroundColor: colors2.warning[50],
1304
+ color: colors2.warning[700],
1305
+ "& .MuiChip-deleteIcon": { color: colors2.warning[400] }
1306
+ }
1307
+ },
1308
+ colorSuccess: {
1309
+ "&.MuiChip-filled": {
1310
+ backgroundColor: colors2.success[50],
1311
+ color: colors2.success[700],
1312
+ "& .MuiChip-deleteIcon": { color: colors2.success[400] }
1313
+ }
1314
+ },
1315
+ colorInfo: {
1316
+ "&.MuiChip-filled": {
1317
+ backgroundColor: colors2.blue[50],
1318
+ color: colors2.blue[700],
1319
+ "& .MuiChip-deleteIcon": { color: colors2.blue[400] }
1320
+ }
1321
+ }
977
1322
  }
978
- }
979
- },
980
- MuiTableCell: {
981
- styleOverrides: {
982
- root: {
983
- borderBottom: `1px solid ${colors.gray[200]}`,
984
- padding: "16px 24px",
985
- fontSize: 14,
986
- lineHeight: "20px",
987
- color: colors.gray[600]
988
- },
989
- head: {
990
- backgroundColor: colors.gray[50],
991
- color: colors.gray[600],
992
- fontWeight: 500,
993
- fontSize: 12,
994
- lineHeight: "18px"
995
- },
996
- body: {
997
- color: colors.gray[600]
1323
+ },
1324
+ // ─── Form Control / Label ───────────────────────────────────────
1325
+ MuiFormControlLabel: {
1326
+ styleOverrides: {
1327
+ root: {
1328
+ marginLeft: 0,
1329
+ gap: 8
1330
+ },
1331
+ label: {
1332
+ fontSize: 14,
1333
+ lineHeight: "20px",
1334
+ fontWeight: 500,
1335
+ color: text2.secondary
1336
+ }
998
1337
  }
999
- }
1000
- },
1001
- MuiTableHead: {
1002
- styleOverrides: {
1003
- root: {
1004
- backgroundColor: colors.gray[50],
1005
- borderBottom: `1px solid ${colors.gray[200]}`
1338
+ },
1339
+ // ─── Table ───────────────────────────────────────────────────────
1340
+ MuiTable: {
1341
+ styleOverrides: {
1342
+ root: {
1343
+ borderCollapse: "separate",
1344
+ borderSpacing: 0
1345
+ }
1006
1346
  }
1007
- }
1008
- },
1009
- MuiTableRow: {
1010
- styleOverrides: {
1011
- root: {
1012
- "&:last-child td, &:last-child th": {
1013
- border: 0
1347
+ },
1348
+ MuiTableCell: {
1349
+ styleOverrides: {
1350
+ root: {
1351
+ borderBottom: `1px solid ${border2.secondary}`,
1352
+ padding: "16px 24px",
1353
+ fontSize: 14,
1354
+ lineHeight: "20px",
1355
+ color: fg2.tertiary
1014
1356
  },
1015
- "&:hover": {
1016
- backgroundColor: colors.gray[50]
1357
+ head: {
1358
+ backgroundColor: bg2.secondary,
1359
+ color: fg2.tertiary,
1360
+ fontWeight: 500,
1361
+ fontSize: 12,
1362
+ lineHeight: "18px"
1017
1363
  },
1018
- "&.Mui-selected": {
1019
- backgroundColor: colors.brand[50],
1364
+ body: {
1365
+ color: fg2.tertiary
1366
+ }
1367
+ }
1368
+ },
1369
+ MuiTableHead: {
1370
+ styleOverrides: {
1371
+ root: {
1372
+ backgroundColor: bg2.secondary,
1373
+ borderBottom: `1px solid ${border2.secondary}`
1374
+ }
1375
+ }
1376
+ },
1377
+ MuiTableRow: {
1378
+ styleOverrides: {
1379
+ root: {
1380
+ "&:last-child td, &:last-child th": {
1381
+ border: 0
1382
+ },
1020
1383
  "&:hover": {
1021
- backgroundColor: colors.brand[50]
1384
+ backgroundColor: bg2.primaryHover
1385
+ },
1386
+ "&.Mui-selected": {
1387
+ backgroundColor: bg2.brandPrimary,
1388
+ "&:hover": {
1389
+ backgroundColor: bg2.brandPrimary
1390
+ }
1022
1391
  }
1023
1392
  }
1024
1393
  }
1025
- }
1026
- },
1027
- MuiTableContainer: {
1028
- styleOverrides: {
1029
- root: {
1030
- borderRadius: radius.xl,
1031
- border: `1px solid ${colors.gray[200]}`,
1032
- boxShadow: "none"
1394
+ },
1395
+ MuiTableContainer: {
1396
+ styleOverrides: {
1397
+ root: {
1398
+ borderRadius: radius2.xl,
1399
+ border: `1px solid ${border2.secondary}`,
1400
+ boxShadow: "none"
1401
+ }
1033
1402
  }
1034
- }
1035
- },
1036
- // ─── Badge ──────────────────────────────────────────────────────
1037
- MuiBadge: {
1038
- styleOverrides: {
1039
- standard: {
1040
- fontWeight: 500,
1041
- fontSize: 12,
1042
- lineHeight: "18px",
1043
- minWidth: 20,
1044
- height: 20,
1045
- borderRadius: radius.full
1046
- },
1047
- colorPrimary: {
1048
- backgroundColor: colors.brand[600]
1049
- },
1050
- colorError: {
1051
- backgroundColor: colors.error[600]
1052
- },
1053
- colorSuccess: {
1054
- backgroundColor: colors.success[600]
1055
- },
1056
- colorWarning: {
1057
- backgroundColor: colors.warning[600]
1058
- },
1059
- dot: {
1060
- minWidth: 8,
1061
- height: 8,
1062
- borderRadius: radius.full
1403
+ },
1404
+ // ─── Badge ──────────────────────────────────────────────────────
1405
+ MuiBadge: {
1406
+ styleOverrides: {
1407
+ standard: {
1408
+ fontWeight: 500,
1409
+ fontSize: 12,
1410
+ lineHeight: "18px",
1411
+ minWidth: 20,
1412
+ height: 20,
1413
+ borderRadius: radius2.full
1414
+ },
1415
+ colorPrimary: {
1416
+ backgroundColor: bg2.brandSolid
1417
+ },
1418
+ colorError: {
1419
+ backgroundColor: bg2.errorSolid
1420
+ },
1421
+ colorSuccess: {
1422
+ backgroundColor: bg2.successSolid
1423
+ },
1424
+ colorWarning: {
1425
+ backgroundColor: bg2.warningSolid
1426
+ },
1427
+ dot: {
1428
+ minWidth: 8,
1429
+ height: 8,
1430
+ borderRadius: radius2.full
1431
+ }
1063
1432
  }
1064
- }
1065
- },
1066
- // ─── Divider ────────────────────────────────────────────────────
1067
- MuiDivider: {
1068
- styleOverrides: {
1069
- root: {
1070
- borderColor: colors.gray[200]
1433
+ },
1434
+ // ─── Divider ────────────────────────────────────────────────────
1435
+ MuiDivider: {
1436
+ styleOverrides: {
1437
+ root: {
1438
+ borderColor: border2.secondary
1439
+ }
1071
1440
  }
1072
- }
1073
- },
1074
- // ─── List ───────────────────────────────────────────────────────
1075
- MuiList: {
1076
- styleOverrides: {
1077
- root: {
1078
- padding: 4
1441
+ },
1442
+ // ─── List ───────────────────────────────────────────────────────
1443
+ MuiList: {
1444
+ styleOverrides: {
1445
+ root: {
1446
+ padding: 4
1447
+ }
1079
1448
  }
1080
- }
1081
- },
1082
- MuiListItemButton: {
1083
- styleOverrides: {
1084
- root: {
1085
- borderRadius: radius.sm,
1086
- padding: "8px 12px",
1087
- "&:hover": {
1088
- backgroundColor: colors.gray[50]
1089
- },
1090
- "&.Mui-selected": {
1091
- backgroundColor: colors.brand[50],
1092
- color: colors.brand[700],
1449
+ },
1450
+ MuiListItemButton: {
1451
+ styleOverrides: {
1452
+ root: {
1453
+ borderRadius: radius2.sm,
1454
+ padding: "8px 12px",
1093
1455
  "&:hover": {
1094
- backgroundColor: colors.brand[100]
1456
+ backgroundColor: bg2.primaryHover
1457
+ },
1458
+ "&.Mui-selected": {
1459
+ backgroundColor: bg2.brandPrimary,
1460
+ color: buttonColors2.secondaryColor.fg,
1461
+ "&:hover": {
1462
+ backgroundColor: bg2.brandSecondary
1463
+ }
1095
1464
  }
1096
1465
  }
1097
1466
  }
1098
- }
1099
- },
1100
- MuiListItemIcon: {
1101
- styleOverrides: {
1102
- root: {
1103
- minWidth: 36,
1104
- color: colors.gray[500]
1105
- }
1106
- }
1107
- },
1108
- MuiListItemText: {
1109
- styleOverrides: {
1110
- primary: {
1111
- fontSize: 14,
1112
- lineHeight: "20px",
1113
- fontWeight: 500,
1114
- color: colors.gray[700]
1115
- },
1116
- secondary: {
1117
- fontSize: 14,
1118
- lineHeight: "20px",
1119
- color: colors.gray[500]
1467
+ },
1468
+ MuiListItemIcon: {
1469
+ styleOverrides: {
1470
+ root: {
1471
+ minWidth: 36,
1472
+ color: fg2.quaternary
1473
+ }
1120
1474
  }
1121
- }
1122
- },
1123
- // ─── Tooltip ────────────────────────────────────────────────────
1124
- MuiTooltip: {
1125
- styleOverrides: {
1126
- tooltip: {
1127
- backgroundColor: colors.gray[900],
1128
- color: colors.base.white,
1129
- fontSize: 12,
1130
- lineHeight: "18px",
1131
- fontWeight: 600,
1132
- padding: "8px 12px",
1133
- borderRadius: radius.md,
1134
- boxShadow: shadows.lg
1135
- },
1136
- arrow: {
1137
- color: colors.gray[900]
1475
+ },
1476
+ MuiListItemText: {
1477
+ styleOverrides: {
1478
+ primary: {
1479
+ fontSize: 14,
1480
+ lineHeight: "20px",
1481
+ fontWeight: 500,
1482
+ color: text2.secondary
1483
+ },
1484
+ secondary: {
1485
+ fontSize: 14,
1486
+ lineHeight: "20px",
1487
+ color: text2.quaternary
1488
+ }
1138
1489
  }
1139
- }
1140
- },
1141
- // ─── Alert ──────────────────────────────────────────────────────
1142
- MuiAlert: {
1143
- defaultProps: {
1144
- variant: "standard"
1145
- },
1146
- styleOverrides: {
1147
- root: {
1148
- borderRadius: radius.xl,
1149
- fontSize: 14,
1150
- lineHeight: "20px",
1151
- padding: "12px 16px"
1152
- },
1153
- standardError: {
1154
- backgroundColor: colors.error[50],
1155
- color: colors.error[700],
1156
- border: `1px solid ${colors.error[300]}`,
1157
- "& .MuiAlert-icon": {
1158
- color: colors.error[600]
1490
+ },
1491
+ // ─── Tooltip ────────────────────────────────────────────────────
1492
+ MuiTooltip: {
1493
+ styleOverrides: {
1494
+ tooltip: {
1495
+ backgroundColor: bg2.primarySolid,
1496
+ color: text2.white,
1497
+ fontSize: 12,
1498
+ lineHeight: "18px",
1499
+ fontWeight: 600,
1500
+ padding: "8px 12px",
1501
+ borderRadius: radius2.md,
1502
+ boxShadow: tokenShadows.lg
1503
+ },
1504
+ arrow: {
1505
+ color: bg2.primarySolid
1159
1506
  }
1507
+ }
1508
+ },
1509
+ // ─── Alert ──────────────────────────────────────────────────────
1510
+ MuiAlert: {
1511
+ defaultProps: {
1512
+ variant: "standard"
1160
1513
  },
1161
- standardWarning: {
1162
- backgroundColor: colors.warning[50],
1163
- color: colors.warning[700],
1164
- border: `1px solid ${colors.warning[300]}`,
1165
- "& .MuiAlert-icon": {
1166
- color: colors.warning[600]
1514
+ styleOverrides: {
1515
+ root: {
1516
+ borderRadius: radius2.xl,
1517
+ fontSize: 14,
1518
+ lineHeight: "20px",
1519
+ padding: "12px 16px",
1520
+ alignItems: "center"
1521
+ },
1522
+ standardError: {
1523
+ backgroundColor: bg2.errorPrimary,
1524
+ color: colors2.error[700],
1525
+ border: `1px solid ${border2.error}`,
1526
+ "& .MuiAlert-icon": {
1527
+ color: fg2.errorPrimary
1528
+ }
1529
+ },
1530
+ standardWarning: {
1531
+ backgroundColor: bg2.warningPrimary,
1532
+ color: colors2.warning[700],
1533
+ border: `1px solid ${colors2.warning[300]}`,
1534
+ "& .MuiAlert-icon": {
1535
+ color: fg2.warningPrimary
1536
+ }
1537
+ },
1538
+ standardSuccess: {
1539
+ backgroundColor: bg2.successPrimary,
1540
+ color: colors2.success[700],
1541
+ border: `1px solid ${colors2.success[300]}`,
1542
+ "& .MuiAlert-icon": {
1543
+ color: fg2.successPrimary
1544
+ }
1545
+ },
1546
+ standardInfo: {
1547
+ backgroundColor: colors2.blue[50],
1548
+ color: colors2.blue[700],
1549
+ border: `1px solid ${colors2.blue[300]}`,
1550
+ "& .MuiAlert-icon": {
1551
+ color: colors2.blue[600]
1552
+ }
1553
+ },
1554
+ icon: {
1555
+ padding: 0,
1556
+ marginRight: 12
1167
1557
  }
1168
- },
1169
- standardSuccess: {
1170
- backgroundColor: colors.success[50],
1171
- color: colors.success[700],
1172
- border: `1px solid ${colors.success[300]}`,
1173
- "& .MuiAlert-icon": {
1174
- color: colors.success[600]
1558
+ }
1559
+ },
1560
+ MuiAlertTitle: {
1561
+ styleOverrides: {
1562
+ root: {
1563
+ fontWeight: 600,
1564
+ fontSize: 14,
1565
+ lineHeight: "20px",
1566
+ marginBottom: 4
1175
1567
  }
1176
- },
1177
- standardInfo: {
1178
- backgroundColor: colors.blue[50],
1179
- color: colors.blue[700],
1180
- border: `1px solid ${colors.blue[300]}`,
1181
- "& .MuiAlert-icon": {
1182
- color: colors.blue[600]
1568
+ }
1569
+ },
1570
+ // ─── Backdrop ───────────────────────────────────────────────────
1571
+ MuiBackdrop: {
1572
+ styleOverrides: {
1573
+ root: {
1574
+ backgroundColor: "rgba(16, 24, 40, 0.7)"
1183
1575
  }
1184
- },
1185
- icon: {
1186
- padding: "2px 0"
1187
1576
  }
1188
- }
1189
- },
1190
- MuiAlertTitle: {
1191
- styleOverrides: {
1192
- root: {
1193
- fontWeight: 600,
1194
- fontSize: 14,
1195
- lineHeight: "20px",
1196
- marginBottom: 4
1577
+ },
1578
+ // ─── Dialog ─────────────────────────────────────────────────────
1579
+ MuiDialog: {
1580
+ styleOverrides: {
1581
+ paper: {
1582
+ borderRadius: radius2.xl,
1583
+ boxShadow: tokenShadows.xl,
1584
+ padding: 0
1585
+ }
1197
1586
  }
1198
- }
1199
- },
1200
- // ─── Backdrop ───────────────────────────────────────────────────
1201
- MuiBackdrop: {
1202
- styleOverrides: {
1203
- root: {
1204
- backgroundColor: "rgba(16, 24, 40, 0.7)"
1587
+ },
1588
+ MuiDialogTitle: {
1589
+ styleOverrides: {
1590
+ root: {
1591
+ fontSize: 18,
1592
+ lineHeight: "28px",
1593
+ fontWeight: 600,
1594
+ color: text2.primary,
1595
+ padding: "24px 24px 0"
1596
+ }
1205
1597
  }
1206
- }
1207
- },
1208
- // ─── Dialog ─────────────────────────────────────────────────────
1209
- MuiDialog: {
1210
- styleOverrides: {
1211
- paper: {
1212
- borderRadius: radius.xl,
1213
- boxShadow: shadows.xl,
1214
- padding: 0
1598
+ },
1599
+ MuiDialogContent: {
1600
+ styleOverrides: {
1601
+ root: {
1602
+ padding: "20px 24px",
1603
+ fontSize: 14,
1604
+ lineHeight: "20px",
1605
+ color: text2.tertiary
1606
+ }
1215
1607
  }
1216
- }
1217
- },
1218
- MuiDialogTitle: {
1219
- styleOverrides: {
1220
- root: {
1221
- fontSize: 18,
1222
- lineHeight: "28px",
1223
- fontWeight: 600,
1224
- color: colors.gray[900],
1225
- padding: "24px 24px 0"
1608
+ },
1609
+ MuiDialogActions: {
1610
+ styleOverrides: {
1611
+ root: {
1612
+ padding: "0 24px 24px",
1613
+ gap: 12
1614
+ }
1226
1615
  }
1227
- }
1228
- },
1229
- MuiDialogContent: {
1230
- styleOverrides: {
1231
- root: {
1232
- padding: "20px 24px",
1233
- fontSize: 14,
1234
- lineHeight: "20px",
1235
- color: colors.gray[600]
1616
+ },
1617
+ // ─── Progress ───────────────────────────────────────────────────
1618
+ MuiLinearProgress: {
1619
+ styleOverrides: {
1620
+ root: {
1621
+ borderRadius: radius2.full,
1622
+ height: 8,
1623
+ backgroundColor: border2.secondary
1624
+ },
1625
+ barColorPrimary: {
1626
+ backgroundColor: fg2.brandPrimary,
1627
+ borderRadius: radius2.full
1628
+ },
1629
+ barColorSecondary: {
1630
+ backgroundColor: bg2.secondarySolid,
1631
+ borderRadius: radius2.full
1632
+ }
1236
1633
  }
1237
- }
1238
- },
1239
- MuiDialogActions: {
1240
- styleOverrides: {
1241
- root: {
1242
- padding: "0 24px 24px",
1243
- gap: 12
1634
+ },
1635
+ MuiCircularProgress: {
1636
+ styleOverrides: {
1637
+ colorPrimary: {
1638
+ color: fg2.brandPrimary
1639
+ },
1640
+ colorSecondary: {
1641
+ color: bg2.secondarySolid
1642
+ }
1244
1643
  }
1245
- }
1246
- },
1247
- // ─── Progress ───────────────────────────────────────────────────
1248
- MuiLinearProgress: {
1249
- styleOverrides: {
1250
- root: {
1251
- borderRadius: radius.full,
1252
- height: 8,
1253
- backgroundColor: colors.gray[200]
1254
- },
1255
- barColorPrimary: {
1256
- backgroundColor: colors.brand[600],
1257
- borderRadius: radius.full
1644
+ },
1645
+ // ─── Skeleton ───────────────────────────────────────────────────
1646
+ MuiSkeleton: {
1647
+ defaultProps: {
1648
+ animation: "wave"
1258
1649
  },
1259
- barColorSecondary: {
1260
- backgroundColor: colors.gray[600],
1261
- borderRadius: radius.full
1650
+ styleOverrides: {
1651
+ root: {
1652
+ backgroundColor: bg2.tertiary
1653
+ },
1654
+ rounded: {
1655
+ borderRadius: radius2.md
1656
+ },
1657
+ circular: {
1658
+ borderRadius: radius2.full
1659
+ }
1262
1660
  }
1263
- }
1264
- },
1265
- MuiCircularProgress: {
1266
- styleOverrides: {
1267
- colorPrimary: {
1268
- color: colors.brand[600]
1269
- },
1270
- colorSecondary: {
1271
- color: colors.gray[600]
1661
+ },
1662
+ // ─── Snackbar ───────────────────────────────────────────────────
1663
+ MuiSnackbarContent: {
1664
+ styleOverrides: {
1665
+ root: {
1666
+ backgroundColor: bg2.primarySolid,
1667
+ color: text2.white,
1668
+ borderRadius: radius2.xl,
1669
+ boxShadow: tokenShadows.lg,
1670
+ fontSize: 14,
1671
+ lineHeight: "20px",
1672
+ fontWeight: 500,
1673
+ padding: "6px 16px"
1674
+ }
1272
1675
  }
1273
- }
1274
- },
1275
- // ─── Skeleton ───────────────────────────────────────────────────
1276
- MuiSkeleton: {
1277
- defaultProps: {
1278
- animation: "wave"
1279
- },
1280
- styleOverrides: {
1281
- root: {
1282
- backgroundColor: colors.gray[100]
1283
- },
1284
- rounded: {
1285
- borderRadius: radius.md
1286
- },
1287
- circular: {
1288
- borderRadius: radius.full
1676
+ },
1677
+ // ─── Typography ─────────────────────────────────────────────────
1678
+ MuiTypography: {
1679
+ defaultProps: {
1680
+ variantMapping: {
1681
+ h1: "h1",
1682
+ h2: "h2",
1683
+ h3: "h3",
1684
+ h4: "h4",
1685
+ h5: "h5",
1686
+ h6: "h6",
1687
+ subtitle1: "p",
1688
+ subtitle2: "p",
1689
+ body1: "p",
1690
+ body2: "p",
1691
+ caption: "span",
1692
+ overline: "span"
1693
+ }
1289
1694
  }
1290
- }
1291
- },
1292
- // ─── Snackbar ───────────────────────────────────────────────────
1293
- MuiSnackbarContent: {
1294
- styleOverrides: {
1295
- root: {
1296
- backgroundColor: colors.gray[900],
1297
- color: colors.base.white,
1298
- borderRadius: radius.xl,
1299
- boxShadow: shadows.lg,
1300
- fontSize: 14,
1301
- lineHeight: "20px",
1302
- fontWeight: 500,
1303
- padding: "6px 16px"
1695
+ },
1696
+ // ─── DataGrid (@mui/x-data-grid) ──────────────────────────────
1697
+ // Not part of MUI core's Components<Theme> type, so we merge via assertion.
1698
+ ...{
1699
+ MuiDataGrid: {
1700
+ styleOverrides: {
1701
+ root: {
1702
+ border: `1px solid ${border2.secondary}`,
1703
+ borderRadius: radius2.xl,
1704
+ fontFamily: "inherit",
1705
+ "& .MuiDataGrid-withBorderColor": {
1706
+ borderColor: border2.secondary
1707
+ }
1708
+ },
1709
+ columnHeaders: {
1710
+ backgroundColor: bg2.secondary
1711
+ },
1712
+ columnHeader: {
1713
+ fontSize: 12,
1714
+ lineHeight: "18px",
1715
+ fontWeight: 500,
1716
+ color: fg2.tertiary,
1717
+ "&:focus, &:focus-within": {
1718
+ outline: "none"
1719
+ }
1720
+ },
1721
+ columnHeaderTitle: {
1722
+ fontWeight: 500
1723
+ },
1724
+ cell: {
1725
+ fontSize: 14,
1726
+ lineHeight: "20px",
1727
+ color: fg2.tertiary,
1728
+ "&:focus, &:focus-within": {
1729
+ outline: "none"
1730
+ }
1731
+ },
1732
+ row: {
1733
+ "&:hover": {
1734
+ backgroundColor: bg2.primaryHover
1735
+ },
1736
+ "&.Mui-selected": {
1737
+ backgroundColor: bg2.brandPrimary,
1738
+ "&:hover": {
1739
+ backgroundColor: bg2.brandPrimary
1740
+ }
1741
+ }
1742
+ },
1743
+ footerContainer: {
1744
+ borderTop: `1px solid ${border2.secondary}`
1745
+ },
1746
+ columnSeparator: {
1747
+ color: border2.secondary
1748
+ }
1749
+ }
1304
1750
  }
1305
1751
  }
1306
- },
1307
- // ─── Typography ─────────────────────────────────────────────────
1308
- MuiTypography: {
1309
- defaultProps: {
1310
- variantMapping: {
1311
- h1: "h1",
1312
- h2: "h2",
1313
- h3: "h3",
1314
- h4: "h4",
1315
- h5: "h5",
1316
- h6: "h6",
1317
- subtitle1: "p",
1318
- subtitle2: "p",
1319
- body1: "p",
1320
- body2: "p",
1321
- caption: "span",
1322
- overline: "span"
1752
+ };
1753
+ }
1754
+ var components = buildComponents({
1755
+ colors,
1756
+ radius,
1757
+ focusRings,
1758
+ shadows,
1759
+ text,
1760
+ bg,
1761
+ fg,
1762
+ border,
1763
+ buttonColors});
1764
+
1765
+ // src/theme/shadows.ts
1766
+ function buildShadows(tokens) {
1767
+ const tokenShadows = tokens.shadows;
1768
+ return [
1769
+ "none",
1770
+ // 0
1771
+ tokenShadows.xs,
1772
+ // 1
1773
+ tokenShadows.sm,
1774
+ // 2
1775
+ tokenShadows.sm,
1776
+ // 3
1777
+ tokenShadows.md,
1778
+ // 4
1779
+ tokenShadows.md,
1780
+ // 5
1781
+ tokenShadows.md,
1782
+ // 6
1783
+ tokenShadows.lg,
1784
+ // 7
1785
+ tokenShadows.lg,
1786
+ // 8
1787
+ tokenShadows.lg,
1788
+ // 9
1789
+ tokenShadows.xl,
1790
+ // 10
1791
+ tokenShadows.xl,
1792
+ // 11
1793
+ tokenShadows.xl,
1794
+ // 12
1795
+ tokenShadows["2xl"],
1796
+ // 13
1797
+ tokenShadows["2xl"],
1798
+ // 14
1799
+ tokenShadows["2xl"],
1800
+ // 15
1801
+ tokenShadows["3xl"],
1802
+ // 16
1803
+ tokenShadows["3xl"],
1804
+ // 17
1805
+ tokenShadows["3xl"],
1806
+ // 18
1807
+ tokenShadows["3xl"],
1808
+ // 19
1809
+ tokenShadows["3xl"],
1810
+ // 20
1811
+ tokenShadows["3xl"],
1812
+ // 21
1813
+ tokenShadows["3xl"],
1814
+ // 22
1815
+ tokenShadows["3xl"],
1816
+ // 23
1817
+ tokenShadows["3xl"]
1818
+ // 24
1819
+ ];
1820
+ }
1821
+ var shadows2 = buildShadows({
1822
+ shadows
1823
+ });
1824
+ function buildThemeOptions(tokens) {
1825
+ return {
1826
+ palette: buildPalette(tokens),
1827
+ typography: buildTypography(tokens),
1828
+ components: buildComponents(tokens),
1829
+ shadows: buildShadows(tokens),
1830
+ shape: {
1831
+ borderRadius: tokens.radius.md
1832
+ }
1833
+ };
1834
+ }
1835
+ function buildTheme(tokens) {
1836
+ return styles.createTheme(buildThemeOptions(tokens));
1837
+ }
1838
+
1839
+ // src/theme/presets/forest.ts
1840
+ var forestPreset = {
1841
+ name: "forest",
1842
+ defaultVariant: "light",
1843
+ variants: {
1844
+ light: {
1845
+ tokens: {
1846
+ colors,
1847
+ spacing,
1848
+ radius,
1849
+ shadows,
1850
+ focusRings,
1851
+ fontFamily,
1852
+ fontSize,
1853
+ lineHeight,
1854
+ fontWeight,
1855
+ display,
1856
+ container,
1857
+ widths,
1858
+ text,
1859
+ bg,
1860
+ fg,
1861
+ border,
1862
+ buttonColors,
1863
+ avatarColors,
1864
+ breadcrumbColors,
1865
+ iconColors,
1866
+ navColors,
1867
+ sliderColors,
1868
+ toggleColors,
1869
+ chartColors,
1870
+ alpha
1323
1871
  }
1324
1872
  }
1325
1873
  }
1326
1874
  };
1327
1875
 
1328
- // src/theme/shadows.ts
1329
- var shadows2 = [
1330
- "none",
1331
- // 0
1332
- shadows.xs,
1333
- // 1
1334
- shadows.sm,
1335
- // 2
1336
- shadows.sm,
1337
- // 3
1338
- shadows.md,
1339
- // 4
1340
- shadows.md,
1341
- // 5
1342
- shadows.md,
1343
- // 6
1344
- shadows.lg,
1345
- // 7
1346
- shadows.lg,
1347
- // 8
1348
- shadows.lg,
1349
- // 9
1350
- shadows.xl,
1351
- // 10
1352
- shadows.xl,
1353
- // 11
1354
- shadows.xl,
1355
- // 12
1356
- shadows["2xl"],
1357
- // 13
1358
- shadows["2xl"],
1359
- // 14
1360
- shadows["2xl"],
1361
- // 15
1362
- shadows["3xl"],
1363
- // 16
1364
- shadows["3xl"],
1365
- // 17
1366
- shadows["3xl"],
1367
- // 18
1368
- shadows["3xl"],
1369
- // 19
1370
- shadows["3xl"],
1371
- // 20
1372
- shadows["3xl"],
1373
- // 21
1374
- shadows["3xl"],
1375
- // 22
1376
- shadows["3xl"],
1377
- // 23
1378
- shadows["3xl"]
1379
- // 24
1380
- ];
1876
+ // src/theme/presets/index.ts
1877
+ var presetRegistry = /* @__PURE__ */ new Map();
1878
+ presetRegistry.set(forestPreset.name, forestPreset);
1879
+ function getPreset(name) {
1880
+ return presetRegistry.get(name);
1881
+ }
1882
+ function registerPreset(preset) {
1883
+ presetRegistry.set(preset.name, preset);
1884
+ }
1885
+ function getAvailablePresets() {
1886
+ return Array.from(presetRegistry.keys());
1887
+ }
1381
1888
 
1382
1889
  // src/theme/index.ts
1383
1890
  var forestThemeOptions = {
@@ -1392,10 +1899,30 @@ var forestThemeOptions = {
1392
1899
  var forestTheme = styles.createTheme(forestThemeOptions);
1393
1900
  function ForestProvider({
1394
1901
  children,
1395
- theme = forestTheme,
1902
+ theme,
1903
+ preset,
1904
+ variant,
1396
1905
  disableCssBaseline = false
1397
1906
  }) {
1398
- return /* @__PURE__ */ jsxRuntime.jsxs(styles.ThemeProvider, { theme, children: [
1907
+ const resolvedTheme = react.useMemo(() => {
1908
+ if (theme) return theme;
1909
+ if (!preset) return forestTheme;
1910
+ const presetConfig = getPreset(preset);
1911
+ if (!presetConfig) {
1912
+ throw new Error(
1913
+ `[ForestProvider] Unknown preset "${preset}". Available presets: use getAvailablePresets() to see registered presets.`
1914
+ );
1915
+ }
1916
+ const variantName = variant != null ? variant : presetConfig.defaultVariant;
1917
+ const variantConfig = presetConfig.variants[variantName];
1918
+ if (!variantConfig) {
1919
+ throw new Error(
1920
+ `[ForestProvider] Unknown variant "${variantName}" for preset "${preset}". Available variants: ${Object.keys(presetConfig.variants).join(", ")}.`
1921
+ );
1922
+ }
1923
+ return buildTheme(variantConfig.tokens);
1924
+ }, [theme, preset, variant]);
1925
+ return /* @__PURE__ */ jsxRuntime.jsxs(styles.ThemeProvider, { theme: resolvedTheme, children: [
1399
1926
  !disableCssBaseline && /* @__PURE__ */ jsxRuntime.jsx(CssBaseline__default.default, {}),
1400
1927
  children
1401
1928
  ] });
@@ -1403,7 +1930,7 @@ function ForestProvider({
1403
1930
  function Autocomplete(props) {
1404
1931
  return /* @__PURE__ */ jsxRuntime.jsx(MuiAutocomplete__default.default, { ...props });
1405
1932
  }
1406
- function Button(props) {
1933
+ function Button({ ...props }) {
1407
1934
  return /* @__PURE__ */ jsxRuntime.jsx(MuiButton__default.default, { variant: "contained", ...props });
1408
1935
  }
1409
1936
  function ButtonGroup(props) {
@@ -1442,8 +1969,17 @@ function ToggleButtonGroup(props) {
1442
1969
  function Badge(props) {
1443
1970
  return /* @__PURE__ */ jsxRuntime.jsx(MuiBadge__default.default, { ...props });
1444
1971
  }
1972
+ var Close_default = utils.createSvgIcon(/* @__PURE__ */ jsxRuntime.jsx("path", {
1973
+ d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
1974
+ }), "Close");
1445
1975
  function Chip(props) {
1446
- return /* @__PURE__ */ jsxRuntime.jsx(MuiChip__default.default, { ...props });
1976
+ return /* @__PURE__ */ jsxRuntime.jsx(
1977
+ MuiChip__default.default,
1978
+ {
1979
+ deleteIcon: /* @__PURE__ */ jsxRuntime.jsx(Close_default, {}),
1980
+ ...props
1981
+ }
1982
+ );
1447
1983
  }
1448
1984
  function Divider(props) {
1449
1985
  return /* @__PURE__ */ jsxRuntime.jsx(MuiDivider__default.default, { ...props });
@@ -1487,6 +2023,9 @@ function TableHead(props) {
1487
2023
  function TableRow(props) {
1488
2024
  return /* @__PURE__ */ jsxRuntime.jsx(MuiTableRow__default.default, { ...props });
1489
2025
  }
2026
+ function DataGrid(props) {
2027
+ return /* @__PURE__ */ jsxRuntime.jsx(xDataGrid.DataGrid, { ...props });
2028
+ }
1490
2029
  function Tooltip(props) {
1491
2030
  return /* @__PURE__ */ jsxRuntime.jsx(MuiTooltip__default.default, { arrow: true, ...props });
1492
2031
  }
@@ -1540,6 +2079,7 @@ exports.ButtonGroup = ButtonGroup;
1540
2079
  exports.Checkbox = Checkbox;
1541
2080
  exports.Chip = Chip;
1542
2081
  exports.CircularProgress = CircularProgress;
2082
+ exports.DataGrid = DataGrid;
1543
2083
  exports.Dialog = Dialog;
1544
2084
  exports.DialogActions = DialogActions;
1545
2085
  exports.DialogContent = DialogContent;
@@ -1574,18 +2114,37 @@ exports.ToggleButton = ToggleButton;
1574
2114
  exports.ToggleButtonGroup = ToggleButtonGroup;
1575
2115
  exports.Tooltip = Tooltip;
1576
2116
  exports.Typography = Typography;
2117
+ exports.alpha = alpha;
2118
+ exports.avatarColors = avatarColors;
2119
+ exports.bg = bg;
2120
+ exports.border = border;
2121
+ exports.breadcrumbColors = breadcrumbColors;
2122
+ exports.buildTheme = buildTheme;
2123
+ exports.buildThemeOptions = buildThemeOptions;
2124
+ exports.buttonColors = buttonColors;
2125
+ exports.chartColors = chartColors;
1577
2126
  exports.colors = colors;
1578
2127
  exports.container = container;
1579
2128
  exports.display = display;
2129
+ exports.fg = fg;
1580
2130
  exports.focusRings = focusRings;
1581
2131
  exports.fontFamily = fontFamily;
1582
2132
  exports.fontSize = fontSize;
1583
2133
  exports.fontWeight = fontWeight;
2134
+ exports.forestPreset = forestPreset;
1584
2135
  exports.forestTheme = forestTheme;
1585
2136
  exports.forestThemeOptions = forestThemeOptions;
2137
+ exports.getAvailablePresets = getAvailablePresets;
2138
+ exports.getPreset = getPreset;
2139
+ exports.iconColors = iconColors;
1586
2140
  exports.lineHeight = lineHeight;
2141
+ exports.navColors = navColors;
1587
2142
  exports.radius = radius;
2143
+ exports.registerPreset = registerPreset;
2144
+ exports.sliderColors = sliderColors;
1588
2145
  exports.spacing = spacing;
2146
+ exports.text = text;
2147
+ exports.toggleColors = toggleColors;
1589
2148
  exports.tokenShadows = shadows;
1590
2149
  exports.widths = widths;
1591
2150
  //# sourceMappingURL=index.js.map