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