@revikornmann/muka-ui 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/cli/commands/brand.js +7 -0
  2. package/cli/commands/init.js +7 -1
  3. package/cli/templates/CLAUDE.md +18 -4
  4. package/cli/templates/muka-ui-guidelines.md +20 -0
  5. package/dist/cjs/components/DataTable/DataTable.js +15 -2
  6. package/dist/cjs/components/DataTable/DataTable.js.map +1 -1
  7. package/dist/cjs/components/ListItem/ListItem.css +10 -4
  8. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.css +207 -0
  9. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js +66 -0
  10. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -0
  11. package/dist/cjs/components/ProgressAccordeon/index.js +11 -0
  12. package/dist/cjs/components/ProgressAccordeon/index.js.map +1 -0
  13. package/dist/cjs/components/index.js +5 -3
  14. package/dist/cjs/components/index.js.map +1 -1
  15. package/dist/esm/components/DataTable/DataTable.js +15 -2
  16. package/dist/esm/components/DataTable/DataTable.js.map +1 -1
  17. package/dist/esm/components/ListItem/ListItem.css +10 -4
  18. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.css +207 -0
  19. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js +62 -0
  20. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -0
  21. package/dist/esm/components/ProgressAccordeon/index.js +3 -0
  22. package/dist/esm/components/ProgressAccordeon/index.js.map +1 -0
  23. package/dist/esm/components/index.js +1 -0
  24. package/dist/esm/components/index.js.map +1 -1
  25. package/dist/styles/components/ListItem.css +10 -4
  26. package/dist/styles/components/ProgressAccordeon.css +207 -0
  27. package/dist/styles/fonts/funnel-display-latin-wght-normal.woff2 +0 -0
  28. package/dist/styles/fonts/funnel-display.LICENSE.txt +93 -0
  29. package/dist/styles/fonts/funnel-sans-latin-wght-normal.woff2 +0 -0
  30. package/dist/styles/fonts/funnel-sans.LICENSE.txt +93 -0
  31. package/dist/styles/fonts/ibm-plex-sans-latin-wght-normal.woff2 +0 -0
  32. package/dist/styles/fonts/ibm-plex-sans.LICENSE.txt +93 -0
  33. package/dist/styles/fonts/lora-latin-wght-normal.woff2 +0 -0
  34. package/dist/styles/fonts/lora.LICENSE.txt +93 -0
  35. package/dist/styles/fonts/quicksand-latin-wght-normal.woff2 +0 -0
  36. package/dist/styles/fonts/quicksand.LICENSE.txt +93 -0
  37. package/dist/styles/fonts/red-hat-display-latin-wght-normal.woff2 +0 -0
  38. package/dist/styles/fonts/red-hat-display.LICENSE.txt +93 -0
  39. package/dist/styles/fonts/red-hat-text-latin-wght-normal.woff2 +0 -0
  40. package/dist/styles/fonts/red-hat-text.LICENSE.txt +93 -0
  41. package/dist/styles/fonts/yesteryear-latin-400-normal.woff2 +0 -0
  42. package/dist/styles/fonts/yesteryear.LICENSE.txt +93 -0
  43. package/dist/styles/fonts-all.css +75 -0
  44. package/dist/styles/fonts-bouwplan.css +30 -0
  45. package/dist/styles/fonts-fscl.css +21 -0
  46. package/dist/styles/fonts-grip.css +21 -0
  47. package/dist/styles/fonts-muka.css +30 -0
  48. package/dist/styles/fonts-wireframe.css +5 -0
  49. package/dist/styles/index.css +1936 -1580
  50. package/dist/styles/muka-dark.css +1936 -1580
  51. package/dist/styles/muka-light.css +1936 -1580
  52. package/dist/styles/tokens-bouwplan-dark.css +113 -5
  53. package/dist/styles/tokens-bouwplan-light.css +113 -5
  54. package/dist/styles/tokens-fscl-dark.css +113 -5
  55. package/dist/styles/tokens-fscl-light.css +113 -5
  56. package/dist/styles/tokens-grip-dark.css +113 -5
  57. package/dist/styles/tokens-grip-light.css +113 -5
  58. package/dist/styles/tokens-muka-dark.css +113 -5
  59. package/dist/styles/tokens-muka-light.css +113 -5
  60. package/dist/styles/tokens-wireframe-dark.css +113 -5
  61. package/dist/styles/tokens-wireframe-light.css +113 -5
  62. package/dist/styles/wireframe-dark.css +1303 -979
  63. package/dist/styles/wireframe-light.css +1303 -979
  64. package/dist/types/components/DataTable/DataTable.d.ts.map +1 -1
  65. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts +91 -0
  66. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts.map +1 -0
  67. package/dist/types/components/ProgressAccordeon/index.d.ts +3 -0
  68. package/dist/types/components/ProgressAccordeon/index.d.ts.map +1 -0
  69. package/dist/types/components/index.d.ts +1 -0
  70. package/dist/types/components/index.d.ts.map +1 -1
  71. package/docs/consumers/setup-instructions.md +22 -3
  72. package/package.json +12 -2
  73. package/scripts/build-fonts.js +248 -0
  74. package/tokens/t1-primitives/color.json +400 -0
  75. package/tokens/t2-alias/brand/bouwplan/dark.json +15 -1
  76. package/tokens/t2-alias/brand/bouwplan/light.json +15 -1
  77. package/tokens/t2-alias/brand/fscl/dark.json +15 -1
  78. package/tokens/t2-alias/brand/fscl/light.json +15 -1
  79. package/tokens/t2-alias/brand/grip/dark.json +51 -1
  80. package/tokens/t2-alias/brand/grip/light.json +51 -1
  81. package/tokens/t2-alias/brand/muka/dark.json +51 -1
  82. package/tokens/t2-alias/brand/muka/light.json +51 -1
  83. package/tokens/t2-alias/brand/wireframe/dark.json +51 -1
  84. package/tokens/t2-alias/brand/wireframe/light.json +51 -1
  85. package/tokens/t3-semantics/ui.json +13 -13
@@ -666,6 +666,102 @@ body {
666
666
  --color-white-alpha-10: rgba(255, 255, 255, 0.478);
667
667
  --color-white-alpha-11: rgba(255, 255, 255, 0.565);
668
668
  --color-white-alpha-12: rgba(255, 255, 255, 0.910);
669
+ --color-mauveA-1: rgba(85, 0, 85, 0.012);
670
+ --color-mauveA-2: rgba(43, 0, 85, 0.024);
671
+ --color-mauveA-3: rgba(48, 0, 64, 0.063);
672
+ --color-mauveA-4: rgba(32, 0, 54, 0.094);
673
+ --color-mauveA-5: rgba(32, 0, 56, 0.125);
674
+ --color-mauveA-6: rgba(20, 0, 53, 0.153);
675
+ --color-mauveA-7: rgba(16, 0, 51, 0.196);
676
+ --color-mauveA-8: rgba(8, 0, 49, 0.271);
677
+ --color-mauveA-9: rgba(5, 0, 29, 0.451);
678
+ --color-mauveA-10: rgba(5, 0, 25, 0.49);
679
+ --color-mauveA-11: rgba(4, 0, 17, 0.612);
680
+ --color-mauveA-12: rgba(2, 0, 8, 0.878);
681
+ --color-grayA-1: rgba(0, 0, 0, 0.012);
682
+ --color-grayA-2: rgba(0, 0, 0, 0.024);
683
+ --color-grayA-3: rgba(0, 0, 0, 0.059);
684
+ --color-grayA-4: rgba(0, 0, 0, 0.09);
685
+ --color-grayA-5: rgba(0, 0, 0, 0.122);
686
+ --color-grayA-6: rgba(0, 0, 0, 0.149);
687
+ --color-grayA-7: rgba(0, 0, 0, 0.192);
688
+ --color-grayA-8: rgba(0, 0, 0, 0.267);
689
+ --color-grayA-9: rgba(0, 0, 0, 0.447);
690
+ --color-grayA-10: rgba(0, 0, 0, 0.486);
691
+ --color-grayA-11: rgba(0, 0, 0, 0.608);
692
+ --color-grayA-12: rgba(0, 0, 0, 0.875);
693
+ --color-sandA-1: rgba(85, 85, 0, 0.012);
694
+ --color-sandA-2: rgba(37, 37, 0, 0.027);
695
+ --color-sandA-3: rgba(32, 16, 0, 0.063);
696
+ --color-sandA-4: rgba(31, 21, 0, 0.098);
697
+ --color-sandA-5: rgba(31, 24, 0, 0.129);
698
+ --color-sandA-6: rgba(25, 19, 0, 0.161);
699
+ --color-sandA-7: rgba(25, 20, 0, 0.208);
700
+ --color-sandA-8: rgba(25, 21, 1, 0.29);
701
+ --color-sandA-9: rgba(15, 15, 0, 0.475);
702
+ --color-sandA-10: rgba(12, 12, 0, 0.514);
703
+ --color-sandA-11: rgba(8, 8, 0, 0.631);
704
+ --color-sandA-12: rgba(6, 5, 0, 0.89);
705
+ --color-sageA-1: rgba(0, 128, 64, 0.016);
706
+ --color-sageA-2: rgba(0, 64, 32, 0.031);
707
+ --color-sageA-3: rgba(0, 45, 30, 0.067);
708
+ --color-sageA-4: rgba(0, 31, 21, 0.098);
709
+ --color-sageA-5: rgba(0, 24, 8, 0.125);
710
+ --color-sageA-6: rgba(0, 20, 13, 0.157);
711
+ --color-sageA-7: rgba(0, 20, 10, 0.204);
712
+ --color-sageA-8: rgba(0, 15, 8, 0.278);
713
+ --color-sageA-9: rgba(0, 17, 11, 0.475);
714
+ --color-sageA-10: rgba(0, 16, 10, 0.514);
715
+ --color-sageA-11: rgba(0, 10, 7, 0.627);
716
+ --color-sageA-12: rgba(0, 8, 5, 0.898);
717
+ --color-mauveDarkA-1: rgba(0, 0, 0, 0.0);
718
+ --color-mauveDarkA-2: rgba(245, 244, 246, 0.035);
719
+ --color-mauveDarkA-3: rgba(235, 234, 248, 0.078);
720
+ --color-mauveDarkA-4: rgba(238, 229, 248, 0.114);
721
+ --color-mauveDarkA-5: rgba(239, 230, 254, 0.145);
722
+ --color-mauveDarkA-6: rgba(241, 230, 253, 0.188);
723
+ --color-mauveDarkA-7: rgba(238, 233, 255, 0.251);
724
+ --color-mauveDarkA-8: rgba(238, 231, 255, 0.365);
725
+ --color-mauveDarkA-9: rgba(234, 230, 253, 0.431);
726
+ --color-mauveDarkA-10: rgba(236, 233, 253, 0.486);
727
+ --color-mauveDarkA-11: rgba(245, 241, 255, 0.718);
728
+ --color-mauveDarkA-12: rgba(253, 253, 255, 0.937);
729
+ --color-grayDarkA-1: rgba(0, 0, 0, 0.0);
730
+ --color-grayDarkA-2: rgba(255, 255, 255, 0.035);
731
+ --color-grayDarkA-3: rgba(255, 255, 255, 0.071);
732
+ --color-grayDarkA-4: rgba(255, 255, 255, 0.106);
733
+ --color-grayDarkA-5: rgba(255, 255, 255, 0.133);
734
+ --color-grayDarkA-6: rgba(255, 255, 255, 0.173);
735
+ --color-grayDarkA-7: rgba(255, 255, 255, 0.231);
736
+ --color-grayDarkA-8: rgba(255, 255, 255, 0.333);
737
+ --color-grayDarkA-9: rgba(255, 255, 255, 0.392);
738
+ --color-grayDarkA-10: rgba(255, 255, 255, 0.447);
739
+ --color-grayDarkA-11: rgba(255, 255, 255, 0.686);
740
+ --color-grayDarkA-12: rgba(255, 255, 255, 0.929);
741
+ --color-sandDarkA-1: rgba(0, 0, 0, 0.0);
742
+ --color-sandDarkA-2: rgba(244, 244, 243, 0.035);
743
+ --color-sandDarkA-3: rgba(246, 246, 245, 0.075);
744
+ --color-sandDarkA-4: rgba(254, 254, 243, 0.106);
745
+ --color-sandDarkA-5: rgba(251, 251, 235, 0.137);
746
+ --color-sandDarkA-6: rgba(255, 250, 237, 0.176);
747
+ --color-sandDarkA-7: rgba(255, 251, 237, 0.235);
748
+ --color-sandDarkA-8: rgba(255, 249, 235, 0.341);
749
+ --color-sandDarkA-9: rgba(255, 250, 233, 0.396);
750
+ --color-sandDarkA-10: rgba(255, 253, 238, 0.451);
751
+ --color-sandDarkA-11: rgba(255, 252, 244, 0.69);
752
+ --color-sandDarkA-12: rgba(255, 255, 253, 0.929);
753
+ --color-sageDarkA-1: rgba(0, 0, 0, 0.0);
754
+ --color-sageDarkA-2: rgba(240, 242, 241, 0.031);
755
+ --color-sageDarkA-3: rgba(243, 245, 244, 0.071);
756
+ --color-sageDarkA-4: rgba(242, 254, 253, 0.102);
757
+ --color-sageDarkA-5: rgba(241, 251, 250, 0.133);
758
+ --color-sageDarkA-6: rgba(237, 251, 244, 0.176);
759
+ --color-sageDarkA-7: rgba(237, 252, 247, 0.235);
760
+ --color-sageDarkA-8: rgba(235, 253, 246, 0.341);
761
+ --color-sageDarkA-9: rgba(223, 253, 242, 0.4);
762
+ --color-sageDarkA-10: rgba(229, 253, 246, 0.455);
763
+ --color-sageDarkA-11: rgba(244, 254, 251, 0.69);
764
+ --color-sageDarkA-12: rgba(253, 255, 254, 0.929);
669
765
  --color-grayDark-1: #111111;
670
766
  --color-grayDark-2: #191919;
671
767
  --color-grayDark-3: #222222;
@@ -1043,8 +1139,8 @@ body {
1043
1139
  --color-surface-level1: #e0e0e0;
1044
1140
  --color-surface-level2: #e8e8e8;
1045
1141
  --color-surface-level3: #fcfcfc;
1046
- --color-surface-hover: #f0f0f0;
1047
- --color-surface-pressed: #fcfcfc;
1142
+ --color-surface-hover: rgba(0, 0, 0, 0.024);
1143
+ --color-surface-pressed: rgba(0, 0, 0, 0.059);
1048
1144
  --color-surface-backdrop: rgba(0, 0, 0, 0.565);
1049
1145
  --color-surface-inverse: #202020;
1050
1146
  --color-surface-white: #ffffff;
@@ -1107,6 +1203,18 @@ body {
1107
1203
  --alias-color-neutral-alpha-7: rgba(0, 0, 0, 0.565);
1108
1204
  --alias-color-neutral-alpha-8: rgba(0, 0, 0, 0.910);
1109
1205
  --alias-color-neutral-alpha-9: rgba(0, 0, 0, 0.910);
1206
+ --alias-color-neutral-alphaHued-1: rgba(0, 0, 0, 0.012);
1207
+ --alias-color-neutral-alphaHued-2: rgba(0, 0, 0, 0.024);
1208
+ --alias-color-neutral-alphaHued-3: rgba(0, 0, 0, 0.059);
1209
+ --alias-color-neutral-alphaHued-4: rgba(0, 0, 0, 0.09);
1210
+ --alias-color-neutral-alphaHued-5: rgba(0, 0, 0, 0.122);
1211
+ --alias-color-neutral-alphaHued-6: rgba(0, 0, 0, 0.149);
1212
+ --alias-color-neutral-alphaHued-7: rgba(0, 0, 0, 0.192);
1213
+ --alias-color-neutral-alphaHued-8: rgba(0, 0, 0, 0.267);
1214
+ --alias-color-neutral-alphaHued-9: rgba(0, 0, 0, 0.447);
1215
+ --alias-color-neutral-alphaHued-10: rgba(0, 0, 0, 0.486);
1216
+ --alias-color-neutral-alphaHued-11: rgba(0, 0, 0, 0.608);
1217
+ --alias-color-neutral-alphaHued-12: rgba(0, 0, 0, 0.875);
1110
1218
  --alias-color-brand-primary-regular: #646464;
1111
1219
  --alias-color-brand-primary-contrast: #202020;
1112
1220
  --alias-color-brand-primary-muted: #f0f0f0;
@@ -1674,7 +1782,7 @@ body {
1674
1782
  --menu-item-color-default-background: transparent;
1675
1783
  --menu-item-color-default-foreground: #202020;
1676
1784
  --menu-item-color-default-icon: #838383;
1677
- --menu-item-color-hover-background: #f0f0f0;
1785
+ --menu-item-color-hover-background: rgba(0, 0, 0, 0.024);
1678
1786
  --menu-item-color-hover-foreground: #202020;
1679
1787
  --menu-item-color-hover-icon: #202020;
1680
1788
  --menu-item-color-focus-background: #5eb0ef;
@@ -1904,8 +2012,8 @@ body {
1904
2012
  --datatable-row-background: #fcfcfc;
1905
2013
  --datatable-row-foreground: #202020;
1906
2014
  --datatable-row-border: #e0e0e0;
1907
- --datatable-row-hover-background: #f0f0f0;
1908
- --datatable-row-pressed-background: #fcfcfc;
2015
+ --datatable-row-hover-background: rgba(0, 0, 0, 0.024);
2016
+ --datatable-row-pressed-background: rgba(0, 0, 0, 0.059);
1909
2017
  --datatable-row-selected-background: #edf6ff;
1910
2018
  --datatable-cell-padding-x-sm: 0.5rem;
1911
2019
  --datatable-cell-padding-x-md: 0.75rem;
@@ -2616,196 +2724,6 @@ body {
2616
2724
  }
2617
2725
 
2618
2726
 
2619
- /* Toast */
2620
- /* Toast Component Styles - Using Muka Design Tokens */
2621
-
2622
- .muka-toast {
2623
- display: flex;
2624
- align-items: flex-start;
2625
- gap: var(--toast-gap);
2626
- padding: var(--toast-padding-y) var(--toast-padding-x);
2627
- border-radius: var(--toast-radius);
2628
- box-shadow: var(--toast-shadow);
2629
- min-width: var(--toast-width-min);
2630
- max-width: var(--toast-width-max);
2631
- pointer-events: auto;
2632
- animation: muka-toast-slide-in 0.2s ease-out;
2633
- }
2634
-
2635
- /* Entry animation */
2636
- @keyframes muka-toast-slide-in {
2637
- from {
2638
- opacity: 0;
2639
- transform: translateY(8px);
2640
- }
2641
- to {
2642
- opacity: 1;
2643
- transform: translateY(0);
2644
- }
2645
- }
2646
-
2647
- /* Position variants (for standalone use - typically managed by ToastProvider) */
2648
- .muka-toast--top-right,
2649
- .muka-toast--top-left,
2650
- .muka-toast--top-center,
2651
- .muka-toast--bottom-right,
2652
- .muka-toast--bottom-left,
2653
- .muka-toast--bottom-center {
2654
- position: fixed;
2655
- z-index: 9999;
2656
- }
2657
-
2658
- .muka-toast--top-right {
2659
- top: var(--spacing-4);
2660
- right: var(--spacing-4);
2661
- }
2662
-
2663
- .muka-toast--top-left {
2664
- top: var(--spacing-4);
2665
- left: var(--spacing-4);
2666
- }
2667
-
2668
- .muka-toast--top-center {
2669
- top: var(--spacing-4);
2670
- left: 50%;
2671
- transform: translateX(-50%);
2672
- }
2673
-
2674
- .muka-toast--bottom-right {
2675
- bottom: var(--spacing-4);
2676
- right: var(--spacing-4);
2677
- }
2678
-
2679
- .muka-toast--bottom-left {
2680
- bottom: var(--spacing-4);
2681
- left: var(--spacing-4);
2682
- }
2683
-
2684
- .muka-toast--bottom-center {
2685
- bottom: var(--spacing-4);
2686
- left: 50%;
2687
- transform: translateX(-50%);
2688
- }
2689
-
2690
- /* Variant: Info */
2691
- .muka-toast--info {
2692
- background-color: var(--toast-color-info-background);
2693
- color: var(--toast-color-info-foreground);
2694
- }
2695
-
2696
- .muka-toast--info .muka-toast__icon {
2697
- color: var(--toast-color-info-accent);
2698
- }
2699
-
2700
- /* Variant: Success */
2701
- .muka-toast--success {
2702
- background-color: var(--toast-color-success-background);
2703
- color: var(--toast-color-success-foreground);
2704
- }
2705
-
2706
- .muka-toast--success .muka-toast__icon {
2707
- color: var(--toast-color-success-accent);
2708
- }
2709
-
2710
- /* Variant: Warning */
2711
- .muka-toast--warning {
2712
- background-color: var(--toast-color-warning-background);
2713
- color: var(--toast-color-warning-foreground);
2714
- }
2715
-
2716
- .muka-toast--warning .muka-toast__icon {
2717
- color: var(--toast-color-warning-accent);
2718
- }
2719
-
2720
- /* Variant: Error */
2721
- .muka-toast--error {
2722
- background-color: var(--toast-color-error-background);
2723
- color: var(--toast-color-error-foreground);
2724
- }
2725
-
2726
- .muka-toast--error .muka-toast__icon {
2727
- color: var(--toast-color-error-accent);
2728
- }
2729
-
2730
- /* Icon */
2731
- .muka-toast__icon {
2732
- display: flex;
2733
- align-items: center;
2734
- justify-content: center;
2735
- flex-shrink: 0;
2736
- width: var(--toast-icon-size);
2737
- height: var(--toast-icon-size);
2738
- }
2739
-
2740
- .muka-toast__icon svg {
2741
- width: 100%;
2742
- height: 100%;
2743
- }
2744
-
2745
- /* Content */
2746
- .muka-toast__content {
2747
- flex: 1;
2748
- min-width: 0;
2749
- }
2750
-
2751
- .muka-toast__title {
2752
- font-family: var(--text-label-md-semibold-fontFamily);
2753
- font-weight: var(--text-label-md-semibold-fontWeight);
2754
- font-size: var(--text-label-md-semibold-fontSize);
2755
- line-height: var(--text-label-md-semibold-lineHeight);
2756
- margin-bottom: var(--spacing-1);
2757
- }
2758
-
2759
- .muka-toast__message {
2760
- font-family: var(--text-body-sm-regular-fontFamily);
2761
- font-weight: var(--text-body-sm-regular-fontWeight);
2762
- font-size: var(--text-body-sm-regular-fontSize);
2763
- line-height: var(--text-body-sm-regular-lineHeight);
2764
- }
2765
-
2766
- /* Action slot */
2767
- .muka-toast__action {
2768
- display: flex;
2769
- align-items: center;
2770
- flex-shrink: 0;
2771
- }
2772
-
2773
- /* Dismiss button */
2774
- .muka-toast__dismiss {
2775
- display: flex;
2776
- align-items: center;
2777
- justify-content: center;
2778
- flex-shrink: 0;
2779
- width: 24px;
2780
- height: 24px;
2781
- padding: 0;
2782
- margin: -2px -4px -2px 0;
2783
- border: none;
2784
- background: transparent;
2785
- color: inherit;
2786
- opacity: 0.7;
2787
- cursor: pointer;
2788
- border-radius: var(--border-radius-sm);
2789
- transition: opacity 0.15s ease, background-color 0.15s ease;
2790
- }
2791
-
2792
- .muka-toast__dismiss:hover {
2793
- opacity: 1;
2794
- background-color: rgba(0, 0, 0, 0.05);
2795
- }
2796
-
2797
- .muka-toast__dismiss:focus-visible {
2798
- outline: 2px solid var(--color-border-focus);
2799
- outline-offset: 2px;
2800
- opacity: 1;
2801
- }
2802
-
2803
- .muka-toast__dismiss svg {
2804
- width: 16px;
2805
- height: 16px;
2806
- }
2807
-
2808
-
2809
2727
  /* Tile */
2810
2728
  /* Tile Component Styles - Using Muka Design Tokens */
2811
2729
 
@@ -3167,45 +3085,235 @@ body {
3167
3085
  }
3168
3086
 
3169
3087
 
3170
- /* Textarea */
3171
- /* Textarea Component Styles - Using Muka Design Tokens */
3088
+ /* Toast */
3089
+ /* Toast Component Styles - Using Muka Design Tokens */
3172
3090
 
3173
- .muka-textarea {
3174
- display: inline-flex;
3175
- flex-direction: column;
3176
- gap: var(--spacing-2);
3091
+ .muka-toast {
3092
+ display: flex;
3093
+ align-items: flex-start;
3094
+ gap: var(--toast-gap);
3095
+ padding: var(--toast-padding-y) var(--toast-padding-x);
3096
+ border-radius: var(--toast-radius);
3097
+ box-shadow: var(--toast-shadow);
3098
+ min-width: var(--toast-width-min);
3099
+ max-width: var(--toast-width-max);
3100
+ pointer-events: auto;
3101
+ animation: muka-toast-slide-in 0.2s ease-out;
3177
3102
  }
3178
3103
 
3179
- /* Label */
3180
- .muka-textarea__label {
3181
- color: var(--color-text-default-default);
3182
- cursor: pointer;
3104
+ /* Entry animation */
3105
+ @keyframes muka-toast-slide-in {
3106
+ from {
3107
+ opacity: 0;
3108
+ transform: translateY(8px);
3109
+ }
3110
+ to {
3111
+ opacity: 1;
3112
+ transform: translateY(0);
3113
+ }
3183
3114
  }
3184
3115
 
3185
- .muka-textarea__label--sm {
3186
- font-family: var(--text-label-sm-semibold-fontFamily);
3187
- font-weight: var(--text-label-sm-semibold-fontWeight);
3188
- font-size: var(--text-label-sm-semibold-fontSize);
3189
- line-height: var(--text-label-sm-semibold-lineHeight);
3116
+ /* Position variants (for standalone use - typically managed by ToastProvider) */
3117
+ .muka-toast--top-right,
3118
+ .muka-toast--top-left,
3119
+ .muka-toast--top-center,
3120
+ .muka-toast--bottom-right,
3121
+ .muka-toast--bottom-left,
3122
+ .muka-toast--bottom-center {
3123
+ position: fixed;
3124
+ z-index: 9999;
3190
3125
  }
3191
3126
 
3192
- .muka-textarea__label--md {
3193
- font-family: var(--text-label-md-semibold-fontFamily);
3194
- font-weight: var(--text-label-md-semibold-fontWeight);
3195
- font-size: var(--text-label-md-semibold-fontSize);
3196
- line-height: var(--text-label-md-semibold-lineHeight);
3127
+ .muka-toast--top-right {
3128
+ top: var(--spacing-4);
3129
+ right: var(--spacing-4);
3197
3130
  }
3198
3131
 
3199
- .muka-textarea__label--lg {
3200
- font-family: var(--text-label-lg-semibold-fontFamily);
3201
- font-weight: var(--text-label-lg-semibold-fontWeight);
3202
- font-size: var(--text-label-lg-semibold-fontSize);
3203
- line-height: var(--text-label-lg-semibold-lineHeight);
3132
+ .muka-toast--top-left {
3133
+ top: var(--spacing-4);
3134
+ left: var(--spacing-4);
3204
3135
  }
3205
3136
 
3206
- .muka-textarea__required {
3207
- color: var(--color-state-error-foreground);
3208
- }
3137
+ .muka-toast--top-center {
3138
+ top: var(--spacing-4);
3139
+ left: 50%;
3140
+ transform: translateX(-50%);
3141
+ }
3142
+
3143
+ .muka-toast--bottom-right {
3144
+ bottom: var(--spacing-4);
3145
+ right: var(--spacing-4);
3146
+ }
3147
+
3148
+ .muka-toast--bottom-left {
3149
+ bottom: var(--spacing-4);
3150
+ left: var(--spacing-4);
3151
+ }
3152
+
3153
+ .muka-toast--bottom-center {
3154
+ bottom: var(--spacing-4);
3155
+ left: 50%;
3156
+ transform: translateX(-50%);
3157
+ }
3158
+
3159
+ /* Variant: Info */
3160
+ .muka-toast--info {
3161
+ background-color: var(--toast-color-info-background);
3162
+ color: var(--toast-color-info-foreground);
3163
+ }
3164
+
3165
+ .muka-toast--info .muka-toast__icon {
3166
+ color: var(--toast-color-info-accent);
3167
+ }
3168
+
3169
+ /* Variant: Success */
3170
+ .muka-toast--success {
3171
+ background-color: var(--toast-color-success-background);
3172
+ color: var(--toast-color-success-foreground);
3173
+ }
3174
+
3175
+ .muka-toast--success .muka-toast__icon {
3176
+ color: var(--toast-color-success-accent);
3177
+ }
3178
+
3179
+ /* Variant: Warning */
3180
+ .muka-toast--warning {
3181
+ background-color: var(--toast-color-warning-background);
3182
+ color: var(--toast-color-warning-foreground);
3183
+ }
3184
+
3185
+ .muka-toast--warning .muka-toast__icon {
3186
+ color: var(--toast-color-warning-accent);
3187
+ }
3188
+
3189
+ /* Variant: Error */
3190
+ .muka-toast--error {
3191
+ background-color: var(--toast-color-error-background);
3192
+ color: var(--toast-color-error-foreground);
3193
+ }
3194
+
3195
+ .muka-toast--error .muka-toast__icon {
3196
+ color: var(--toast-color-error-accent);
3197
+ }
3198
+
3199
+ /* Icon */
3200
+ .muka-toast__icon {
3201
+ display: flex;
3202
+ align-items: center;
3203
+ justify-content: center;
3204
+ flex-shrink: 0;
3205
+ width: var(--toast-icon-size);
3206
+ height: var(--toast-icon-size);
3207
+ }
3208
+
3209
+ .muka-toast__icon svg {
3210
+ width: 100%;
3211
+ height: 100%;
3212
+ }
3213
+
3214
+ /* Content */
3215
+ .muka-toast__content {
3216
+ flex: 1;
3217
+ min-width: 0;
3218
+ }
3219
+
3220
+ .muka-toast__title {
3221
+ font-family: var(--text-label-md-semibold-fontFamily);
3222
+ font-weight: var(--text-label-md-semibold-fontWeight);
3223
+ font-size: var(--text-label-md-semibold-fontSize);
3224
+ line-height: var(--text-label-md-semibold-lineHeight);
3225
+ margin-bottom: var(--spacing-1);
3226
+ }
3227
+
3228
+ .muka-toast__message {
3229
+ font-family: var(--text-body-sm-regular-fontFamily);
3230
+ font-weight: var(--text-body-sm-regular-fontWeight);
3231
+ font-size: var(--text-body-sm-regular-fontSize);
3232
+ line-height: var(--text-body-sm-regular-lineHeight);
3233
+ }
3234
+
3235
+ /* Action slot */
3236
+ .muka-toast__action {
3237
+ display: flex;
3238
+ align-items: center;
3239
+ flex-shrink: 0;
3240
+ }
3241
+
3242
+ /* Dismiss button */
3243
+ .muka-toast__dismiss {
3244
+ display: flex;
3245
+ align-items: center;
3246
+ justify-content: center;
3247
+ flex-shrink: 0;
3248
+ width: 24px;
3249
+ height: 24px;
3250
+ padding: 0;
3251
+ margin: -2px -4px -2px 0;
3252
+ border: none;
3253
+ background: transparent;
3254
+ color: inherit;
3255
+ opacity: 0.7;
3256
+ cursor: pointer;
3257
+ border-radius: var(--border-radius-sm);
3258
+ transition: opacity 0.15s ease, background-color 0.15s ease;
3259
+ }
3260
+
3261
+ .muka-toast__dismiss:hover {
3262
+ opacity: 1;
3263
+ background-color: rgba(0, 0, 0, 0.05);
3264
+ }
3265
+
3266
+ .muka-toast__dismiss:focus-visible {
3267
+ outline: 2px solid var(--color-border-focus);
3268
+ outline-offset: 2px;
3269
+ opacity: 1;
3270
+ }
3271
+
3272
+ .muka-toast__dismiss svg {
3273
+ width: 16px;
3274
+ height: 16px;
3275
+ }
3276
+
3277
+
3278
+ /* Textarea */
3279
+ /* Textarea Component Styles - Using Muka Design Tokens */
3280
+
3281
+ .muka-textarea {
3282
+ display: inline-flex;
3283
+ flex-direction: column;
3284
+ gap: var(--spacing-2);
3285
+ }
3286
+
3287
+ /* Label */
3288
+ .muka-textarea__label {
3289
+ color: var(--color-text-default-default);
3290
+ cursor: pointer;
3291
+ }
3292
+
3293
+ .muka-textarea__label--sm {
3294
+ font-family: var(--text-label-sm-semibold-fontFamily);
3295
+ font-weight: var(--text-label-sm-semibold-fontWeight);
3296
+ font-size: var(--text-label-sm-semibold-fontSize);
3297
+ line-height: var(--text-label-sm-semibold-lineHeight);
3298
+ }
3299
+
3300
+ .muka-textarea__label--md {
3301
+ font-family: var(--text-label-md-semibold-fontFamily);
3302
+ font-weight: var(--text-label-md-semibold-fontWeight);
3303
+ font-size: var(--text-label-md-semibold-fontSize);
3304
+ line-height: var(--text-label-md-semibold-lineHeight);
3305
+ }
3306
+
3307
+ .muka-textarea__label--lg {
3308
+ font-family: var(--text-label-lg-semibold-fontFamily);
3309
+ font-weight: var(--text-label-lg-semibold-fontWeight);
3310
+ font-size: var(--text-label-lg-semibold-fontSize);
3311
+ line-height: var(--text-label-lg-semibold-lineHeight);
3312
+ }
3313
+
3314
+ .muka-textarea__required {
3315
+ color: var(--color-state-error-foreground);
3316
+ }
3209
3317
 
3210
3318
  /* Field container */
3211
3319
  .muka-textarea__field {
@@ -5388,243 +5496,52 @@ body {
5388
5496
  }
5389
5497
 
5390
5498
 
5391
- /* Radio */
5392
- /* Radio Component Styles - Using Muka Design Tokens */
5393
-
5394
- /* Wrapper - clickable label container */
5395
- .muka-radio {
5396
- display: inline-flex;
5397
- align-items: center;
5398
- gap: var(--spacing-4);
5399
- cursor: pointer;
5400
- user-select: none;
5401
- }
5499
+ /* ProgressTracker */
5500
+ /* ProgressTracker Component Styles — Using Muka Design Tokens */
5402
5501
 
5403
- .muka-radio--disabled {
5404
- cursor: not-allowed;
5405
- opacity: 0.6;
5502
+ /* ─── Root ──────────────────────────────────────────────── */
5503
+ .muka-progress-tracker {
5504
+ width: 100%;
5505
+ padding-bottom: var(--spacing-7);
5406
5506
  }
5407
5507
 
5408
- /* Control container */
5409
- .muka-radio__control {
5508
+ /* ─── Track (layered container) ─────────────────────────── */
5509
+ .muka-progress-tracker__track {
5410
5510
  position: relative;
5411
- display: inline-flex;
5412
- align-items: center;
5413
- justify-content: center;
5414
- flex-shrink: 0;
5511
+ /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
5512
+ padding-top: 14px;
5513
+ padding-bottom: 14px;
5415
5514
  }
5416
5515
 
5417
- /* Hidden native input */
5418
- .muka-radio__input {
5516
+ /* ─── Steps layer (on top) ──────────────────────────────── */
5517
+ .muka-progress-tracker__steps {
5419
5518
  position: absolute;
5420
- width: 1px;
5421
- height: 1px;
5422
- padding: 0;
5423
- margin: -1px;
5424
- overflow: hidden;
5425
- clip: rect(0, 0, 0, 0);
5426
- white-space: nowrap;
5427
- border: 0;
5519
+ inset: 0;
5520
+ display: flex;
5521
+ align-items: flex-start;
5522
+ justify-content: space-between;
5523
+ z-index: 2;
5428
5524
  }
5429
5525
 
5430
- /* Visual indicator (circle) */
5431
- .muka-radio__indicator {
5526
+ /* ─── Individual step ───────────────────────────────────── */
5527
+ .muka-progress-tracker__step {
5432
5528
  display: flex;
5529
+ flex-direction: column;
5433
5530
  align-items: center;
5434
- justify-content: center;
5435
- width: var(--radio-size-default);
5436
- height: var(--radio-size-default);
5531
+ gap: 7px;
5532
+ position: relative;
5533
+ }
5534
+
5535
+ /* ─── Step indicator (circle) ───────────────────────────── */
5536
+ .muka-progress-tracker__indicator {
5537
+ width: 32px;
5538
+ height: 32px;
5437
5539
  border-radius: var(--border-radius-full);
5438
- background-color: var(--radio-color-default-background);
5439
- border: var(--border-width-regular) solid var(--radio-color-default-border);
5440
- transition: all 0.15s ease;
5441
- box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.15);
5442
- }
5443
-
5444
- /* Size variants */
5445
- .muka-radio--sm .muka-radio__indicator {
5446
- width: var(--radio-size-sm);
5447
- height: var(--radio-size-sm);
5448
- }
5449
-
5450
- .muka-radio--lg .muka-radio__indicator {
5451
- width: var(--radio-size-lg);
5452
- height: var(--radio-size-lg);
5453
- }
5454
-
5455
- /* Inner dot (shown when checked) */
5456
- .muka-radio__dot {
5457
- width: var(--radio-dot-size-default);
5458
- height: var(--radio-dot-size-default);
5459
- border-radius: var(--border-radius-full);
5460
- background-color: var(--radio-color-default-dot);
5461
- transform: scale(0);
5462
- transition: transform 0.15s ease;
5463
- }
5464
-
5465
- .muka-radio--sm .muka-radio__dot {
5466
- width: var(--radio-dot-size-sm);
5467
- height: var(--radio-dot-size-sm);
5468
- }
5469
-
5470
- .muka-radio--lg .muka-radio__dot {
5471
- width: var(--radio-dot-size-lg);
5472
- height: var(--radio-dot-size-lg);
5473
- }
5474
-
5475
- /* Hover state - removed per design */
5476
-
5477
- /* Focus state */
5478
- .muka-radio__input:focus-visible + .muka-radio__indicator {
5479
- outline: 2px solid var(--color-border-focus);
5480
- outline-offset: 2px;
5481
- }
5482
-
5483
- /* Checked state */
5484
- .muka-radio__input:checked + .muka-radio__indicator {
5485
- background-color: var(--radio-color-checked-background);
5486
- border-width: var(--border-width-bold);
5487
- border-color: var(--radio-color-checked-border);
5488
- box-shadow: none;
5489
- }
5490
-
5491
- .muka-radio__input:checked + .muka-radio__indicator .muka-radio__dot {
5492
- background-color: var(--radio-color-checked-dot);
5493
- transform: scale(1);
5494
- }
5495
-
5496
- /* Disabled state */
5497
- .muka-radio--disabled .muka-radio__indicator {
5498
- background-color: var(--radio-color-disabled-background);
5499
- border-color: var(--radio-color-disabled-border);
5500
- box-shadow: none;
5501
- }
5502
-
5503
- .muka-radio__input:disabled:checked + .muka-radio__indicator .muka-radio__dot {
5504
- background-color: var(--radio-color-disabled-dot);
5505
- }
5506
-
5507
- /* Label text */
5508
- .muka-radio__label {
5509
- font-family: var(--text-label-lg-regular-fontFamily);
5510
- font-weight: var(--text-label-lg-regular-fontWeight);
5511
- font-size: var(--text-label-lg-regular-fontSize);
5512
- line-height: var(--text-label-lg-regular-lineHeight);
5513
- color: var(--color-text-default-default);
5514
- }
5515
-
5516
- .muka-radio--sm .muka-radio__label {
5517
- font-family: var(--text-label-md-regular-fontFamily);
5518
- font-weight: var(--text-label-md-regular-fontWeight);
5519
- font-size: var(--text-label-md-regular-fontSize);
5520
- line-height: var(--text-label-md-regular-lineHeight);
5521
- }
5522
-
5523
- .muka-radio--lg .muka-radio__label {
5524
- font-family: var(--text-label-xl-regular-fontFamily);
5525
- font-weight: var(--text-label-xl-regular-fontWeight);
5526
- font-size: var(--text-label-xl-regular-fontSize);
5527
- line-height: var(--text-label-xl-regular-lineHeight);
5528
- }
5529
-
5530
- .muka-radio--disabled .muka-radio__label {
5531
- color: var(--color-text-subtle-default);
5532
- }
5533
-
5534
-
5535
- /* PullToRefresh */
5536
- /* PullToRefresh Component Styles */
5537
-
5538
- .muka-pull-to-refresh {
5539
- position: relative;
5540
- display: flex;
5541
- flex-direction: column;
5542
- width: 100%;
5543
- height: 100%;
5544
- overflow: hidden;
5545
- }
5546
-
5547
- .muka-pull-to-refresh__indicator {
5548
- position: absolute;
5549
- top: 0;
5550
- left: 0;
5551
- right: 0;
5552
- display: flex;
5553
- align-items: flex-end;
5554
- justify-content: center;
5555
- padding-bottom: var(--spacing-2);
5556
- color: var(--color-text-subtle-default);
5557
- overflow: hidden;
5558
- pointer-events: none;
5559
- z-index: 1;
5560
- }
5561
-
5562
- .muka-pull-to-refresh__chevron {
5563
- display: inline-flex;
5564
- align-items: center;
5565
- justify-content: center;
5566
- transition: transform 0.16s ease;
5567
- }
5568
-
5569
- .muka-pull-to-refresh__scroller {
5570
- flex: 1 1 auto;
5571
- min-height: 0;
5572
- width: 100%;
5573
- overflow-x: clip;
5574
- overflow-y: auto;
5575
- -webkit-overflow-scrolling: touch;
5576
- overscroll-behavior-y: contain;
5577
- touch-action: pan-y;
5578
- will-change: transform;
5579
- }
5580
-
5581
-
5582
- /* ProgressTracker */
5583
- /* ProgressTracker Component Styles — Using Muka Design Tokens */
5584
-
5585
- /* ─── Root ──────────────────────────────────────────────── */
5586
- .muka-progress-tracker {
5587
- width: 100%;
5588
- padding-bottom: var(--spacing-7);
5589
- }
5590
-
5591
- /* ─── Track (layered container) ─────────────────────────── */
5592
- .muka-progress-tracker__track {
5593
- position: relative;
5594
- /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
5595
- padding-top: 14px;
5596
- padding-bottom: 14px;
5597
- }
5598
-
5599
- /* ─── Steps layer (on top) ──────────────────────────────── */
5600
- .muka-progress-tracker__steps {
5601
- position: absolute;
5602
- inset: 0;
5603
- display: flex;
5604
- align-items: flex-start;
5605
- justify-content: space-between;
5606
- z-index: 2;
5607
- }
5608
-
5609
- /* ─── Individual step ───────────────────────────────────── */
5610
- .muka-progress-tracker__step {
5611
- display: flex;
5612
- flex-direction: column;
5613
- align-items: center;
5614
- gap: 7px;
5615
- position: relative;
5616
- }
5617
-
5618
- /* ─── Step indicator (circle) ───────────────────────────── */
5619
- .muka-progress-tracker__indicator {
5620
- width: 32px;
5621
- height: 32px;
5622
- border-radius: var(--border-radius-full);
5623
- display: flex;
5624
- align-items: center;
5625
- justify-content: center;
5626
- flex-shrink: 0;
5627
- position: relative;
5540
+ display: flex;
5541
+ align-items: center;
5542
+ justify-content: center;
5543
+ flex-shrink: 0;
5544
+ position: relative;
5628
5545
  }
5629
5546
 
5630
5547
  /* Past: dark accent contrast circle with white checkmark */
@@ -5745,73 +5662,283 @@ body {
5745
5662
  }
5746
5663
 
5747
5664
 
5748
- /* Progress */
5749
- /* Progress Component Styles - Using Muka Design Tokens */
5750
-
5751
- /* ========================================
5752
- BAR VARIANT
5753
- ======================================== */
5665
+ /* ProgressAccordeon */
5666
+ /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
5754
5667
 
5755
- .muka-progress--bar {
5668
+ /* ─── Root ──────────────────────────────────────────────── */
5669
+ .muka-progress-accordeon {
5670
+ container-type: inline-size;
5756
5671
  display: flex;
5757
- align-items: center;
5758
- gap: var(--spacing-2);
5672
+ flex-direction: column;
5673
+ align-items: stretch;
5759
5674
  width: 100%;
5675
+ /* Top padding provides the vertical rhythm between stacked steps */
5676
+ padding-top: var(--spacing-8);
5760
5677
  }
5761
5678
 
5762
- .muka-progress--bar .muka-progress__track {
5763
- flex: 1;
5764
- background-color: var(--color-surface-level1);
5765
- border-radius: var(--border-radius-full);
5766
- overflow: hidden;
5767
- }
5768
-
5769
- .muka-progress--bar.muka-progress--sm .muka-progress__track {
5770
- height: var(--progress-size-bar-height-sm);
5679
+ /* Per-state gap: content-bearing steps are tighter, header-only steps looser */
5680
+ .muka-progress-accordeon--current,
5681
+ .muka-progress-accordeon--past.muka-progress-accordeon--expanded {
5682
+ gap: var(--spacing-6);
5771
5683
  }
5772
5684
 
5773
- .muka-progress--bar.muka-progress--md .muka-progress__track {
5774
- height: var(--progress-size-bar-height-md);
5685
+ .muka-progress-accordeon--upcoming,
5686
+ .muka-progress-accordeon--past.muka-progress-accordeon--collapsed {
5687
+ gap: var(--spacing-8);
5775
5688
  }
5776
5689
 
5777
- .muka-progress--bar.muka-progress--lg .muka-progress__track {
5778
- height: var(--progress-size-bar-height-lg);
5690
+ /* Past-expanded groups header + slot with a tighter internal gap */
5691
+ .muka-progress-accordeon__body {
5692
+ display: flex;
5693
+ flex-direction: column;
5694
+ gap: var(--spacing-4);
5695
+ width: 100%;
5779
5696
  }
5780
5697
 
5781
- .muka-progress--bar .muka-progress__fill {
5782
- height: 100%;
5783
- background-color: var(--color-action-default);
5784
- border-radius: var(--border-radius-full);
5785
- transition: width 0.3s ease;
5698
+ /* ─── Header ─────────────────────────────────────────────── */
5699
+ .muka-progress-accordeon__header {
5700
+ display: flex;
5701
+ flex-direction: column;
5702
+ gap: var(--spacing-3);
5703
+ width: 100%;
5786
5704
  }
5787
5705
 
5788
- .muka-progress--bar .muka-progress__label {
5789
- flex-shrink: 0;
5790
- font-family: var(--text-label-sm-semibold-fontFamily);
5791
- font-weight: var(--text-label-sm-semibold-fontWeight);
5792
- font-size: var(--text-label-sm-semibold-fontSize);
5793
- line-height: var(--text-label-sm-semibold-lineHeight);
5794
- color: var(--color-text-default-default);
5795
- min-width: 3ch;
5796
- text-align: right;
5706
+ .muka-progress-accordeon__header-row {
5707
+ display: flex;
5708
+ align-items: flex-start;
5709
+ gap: var(--spacing-3);
5710
+ width: 100%;
5711
+ min-height: 40px;
5797
5712
  }
5798
5713
 
5799
- /* Indeterminate animation for bar */
5800
- .muka-progress--bar.muka-progress--indeterminate .muka-progress__fill {
5801
- width: 40%;
5802
- animation: muka-progress-bar-indeterminate 1.5s ease-in-out infinite;
5714
+ .muka-progress-accordeon__heading-group {
5715
+ display: flex;
5716
+ flex: 1 0 0;
5717
+ min-width: 0;
5718
+ align-items: flex-start;
5719
+ gap: var(--spacing-4);
5803
5720
  }
5804
5721
 
5805
- @keyframes muka-progress-bar-indeterminate {
5806
- 0% {
5807
- transform: translateX(-100%);
5808
- }
5809
- 100% {
5810
- transform: translateX(250%);
5811
- }
5722
+ /* Past steps carry 40px controls; nudge the heading to vertically centre it */
5723
+ .muka-progress-accordeon--past .muka-progress-accordeon__heading-group {
5724
+ padding-top: var(--spacing-1);
5812
5725
  }
5813
5726
 
5814
- /* ========================================
5727
+ .muka-progress-accordeon__controls {
5728
+ display: flex;
5729
+ flex-shrink: 0;
5730
+ align-items: center;
5731
+ gap: var(--spacing-3);
5732
+ }
5733
+
5734
+ /* ─── Step indicator (circle) ───────────────────────────── */
5735
+ .muka-progress-accordeon__indicator {
5736
+ width: 32px;
5737
+ height: 32px;
5738
+ flex-shrink: 0;
5739
+ border-radius: var(--border-radius-full);
5740
+ display: flex;
5741
+ align-items: center;
5742
+ justify-content: center;
5743
+ }
5744
+
5745
+ /* Past: dark accent-contrast circle with inverse checkmark */
5746
+ .muka-progress-accordeon__indicator--past {
5747
+ background-color: var(--alias-color-accent-contrast);
5748
+ color: var(--color-text-default-inverse);
5749
+ }
5750
+
5751
+ /* Current: accent circle with inverse bold number */
5752
+ .muka-progress-accordeon__indicator--current {
5753
+ background-color: var(--alias-color-accent-default);
5754
+ color: var(--color-text-default-inverse);
5755
+ }
5756
+
5757
+ /* Upcoming: sunken/muted circle with default-color number */
5758
+ .muka-progress-accordeon__indicator--upcoming {
5759
+ background-color: var(--color-surface-sunken);
5760
+ color: var(--color-text-default-default);
5761
+ }
5762
+
5763
+ .muka-progress-accordeon__check-icon {
5764
+ width: 20px;
5765
+ height: 20px;
5766
+ color: var(--color-text-default-inverse);
5767
+ }
5768
+
5769
+ .muka-progress-accordeon__number {
5770
+ font-family: var(--text-label-md-bold-fontFamily);
5771
+ font-weight: var(--text-label-md-bold-fontWeight);
5772
+ font-size: var(--text-label-md-bold-fontSize);
5773
+ line-height: var(--text-label-md-bold-lineHeight);
5774
+ text-align: center;
5775
+ user-select: none;
5776
+ }
5777
+
5778
+ /* Upcoming number is semibold (not bold) per Figma */
5779
+ .muka-progress-accordeon__indicator--upcoming .muka-progress-accordeon__number {
5780
+ font-family: var(--text-label-md-semibold-fontFamily);
5781
+ font-weight: var(--text-label-md-semibold-fontWeight);
5782
+ }
5783
+
5784
+ /* ─── Heading (responsive: heading/md on wide, heading/sm on narrow) ─────── */
5785
+ .muka-progress-accordeon__heading {
5786
+ flex: 1 0 0;
5787
+ min-width: 0;
5788
+ margin: 0;
5789
+ font-family: var(--text-heading-md-fontFamily);
5790
+ font-weight: var(--text-heading-md-fontWeight);
5791
+ font-size: var(--text-heading-md-fontSize);
5792
+ line-height: var(--text-heading-md-lineHeight);
5793
+ letter-spacing: var(--text-heading-md-letterSpacing);
5794
+ color: var(--color-text-default-default);
5795
+ }
5796
+
5797
+ /* ─── Description ────────────────────────────────────────── */
5798
+ /* Indented 48px (32px indicator + 16px gap) to align under the heading text */
5799
+ .muka-progress-accordeon__description {
5800
+ width: 100%;
5801
+ padding-left: 48px;
5802
+ font-family: var(--text-body-base-regular-fontFamily);
5803
+ font-weight: var(--text-body-base-regular-fontWeight);
5804
+ font-size: var(--text-body-base-regular-fontSize);
5805
+ line-height: var(--text-body-base-regular-lineHeight);
5806
+ color: var(--color-text-default-default);
5807
+ }
5808
+
5809
+ /* ─── Edit button ────────────────────────────────────────── */
5810
+ .muka-progress-accordeon__edit {
5811
+ flex-shrink: 0;
5812
+ }
5813
+
5814
+ /* Wide container shows the labelled button; the icon-only one is hidden */
5815
+ .muka-progress-accordeon__edit--narrow {
5816
+ display: none;
5817
+ }
5818
+
5819
+ /* ─── Content slot ───────────────────────────────────────── */
5820
+ .muka-progress-accordeon__slot {
5821
+ display: flex;
5822
+ flex-direction: column;
5823
+ align-items: stretch;
5824
+ width: 100%;
5825
+ }
5826
+
5827
+ /* ─── Action buttons (current state) ─────────────────────── */
5828
+ .muka-progress-accordeon__actions {
5829
+ display: flex;
5830
+ justify-content: flex-end;
5831
+ gap: var(--spacing-4);
5832
+ width: 100%;
5833
+ }
5834
+
5835
+ .muka-progress-accordeon__action {
5836
+ min-width: 160px;
5837
+ }
5838
+
5839
+ /* ─── Divider ────────────────────────────────────────────── */
5840
+ .muka-progress-accordeon__divider {
5841
+ width: 100%;
5842
+ }
5843
+
5844
+ /* ─── Responsive (narrow container) ──────────────────────── */
5845
+ @container (max-width: 480px) {
5846
+ /* Heading steps down to heading/sm. The 24px line-height is shorter than the
5847
+ 32px step indicator, so nudge the text down to keep a single line centred. */
5848
+ .muka-progress-accordeon__heading {
5849
+ font-size: var(--text-heading-sm-fontSize);
5850
+ line-height: var(--text-heading-sm-lineHeight);
5851
+ padding-top: var(--spacing-1);
5852
+ }
5853
+
5854
+ /* Edit button swaps to the icon-only variant */
5855
+ .muka-progress-accordeon__edit--wide {
5856
+ display: none;
5857
+ }
5858
+
5859
+ .muka-progress-accordeon__edit--narrow {
5860
+ display: inline-flex;
5861
+ }
5862
+
5863
+ /* Action buttons stretch to fill the row */
5864
+ .muka-progress-accordeon__actions {
5865
+ justify-content: stretch;
5866
+ }
5867
+
5868
+ .muka-progress-accordeon__action {
5869
+ flex: 1 0 0;
5870
+ min-width: 0;
5871
+ }
5872
+ }
5873
+
5874
+
5875
+ /* Progress */
5876
+ /* Progress Component Styles - Using Muka Design Tokens */
5877
+
5878
+ /* ========================================
5879
+ BAR VARIANT
5880
+ ======================================== */
5881
+
5882
+ .muka-progress--bar {
5883
+ display: flex;
5884
+ align-items: center;
5885
+ gap: var(--spacing-2);
5886
+ width: 100%;
5887
+ }
5888
+
5889
+ .muka-progress--bar .muka-progress__track {
5890
+ flex: 1;
5891
+ background-color: var(--color-surface-level1);
5892
+ border-radius: var(--border-radius-full);
5893
+ overflow: hidden;
5894
+ }
5895
+
5896
+ .muka-progress--bar.muka-progress--sm .muka-progress__track {
5897
+ height: var(--progress-size-bar-height-sm);
5898
+ }
5899
+
5900
+ .muka-progress--bar.muka-progress--md .muka-progress__track {
5901
+ height: var(--progress-size-bar-height-md);
5902
+ }
5903
+
5904
+ .muka-progress--bar.muka-progress--lg .muka-progress__track {
5905
+ height: var(--progress-size-bar-height-lg);
5906
+ }
5907
+
5908
+ .muka-progress--bar .muka-progress__fill {
5909
+ height: 100%;
5910
+ background-color: var(--color-action-default);
5911
+ border-radius: var(--border-radius-full);
5912
+ transition: width 0.3s ease;
5913
+ }
5914
+
5915
+ .muka-progress--bar .muka-progress__label {
5916
+ flex-shrink: 0;
5917
+ font-family: var(--text-label-sm-semibold-fontFamily);
5918
+ font-weight: var(--text-label-sm-semibold-fontWeight);
5919
+ font-size: var(--text-label-sm-semibold-fontSize);
5920
+ line-height: var(--text-label-sm-semibold-lineHeight);
5921
+ color: var(--color-text-default-default);
5922
+ min-width: 3ch;
5923
+ text-align: right;
5924
+ }
5925
+
5926
+ /* Indeterminate animation for bar */
5927
+ .muka-progress--bar.muka-progress--indeterminate .muka-progress__fill {
5928
+ width: 40%;
5929
+ animation: muka-progress-bar-indeterminate 1.5s ease-in-out infinite;
5930
+ }
5931
+
5932
+ @keyframes muka-progress-bar-indeterminate {
5933
+ 0% {
5934
+ transform: translateX(-100%);
5935
+ }
5936
+ 100% {
5937
+ transform: translateX(250%);
5938
+ }
5939
+ }
5940
+
5941
+ /* ========================================
5815
5942
  CIRCLE VARIANT
5816
5943
  ======================================== */
5817
5944
 
@@ -6345,6 +6472,34 @@ body {
6345
6472
  }
6346
6473
 
6347
6474
 
6475
+ /* NavigationTransition */
6476
+ /* NavigationTransition Component Styles */
6477
+
6478
+ /* ─── Wrapper ────────────────────────────────────────── */
6479
+
6480
+ .muka-nav-transition {
6481
+ position: relative;
6482
+ height: 100vh;
6483
+ overflow: hidden;
6484
+ }
6485
+
6486
+ /* Disable interaction during animation */
6487
+ .muka-nav-transition--active {
6488
+ pointer-events: none;
6489
+ }
6490
+
6491
+ /* ─── View slots ─────────────────────────────────────── */
6492
+
6493
+ .muka-nav-transition--active .muka-nav-transition__view {
6494
+ position: absolute;
6495
+ inset: 0;
6496
+ }
6497
+
6498
+ /* Z-index layering */
6499
+ .muka-nav-transition__view--bottom { z-index: 1; }
6500
+ .muka-nav-transition__view--top { z-index: 2; }
6501
+
6502
+
6348
6503
  /* Menu */
6349
6504
  /* Menu Component Styles */
6350
6505
 
@@ -6628,34 +6783,6 @@ body {
6628
6783
  }
6629
6784
 
6630
6785
 
6631
- /* NavigationTransition */
6632
- /* NavigationTransition Component Styles */
6633
-
6634
- /* ─── Wrapper ────────────────────────────────────────── */
6635
-
6636
- .muka-nav-transition {
6637
- position: relative;
6638
- height: 100vh;
6639
- overflow: hidden;
6640
- }
6641
-
6642
- /* Disable interaction during animation */
6643
- .muka-nav-transition--active {
6644
- pointer-events: none;
6645
- }
6646
-
6647
- /* ─── View slots ─────────────────────────────────────── */
6648
-
6649
- .muka-nav-transition--active .muka-nav-transition__view {
6650
- position: absolute;
6651
- inset: 0;
6652
- }
6653
-
6654
- /* Z-index layering */
6655
- .muka-nav-transition__view--bottom { z-index: 1; }
6656
- .muka-nav-transition__view--top { z-index: 2; }
6657
-
6658
-
6659
6786
  /* ListItem */
6660
6787
  /* ListItem Component Styles - Using Muka Design Tokens */
6661
6788
 
@@ -6678,7 +6805,7 @@ body {
6678
6805
  position: relative;
6679
6806
 
6680
6807
  /* Interaction - only apply if interactive */
6681
- transition: background-color 0.2s ease;
6808
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
6682
6809
  }
6683
6810
 
6684
6811
  /* Interactive state */
@@ -6686,13 +6813,19 @@ body {
6686
6813
  cursor: pointer;
6687
6814
  }
6688
6815
 
6816
+ /*
6817
+ * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
6818
+ * are layered on top of the item's base surface via an inset box-shadow overlay
6819
+ * rather than replacing background-color. This preserves the base level (level3,
6820
+ * or level2 when selected) and lets the tint read correctly on any surface.
6821
+ */
6689
6822
  .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
6690
- background-color: var(--color-surface-hover);
6823
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
6691
6824
  }
6692
6825
 
6693
6826
  .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
6694
6827
  .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
6695
- background-color: var(--color-surface-pressed);
6828
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
6696
6829
  }
6697
6830
 
6698
6831
  /* Focus styles for accessibility */
@@ -6718,7 +6851,7 @@ body {
6718
6851
  }
6719
6852
 
6720
6853
  .muka-listitem--selected:hover {
6721
- background-color: var(--color-surface-hover);
6854
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
6722
6855
  }
6723
6856
 
6724
6857
  /* No divider modifier */
@@ -7348,22 +7481,284 @@ li.muka-listitem {
7348
7481
  }
7349
7482
 
7350
7483
 
7351
- /* FAB */
7352
- /* FAB (Floating Action Button) Component Styles */
7484
+ /* FileUpload */
7485
+ /* FileUpload Component Styles */
7353
7486
 
7354
- .muka-fab {
7355
- position: fixed;
7356
- z-index: 40;
7487
+ .muka-fileupload-wrapper {
7488
+ display: flex;
7489
+ flex-direction: column;
7490
+ gap: var(--spacing-3);
7491
+ width: 100%;
7492
+ }
7357
7493
 
7358
- display: inline-flex;
7494
+ /* Dropzone */
7495
+ .muka-fileupload {
7496
+ display: flex;
7497
+ flex-direction: column;
7359
7498
  align-items: center;
7360
7499
  justify-content: center;
7361
- gap: var(--spacing-2);
7362
-
7363
- border: none;
7500
+ gap: var(--fileupload-dropzone-gap);
7501
+ padding: var(--fileupload-dropzone-padding-md);
7502
+ background-color: var(--fileupload-dropzone-color-default-background);
7503
+ border: var(--fileupload-dropzone-border-width) dashed var(--fileupload-dropzone-color-default-border);
7504
+ border-radius: var(--fileupload-dropzone-radius);
7364
7505
  cursor: pointer;
7365
- font-family: inherit;
7366
- box-shadow: var(--shadow-level4);
7506
+ transition: background-color 0.2s ease, border-color 0.2s ease;
7507
+ text-align: center;
7508
+ min-height: 120px;
7509
+ }
7510
+
7511
+ .muka-fileupload:focus-visible {
7512
+ outline: 2px solid var(--color-border-focus);
7513
+ outline-offset: 2px;
7514
+ }
7515
+
7516
+ /* Size variants */
7517
+ .muka-fileupload--sm {
7518
+ padding: var(--fileupload-dropzone-padding-sm);
7519
+ min-height: 80px;
7520
+ }
7521
+
7522
+ .muka-fileupload--lg {
7523
+ padding: var(--fileupload-dropzone-padding-lg);
7524
+ min-height: 160px;
7525
+ }
7526
+
7527
+ /* Button variant */
7528
+ .muka-fileupload--button {
7529
+ flex-direction: row;
7530
+ min-height: auto;
7531
+ padding: var(--spacing-2) var(--spacing-3);
7532
+ border-style: solid;
7533
+ border-width: var(--border-width-regular);
7534
+ border-radius: var(--border-radius-md);
7535
+ }
7536
+
7537
+ /* Hover state */
7538
+ .muka-fileupload:hover:not(.muka-fileupload--disabled) {
7539
+ background-color: var(--fileupload-dropzone-color-hover-background);
7540
+ border-color: var(--fileupload-dropzone-color-hover-border);
7541
+ }
7542
+
7543
+ /* Active/drag state */
7544
+ .muka-fileupload--active:not(.muka-fileupload--disabled) {
7545
+ background-color: var(--fileupload-dropzone-color-active-background);
7546
+ border-color: var(--fileupload-dropzone-color-active-border);
7547
+ }
7548
+
7549
+ /* Disabled state */
7550
+ .muka-fileupload--disabled {
7551
+ background-color: var(--fileupload-dropzone-color-disabled-background);
7552
+ border-color: var(--fileupload-dropzone-color-disabled-border);
7553
+ cursor: not-allowed;
7554
+ opacity: 0.6;
7555
+ }
7556
+
7557
+ /* Hidden file input */
7558
+ .muka-fileupload__input {
7559
+ position: absolute;
7560
+ width: 1px;
7561
+ height: 1px;
7562
+ padding: 0;
7563
+ margin: -1px;
7564
+ overflow: hidden;
7565
+ clip: rect(0, 0, 0, 0);
7566
+ white-space: nowrap;
7567
+ border: 0;
7568
+ }
7569
+
7570
+ /* Content container */
7571
+ .muka-fileupload__content {
7572
+ display: flex;
7573
+ flex-direction: column;
7574
+ align-items: center;
7575
+ gap: var(--spacing-2);
7576
+ }
7577
+
7578
+ /* Upload icon */
7579
+ .muka-fileupload__icon {
7580
+ display: flex;
7581
+ align-items: center;
7582
+ justify-content: center;
7583
+ width: var(--size-3xl);
7584
+ height: var(--size-3xl);
7585
+ color: var(--fileupload-dropzone-color-default-foreground);
7586
+ }
7587
+
7588
+ .muka-fileupload__icon svg {
7589
+ width: 100%;
7590
+ height: 100%;
7591
+ }
7592
+
7593
+ .muka-fileupload--sm .muka-fileupload__icon {
7594
+ width: var(--size-2xl);
7595
+ height: var(--size-2xl);
7596
+ }
7597
+
7598
+ .muka-fileupload--lg .muka-fileupload__icon {
7599
+ width: var(--size-4xl);
7600
+ height: var(--size-4xl);
7601
+ }
7602
+
7603
+ /* Text */
7604
+ .muka-fileupload__text {
7605
+ font-family: var(--text-body-md-regular-fontFamily);
7606
+ font-size: var(--text-body-md-regular-fontSize);
7607
+ font-weight: var(--text-body-md-regular-fontWeight);
7608
+ line-height: var(--text-body-md-regular-lineHeight);
7609
+ color: var(--color-text-default-default);
7610
+ }
7611
+
7612
+ .muka-fileupload--sm .muka-fileupload__text {
7613
+ font-size: var(--text-body-sm-regular-fontSize);
7614
+ }
7615
+
7616
+ /* Hint text */
7617
+ .muka-fileupload__hint {
7618
+ font-family: var(--text-label-sm-regular-fontFamily);
7619
+ font-size: var(--text-label-sm-regular-fontSize);
7620
+ font-weight: var(--text-label-sm-regular-fontWeight);
7621
+ line-height: var(--text-label-sm-regular-lineHeight);
7622
+ color: var(--fileupload-dropzone-color-default-foreground);
7623
+ }
7624
+
7625
+ /* File list */
7626
+ .muka-fileupload__list {
7627
+ display: flex;
7628
+ flex-direction: column;
7629
+ gap: var(--spacing-2);
7630
+ list-style: none;
7631
+ margin: 0;
7632
+ padding: 0;
7633
+ }
7634
+
7635
+ .muka-fileupload__list li {
7636
+ margin: 0;
7637
+ padding: 0;
7638
+ }
7639
+
7640
+ /* File item */
7641
+ .muka-fileupload-item {
7642
+ display: flex;
7643
+ align-items: center;
7644
+ gap: var(--fileupload-item-gap);
7645
+ padding: var(--fileupload-item-padding-y) var(--fileupload-item-padding-x);
7646
+ background-color: var(--fileupload-item-color-default-background);
7647
+ border-radius: var(--fileupload-item-radius);
7648
+ }
7649
+
7650
+ .muka-fileupload-item--error {
7651
+ background-color: var(--fileupload-item-color-error-background);
7652
+ }
7653
+
7654
+ .muka-fileupload-item--success {
7655
+ background-color: var(--fileupload-item-color-default-background);
7656
+ }
7657
+
7658
+ /* Preview/Icon container */
7659
+ .muka-fileupload-item__preview {
7660
+ display: flex;
7661
+ align-items: center;
7662
+ justify-content: center;
7663
+ flex-shrink: 0;
7664
+ width: var(--fileupload-preview-size);
7665
+ height: var(--fileupload-preview-size);
7666
+ border-radius: var(--fileupload-preview-radius);
7667
+ overflow: hidden;
7668
+ background-color: var(--color-surface-level1);
7669
+ }
7670
+
7671
+ .muka-fileupload-item__thumbnail {
7672
+ width: 100%;
7673
+ height: 100%;
7674
+ object-fit: cover;
7675
+ }
7676
+
7677
+ .muka-fileupload-item__icon {
7678
+ color: var(--color-text-subtle-default);
7679
+ }
7680
+
7681
+ /* File info */
7682
+ .muka-fileupload-item__info {
7683
+ flex: 1;
7684
+ min-width: 0;
7685
+ display: flex;
7686
+ flex-direction: column;
7687
+ gap: var(--spacing-1);
7688
+ }
7689
+
7690
+ .muka-fileupload-item__name {
7691
+ font-family: var(--text-body-sm-medium-fontFamily);
7692
+ font-size: var(--text-body-sm-medium-fontSize);
7693
+ font-weight: var(--text-body-sm-medium-fontWeight);
7694
+ line-height: var(--text-body-sm-medium-lineHeight);
7695
+ color: var(--fileupload-item-color-default-foreground);
7696
+ white-space: nowrap;
7697
+ overflow: hidden;
7698
+ text-overflow: ellipsis;
7699
+ }
7700
+
7701
+ .muka-fileupload-item--error .muka-fileupload-item__name {
7702
+ color: var(--fileupload-item-color-error-foreground);
7703
+ }
7704
+
7705
+ .muka-fileupload-item__meta {
7706
+ font-family: var(--text-label-sm-regular-fontFamily);
7707
+ font-size: var(--text-label-sm-regular-fontSize);
7708
+ font-weight: var(--text-label-sm-regular-fontWeight);
7709
+ line-height: var(--text-label-sm-regular-lineHeight);
7710
+ color: var(--color-text-subtle-default);
7711
+ }
7712
+
7713
+ .muka-fileupload-item__error {
7714
+ color: var(--fileupload-item-color-error-foreground);
7715
+ }
7716
+
7717
+ .muka-fileupload-item__progress {
7718
+ margin-top: var(--spacing-1);
7719
+ }
7720
+
7721
+ /* Actions */
7722
+ .muka-fileupload-item__actions {
7723
+ display: flex;
7724
+ align-items: center;
7725
+ gap: var(--spacing-2);
7726
+ flex-shrink: 0;
7727
+ }
7728
+
7729
+ .muka-fileupload-item__status-icon--success {
7730
+ color: var(--color-state-success-foreground);
7731
+ }
7732
+
7733
+ .muka-fileupload-item__status-icon--error {
7734
+ color: var(--color-state-error-foreground);
7735
+ }
7736
+
7737
+ .muka-fileupload-item__remove {
7738
+ opacity: 0.7;
7739
+ }
7740
+
7741
+ .muka-fileupload-item__remove:hover {
7742
+ opacity: 1;
7743
+ }
7744
+
7745
+
7746
+ /* FAB */
7747
+ /* FAB (Floating Action Button) Component Styles */
7748
+
7749
+ .muka-fab {
7750
+ position: fixed;
7751
+ z-index: 40;
7752
+
7753
+ display: inline-flex;
7754
+ align-items: center;
7755
+ justify-content: center;
7756
+ gap: var(--spacing-2);
7757
+
7758
+ border: none;
7759
+ cursor: pointer;
7760
+ font-family: inherit;
7761
+ box-shadow: var(--shadow-level4);
7367
7762
 
7368
7763
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
7369
7764
  -webkit-tap-highlight-color: transparent;
@@ -8879,360 +9274,229 @@ li.muka-listitem {
8879
9274
  }
8880
9275
 
8881
9276
 
8882
- /* FileUpload */
8883
- /* FileUpload Component Styles */
9277
+ /* DataPieChart */
9278
+ /* DataPieChart Component Styles - Using Muka Design Tokens */
8884
9279
 
8885
- .muka-fileupload-wrapper {
8886
- display: flex;
8887
- flex-direction: column;
8888
- gap: var(--spacing-3);
8889
- width: 100%;
8890
- }
8891
-
8892
- /* Dropzone */
8893
- .muka-fileupload {
8894
- display: flex;
8895
- flex-direction: column;
9280
+ .muka-data-pie-chart {
9281
+ position: relative;
9282
+ display: inline-flex;
8896
9283
  align-items: center;
8897
9284
  justify-content: center;
8898
- gap: var(--fileupload-dropzone-gap);
8899
- padding: var(--fileupload-dropzone-padding-md);
8900
- background-color: var(--fileupload-dropzone-color-default-background);
8901
- border: var(--fileupload-dropzone-border-width) dashed var(--fileupload-dropzone-color-default-border);
8902
- border-radius: var(--fileupload-dropzone-radius);
8903
- cursor: pointer;
8904
- transition: background-color 0.2s ease, border-color 0.2s ease;
8905
- text-align: center;
8906
- min-height: 120px;
8907
- }
8908
-
8909
- .muka-fileupload:focus-visible {
8910
- outline: 2px solid var(--color-border-focus);
8911
- outline-offset: 2px;
8912
- }
8913
-
8914
- /* Size variants */
8915
- .muka-fileupload--sm {
8916
- padding: var(--fileupload-dropzone-padding-sm);
8917
- min-height: 80px;
8918
- }
8919
-
8920
- .muka-fileupload--lg {
8921
- padding: var(--fileupload-dropzone-padding-lg);
8922
- min-height: 160px;
8923
- }
8924
-
8925
- /* Button variant */
8926
- .muka-fileupload--button {
8927
- flex-direction: row;
8928
- min-height: auto;
8929
- padding: var(--spacing-2) var(--spacing-3);
8930
- border-style: solid;
8931
- border-width: var(--border-width-regular);
8932
- border-radius: var(--border-radius-md);
9285
+ flex-shrink: 0;
8933
9286
  }
8934
9287
 
8935
- /* Hover state */
8936
- .muka-fileupload:hover:not(.muka-fileupload--disabled) {
8937
- background-color: var(--fileupload-dropzone-color-hover-background);
8938
- border-color: var(--fileupload-dropzone-color-hover-border);
9288
+ .muka-data-pie-chart__svg {
9289
+ display: block;
9290
+ width: 100%;
9291
+ height: 100%;
9292
+ /* Start the segment at 12 o'clock instead of 3 o'clock */
9293
+ transform: rotate(-90deg);
8939
9294
  }
8940
9295
 
8941
- /* Active/drag state */
8942
- .muka-fileupload--active:not(.muka-fileupload--disabled) {
8943
- background-color: var(--fileupload-dropzone-color-active-background);
8944
- border-color: var(--fileupload-dropzone-color-active-border);
9296
+ .muka-data-pie-chart__track {
9297
+ fill: none;
8945
9298
  }
8946
9299
 
8947
- /* Disabled state */
8948
- .muka-fileupload--disabled {
8949
- background-color: var(--fileupload-dropzone-color-disabled-background);
8950
- border-color: var(--fileupload-dropzone-color-disabled-border);
8951
- cursor: not-allowed;
8952
- opacity: 0.6;
9300
+ .muka-data-pie-chart__segment {
9301
+ fill: none;
9302
+ /* Subtle lift on the filled segment, matching the Figma elevation */
9303
+ filter: drop-shadow(0 2px 4px var(--color-black-alpha-5, rgba(0, 0, 0, 0.05)));
9304
+ transition: stroke-dasharray 0.3s ease;
8953
9305
  }
8954
9306
 
8955
- /* Hidden file input */
8956
- .muka-fileupload__input {
9307
+ .muka-data-pie-chart__value {
8957
9308
  position: absolute;
8958
- width: 1px;
8959
- height: 1px;
8960
- padding: 0;
8961
- margin: -1px;
8962
- overflow: hidden;
8963
- clip: rect(0, 0, 0, 0);
8964
- white-space: nowrap;
8965
- border: 0;
8966
- }
8967
-
8968
- /* Content container */
8969
- .muka-fileupload__content {
8970
- display: flex;
8971
- flex-direction: column;
8972
- align-items: center;
8973
- gap: var(--spacing-2);
8974
- }
8975
-
8976
- /* Upload icon */
8977
- .muka-fileupload__icon {
9309
+ inset: 0;
8978
9310
  display: flex;
8979
9311
  align-items: center;
8980
9312
  justify-content: center;
8981
- width: var(--size-3xl);
8982
- height: var(--size-3xl);
8983
- color: var(--fileupload-dropzone-color-default-foreground);
9313
+ font-family: var(--text-body-base-bold-fontFamily);
9314
+ font-weight: var(--text-body-base-bold-fontWeight);
9315
+ font-size: var(--text-body-base-bold-fontSize);
9316
+ line-height: var(--text-body-base-bold-lineHeight);
9317
+ color: var(--color-text-default-default);
8984
9318
  }
8985
9319
 
8986
- .muka-fileupload__icon svg {
8987
- width: 100%;
8988
- height: 100%;
8989
- }
8990
9320
 
8991
- .muka-fileupload--sm .muka-fileupload__icon {
8992
- width: var(--size-2xl);
8993
- height: var(--size-2xl);
8994
- }
9321
+ /* Container */
9322
+ /* Container Component - Layout tokens (container.max-width, container.gap) */
8995
9323
 
8996
- .muka-fileupload--lg .muka-fileupload__icon {
8997
- width: var(--size-4xl);
8998
- height: var(--size-4xl);
9324
+ .muka-container {
9325
+ box-sizing: border-box;
9326
+ width: 100%;
9327
+ margin-inline: auto;
8999
9328
  }
9000
9329
 
9001
- /* Text */
9002
- .muka-fileupload__text {
9003
- font-family: var(--text-body-md-regular-fontFamily);
9004
- font-size: var(--text-body-md-regular-fontSize);
9005
- font-weight: var(--text-body-md-regular-fontWeight);
9006
- line-height: var(--text-body-md-regular-lineHeight);
9007
- color: var(--color-text-default-default);
9330
+ /* Max-width variants */
9331
+ .muka-container--max-width-small {
9332
+ max-width: var(--container-max-width-small);
9008
9333
  }
9009
9334
 
9010
- .muka-fileupload--sm .muka-fileupload__text {
9011
- font-size: var(--text-body-sm-regular-fontSize);
9335
+ .muka-container--max-width-medium {
9336
+ max-width: var(--container-max-width-medium);
9012
9337
  }
9013
9338
 
9014
- /* Hint text */
9015
- .muka-fileupload__hint {
9016
- font-family: var(--text-label-sm-regular-fontFamily);
9017
- font-size: var(--text-label-sm-regular-fontSize);
9018
- font-weight: var(--text-label-sm-regular-fontWeight);
9019
- line-height: var(--text-label-sm-regular-lineHeight);
9020
- color: var(--fileupload-dropzone-color-default-foreground);
9339
+ .muka-container--max-width-large {
9340
+ max-width: var(--container-max-width-large);
9021
9341
  }
9022
9342
 
9023
- /* File list */
9024
- .muka-fileupload__list {
9025
- display: flex;
9026
- flex-direction: column;
9027
- gap: var(--spacing-2);
9028
- list-style: none;
9029
- margin: 0;
9030
- padding: 0;
9343
+ .muka-container--max-width-xlarge {
9344
+ max-width: var(--container-max-width-xlarge);
9031
9345
  }
9032
9346
 
9033
- .muka-fileupload__list li {
9034
- margin: 0;
9035
- padding: 0;
9347
+ /* No gap — max-width only, no flex */
9348
+ .muka-container--gap-none {
9349
+ /* block layout by default */
9036
9350
  }
9037
9351
 
9038
- /* File item */
9039
- .muka-fileupload-item {
9352
+ /* Gap variants — flex column with token gap */
9353
+ .muka-container--gap-compact {
9040
9354
  display: flex;
9041
- align-items: center;
9042
- gap: var(--fileupload-item-gap);
9043
- padding: var(--fileupload-item-padding-y) var(--fileupload-item-padding-x);
9044
- background-color: var(--fileupload-item-color-default-background);
9045
- border-radius: var(--fileupload-item-radius);
9046
- }
9047
-
9048
- .muka-fileupload-item--error {
9049
- background-color: var(--fileupload-item-color-error-background);
9050
- }
9051
-
9052
- .muka-fileupload-item--success {
9053
- background-color: var(--fileupload-item-color-default-background);
9355
+ flex-direction: column;
9356
+ gap: var(--container-gap-compact);
9054
9357
  }
9055
9358
 
9056
- /* Preview/Icon container */
9057
- .muka-fileupload-item__preview {
9359
+ .muka-container--gap-default {
9058
9360
  display: flex;
9059
- align-items: center;
9060
- justify-content: center;
9061
- flex-shrink: 0;
9062
- width: var(--fileupload-preview-size);
9063
- height: var(--fileupload-preview-size);
9064
- border-radius: var(--fileupload-preview-radius);
9065
- overflow: hidden;
9066
- background-color: var(--color-surface-level1);
9067
- }
9068
-
9069
- .muka-fileupload-item__thumbnail {
9070
- width: 100%;
9071
- height: 100%;
9072
- object-fit: cover;
9073
- }
9074
-
9075
- .muka-fileupload-item__icon {
9076
- color: var(--color-text-subtle-default);
9361
+ flex-direction: column;
9362
+ gap: var(--container-gap-default);
9077
9363
  }
9078
9364
 
9079
- /* File info */
9080
- .muka-fileupload-item__info {
9081
- flex: 1;
9082
- min-width: 0;
9365
+ .muka-container--gap-spacious {
9083
9366
  display: flex;
9084
9367
  flex-direction: column;
9085
- gap: var(--spacing-1);
9086
- }
9087
-
9088
- .muka-fileupload-item__name {
9089
- font-family: var(--text-body-sm-medium-fontFamily);
9090
- font-size: var(--text-body-sm-medium-fontSize);
9091
- font-weight: var(--text-body-sm-medium-fontWeight);
9092
- line-height: var(--text-body-sm-medium-lineHeight);
9093
- color: var(--fileupload-item-color-default-foreground);
9094
- white-space: nowrap;
9095
- overflow: hidden;
9096
- text-overflow: ellipsis;
9368
+ gap: var(--container-gap-spacious);
9097
9369
  }
9098
9370
 
9099
- .muka-fileupload-item--error .muka-fileupload-item__name {
9100
- color: var(--fileupload-item-color-error-foreground);
9101
- }
9102
9371
 
9103
- .muka-fileupload-item__meta {
9104
- font-family: var(--text-label-sm-regular-fontFamily);
9105
- font-size: var(--text-label-sm-regular-fontSize);
9106
- font-weight: var(--text-label-sm-regular-fontWeight);
9107
- line-height: var(--text-label-sm-regular-lineHeight);
9108
- color: var(--color-text-subtle-default);
9109
- }
9110
-
9111
- .muka-fileupload-item__error {
9112
- color: var(--fileupload-item-color-error-foreground);
9113
- }
9372
+ /* Combobox */
9373
+ /* Combobox Component Styles */
9114
9374
 
9115
- .muka-fileupload-item__progress {
9116
- margin-top: var(--spacing-1);
9117
- }
9375
+ /* ─── Trigger (looks like an Input field, behaves like a button) ── */
9118
9376
 
9119
- /* Actions */
9120
- .muka-fileupload-item__actions {
9121
- display: flex;
9377
+ .muka-combobox {
9378
+ display: inline-flex;
9122
9379
  align-items: center;
9123
9380
  gap: var(--spacing-2);
9124
- flex-shrink: 0;
9125
- }
9126
-
9127
- .muka-fileupload-item__status-icon--success {
9128
- color: var(--color-state-success-foreground);
9129
- }
9130
-
9131
- .muka-fileupload-item__status-icon--error {
9132
- color: var(--color-state-error-foreground);
9133
- }
9134
-
9135
- .muka-fileupload-item__remove {
9136
- opacity: 0.7;
9137
- }
9138
-
9139
- .muka-fileupload-item__remove:hover {
9140
- opacity: 1;
9381
+ width: 100%;
9382
+ padding: 0 var(--input-field-padding-x);
9383
+ background-color: var(--input-field-color-default-background);
9384
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
9385
+ color: var(--color-text-default-default);
9386
+ text-align: left;
9387
+ cursor: pointer;
9388
+ font-family: var(--text-body-md-regular-fontFamily);
9389
+ font-weight: var(--text-body-md-regular-fontWeight);
9390
+ font-size: var(--text-body-md-regular-fontSize);
9391
+ line-height: var(--text-body-md-regular-lineHeight);
9392
+ -webkit-tap-highlight-color: transparent;
9393
+ transition: border-color 0.12s ease;
9141
9394
  }
9142
9395
 
9143
-
9144
- /* DataPieChart */
9145
- /* DataPieChart Component Styles - Using Muka Design Tokens */
9146
-
9147
- .muka-data-pie-chart {
9148
- position: relative;
9149
- display: inline-flex;
9150
- align-items: center;
9151
- justify-content: center;
9152
- flex-shrink: 0;
9396
+ .muka-combobox--sm {
9397
+ min-height: var(--input-field-height-sm);
9398
+ border-radius: var(--input-field-radius-sm);
9153
9399
  }
9154
9400
 
9155
- .muka-data-pie-chart__svg {
9156
- display: block;
9157
- width: 100%;
9158
- height: 100%;
9159
- /* Start the segment at 12 o'clock instead of 3 o'clock */
9160
- transform: rotate(-90deg);
9401
+ .muka-combobox--md {
9402
+ min-height: var(--input-field-height-default);
9403
+ border-radius: var(--input-field-radius-md);
9161
9404
  }
9162
9405
 
9163
- .muka-data-pie-chart__track {
9164
- fill: none;
9406
+ .muka-combobox--lg {
9407
+ min-height: var(--input-field-height-lg);
9408
+ border-radius: var(--input-field-radius-lg);
9165
9409
  }
9166
9410
 
9167
- .muka-data-pie-chart__segment {
9168
- fill: none;
9169
- /* Subtle lift on the filled segment, matching the Figma elevation */
9170
- filter: drop-shadow(0 2px 4px var(--color-black-alpha-5, rgba(0, 0, 0, 0.05)));
9171
- transition: stroke-dasharray 0.3s ease;
9411
+ .muka-combobox:hover:not(:disabled) {
9412
+ border-color: var(--input-field-color-hover-border, var(--input-field-color-default-border));
9172
9413
  }
9173
9414
 
9174
- .muka-data-pie-chart__value {
9175
- position: absolute;
9176
- inset: 0;
9177
- display: flex;
9178
- align-items: center;
9179
- justify-content: center;
9180
- font-family: var(--text-body-base-bold-fontFamily);
9181
- font-weight: var(--text-body-base-bold-fontWeight);
9182
- font-size: var(--text-body-base-bold-fontSize);
9183
- line-height: var(--text-body-base-bold-lineHeight);
9184
- color: var(--color-text-default-default);
9415
+ .muka-combobox:focus-visible {
9416
+ outline: none;
9417
+ border-color: var(--input-field-color-focus-border, var(--color-action-default));
9185
9418
  }
9186
9419
 
9420
+ .muka-combobox--disabled,
9421
+ .muka-combobox:disabled {
9422
+ opacity: 0.5;
9423
+ cursor: not-allowed;
9424
+ }
9187
9425
 
9188
- /* Container */
9189
- /* Container Component - Layout tokens (container.max-width, container.gap) */
9190
-
9191
- .muka-container {
9192
- box-sizing: border-box;
9193
- width: 100%;
9194
- margin-inline: auto;
9426
+ .muka-combobox--placeholder .muka-combobox__label {
9427
+ color: var(--color-text-subtle-default);
9195
9428
  }
9196
9429
 
9197
- /* Max-width variants */
9198
- .muka-container--max-width-small {
9199
- max-width: var(--container-max-width-small);
9430
+ .muka-combobox__leading {
9431
+ display: inline-flex;
9432
+ align-items: center;
9433
+ justify-content: center;
9434
+ flex-shrink: 0;
9435
+ color: var(--color-text-subtle-default);
9200
9436
  }
9201
9437
 
9202
- .muka-container--max-width-medium {
9203
- max-width: var(--container-max-width-medium);
9438
+ .muka-combobox__label {
9439
+ flex: 1 1 auto;
9440
+ min-width: 0;
9441
+ white-space: nowrap;
9442
+ overflow: hidden;
9443
+ text-overflow: ellipsis;
9204
9444
  }
9205
9445
 
9206
- .muka-container--max-width-large {
9207
- max-width: var(--container-max-width-large);
9446
+ .muka-combobox__clear,
9447
+ .muka-combobox__chevron {
9448
+ display: inline-flex;
9449
+ align-items: center;
9450
+ justify-content: center;
9451
+ flex-shrink: 0;
9452
+ color: var(--color-text-subtle-default);
9208
9453
  }
9209
9454
 
9210
- .muka-container--max-width-xlarge {
9211
- max-width: var(--container-max-width-xlarge);
9455
+ .muka-combobox__clear {
9456
+ cursor: pointer;
9457
+ padding: var(--spacing-1);
9458
+ border-radius: var(--radius-sm);
9212
9459
  }
9213
9460
 
9214
- /* No gap — max-width only, no flex */
9215
- .muka-container--gap-none {
9216
- /* block layout by default */
9461
+ .muka-combobox__clear:hover {
9462
+ color: var(--color-text-default-default);
9463
+ background-color: var(--color-surface-level1);
9217
9464
  }
9218
9465
 
9219
- /* Gap variants — flex column with token gap */
9220
- .muka-container--gap-compact {
9466
+ /* ─── Picker sheet body ───────────────────────────────── */
9467
+
9468
+ .muka-combobox__picker {
9221
9469
  display: flex;
9222
9470
  flex-direction: column;
9223
- gap: var(--container-gap-compact);
9471
+ gap: var(--spacing-3);
9472
+ padding: 0 var(--spacing-4) var(--spacing-4);
9473
+ min-height: 0;
9474
+ max-height: 80vh;
9224
9475
  }
9225
9476
 
9226
- .muka-container--gap-default {
9227
- display: flex;
9228
- flex-direction: column;
9229
- gap: var(--container-gap-default);
9477
+ .muka-combobox__title {
9478
+ margin: 0;
9479
+ padding: var(--spacing-2) 0;
9480
+ color: var(--color-text-default-default);
9481
+ font-family: var(--text-heading-sm-fontFamily);
9482
+ font-weight: var(--text-heading-sm-fontWeight);
9483
+ font-size: var(--text-heading-sm-fontSize);
9484
+ line-height: var(--text-heading-sm-lineHeight);
9230
9485
  }
9231
9486
 
9232
- .muka-container--gap-spacious {
9233
- display: flex;
9234
- flex-direction: column;
9235
- gap: var(--container-gap-spacious);
9487
+ .muka-combobox__search {
9488
+ position: sticky;
9489
+ top: 0;
9490
+ z-index: 1;
9491
+ padding-bottom: var(--spacing-2);
9492
+ background-color: var(--color-surface-level3);
9493
+ }
9494
+
9495
+ .muka-combobox__list {
9496
+ flex: 1 1 auto;
9497
+ min-height: 0;
9498
+ overflow-y: auto;
9499
+ -webkit-overflow-scrolling: touch;
9236
9500
  }
9237
9501
 
9238
9502
 
@@ -9436,183 +9700,52 @@ li.muka-listitem {
9436
9700
  color: var(--chip-dismiss-error-foreground-hover);
9437
9701
  }
9438
9702
  .muka-chip--error .muka-chip__remove:active {
9439
- background-color: var(--chip-dismiss-error-background-pressed);
9440
- color: var(--chip-dismiss-error-foreground-pressed);
9441
- }
9442
-
9443
- .muka-chip--info .muka-chip__remove {
9444
- background-color: var(--chip-dismiss-info-background-default);
9445
- color: var(--chip-dismiss-info-foreground-default);
9446
- }
9447
- .muka-chip--info .muka-chip__remove:hover {
9448
- background-color: var(--chip-dismiss-info-background-hover);
9449
- color: var(--chip-dismiss-info-foreground-hover);
9450
- }
9451
- .muka-chip--info .muka-chip__remove:active {
9452
- background-color: var(--chip-dismiss-info-background-pressed);
9453
- color: var(--chip-dismiss-info-foreground-pressed);
9454
- }
9455
-
9456
- /* Variants (solid fill) — icons inherit these foreground colors (see below) */
9457
- .muka-chip--default {
9458
- background-color: var(--color-surface-level1);
9459
- color: var(--color-text-default-default);
9460
- }
9461
-
9462
- .muka-chip--success {
9463
- background-color: var(--color-state-success-background);
9464
- color: var(--color-state-success-contrast);
9465
- }
9466
-
9467
- .muka-chip--warning {
9468
- background-color: var(--color-state-warning-background);
9469
- color: var(--color-state-warning-contrast);
9470
- }
9471
-
9472
- .muka-chip--error {
9473
- background-color: var(--color-state-error-background);
9474
- color: var(--color-state-error-contrast);
9475
- }
9476
-
9477
- .muka-chip--info {
9478
- background-color: var(--color-state-info-background);
9479
- color: var(--color-state-info-contrast);
9480
- }
9481
-
9482
- /* Icons (leading + dismiss) inherit the chip's per-variant foreground color */
9483
- .muka-chip .muka-icon {
9484
- color: inherit;
9485
- }
9486
-
9487
-
9488
- /* Combobox */
9489
- /* Combobox Component Styles */
9490
-
9491
- /* ─── Trigger (looks like an Input field, behaves like a button) ── */
9492
-
9493
- .muka-combobox {
9494
- display: inline-flex;
9495
- align-items: center;
9496
- gap: var(--spacing-2);
9497
- width: 100%;
9498
- padding: 0 var(--input-field-padding-x);
9499
- background-color: var(--input-field-color-default-background);
9500
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
9501
- color: var(--color-text-default-default);
9502
- text-align: left;
9503
- cursor: pointer;
9504
- font-family: var(--text-body-md-regular-fontFamily);
9505
- font-weight: var(--text-body-md-regular-fontWeight);
9506
- font-size: var(--text-body-md-regular-fontSize);
9507
- line-height: var(--text-body-md-regular-lineHeight);
9508
- -webkit-tap-highlight-color: transparent;
9509
- transition: border-color 0.12s ease;
9510
- }
9511
-
9512
- .muka-combobox--sm {
9513
- min-height: var(--input-field-height-sm);
9514
- border-radius: var(--input-field-radius-sm);
9515
- }
9516
-
9517
- .muka-combobox--md {
9518
- min-height: var(--input-field-height-default);
9519
- border-radius: var(--input-field-radius-md);
9520
- }
9521
-
9522
- .muka-combobox--lg {
9523
- min-height: var(--input-field-height-lg);
9524
- border-radius: var(--input-field-radius-lg);
9525
- }
9526
-
9527
- .muka-combobox:hover:not(:disabled) {
9528
- border-color: var(--input-field-color-hover-border, var(--input-field-color-default-border));
9529
- }
9530
-
9531
- .muka-combobox:focus-visible {
9532
- outline: none;
9533
- border-color: var(--input-field-color-focus-border, var(--color-action-default));
9534
- }
9535
-
9536
- .muka-combobox--disabled,
9537
- .muka-combobox:disabled {
9538
- opacity: 0.5;
9539
- cursor: not-allowed;
9540
- }
9541
-
9542
- .muka-combobox--placeholder .muka-combobox__label {
9543
- color: var(--color-text-subtle-default);
9544
- }
9545
-
9546
- .muka-combobox__leading {
9547
- display: inline-flex;
9548
- align-items: center;
9549
- justify-content: center;
9550
- flex-shrink: 0;
9551
- color: var(--color-text-subtle-default);
9552
- }
9553
-
9554
- .muka-combobox__label {
9555
- flex: 1 1 auto;
9556
- min-width: 0;
9557
- white-space: nowrap;
9558
- overflow: hidden;
9559
- text-overflow: ellipsis;
9560
- }
9561
-
9562
- .muka-combobox__clear,
9563
- .muka-combobox__chevron {
9564
- display: inline-flex;
9565
- align-items: center;
9566
- justify-content: center;
9567
- flex-shrink: 0;
9568
- color: var(--color-text-subtle-default);
9703
+ background-color: var(--chip-dismiss-error-background-pressed);
9704
+ color: var(--chip-dismiss-error-foreground-pressed);
9569
9705
  }
9570
9706
 
9571
- .muka-combobox__clear {
9572
- cursor: pointer;
9573
- padding: var(--spacing-1);
9574
- border-radius: var(--radius-sm);
9707
+ .muka-chip--info .muka-chip__remove {
9708
+ background-color: var(--chip-dismiss-info-background-default);
9709
+ color: var(--chip-dismiss-info-foreground-default);
9710
+ }
9711
+ .muka-chip--info .muka-chip__remove:hover {
9712
+ background-color: var(--chip-dismiss-info-background-hover);
9713
+ color: var(--chip-dismiss-info-foreground-hover);
9714
+ }
9715
+ .muka-chip--info .muka-chip__remove:active {
9716
+ background-color: var(--chip-dismiss-info-background-pressed);
9717
+ color: var(--chip-dismiss-info-foreground-pressed);
9575
9718
  }
9576
9719
 
9577
- .muka-combobox__clear:hover {
9578
- color: var(--color-text-default-default);
9720
+ /* Variants (solid fill) — icons inherit these foreground colors (see below) */
9721
+ .muka-chip--default {
9579
9722
  background-color: var(--color-surface-level1);
9723
+ color: var(--color-text-default-default);
9580
9724
  }
9581
9725
 
9582
- /* ─── Picker sheet body ───────────────────────────────── */
9726
+ .muka-chip--success {
9727
+ background-color: var(--color-state-success-background);
9728
+ color: var(--color-state-success-contrast);
9729
+ }
9583
9730
 
9584
- .muka-combobox__picker {
9585
- display: flex;
9586
- flex-direction: column;
9587
- gap: var(--spacing-3);
9588
- padding: 0 var(--spacing-4) var(--spacing-4);
9589
- min-height: 0;
9590
- max-height: 80vh;
9731
+ .muka-chip--warning {
9732
+ background-color: var(--color-state-warning-background);
9733
+ color: var(--color-state-warning-contrast);
9591
9734
  }
9592
9735
 
9593
- .muka-combobox__title {
9594
- margin: 0;
9595
- padding: var(--spacing-2) 0;
9596
- color: var(--color-text-default-default);
9597
- font-family: var(--text-heading-sm-fontFamily);
9598
- font-weight: var(--text-heading-sm-fontWeight);
9599
- font-size: var(--text-heading-sm-fontSize);
9600
- line-height: var(--text-heading-sm-lineHeight);
9736
+ .muka-chip--error {
9737
+ background-color: var(--color-state-error-background);
9738
+ color: var(--color-state-error-contrast);
9601
9739
  }
9602
9740
 
9603
- .muka-combobox__search {
9604
- position: sticky;
9605
- top: 0;
9606
- z-index: 1;
9607
- padding-bottom: var(--spacing-2);
9608
- background-color: var(--color-surface-level3);
9741
+ .muka-chip--info {
9742
+ background-color: var(--color-state-info-background);
9743
+ color: var(--color-state-info-contrast);
9609
9744
  }
9610
9745
 
9611
- .muka-combobox__list {
9612
- flex: 1 1 auto;
9613
- min-height: 0;
9614
- overflow-y: auto;
9615
- -webkit-overflow-scrolling: touch;
9746
+ /* Icons (leading + dismiss) inherit the chip's per-variant foreground color */
9747
+ .muka-chip .muka-icon {
9748
+ color: inherit;
9616
9749
  }
9617
9750
 
9618
9751
 
@@ -12249,3 +12382,194 @@ li.muka-listitem {
12249
12382
  border-bottom: none;
12250
12383
  }
12251
12384
 
12385
+
12386
+ /* Radio */
12387
+ /* Radio Component Styles - Using Muka Design Tokens */
12388
+
12389
+ /* Wrapper - clickable label container */
12390
+ .muka-radio {
12391
+ display: inline-flex;
12392
+ align-items: center;
12393
+ gap: var(--spacing-4);
12394
+ cursor: pointer;
12395
+ user-select: none;
12396
+ }
12397
+
12398
+ .muka-radio--disabled {
12399
+ cursor: not-allowed;
12400
+ opacity: 0.6;
12401
+ }
12402
+
12403
+ /* Control container */
12404
+ .muka-radio__control {
12405
+ position: relative;
12406
+ display: inline-flex;
12407
+ align-items: center;
12408
+ justify-content: center;
12409
+ flex-shrink: 0;
12410
+ }
12411
+
12412
+ /* Hidden native input */
12413
+ .muka-radio__input {
12414
+ position: absolute;
12415
+ width: 1px;
12416
+ height: 1px;
12417
+ padding: 0;
12418
+ margin: -1px;
12419
+ overflow: hidden;
12420
+ clip: rect(0, 0, 0, 0);
12421
+ white-space: nowrap;
12422
+ border: 0;
12423
+ }
12424
+
12425
+ /* Visual indicator (circle) */
12426
+ .muka-radio__indicator {
12427
+ display: flex;
12428
+ align-items: center;
12429
+ justify-content: center;
12430
+ width: var(--radio-size-default);
12431
+ height: var(--radio-size-default);
12432
+ border-radius: var(--border-radius-full);
12433
+ background-color: var(--radio-color-default-background);
12434
+ border: var(--border-width-regular) solid var(--radio-color-default-border);
12435
+ transition: all 0.15s ease;
12436
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.15);
12437
+ }
12438
+
12439
+ /* Size variants */
12440
+ .muka-radio--sm .muka-radio__indicator {
12441
+ width: var(--radio-size-sm);
12442
+ height: var(--radio-size-sm);
12443
+ }
12444
+
12445
+ .muka-radio--lg .muka-radio__indicator {
12446
+ width: var(--radio-size-lg);
12447
+ height: var(--radio-size-lg);
12448
+ }
12449
+
12450
+ /* Inner dot (shown when checked) */
12451
+ .muka-radio__dot {
12452
+ width: var(--radio-dot-size-default);
12453
+ height: var(--radio-dot-size-default);
12454
+ border-radius: var(--border-radius-full);
12455
+ background-color: var(--radio-color-default-dot);
12456
+ transform: scale(0);
12457
+ transition: transform 0.15s ease;
12458
+ }
12459
+
12460
+ .muka-radio--sm .muka-radio__dot {
12461
+ width: var(--radio-dot-size-sm);
12462
+ height: var(--radio-dot-size-sm);
12463
+ }
12464
+
12465
+ .muka-radio--lg .muka-radio__dot {
12466
+ width: var(--radio-dot-size-lg);
12467
+ height: var(--radio-dot-size-lg);
12468
+ }
12469
+
12470
+ /* Hover state - removed per design */
12471
+
12472
+ /* Focus state */
12473
+ .muka-radio__input:focus-visible + .muka-radio__indicator {
12474
+ outline: 2px solid var(--color-border-focus);
12475
+ outline-offset: 2px;
12476
+ }
12477
+
12478
+ /* Checked state */
12479
+ .muka-radio__input:checked + .muka-radio__indicator {
12480
+ background-color: var(--radio-color-checked-background);
12481
+ border-width: var(--border-width-bold);
12482
+ border-color: var(--radio-color-checked-border);
12483
+ box-shadow: none;
12484
+ }
12485
+
12486
+ .muka-radio__input:checked + .muka-radio__indicator .muka-radio__dot {
12487
+ background-color: var(--radio-color-checked-dot);
12488
+ transform: scale(1);
12489
+ }
12490
+
12491
+ /* Disabled state */
12492
+ .muka-radio--disabled .muka-radio__indicator {
12493
+ background-color: var(--radio-color-disabled-background);
12494
+ border-color: var(--radio-color-disabled-border);
12495
+ box-shadow: none;
12496
+ }
12497
+
12498
+ .muka-radio__input:disabled:checked + .muka-radio__indicator .muka-radio__dot {
12499
+ background-color: var(--radio-color-disabled-dot);
12500
+ }
12501
+
12502
+ /* Label text */
12503
+ .muka-radio__label {
12504
+ font-family: var(--text-label-lg-regular-fontFamily);
12505
+ font-weight: var(--text-label-lg-regular-fontWeight);
12506
+ font-size: var(--text-label-lg-regular-fontSize);
12507
+ line-height: var(--text-label-lg-regular-lineHeight);
12508
+ color: var(--color-text-default-default);
12509
+ }
12510
+
12511
+ .muka-radio--sm .muka-radio__label {
12512
+ font-family: var(--text-label-md-regular-fontFamily);
12513
+ font-weight: var(--text-label-md-regular-fontWeight);
12514
+ font-size: var(--text-label-md-regular-fontSize);
12515
+ line-height: var(--text-label-md-regular-lineHeight);
12516
+ }
12517
+
12518
+ .muka-radio--lg .muka-radio__label {
12519
+ font-family: var(--text-label-xl-regular-fontFamily);
12520
+ font-weight: var(--text-label-xl-regular-fontWeight);
12521
+ font-size: var(--text-label-xl-regular-fontSize);
12522
+ line-height: var(--text-label-xl-regular-lineHeight);
12523
+ }
12524
+
12525
+ .muka-radio--disabled .muka-radio__label {
12526
+ color: var(--color-text-subtle-default);
12527
+ }
12528
+
12529
+
12530
+ /* PullToRefresh */
12531
+ /* PullToRefresh Component Styles */
12532
+
12533
+ .muka-pull-to-refresh {
12534
+ position: relative;
12535
+ display: flex;
12536
+ flex-direction: column;
12537
+ width: 100%;
12538
+ height: 100%;
12539
+ overflow: hidden;
12540
+ }
12541
+
12542
+ .muka-pull-to-refresh__indicator {
12543
+ position: absolute;
12544
+ top: 0;
12545
+ left: 0;
12546
+ right: 0;
12547
+ display: flex;
12548
+ align-items: flex-end;
12549
+ justify-content: center;
12550
+ padding-bottom: var(--spacing-2);
12551
+ color: var(--color-text-subtle-default);
12552
+ overflow: hidden;
12553
+ pointer-events: none;
12554
+ z-index: 1;
12555
+ }
12556
+
12557
+ .muka-pull-to-refresh__chevron {
12558
+ display: inline-flex;
12559
+ align-items: center;
12560
+ justify-content: center;
12561
+ transition: transform 0.16s ease;
12562
+ }
12563
+
12564
+ .muka-pull-to-refresh__scroller {
12565
+ flex: 1 1 auto;
12566
+ min-height: 0;
12567
+ width: 100%;
12568
+ overflow-x: clip;
12569
+ overflow-y: auto;
12570
+ -webkit-overflow-scrolling: touch;
12571
+ overscroll-behavior-y: contain;
12572
+ touch-action: pan-y;
12573
+ will-change: transform;
12574
+ }
12575
+