@revikornmann/muka-ui 0.4.1 → 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 (113) 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/DataPieChart/DataPieChart.js +1 -1
  6. package/dist/cjs/components/DataPieChart/DataPieChart.js.map +1 -1
  7. package/dist/cjs/components/DataTable/DataTable.css +17 -0
  8. package/dist/cjs/components/DataTable/DataTable.js +15 -2
  9. package/dist/cjs/components/DataTable/DataTable.js.map +1 -1
  10. package/dist/cjs/components/ListItem/ListItem.css +10 -4
  11. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.css +207 -0
  12. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js +66 -0
  13. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -0
  14. package/dist/cjs/components/ProgressAccordeon/index.js +11 -0
  15. package/dist/cjs/components/ProgressAccordeon/index.js.map +1 -0
  16. package/dist/cjs/components/{FormProgressBar/FormProgressBar.css → ProgressTracker/ProgressTracker.css} +28 -22
  17. package/dist/cjs/components/{FormProgressBar/FormProgressBar.js → ProgressTracker/ProgressTracker.js} +20 -20
  18. package/dist/cjs/components/{FormProgressBar/FormProgressBar.js.map → ProgressTracker/ProgressTracker.js.map} +1 -1
  19. package/dist/cjs/components/ProgressTracker/index.js +8 -0
  20. package/dist/cjs/components/{FormProgressBar → ProgressTracker}/index.js.map +1 -1
  21. package/dist/cjs/components/index.js +7 -5
  22. package/dist/cjs/components/index.js.map +1 -1
  23. package/dist/esm/components/DataPieChart/DataPieChart.js +1 -1
  24. package/dist/esm/components/DataPieChart/DataPieChart.js.map +1 -1
  25. package/dist/esm/components/DataTable/DataTable.css +17 -0
  26. package/dist/esm/components/DataTable/DataTable.js +15 -2
  27. package/dist/esm/components/DataTable/DataTable.js.map +1 -1
  28. package/dist/esm/components/ListItem/ListItem.css +10 -4
  29. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.css +207 -0
  30. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js +62 -0
  31. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -0
  32. package/dist/esm/components/ProgressAccordeon/index.js +3 -0
  33. package/dist/esm/components/ProgressAccordeon/index.js.map +1 -0
  34. package/dist/{styles/components/FormProgressBar.css → esm/components/ProgressTracker/ProgressTracker.css} +28 -22
  35. package/dist/esm/components/{FormProgressBar/FormProgressBar.js → ProgressTracker/ProgressTracker.js} +18 -18
  36. package/dist/esm/components/{FormProgressBar/FormProgressBar.js.map → ProgressTracker/ProgressTracker.js.map} +1 -1
  37. package/dist/esm/components/ProgressTracker/index.js +3 -0
  38. package/dist/esm/components/{FormProgressBar → ProgressTracker}/index.js.map +1 -1
  39. package/dist/esm/components/index.js +2 -1
  40. package/dist/esm/components/index.js.map +1 -1
  41. package/dist/styles/components/DataTable.css +17 -0
  42. package/dist/styles/components/ListItem.css +10 -4
  43. package/dist/styles/components/ProgressAccordeon.css +207 -0
  44. package/dist/{esm/components/FormProgressBar/FormProgressBar.css → styles/components/ProgressTracker.css} +28 -22
  45. package/dist/styles/fonts/funnel-display-latin-wght-normal.woff2 +0 -0
  46. package/dist/styles/fonts/funnel-display.LICENSE.txt +93 -0
  47. package/dist/styles/fonts/funnel-sans-latin-wght-normal.woff2 +0 -0
  48. package/dist/styles/fonts/funnel-sans.LICENSE.txt +93 -0
  49. package/dist/styles/fonts/ibm-plex-sans-latin-wght-normal.woff2 +0 -0
  50. package/dist/styles/fonts/ibm-plex-sans.LICENSE.txt +93 -0
  51. package/dist/styles/fonts/lora-latin-wght-normal.woff2 +0 -0
  52. package/dist/styles/fonts/lora.LICENSE.txt +93 -0
  53. package/dist/styles/fonts/quicksand-latin-wght-normal.woff2 +0 -0
  54. package/dist/styles/fonts/quicksand.LICENSE.txt +93 -0
  55. package/dist/styles/fonts/red-hat-display-latin-wght-normal.woff2 +0 -0
  56. package/dist/styles/fonts/red-hat-display.LICENSE.txt +93 -0
  57. package/dist/styles/fonts/red-hat-text-latin-wght-normal.woff2 +0 -0
  58. package/dist/styles/fonts/red-hat-text.LICENSE.txt +93 -0
  59. package/dist/styles/fonts/yesteryear-latin-400-normal.woff2 +0 -0
  60. package/dist/styles/fonts/yesteryear.LICENSE.txt +93 -0
  61. package/dist/styles/fonts-all.css +75 -0
  62. package/dist/styles/fonts-bouwplan.css +30 -0
  63. package/dist/styles/fonts-fscl.css +21 -0
  64. package/dist/styles/fonts-grip.css +21 -0
  65. package/dist/styles/fonts-muka.css +30 -0
  66. package/dist/styles/fonts-wireframe.css +5 -0
  67. package/dist/styles/index.css +947 -568
  68. package/dist/styles/muka-dark.css +947 -568
  69. package/dist/styles/muka-light.css +947 -568
  70. package/dist/styles/tokens-bouwplan-dark.css +174 -66
  71. package/dist/styles/tokens-bouwplan-light.css +174 -66
  72. package/dist/styles/tokens-fscl-dark.css +113 -5
  73. package/dist/styles/tokens-fscl-light.css +113 -5
  74. package/dist/styles/tokens-grip-dark.css +113 -5
  75. package/dist/styles/tokens-grip-light.css +113 -5
  76. package/dist/styles/tokens-muka-dark.css +113 -5
  77. package/dist/styles/tokens-muka-light.css +113 -5
  78. package/dist/styles/tokens-wireframe-dark.css +113 -5
  79. package/dist/styles/tokens-wireframe-light.css +113 -5
  80. package/dist/styles/wireframe-dark.css +915 -568
  81. package/dist/styles/wireframe-light.css +915 -568
  82. package/dist/types/components/DataPieChart/DataPieChart.d.ts +1 -1
  83. package/dist/types/components/DataPieChart/DataPieChart.d.ts.map +1 -1
  84. package/dist/types/components/DataTable/DataTable.d.ts.map +1 -1
  85. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts +91 -0
  86. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts.map +1 -0
  87. package/dist/types/components/ProgressAccordeon/index.d.ts +3 -0
  88. package/dist/types/components/ProgressAccordeon/index.d.ts.map +1 -0
  89. package/dist/types/components/{FormProgressBar/FormProgressBar.d.ts → ProgressTracker/ProgressTracker.d.ts} +9 -9
  90. package/dist/types/components/{FormProgressBar/FormProgressBar.d.ts.map → ProgressTracker/ProgressTracker.d.ts.map} +1 -1
  91. package/dist/types/components/ProgressTracker/index.d.ts +3 -0
  92. package/dist/types/components/{FormProgressBar → ProgressTracker}/index.d.ts.map +1 -1
  93. package/dist/types/components/index.d.ts +2 -1
  94. package/dist/types/components/index.d.ts.map +1 -1
  95. package/docs/consumers/setup-instructions.md +22 -3
  96. package/package.json +12 -2
  97. package/scripts/build-fonts.js +248 -0
  98. package/tokens/t1-primitives/color.json +400 -0
  99. package/tokens/t2-alias/brand/bouwplan/dark.json +15 -1
  100. package/tokens/t2-alias/brand/bouwplan/fonts.json +5 -5
  101. package/tokens/t2-alias/brand/bouwplan/light.json +15 -1
  102. package/tokens/t2-alias/brand/fscl/dark.json +15 -1
  103. package/tokens/t2-alias/brand/fscl/light.json +15 -1
  104. package/tokens/t2-alias/brand/grip/dark.json +51 -1
  105. package/tokens/t2-alias/brand/grip/light.json +51 -1
  106. package/tokens/t2-alias/brand/muka/dark.json +51 -1
  107. package/tokens/t2-alias/brand/muka/light.json +51 -1
  108. package/tokens/t2-alias/brand/wireframe/dark.json +51 -1
  109. package/tokens/t2-alias/brand/wireframe/light.json +51 -1
  110. package/tokens/t3-semantics/ui.json +13 -13
  111. package/dist/cjs/components/FormProgressBar/index.js +0 -8
  112. package/dist/esm/components/FormProgressBar/index.js +0 -3
  113. package/dist/types/components/FormProgressBar/index.d.ts +0 -3
@@ -2,6 +2,38 @@
2
2
  /* Generated by build-styles.js - DO NOT EDIT */
3
3
  /* Default theme: muka-light */
4
4
 
5
+ /* ========== Self-hosted brand fonts ========== */
6
+ /* Muka UI - muka fonts */
7
+ /* Generated by build-fonts.js - DO NOT EDIT */
8
+ /* Self-hosted brand fonts (SIL OFL). See ./fonts/*.LICENSE.txt */
9
+
10
+ @font-face {
11
+ font-family: 'Funnel Display';
12
+ font-style: normal;
13
+ font-weight: 300 800;
14
+ font-display: swap;
15
+ src: url('./fonts/funnel-display-latin-wght-normal.woff2') format('woff2');
16
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
17
+ }
18
+
19
+ @font-face {
20
+ font-family: 'Funnel Sans';
21
+ font-style: normal;
22
+ font-weight: 300 800;
23
+ font-display: swap;
24
+ src: url('./fonts/funnel-sans-latin-wght-normal.woff2') format('woff2');
25
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
26
+ }
27
+
28
+ @font-face {
29
+ font-family: 'Yesteryear';
30
+ font-style: normal;
31
+ font-weight: 400;
32
+ font-display: swap;
33
+ src: url('./fonts/yesteryear-latin-400-normal.woff2') format('woff2');
34
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
35
+ }
36
+
5
37
  /* ========== Base Styles ========== */
6
38
  /* Base styles for Storybook preview */
7
39
  /* Fallback values in case tokens don't load */
@@ -667,6 +699,102 @@ body {
667
699
  --color-white-alpha-10: rgba(255, 255, 255, 0.478);
668
700
  --color-white-alpha-11: rgba(255, 255, 255, 0.565);
669
701
  --color-white-alpha-12: rgba(255, 255, 255, 0.910);
702
+ --color-mauveA-1: rgba(85, 0, 85, 0.012);
703
+ --color-mauveA-2: rgba(43, 0, 85, 0.024);
704
+ --color-mauveA-3: rgba(48, 0, 64, 0.063);
705
+ --color-mauveA-4: rgba(32, 0, 54, 0.094);
706
+ --color-mauveA-5: rgba(32, 0, 56, 0.125);
707
+ --color-mauveA-6: rgba(20, 0, 53, 0.153);
708
+ --color-mauveA-7: rgba(16, 0, 51, 0.196);
709
+ --color-mauveA-8: rgba(8, 0, 49, 0.271);
710
+ --color-mauveA-9: rgba(5, 0, 29, 0.451);
711
+ --color-mauveA-10: rgba(5, 0, 25, 0.49);
712
+ --color-mauveA-11: rgba(4, 0, 17, 0.612);
713
+ --color-mauveA-12: rgba(2, 0, 8, 0.878);
714
+ --color-grayA-1: rgba(0, 0, 0, 0.012);
715
+ --color-grayA-2: rgba(0, 0, 0, 0.024);
716
+ --color-grayA-3: rgba(0, 0, 0, 0.059);
717
+ --color-grayA-4: rgba(0, 0, 0, 0.09);
718
+ --color-grayA-5: rgba(0, 0, 0, 0.122);
719
+ --color-grayA-6: rgba(0, 0, 0, 0.149);
720
+ --color-grayA-7: rgba(0, 0, 0, 0.192);
721
+ --color-grayA-8: rgba(0, 0, 0, 0.267);
722
+ --color-grayA-9: rgba(0, 0, 0, 0.447);
723
+ --color-grayA-10: rgba(0, 0, 0, 0.486);
724
+ --color-grayA-11: rgba(0, 0, 0, 0.608);
725
+ --color-grayA-12: rgba(0, 0, 0, 0.875);
726
+ --color-sandA-1: rgba(85, 85, 0, 0.012);
727
+ --color-sandA-2: rgba(37, 37, 0, 0.027);
728
+ --color-sandA-3: rgba(32, 16, 0, 0.063);
729
+ --color-sandA-4: rgba(31, 21, 0, 0.098);
730
+ --color-sandA-5: rgba(31, 24, 0, 0.129);
731
+ --color-sandA-6: rgba(25, 19, 0, 0.161);
732
+ --color-sandA-7: rgba(25, 20, 0, 0.208);
733
+ --color-sandA-8: rgba(25, 21, 1, 0.29);
734
+ --color-sandA-9: rgba(15, 15, 0, 0.475);
735
+ --color-sandA-10: rgba(12, 12, 0, 0.514);
736
+ --color-sandA-11: rgba(8, 8, 0, 0.631);
737
+ --color-sandA-12: rgba(6, 5, 0, 0.89);
738
+ --color-sageA-1: rgba(0, 128, 64, 0.016);
739
+ --color-sageA-2: rgba(0, 64, 32, 0.031);
740
+ --color-sageA-3: rgba(0, 45, 30, 0.067);
741
+ --color-sageA-4: rgba(0, 31, 21, 0.098);
742
+ --color-sageA-5: rgba(0, 24, 8, 0.125);
743
+ --color-sageA-6: rgba(0, 20, 13, 0.157);
744
+ --color-sageA-7: rgba(0, 20, 10, 0.204);
745
+ --color-sageA-8: rgba(0, 15, 8, 0.278);
746
+ --color-sageA-9: rgba(0, 17, 11, 0.475);
747
+ --color-sageA-10: rgba(0, 16, 10, 0.514);
748
+ --color-sageA-11: rgba(0, 10, 7, 0.627);
749
+ --color-sageA-12: rgba(0, 8, 5, 0.898);
750
+ --color-mauveDarkA-1: rgba(0, 0, 0, 0.0);
751
+ --color-mauveDarkA-2: rgba(245, 244, 246, 0.035);
752
+ --color-mauveDarkA-3: rgba(235, 234, 248, 0.078);
753
+ --color-mauveDarkA-4: rgba(238, 229, 248, 0.114);
754
+ --color-mauveDarkA-5: rgba(239, 230, 254, 0.145);
755
+ --color-mauveDarkA-6: rgba(241, 230, 253, 0.188);
756
+ --color-mauveDarkA-7: rgba(238, 233, 255, 0.251);
757
+ --color-mauveDarkA-8: rgba(238, 231, 255, 0.365);
758
+ --color-mauveDarkA-9: rgba(234, 230, 253, 0.431);
759
+ --color-mauveDarkA-10: rgba(236, 233, 253, 0.486);
760
+ --color-mauveDarkA-11: rgba(245, 241, 255, 0.718);
761
+ --color-mauveDarkA-12: rgba(253, 253, 255, 0.937);
762
+ --color-grayDarkA-1: rgba(0, 0, 0, 0.0);
763
+ --color-grayDarkA-2: rgba(255, 255, 255, 0.035);
764
+ --color-grayDarkA-3: rgba(255, 255, 255, 0.071);
765
+ --color-grayDarkA-4: rgba(255, 255, 255, 0.106);
766
+ --color-grayDarkA-5: rgba(255, 255, 255, 0.133);
767
+ --color-grayDarkA-6: rgba(255, 255, 255, 0.173);
768
+ --color-grayDarkA-7: rgba(255, 255, 255, 0.231);
769
+ --color-grayDarkA-8: rgba(255, 255, 255, 0.333);
770
+ --color-grayDarkA-9: rgba(255, 255, 255, 0.392);
771
+ --color-grayDarkA-10: rgba(255, 255, 255, 0.447);
772
+ --color-grayDarkA-11: rgba(255, 255, 255, 0.686);
773
+ --color-grayDarkA-12: rgba(255, 255, 255, 0.929);
774
+ --color-sandDarkA-1: rgba(0, 0, 0, 0.0);
775
+ --color-sandDarkA-2: rgba(244, 244, 243, 0.035);
776
+ --color-sandDarkA-3: rgba(246, 246, 245, 0.075);
777
+ --color-sandDarkA-4: rgba(254, 254, 243, 0.106);
778
+ --color-sandDarkA-5: rgba(251, 251, 235, 0.137);
779
+ --color-sandDarkA-6: rgba(255, 250, 237, 0.176);
780
+ --color-sandDarkA-7: rgba(255, 251, 237, 0.235);
781
+ --color-sandDarkA-8: rgba(255, 249, 235, 0.341);
782
+ --color-sandDarkA-9: rgba(255, 250, 233, 0.396);
783
+ --color-sandDarkA-10: rgba(255, 253, 238, 0.451);
784
+ --color-sandDarkA-11: rgba(255, 252, 244, 0.69);
785
+ --color-sandDarkA-12: rgba(255, 255, 253, 0.929);
786
+ --color-sageDarkA-1: rgba(0, 0, 0, 0.0);
787
+ --color-sageDarkA-2: rgba(240, 242, 241, 0.031);
788
+ --color-sageDarkA-3: rgba(243, 245, 244, 0.071);
789
+ --color-sageDarkA-4: rgba(242, 254, 253, 0.102);
790
+ --color-sageDarkA-5: rgba(241, 251, 250, 0.133);
791
+ --color-sageDarkA-6: rgba(237, 251, 244, 0.176);
792
+ --color-sageDarkA-7: rgba(237, 252, 247, 0.235);
793
+ --color-sageDarkA-8: rgba(235, 253, 246, 0.341);
794
+ --color-sageDarkA-9: rgba(223, 253, 242, 0.4);
795
+ --color-sageDarkA-10: rgba(229, 253, 246, 0.455);
796
+ --color-sageDarkA-11: rgba(244, 254, 251, 0.69);
797
+ --color-sageDarkA-12: rgba(253, 255, 254, 0.929);
670
798
  --color-grayDark-1: #111111;
671
799
  --color-grayDark-2: #191919;
672
800
  --color-grayDark-3: #222222;
@@ -1044,8 +1172,8 @@ body {
1044
1172
  --color-surface-level1: #eae7ec;
1045
1173
  --color-surface-level2: #f2eff3;
1046
1174
  --color-surface-level3: #fdfcfd;
1047
- --color-surface-hover: #faf9fb;
1048
- --color-surface-pressed: #fdfcfd;
1175
+ --color-surface-hover: rgba(43, 0, 85, 0.024);
1176
+ --color-surface-pressed: rgba(48, 0, 64, 0.063);
1049
1177
  --color-surface-backdrop: rgba(0, 0, 0, 0.565);
1050
1178
  --color-surface-inverse: #211f26;
1051
1179
  --color-surface-white: #ffffff;
@@ -1108,6 +1236,18 @@ body {
1108
1236
  --alias-color-neutral-alpha-7: rgba(0, 0, 0, 0.565);
1109
1237
  --alias-color-neutral-alpha-8: rgba(0, 0, 0, 0.910);
1110
1238
  --alias-color-neutral-alpha-9: rgba(0, 0, 0, 0.910);
1239
+ --alias-color-neutral-alphaHued-1: rgba(85, 0, 85, 0.012);
1240
+ --alias-color-neutral-alphaHued-2: rgba(43, 0, 85, 0.024);
1241
+ --alias-color-neutral-alphaHued-3: rgba(48, 0, 64, 0.063);
1242
+ --alias-color-neutral-alphaHued-4: rgba(32, 0, 54, 0.094);
1243
+ --alias-color-neutral-alphaHued-5: rgba(32, 0, 56, 0.125);
1244
+ --alias-color-neutral-alphaHued-6: rgba(20, 0, 53, 0.153);
1245
+ --alias-color-neutral-alphaHued-7: rgba(16, 0, 51, 0.196);
1246
+ --alias-color-neutral-alphaHued-8: rgba(8, 0, 49, 0.271);
1247
+ --alias-color-neutral-alphaHued-9: rgba(5, 0, 29, 0.451);
1248
+ --alias-color-neutral-alphaHued-10: rgba(5, 0, 25, 0.49);
1249
+ --alias-color-neutral-alphaHued-11: rgba(4, 0, 17, 0.612);
1250
+ --alias-color-neutral-alphaHued-12: rgba(2, 0, 8, 0.878);
1111
1251
  --alias-color-brand-primary-regular: #3a5ccc;
1112
1252
  --alias-color-brand-primary-contrast: #1f2d5c;
1113
1253
  --alias-color-brand-primary-muted: #edf2fe;
@@ -1675,7 +1815,7 @@ body {
1675
1815
  --menu-item-color-default-background: transparent;
1676
1816
  --menu-item-color-default-foreground: #211f26;
1677
1817
  --menu-item-color-default-icon: #8e8c99;
1678
- --menu-item-color-hover-background: #faf9fb;
1818
+ --menu-item-color-hover-background: rgba(43, 0, 85, 0.024);
1679
1819
  --menu-item-color-hover-foreground: #211f26;
1680
1820
  --menu-item-color-hover-icon: #211f26;
1681
1821
  --menu-item-color-focus-background: #8da4ef;
@@ -1905,8 +2045,8 @@ body {
1905
2045
  --datatable-row-background: #fdfcfd;
1906
2046
  --datatable-row-foreground: #211f26;
1907
2047
  --datatable-row-border: #eae7ec;
1908
- --datatable-row-hover-background: #faf9fb;
1909
- --datatable-row-pressed-background: #fdfcfd;
2048
+ --datatable-row-hover-background: rgba(43, 0, 85, 0.024);
2049
+ --datatable-row-pressed-background: rgba(48, 0, 64, 0.063);
1910
2050
  --datatable-row-selected-background: #edf2fe;
1911
2051
  --datatable-cell-padding-x-sm: 0.5rem;
1912
2052
  --datatable-cell-padding-x-md: 0.75rem;
@@ -2617,196 +2757,6 @@ body {
2617
2757
  }
2618
2758
 
2619
2759
 
2620
- /* Toast */
2621
- /* Toast Component Styles - Using Muka Design Tokens */
2622
-
2623
- .muka-toast {
2624
- display: flex;
2625
- align-items: flex-start;
2626
- gap: var(--toast-gap);
2627
- padding: var(--toast-padding-y) var(--toast-padding-x);
2628
- border-radius: var(--toast-radius);
2629
- box-shadow: var(--toast-shadow);
2630
- min-width: var(--toast-width-min);
2631
- max-width: var(--toast-width-max);
2632
- pointer-events: auto;
2633
- animation: muka-toast-slide-in 0.2s ease-out;
2634
- }
2635
-
2636
- /* Entry animation */
2637
- @keyframes muka-toast-slide-in {
2638
- from {
2639
- opacity: 0;
2640
- transform: translateY(8px);
2641
- }
2642
- to {
2643
- opacity: 1;
2644
- transform: translateY(0);
2645
- }
2646
- }
2647
-
2648
- /* Position variants (for standalone use - typically managed by ToastProvider) */
2649
- .muka-toast--top-right,
2650
- .muka-toast--top-left,
2651
- .muka-toast--top-center,
2652
- .muka-toast--bottom-right,
2653
- .muka-toast--bottom-left,
2654
- .muka-toast--bottom-center {
2655
- position: fixed;
2656
- z-index: 9999;
2657
- }
2658
-
2659
- .muka-toast--top-right {
2660
- top: var(--spacing-4);
2661
- right: var(--spacing-4);
2662
- }
2663
-
2664
- .muka-toast--top-left {
2665
- top: var(--spacing-4);
2666
- left: var(--spacing-4);
2667
- }
2668
-
2669
- .muka-toast--top-center {
2670
- top: var(--spacing-4);
2671
- left: 50%;
2672
- transform: translateX(-50%);
2673
- }
2674
-
2675
- .muka-toast--bottom-right {
2676
- bottom: var(--spacing-4);
2677
- right: var(--spacing-4);
2678
- }
2679
-
2680
- .muka-toast--bottom-left {
2681
- bottom: var(--spacing-4);
2682
- left: var(--spacing-4);
2683
- }
2684
-
2685
- .muka-toast--bottom-center {
2686
- bottom: var(--spacing-4);
2687
- left: 50%;
2688
- transform: translateX(-50%);
2689
- }
2690
-
2691
- /* Variant: Info */
2692
- .muka-toast--info {
2693
- background-color: var(--toast-color-info-background);
2694
- color: var(--toast-color-info-foreground);
2695
- }
2696
-
2697
- .muka-toast--info .muka-toast__icon {
2698
- color: var(--toast-color-info-accent);
2699
- }
2700
-
2701
- /* Variant: Success */
2702
- .muka-toast--success {
2703
- background-color: var(--toast-color-success-background);
2704
- color: var(--toast-color-success-foreground);
2705
- }
2706
-
2707
- .muka-toast--success .muka-toast__icon {
2708
- color: var(--toast-color-success-accent);
2709
- }
2710
-
2711
- /* Variant: Warning */
2712
- .muka-toast--warning {
2713
- background-color: var(--toast-color-warning-background);
2714
- color: var(--toast-color-warning-foreground);
2715
- }
2716
-
2717
- .muka-toast--warning .muka-toast__icon {
2718
- color: var(--toast-color-warning-accent);
2719
- }
2720
-
2721
- /* Variant: Error */
2722
- .muka-toast--error {
2723
- background-color: var(--toast-color-error-background);
2724
- color: var(--toast-color-error-foreground);
2725
- }
2726
-
2727
- .muka-toast--error .muka-toast__icon {
2728
- color: var(--toast-color-error-accent);
2729
- }
2730
-
2731
- /* Icon */
2732
- .muka-toast__icon {
2733
- display: flex;
2734
- align-items: center;
2735
- justify-content: center;
2736
- flex-shrink: 0;
2737
- width: var(--toast-icon-size);
2738
- height: var(--toast-icon-size);
2739
- }
2740
-
2741
- .muka-toast__icon svg {
2742
- width: 100%;
2743
- height: 100%;
2744
- }
2745
-
2746
- /* Content */
2747
- .muka-toast__content {
2748
- flex: 1;
2749
- min-width: 0;
2750
- }
2751
-
2752
- .muka-toast__title {
2753
- font-family: var(--text-label-md-semibold-fontFamily);
2754
- font-weight: var(--text-label-md-semibold-fontWeight);
2755
- font-size: var(--text-label-md-semibold-fontSize);
2756
- line-height: var(--text-label-md-semibold-lineHeight);
2757
- margin-bottom: var(--spacing-1);
2758
- }
2759
-
2760
- .muka-toast__message {
2761
- font-family: var(--text-body-sm-regular-fontFamily);
2762
- font-weight: var(--text-body-sm-regular-fontWeight);
2763
- font-size: var(--text-body-sm-regular-fontSize);
2764
- line-height: var(--text-body-sm-regular-lineHeight);
2765
- }
2766
-
2767
- /* Action slot */
2768
- .muka-toast__action {
2769
- display: flex;
2770
- align-items: center;
2771
- flex-shrink: 0;
2772
- }
2773
-
2774
- /* Dismiss button */
2775
- .muka-toast__dismiss {
2776
- display: flex;
2777
- align-items: center;
2778
- justify-content: center;
2779
- flex-shrink: 0;
2780
- width: 24px;
2781
- height: 24px;
2782
- padding: 0;
2783
- margin: -2px -4px -2px 0;
2784
- border: none;
2785
- background: transparent;
2786
- color: inherit;
2787
- opacity: 0.7;
2788
- cursor: pointer;
2789
- border-radius: var(--border-radius-sm);
2790
- transition: opacity 0.15s ease, background-color 0.15s ease;
2791
- }
2792
-
2793
- .muka-toast__dismiss:hover {
2794
- opacity: 1;
2795
- background-color: rgba(0, 0, 0, 0.05);
2796
- }
2797
-
2798
- .muka-toast__dismiss:focus-visible {
2799
- outline: 2px solid var(--color-border-focus);
2800
- outline-offset: 2px;
2801
- opacity: 1;
2802
- }
2803
-
2804
- .muka-toast__dismiss svg {
2805
- width: 16px;
2806
- height: 16px;
2807
- }
2808
-
2809
-
2810
2760
  /* Tile */
2811
2761
  /* Tile Component Styles - Using Muka Design Tokens */
2812
2762
 
@@ -3168,43 +3118,233 @@ body {
3168
3118
  }
3169
3119
 
3170
3120
 
3171
- /* Textarea */
3172
- /* Textarea Component Styles - Using Muka Design Tokens */
3121
+ /* Toast */
3122
+ /* Toast Component Styles - Using Muka Design Tokens */
3173
3123
 
3174
- .muka-textarea {
3175
- display: inline-flex;
3176
- flex-direction: column;
3177
- gap: var(--spacing-2);
3124
+ .muka-toast {
3125
+ display: flex;
3126
+ align-items: flex-start;
3127
+ gap: var(--toast-gap);
3128
+ padding: var(--toast-padding-y) var(--toast-padding-x);
3129
+ border-radius: var(--toast-radius);
3130
+ box-shadow: var(--toast-shadow);
3131
+ min-width: var(--toast-width-min);
3132
+ max-width: var(--toast-width-max);
3133
+ pointer-events: auto;
3134
+ animation: muka-toast-slide-in 0.2s ease-out;
3178
3135
  }
3179
3136
 
3180
- /* Label */
3181
- .muka-textarea__label {
3182
- color: var(--color-text-default-default);
3183
- cursor: pointer;
3137
+ /* Entry animation */
3138
+ @keyframes muka-toast-slide-in {
3139
+ from {
3140
+ opacity: 0;
3141
+ transform: translateY(8px);
3142
+ }
3143
+ to {
3144
+ opacity: 1;
3145
+ transform: translateY(0);
3146
+ }
3184
3147
  }
3185
3148
 
3186
- .muka-textarea__label--sm {
3187
- font-family: var(--text-label-sm-semibold-fontFamily);
3188
- font-weight: var(--text-label-sm-semibold-fontWeight);
3189
- font-size: var(--text-label-sm-semibold-fontSize);
3190
- line-height: var(--text-label-sm-semibold-lineHeight);
3149
+ /* Position variants (for standalone use - typically managed by ToastProvider) */
3150
+ .muka-toast--top-right,
3151
+ .muka-toast--top-left,
3152
+ .muka-toast--top-center,
3153
+ .muka-toast--bottom-right,
3154
+ .muka-toast--bottom-left,
3155
+ .muka-toast--bottom-center {
3156
+ position: fixed;
3157
+ z-index: 9999;
3191
3158
  }
3192
3159
 
3193
- .muka-textarea__label--md {
3194
- font-family: var(--text-label-md-semibold-fontFamily);
3195
- font-weight: var(--text-label-md-semibold-fontWeight);
3196
- font-size: var(--text-label-md-semibold-fontSize);
3197
- line-height: var(--text-label-md-semibold-lineHeight);
3160
+ .muka-toast--top-right {
3161
+ top: var(--spacing-4);
3162
+ right: var(--spacing-4);
3198
3163
  }
3199
3164
 
3200
- .muka-textarea__label--lg {
3201
- font-family: var(--text-label-lg-semibold-fontFamily);
3202
- font-weight: var(--text-label-lg-semibold-fontWeight);
3203
- font-size: var(--text-label-lg-semibold-fontSize);
3204
- line-height: var(--text-label-lg-semibold-lineHeight);
3165
+ .muka-toast--top-left {
3166
+ top: var(--spacing-4);
3167
+ left: var(--spacing-4);
3205
3168
  }
3206
3169
 
3207
- .muka-textarea__required {
3170
+ .muka-toast--top-center {
3171
+ top: var(--spacing-4);
3172
+ left: 50%;
3173
+ transform: translateX(-50%);
3174
+ }
3175
+
3176
+ .muka-toast--bottom-right {
3177
+ bottom: var(--spacing-4);
3178
+ right: var(--spacing-4);
3179
+ }
3180
+
3181
+ .muka-toast--bottom-left {
3182
+ bottom: var(--spacing-4);
3183
+ left: var(--spacing-4);
3184
+ }
3185
+
3186
+ .muka-toast--bottom-center {
3187
+ bottom: var(--spacing-4);
3188
+ left: 50%;
3189
+ transform: translateX(-50%);
3190
+ }
3191
+
3192
+ /* Variant: Info */
3193
+ .muka-toast--info {
3194
+ background-color: var(--toast-color-info-background);
3195
+ color: var(--toast-color-info-foreground);
3196
+ }
3197
+
3198
+ .muka-toast--info .muka-toast__icon {
3199
+ color: var(--toast-color-info-accent);
3200
+ }
3201
+
3202
+ /* Variant: Success */
3203
+ .muka-toast--success {
3204
+ background-color: var(--toast-color-success-background);
3205
+ color: var(--toast-color-success-foreground);
3206
+ }
3207
+
3208
+ .muka-toast--success .muka-toast__icon {
3209
+ color: var(--toast-color-success-accent);
3210
+ }
3211
+
3212
+ /* Variant: Warning */
3213
+ .muka-toast--warning {
3214
+ background-color: var(--toast-color-warning-background);
3215
+ color: var(--toast-color-warning-foreground);
3216
+ }
3217
+
3218
+ .muka-toast--warning .muka-toast__icon {
3219
+ color: var(--toast-color-warning-accent);
3220
+ }
3221
+
3222
+ /* Variant: Error */
3223
+ .muka-toast--error {
3224
+ background-color: var(--toast-color-error-background);
3225
+ color: var(--toast-color-error-foreground);
3226
+ }
3227
+
3228
+ .muka-toast--error .muka-toast__icon {
3229
+ color: var(--toast-color-error-accent);
3230
+ }
3231
+
3232
+ /* Icon */
3233
+ .muka-toast__icon {
3234
+ display: flex;
3235
+ align-items: center;
3236
+ justify-content: center;
3237
+ flex-shrink: 0;
3238
+ width: var(--toast-icon-size);
3239
+ height: var(--toast-icon-size);
3240
+ }
3241
+
3242
+ .muka-toast__icon svg {
3243
+ width: 100%;
3244
+ height: 100%;
3245
+ }
3246
+
3247
+ /* Content */
3248
+ .muka-toast__content {
3249
+ flex: 1;
3250
+ min-width: 0;
3251
+ }
3252
+
3253
+ .muka-toast__title {
3254
+ font-family: var(--text-label-md-semibold-fontFamily);
3255
+ font-weight: var(--text-label-md-semibold-fontWeight);
3256
+ font-size: var(--text-label-md-semibold-fontSize);
3257
+ line-height: var(--text-label-md-semibold-lineHeight);
3258
+ margin-bottom: var(--spacing-1);
3259
+ }
3260
+
3261
+ .muka-toast__message {
3262
+ font-family: var(--text-body-sm-regular-fontFamily);
3263
+ font-weight: var(--text-body-sm-regular-fontWeight);
3264
+ font-size: var(--text-body-sm-regular-fontSize);
3265
+ line-height: var(--text-body-sm-regular-lineHeight);
3266
+ }
3267
+
3268
+ /* Action slot */
3269
+ .muka-toast__action {
3270
+ display: flex;
3271
+ align-items: center;
3272
+ flex-shrink: 0;
3273
+ }
3274
+
3275
+ /* Dismiss button */
3276
+ .muka-toast__dismiss {
3277
+ display: flex;
3278
+ align-items: center;
3279
+ justify-content: center;
3280
+ flex-shrink: 0;
3281
+ width: 24px;
3282
+ height: 24px;
3283
+ padding: 0;
3284
+ margin: -2px -4px -2px 0;
3285
+ border: none;
3286
+ background: transparent;
3287
+ color: inherit;
3288
+ opacity: 0.7;
3289
+ cursor: pointer;
3290
+ border-radius: var(--border-radius-sm);
3291
+ transition: opacity 0.15s ease, background-color 0.15s ease;
3292
+ }
3293
+
3294
+ .muka-toast__dismiss:hover {
3295
+ opacity: 1;
3296
+ background-color: rgba(0, 0, 0, 0.05);
3297
+ }
3298
+
3299
+ .muka-toast__dismiss:focus-visible {
3300
+ outline: 2px solid var(--color-border-focus);
3301
+ outline-offset: 2px;
3302
+ opacity: 1;
3303
+ }
3304
+
3305
+ .muka-toast__dismiss svg {
3306
+ width: 16px;
3307
+ height: 16px;
3308
+ }
3309
+
3310
+
3311
+ /* Textarea */
3312
+ /* Textarea Component Styles - Using Muka Design Tokens */
3313
+
3314
+ .muka-textarea {
3315
+ display: inline-flex;
3316
+ flex-direction: column;
3317
+ gap: var(--spacing-2);
3318
+ }
3319
+
3320
+ /* Label */
3321
+ .muka-textarea__label {
3322
+ color: var(--color-text-default-default);
3323
+ cursor: pointer;
3324
+ }
3325
+
3326
+ .muka-textarea__label--sm {
3327
+ font-family: var(--text-label-sm-semibold-fontFamily);
3328
+ font-weight: var(--text-label-sm-semibold-fontWeight);
3329
+ font-size: var(--text-label-sm-semibold-fontSize);
3330
+ line-height: var(--text-label-sm-semibold-lineHeight);
3331
+ }
3332
+
3333
+ .muka-textarea__label--md {
3334
+ font-family: var(--text-label-md-semibold-fontFamily);
3335
+ font-weight: var(--text-label-md-semibold-fontWeight);
3336
+ font-size: var(--text-label-md-semibold-fontSize);
3337
+ line-height: var(--text-label-md-semibold-lineHeight);
3338
+ }
3339
+
3340
+ .muka-textarea__label--lg {
3341
+ font-family: var(--text-label-lg-semibold-fontFamily);
3342
+ font-weight: var(--text-label-lg-semibold-fontWeight);
3343
+ font-size: var(--text-label-lg-semibold-fontSize);
3344
+ line-height: var(--text-label-lg-semibold-lineHeight);
3345
+ }
3346
+
3347
+ .muka-textarea__required {
3208
3348
  color: var(--color-state-error-foreground);
3209
3349
  }
3210
3350
 
@@ -5389,194 +5529,379 @@ body {
5389
5529
  }
5390
5530
 
5391
5531
 
5392
- /* Radio */
5393
- /* Radio Component Styles - Using Muka Design Tokens */
5394
-
5395
- /* Wrapper - clickable label container */
5396
- .muka-radio {
5397
- display: inline-flex;
5398
- align-items: center;
5399
- gap: var(--spacing-4);
5400
- cursor: pointer;
5401
- user-select: none;
5402
- }
5532
+ /* ProgressTracker */
5533
+ /* ProgressTracker Component Styles — Using Muka Design Tokens */
5403
5534
 
5404
- .muka-radio--disabled {
5405
- cursor: not-allowed;
5406
- opacity: 0.6;
5535
+ /* ─── Root ──────────────────────────────────────────────── */
5536
+ .muka-progress-tracker {
5537
+ width: 100%;
5538
+ padding-bottom: var(--spacing-7);
5407
5539
  }
5408
5540
 
5409
- /* Control container */
5410
- .muka-radio__control {
5541
+ /* ─── Track (layered container) ─────────────────────────── */
5542
+ .muka-progress-tracker__track {
5411
5543
  position: relative;
5412
- display: inline-flex;
5413
- align-items: center;
5414
- justify-content: center;
5415
- flex-shrink: 0;
5544
+ /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
5545
+ padding-top: 14px;
5546
+ padding-bottom: 14px;
5416
5547
  }
5417
5548
 
5418
- /* Hidden native input */
5419
- .muka-radio__input {
5549
+ /* ─── Steps layer (on top) ──────────────────────────────── */
5550
+ .muka-progress-tracker__steps {
5420
5551
  position: absolute;
5421
- width: 1px;
5422
- height: 1px;
5423
- padding: 0;
5424
- margin: -1px;
5425
- overflow: hidden;
5426
- clip: rect(0, 0, 0, 0);
5427
- white-space: nowrap;
5428
- border: 0;
5552
+ inset: 0;
5553
+ display: flex;
5554
+ align-items: flex-start;
5555
+ justify-content: space-between;
5556
+ z-index: 2;
5429
5557
  }
5430
5558
 
5431
- /* Visual indicator (circle) */
5432
- .muka-radio__indicator {
5559
+ /* ─── Individual step ───────────────────────────────────── */
5560
+ .muka-progress-tracker__step {
5433
5561
  display: flex;
5562
+ flex-direction: column;
5434
5563
  align-items: center;
5435
- justify-content: center;
5436
- width: var(--radio-size-default);
5437
- height: var(--radio-size-default);
5564
+ gap: 7px;
5565
+ position: relative;
5566
+ }
5567
+
5568
+ /* ─── Step indicator (circle) ───────────────────────────── */
5569
+ .muka-progress-tracker__indicator {
5570
+ width: 32px;
5571
+ height: 32px;
5438
5572
  border-radius: var(--border-radius-full);
5439
- background-color: var(--radio-color-default-background);
5440
- border: var(--border-width-regular) solid var(--radio-color-default-border);
5441
- transition: all 0.15s ease;
5442
- box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.15);
5573
+ display: flex;
5574
+ align-items: center;
5575
+ justify-content: center;
5576
+ flex-shrink: 0;
5577
+ position: relative;
5443
5578
  }
5444
5579
 
5445
- /* Size variants */
5446
- .muka-radio--sm .muka-radio__indicator {
5447
- width: var(--radio-size-sm);
5448
- height: var(--radio-size-sm);
5580
+ /* Past: dark accent contrast circle with white checkmark */
5581
+ .muka-progress-tracker__indicator--past {
5582
+ background-color: var(--alias-color-accent-contrast);
5583
+ color: var(--color-text-default-inverse);
5584
+ cursor: pointer;
5449
5585
  }
5450
5586
 
5451
- .muka-radio--lg .muka-radio__indicator {
5452
- width: var(--radio-size-lg);
5453
- height: var(--radio-size-lg);
5587
+ .muka-progress-tracker__indicator--past:hover {
5588
+ background-color: var(--alias-color-accent-pressed);
5454
5589
  }
5455
5590
 
5456
- /* Inner dot (shown when checked) */
5457
- .muka-radio__dot {
5458
- width: var(--radio-dot-size-default);
5459
- height: var(--radio-dot-size-default);
5460
- border-radius: var(--border-radius-full);
5461
- background-color: var(--radio-color-default-dot);
5462
- transform: scale(0);
5463
- transition: transform 0.15s ease;
5591
+ .muka-progress-tracker__indicator--past:focus-visible {
5592
+ outline: 2px solid var(--color-border-focus);
5593
+ outline-offset: 2px;
5464
5594
  }
5465
5595
 
5466
- .muka-radio--sm .muka-radio__dot {
5467
- width: var(--radio-dot-size-sm);
5468
- height: var(--radio-dot-size-sm);
5596
+ /* Current: accent default circle with white number */
5597
+ .muka-progress-tracker__indicator--current {
5598
+ background-color: var(--alias-color-accent-default);
5599
+ color: var(--color-text-default-inverse);
5469
5600
  }
5470
5601
 
5471
- .muka-radio--lg .muka-radio__dot {
5472
- width: var(--radio-dot-size-lg);
5473
- height: var(--radio-dot-size-lg);
5602
+ /* Upcoming: sunken/gray circle with dark number */
5603
+ .muka-progress-tracker__indicator--upcoming {
5604
+ background-color: var(--color-surface-sunken);
5605
+ color: var(--color-text-default-default);
5474
5606
  }
5475
5607
 
5476
- /* Hover state - removed per design */
5608
+ /* ─── Step number text ──────────────────────────────────── */
5609
+ .muka-progress-tracker__number {
5610
+ font-family: var(--text-label-md-bold-fontFamily);
5611
+ font-weight: var(--text-label-md-bold-fontWeight);
5612
+ font-size: var(--text-label-md-bold-fontSize);
5613
+ line-height: var(--text-label-md-bold-lineHeight);
5614
+ text-align: center;
5615
+ user-select: none;
5616
+ }
5477
5617
 
5478
- /* Focus state */
5479
- .muka-radio__input:focus-visible + .muka-radio__indicator {
5480
- outline: 2px solid var(--color-border-focus);
5481
- outline-offset: 2px;
5618
+ /* ─── Checkmark icon ────────────────────────────────────── */
5619
+ .muka-progress-tracker__check-icon {
5620
+ width: 20px;
5621
+ height: 20px;
5482
5622
  }
5483
5623
 
5484
- /* Checked state */
5485
- .muka-radio__input:checked + .muka-radio__indicator {
5486
- background-color: var(--radio-color-checked-background);
5487
- border-width: var(--border-width-bold);
5488
- border-color: var(--radio-color-checked-border);
5489
- box-shadow: none;
5624
+ /* Past checkmark uses inverse foreground, matching the active step number.
5625
+ Scoped under the indicator to override the Icon component's default color. */
5626
+ .muka-progress-tracker__indicator--past .muka-progress-tracker__check-icon {
5627
+ color: var(--color-text-default-inverse);
5490
5628
  }
5491
5629
 
5492
- .muka-radio__input:checked + .muka-radio__indicator .muka-radio__dot {
5493
- background-color: var(--radio-color-checked-dot);
5494
- transform: scale(1);
5630
+ /* ─── Step label ────────────────────────────────────────── */
5631
+ .muka-progress-tracker__label {
5632
+ font-family: var(--text-label-sm-regular-fontFamily);
5633
+ font-weight: var(--text-label-sm-regular-fontWeight);
5634
+ font-size: var(--text-label-sm-regular-fontSize);
5635
+ line-height: var(--text-label-sm-regular-lineHeight);
5636
+ color: var(--color-text-default-default);
5637
+ text-align: center;
5638
+ max-width: 120px;
5639
+ white-space: nowrap;
5640
+ overflow: hidden;
5641
+ text-overflow: ellipsis;
5495
5642
  }
5496
5643
 
5497
- /* Disabled state */
5498
- .muka-radio--disabled .muka-radio__indicator {
5499
- background-color: var(--radio-color-disabled-background);
5500
- border-color: var(--radio-color-disabled-border);
5501
- box-shadow: none;
5644
+ /* Current step label is bold */
5645
+ .muka-progress-tracker__label--current {
5646
+ font-family: var(--text-label-sm-bold-fontFamily);
5647
+ font-weight: var(--text-label-sm-bold-fontWeight);
5502
5648
  }
5503
5649
 
5504
- .muka-radio__input:disabled:checked + .muka-radio__indicator .muka-radio__dot {
5505
- background-color: var(--radio-color-disabled-dot);
5650
+ /* ─── Connectors layer (behind indicators) ──────────────── */
5651
+ .muka-progress-tracker__connectors {
5652
+ display: flex;
5653
+ align-items: center;
5654
+ /* Horizontal padding = indicator radius (32/2 = 16px) so lines meet circle centers */
5655
+ padding-left: var(--spacing-4);
5656
+ padding-right: var(--spacing-4);
5657
+ position: relative;
5658
+ z-index: 1;
5506
5659
  }
5507
5660
 
5508
- /* Label text */
5509
- .muka-radio__label {
5510
- font-family: var(--text-label-lg-regular-fontFamily);
5511
- font-weight: var(--text-label-lg-regular-fontWeight);
5512
- font-size: var(--text-label-lg-regular-fontSize);
5513
- line-height: var(--text-label-lg-regular-lineHeight);
5514
- color: var(--color-text-default-default);
5661
+ /* ─── Individual connector line ─────────────────────────── */
5662
+ .muka-progress-tracker__connector {
5663
+ flex: 1 0 0;
5664
+ height: 4px;
5665
+ min-width: 1px;
5515
5666
  }
5516
5667
 
5517
- .muka-radio--sm .muka-radio__label {
5518
- font-family: var(--text-label-md-regular-fontFamily);
5519
- font-weight: var(--text-label-md-regular-fontWeight);
5520
- font-size: var(--text-label-md-regular-fontSize);
5521
- line-height: var(--text-label-md-regular-lineHeight);
5668
+ /* Past: solid dark line */
5669
+ .muka-progress-tracker__connector--past {
5670
+ background-color: var(--alias-color-accent-contrast);
5522
5671
  }
5523
5672
 
5524
- .muka-radio--lg .muka-radio__label {
5525
- font-family: var(--text-label-xl-regular-fontFamily);
5526
- font-weight: var(--text-label-xl-regular-fontWeight);
5527
- font-size: var(--text-label-xl-regular-fontSize);
5528
- line-height: var(--text-label-xl-regular-lineHeight);
5673
+ /* Current: gradient from past (dark) toward current step */
5674
+ .muka-progress-tracker__connector--current {
5675
+ background: linear-gradient(
5676
+ to right,
5677
+ var(--alias-color-accent-contrast) 0%,
5678
+ var(--alias-color-accent-default) 100%
5679
+ );
5529
5680
  }
5530
5681
 
5531
- .muka-radio--disabled .muka-radio__label {
5532
- color: var(--color-text-subtle-default);
5682
+ /* Current-right: gradient fading from current step into upcoming */
5683
+ .muka-progress-tracker__connector--current-right {
5684
+ background: linear-gradient(
5685
+ to right,
5686
+ var(--alias-color-accent-default) 0%,
5687
+ var(--alias-color-accent-default) 15%,
5688
+ var(--color-surface-sunken) 50%
5689
+ );
5533
5690
  }
5534
5691
 
5692
+ /* Upcoming: solid gray line */
5693
+ .muka-progress-tracker__connector--upcoming {
5694
+ background-color: var(--color-surface-sunken);
5695
+ }
5535
5696
 
5536
- /* PullToRefresh */
5537
- /* PullToRefresh Component Styles */
5538
5697
 
5539
- .muka-pull-to-refresh {
5540
- position: relative;
5698
+ /* ProgressAccordeon */
5699
+ /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
5700
+
5701
+ /* ─── Root ──────────────────────────────────────────────── */
5702
+ .muka-progress-accordeon {
5703
+ container-type: inline-size;
5541
5704
  display: flex;
5542
5705
  flex-direction: column;
5706
+ align-items: stretch;
5543
5707
  width: 100%;
5544
- height: 100%;
5545
- overflow: hidden;
5708
+ /* Top padding provides the vertical rhythm between stacked steps */
5709
+ padding-top: var(--spacing-8);
5546
5710
  }
5547
5711
 
5548
- .muka-pull-to-refresh__indicator {
5549
- position: absolute;
5550
- top: 0;
5551
- left: 0;
5552
- right: 0;
5712
+ /* Per-state gap: content-bearing steps are tighter, header-only steps looser */
5713
+ .muka-progress-accordeon--current,
5714
+ .muka-progress-accordeon--past.muka-progress-accordeon--expanded {
5715
+ gap: var(--spacing-6);
5716
+ }
5717
+
5718
+ .muka-progress-accordeon--upcoming,
5719
+ .muka-progress-accordeon--past.muka-progress-accordeon--collapsed {
5720
+ gap: var(--spacing-8);
5721
+ }
5722
+
5723
+ /* Past-expanded groups header + slot with a tighter internal gap */
5724
+ .muka-progress-accordeon__body {
5553
5725
  display: flex;
5554
- align-items: flex-end;
5555
- justify-content: center;
5556
- padding-bottom: var(--spacing-2);
5557
- color: var(--color-text-subtle-default);
5558
- overflow: hidden;
5559
- pointer-events: none;
5560
- z-index: 1;
5726
+ flex-direction: column;
5727
+ gap: var(--spacing-4);
5728
+ width: 100%;
5561
5729
  }
5562
5730
 
5563
- .muka-pull-to-refresh__chevron {
5564
- display: inline-flex;
5731
+ /* ─── Header ─────────────────────────────────────────────── */
5732
+ .muka-progress-accordeon__header {
5733
+ display: flex;
5734
+ flex-direction: column;
5735
+ gap: var(--spacing-3);
5736
+ width: 100%;
5737
+ }
5738
+
5739
+ .muka-progress-accordeon__header-row {
5740
+ display: flex;
5741
+ align-items: flex-start;
5742
+ gap: var(--spacing-3);
5743
+ width: 100%;
5744
+ min-height: 40px;
5745
+ }
5746
+
5747
+ .muka-progress-accordeon__heading-group {
5748
+ display: flex;
5749
+ flex: 1 0 0;
5750
+ min-width: 0;
5751
+ align-items: flex-start;
5752
+ gap: var(--spacing-4);
5753
+ }
5754
+
5755
+ /* Past steps carry 40px controls; nudge the heading to vertically centre it */
5756
+ .muka-progress-accordeon--past .muka-progress-accordeon__heading-group {
5757
+ padding-top: var(--spacing-1);
5758
+ }
5759
+
5760
+ .muka-progress-accordeon__controls {
5761
+ display: flex;
5762
+ flex-shrink: 0;
5763
+ align-items: center;
5764
+ gap: var(--spacing-3);
5765
+ }
5766
+
5767
+ /* ─── Step indicator (circle) ───────────────────────────── */
5768
+ .muka-progress-accordeon__indicator {
5769
+ width: 32px;
5770
+ height: 32px;
5771
+ flex-shrink: 0;
5772
+ border-radius: var(--border-radius-full);
5773
+ display: flex;
5565
5774
  align-items: center;
5566
5775
  justify-content: center;
5567
- transition: transform 0.16s ease;
5568
5776
  }
5569
5777
 
5570
- .muka-pull-to-refresh__scroller {
5571
- flex: 1 1 auto;
5572
- min-height: 0;
5778
+ /* Past: dark accent-contrast circle with inverse checkmark */
5779
+ .muka-progress-accordeon__indicator--past {
5780
+ background-color: var(--alias-color-accent-contrast);
5781
+ color: var(--color-text-default-inverse);
5782
+ }
5783
+
5784
+ /* Current: accent circle with inverse bold number */
5785
+ .muka-progress-accordeon__indicator--current {
5786
+ background-color: var(--alias-color-accent-default);
5787
+ color: var(--color-text-default-inverse);
5788
+ }
5789
+
5790
+ /* Upcoming: sunken/muted circle with default-color number */
5791
+ .muka-progress-accordeon__indicator--upcoming {
5792
+ background-color: var(--color-surface-sunken);
5793
+ color: var(--color-text-default-default);
5794
+ }
5795
+
5796
+ .muka-progress-accordeon__check-icon {
5797
+ width: 20px;
5798
+ height: 20px;
5799
+ color: var(--color-text-default-inverse);
5800
+ }
5801
+
5802
+ .muka-progress-accordeon__number {
5803
+ font-family: var(--text-label-md-bold-fontFamily);
5804
+ font-weight: var(--text-label-md-bold-fontWeight);
5805
+ font-size: var(--text-label-md-bold-fontSize);
5806
+ line-height: var(--text-label-md-bold-lineHeight);
5807
+ text-align: center;
5808
+ user-select: none;
5809
+ }
5810
+
5811
+ /* Upcoming number is semibold (not bold) per Figma */
5812
+ .muka-progress-accordeon__indicator--upcoming .muka-progress-accordeon__number {
5813
+ font-family: var(--text-label-md-semibold-fontFamily);
5814
+ font-weight: var(--text-label-md-semibold-fontWeight);
5815
+ }
5816
+
5817
+ /* ─── Heading (responsive: heading/md on wide, heading/sm on narrow) ─────── */
5818
+ .muka-progress-accordeon__heading {
5819
+ flex: 1 0 0;
5820
+ min-width: 0;
5821
+ margin: 0;
5822
+ font-family: var(--text-heading-md-fontFamily);
5823
+ font-weight: var(--text-heading-md-fontWeight);
5824
+ font-size: var(--text-heading-md-fontSize);
5825
+ line-height: var(--text-heading-md-lineHeight);
5826
+ letter-spacing: var(--text-heading-md-letterSpacing);
5827
+ color: var(--color-text-default-default);
5828
+ }
5829
+
5830
+ /* ─── Description ────────────────────────────────────────── */
5831
+ /* Indented 48px (32px indicator + 16px gap) to align under the heading text */
5832
+ .muka-progress-accordeon__description {
5833
+ width: 100%;
5834
+ padding-left: 48px;
5835
+ font-family: var(--text-body-base-regular-fontFamily);
5836
+ font-weight: var(--text-body-base-regular-fontWeight);
5837
+ font-size: var(--text-body-base-regular-fontSize);
5838
+ line-height: var(--text-body-base-regular-lineHeight);
5839
+ color: var(--color-text-default-default);
5840
+ }
5841
+
5842
+ /* ─── Edit button ────────────────────────────────────────── */
5843
+ .muka-progress-accordeon__edit {
5844
+ flex-shrink: 0;
5845
+ }
5846
+
5847
+ /* Wide container shows the labelled button; the icon-only one is hidden */
5848
+ .muka-progress-accordeon__edit--narrow {
5849
+ display: none;
5850
+ }
5851
+
5852
+ /* ─── Content slot ───────────────────────────────────────── */
5853
+ .muka-progress-accordeon__slot {
5854
+ display: flex;
5855
+ flex-direction: column;
5856
+ align-items: stretch;
5857
+ width: 100%;
5858
+ }
5859
+
5860
+ /* ─── Action buttons (current state) ─────────────────────── */
5861
+ .muka-progress-accordeon__actions {
5862
+ display: flex;
5863
+ justify-content: flex-end;
5864
+ gap: var(--spacing-4);
5865
+ width: 100%;
5866
+ }
5867
+
5868
+ .muka-progress-accordeon__action {
5869
+ min-width: 160px;
5870
+ }
5871
+
5872
+ /* ─── Divider ────────────────────────────────────────────── */
5873
+ .muka-progress-accordeon__divider {
5573
5874
  width: 100%;
5574
- overflow-x: clip;
5575
- overflow-y: auto;
5576
- -webkit-overflow-scrolling: touch;
5577
- overscroll-behavior-y: contain;
5578
- touch-action: pan-y;
5579
- will-change: transform;
5875
+ }
5876
+
5877
+ /* ─── Responsive (narrow container) ──────────────────────── */
5878
+ @container (max-width: 480px) {
5879
+ /* Heading steps down to heading/sm. The 24px line-height is shorter than the
5880
+ 32px step indicator, so nudge the text down to keep a single line centred. */
5881
+ .muka-progress-accordeon__heading {
5882
+ font-size: var(--text-heading-sm-fontSize);
5883
+ line-height: var(--text-heading-sm-lineHeight);
5884
+ padding-top: var(--spacing-1);
5885
+ }
5886
+
5887
+ /* Edit button swaps to the icon-only variant */
5888
+ .muka-progress-accordeon__edit--wide {
5889
+ display: none;
5890
+ }
5891
+
5892
+ .muka-progress-accordeon__edit--narrow {
5893
+ display: inline-flex;
5894
+ }
5895
+
5896
+ /* Action buttons stretch to fill the row */
5897
+ .muka-progress-accordeon__actions {
5898
+ justify-content: stretch;
5899
+ }
5900
+
5901
+ .muka-progress-accordeon__action {
5902
+ flex: 1 0 0;
5903
+ min-width: 0;
5904
+ }
5580
5905
  }
5581
5906
 
5582
5907
 
@@ -6513,7 +6838,7 @@ body {
6513
6838
  position: relative;
6514
6839
 
6515
6840
  /* Interaction - only apply if interactive */
6516
- transition: background-color 0.2s ease;
6841
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
6517
6842
  }
6518
6843
 
6519
6844
  /* Interactive state */
@@ -6521,13 +6846,19 @@ body {
6521
6846
  cursor: pointer;
6522
6847
  }
6523
6848
 
6849
+ /*
6850
+ * surface.hover / surface.pressed are theme-adaptive translucent tints, so they
6851
+ * are layered on top of the item's base surface via an inset box-shadow overlay
6852
+ * rather than replacing background-color. This preserves the base level (level3,
6853
+ * or level2 when selected) and lets the tint read correctly on any surface.
6854
+ */
6524
6855
  .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
6525
- background-color: var(--color-surface-hover);
6856
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
6526
6857
  }
6527
6858
 
6528
6859
  .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
6529
6860
  .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
6530
- background-color: var(--color-surface-pressed);
6861
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
6531
6862
  }
6532
6863
 
6533
6864
  /* Focus styles for accessibility */
@@ -6553,7 +6884,7 @@ body {
6553
6884
  }
6554
6885
 
6555
6886
  .muka-listitem--selected:hover {
6556
- background-color: var(--color-surface-hover);
6887
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
6557
6888
  }
6558
6889
 
6559
6890
  /* No divider modifier */
@@ -6872,6 +7203,47 @@ li.muka-listitem {
6872
7203
  }
6873
7204
 
6874
7205
 
7206
+ /* Label */
7207
+ /* Label Component Styles - Using Muka Design Tokens */
7208
+
7209
+ .muka-label {
7210
+ display: inline-flex;
7211
+ align-items: center;
7212
+ color: var(--color-text-default-default);
7213
+ cursor: pointer;
7214
+ }
7215
+
7216
+ .muka-label--sm {
7217
+ font-family: var(--text-label-sm-semibold-fontFamily);
7218
+ font-weight: var(--text-label-sm-semibold-fontWeight);
7219
+ font-size: var(--text-label-sm-semibold-fontSize);
7220
+ line-height: var(--text-label-sm-semibold-lineHeight);
7221
+ }
7222
+
7223
+ .muka-label--md {
7224
+ font-family: var(--text-label-md-semibold-fontFamily);
7225
+ font-weight: var(--text-label-md-semibold-fontWeight);
7226
+ font-size: var(--text-label-md-semibold-fontSize);
7227
+ line-height: var(--text-label-md-semibold-lineHeight);
7228
+ }
7229
+
7230
+ .muka-label--lg {
7231
+ font-family: var(--text-label-lg-semibold-fontFamily);
7232
+ font-weight: var(--text-label-lg-semibold-fontWeight);
7233
+ font-size: var(--text-label-lg-semibold-fontSize);
7234
+ line-height: var(--text-label-lg-semibold-lineHeight);
7235
+ }
7236
+
7237
+ .muka-label--disabled {
7238
+ color: var(--color-text-subtle-default);
7239
+ cursor: not-allowed;
7240
+ }
7241
+
7242
+ .muka-label__required {
7243
+ color: var(--color-state-error-foreground);
7244
+ }
7245
+
7246
+
6875
7247
  /* Input */
6876
7248
  /* Input Component Styles - Using Muka Design Tokens */
6877
7249
 
@@ -7123,182 +7495,22 @@ li.muka-listitem {
7123
7495
 
7124
7496
  .muka-icon--sm {
7125
7497
  width: var(--icon-size-sm);
7126
- height: var(--icon-size-sm);
7127
- }
7128
-
7129
- .muka-icon--md {
7130
- width: var(--icon-size-default);
7131
- height: var(--icon-size-default);
7132
- }
7133
-
7134
- .muka-icon--lg {
7135
- width: var(--icon-size-lg);
7136
- height: var(--icon-size-lg);
7137
- }
7138
-
7139
- .muka-icon svg {
7140
- width: 100%;
7141
- height: 100%;
7142
- }
7143
-
7144
-
7145
- /* FormProgressBar */
7146
- /* FormProgressBar Component Styles — Using Muka Design Tokens */
7147
-
7148
- /* ─── Root ──────────────────────────────────────────────── */
7149
- .muka-progress-bar {
7150
- width: 100%;
7151
- padding-bottom: var(--spacing-7);
7152
- }
7153
-
7154
- /* ─── Track (layered container) ─────────────────────────── */
7155
- .muka-progress-bar__track {
7156
- position: relative;
7157
- /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
7158
- padding-top: 14px;
7159
- padding-bottom: 14px;
7160
- }
7161
-
7162
- /* ─── Steps layer (on top) ──────────────────────────────── */
7163
- .muka-progress-bar__steps {
7164
- position: absolute;
7165
- inset: 0;
7166
- display: flex;
7167
- align-items: flex-start;
7168
- justify-content: space-between;
7169
- z-index: 2;
7170
- }
7171
-
7172
- /* ─── Individual step ───────────────────────────────────── */
7173
- .muka-progress-bar__step {
7174
- display: flex;
7175
- flex-direction: column;
7176
- align-items: center;
7177
- gap: 7px;
7178
- position: relative;
7179
- }
7180
-
7181
- /* ─── Step indicator (circle) ───────────────────────────── */
7182
- .muka-progress-bar__indicator {
7183
- width: 32px;
7184
- height: 32px;
7185
- border-radius: var(--border-radius-full);
7186
- display: flex;
7187
- align-items: center;
7188
- justify-content: center;
7189
- flex-shrink: 0;
7190
- position: relative;
7191
- }
7192
-
7193
- /* Past: dark accent contrast circle with white checkmark */
7194
- .muka-progress-bar__indicator--past {
7195
- background-color: var(--alias-color-accent-contrast);
7196
- color: var(--color-text-default-inverse);
7197
- cursor: pointer;
7198
- }
7199
-
7200
- .muka-progress-bar__indicator--past:hover {
7201
- opacity: 0.85;
7202
- }
7203
-
7204
- .muka-progress-bar__indicator--past:focus-visible {
7205
- outline: 2px solid var(--color-border-focus);
7206
- outline-offset: 2px;
7207
- }
7208
-
7209
- /* Current: accent default circle with white number */
7210
- .muka-progress-bar__indicator--current {
7211
- background-color: var(--alias-color-accent-default);
7212
- color: var(--color-text-default-inverse);
7213
- }
7214
-
7215
- /* Upcoming: sunken/gray circle with dark number */
7216
- .muka-progress-bar__indicator--upcoming {
7217
- background-color: var(--color-surface-sunken);
7218
- color: var(--color-text-default-default);
7219
- }
7220
-
7221
- /* ─── Step number text ──────────────────────────────────── */
7222
- .muka-progress-bar__number {
7223
- font-family: var(--text-label-md-bold-fontFamily);
7224
- font-weight: var(--text-label-md-bold-fontWeight);
7225
- font-size: var(--text-label-md-bold-fontSize);
7226
- line-height: var(--text-label-md-bold-lineHeight);
7227
- text-align: center;
7228
- user-select: none;
7229
- }
7230
-
7231
- /* ─── Checkmark icon ────────────────────────────────────── */
7232
- .muka-progress-bar__check-icon {
7233
- width: 20px;
7234
- height: 20px;
7235
- }
7236
-
7237
- /* ─── Step label ────────────────────────────────────────── */
7238
- .muka-progress-bar__label {
7239
- font-family: var(--text-label-sm-regular-fontFamily);
7240
- font-weight: var(--text-label-sm-regular-fontWeight);
7241
- font-size: var(--text-label-sm-regular-fontSize);
7242
- line-height: var(--text-label-sm-regular-lineHeight);
7243
- color: var(--color-text-default-default);
7244
- text-align: center;
7245
- max-width: 120px;
7246
- white-space: nowrap;
7247
- overflow: hidden;
7248
- text-overflow: ellipsis;
7249
- }
7250
-
7251
- /* Current step label is bold */
7252
- .muka-progress-bar__label--current {
7253
- font-family: var(--text-label-sm-bold-fontFamily);
7254
- font-weight: var(--text-label-sm-bold-fontWeight);
7255
- }
7256
-
7257
- /* ─── Connectors layer (behind indicators) ──────────────── */
7258
- .muka-progress-bar__connectors {
7259
- display: flex;
7260
- align-items: center;
7261
- /* Horizontal padding = indicator radius (32/2 = 16px) so lines meet circle centers */
7262
- padding-left: var(--spacing-4);
7263
- padding-right: var(--spacing-4);
7264
- position: relative;
7265
- z-index: 1;
7266
- }
7267
-
7268
- /* ─── Individual connector line ─────────────────────────── */
7269
- .muka-progress-bar__connector {
7270
- flex: 1 0 0;
7271
- height: 4px;
7272
- min-width: 1px;
7273
- }
7274
-
7275
- /* Past: solid dark line */
7276
- .muka-progress-bar__connector--past {
7277
- background-color: var(--alias-color-accent-contrast);
7278
- }
7279
-
7280
- /* Current: gradient from past (dark) toward current step */
7281
- .muka-progress-bar__connector--current {
7282
- background: linear-gradient(
7283
- to right,
7284
- var(--alias-color-accent-contrast) 0%,
7285
- var(--alias-color-accent-default) 100%
7286
- );
7498
+ height: var(--icon-size-sm);
7287
7499
  }
7288
7500
 
7289
- /* Current-right: gradient fading from current step into upcoming */
7290
- .muka-progress-bar__connector--current-right {
7291
- background: linear-gradient(
7292
- to right,
7293
- var(--alias-color-accent-default) 0%,
7294
- var(--alias-color-accent-default) 15%,
7295
- var(--color-surface-sunken) 50%
7296
- );
7501
+ .muka-icon--md {
7502
+ width: var(--icon-size-default);
7503
+ height: var(--icon-size-default);
7297
7504
  }
7298
7505
 
7299
- /* Upcoming: solid gray line */
7300
- .muka-progress-bar__connector--upcoming {
7301
- background-color: var(--color-surface-sunken);
7506
+ .muka-icon--lg {
7507
+ width: var(--icon-size-lg);
7508
+ height: var(--icon-size-lg);
7509
+ }
7510
+
7511
+ .muka-icon svg {
7512
+ width: 100%;
7513
+ height: 100%;
7302
7514
  }
7303
7515
 
7304
7516
 
@@ -7564,47 +7776,6 @@ li.muka-listitem {
7564
7776
  }
7565
7777
 
7566
7778
 
7567
- /* Label */
7568
- /* Label Component Styles - Using Muka Design Tokens */
7569
-
7570
- .muka-label {
7571
- display: inline-flex;
7572
- align-items: center;
7573
- color: var(--color-text-default-default);
7574
- cursor: pointer;
7575
- }
7576
-
7577
- .muka-label--sm {
7578
- font-family: var(--text-label-sm-semibold-fontFamily);
7579
- font-weight: var(--text-label-sm-semibold-fontWeight);
7580
- font-size: var(--text-label-sm-semibold-fontSize);
7581
- line-height: var(--text-label-sm-semibold-lineHeight);
7582
- }
7583
-
7584
- .muka-label--md {
7585
- font-family: var(--text-label-md-semibold-fontFamily);
7586
- font-weight: var(--text-label-md-semibold-fontWeight);
7587
- font-size: var(--text-label-md-semibold-fontSize);
7588
- line-height: var(--text-label-md-semibold-lineHeight);
7589
- }
7590
-
7591
- .muka-label--lg {
7592
- font-family: var(--text-label-lg-semibold-fontFamily);
7593
- font-weight: var(--text-label-lg-semibold-fontWeight);
7594
- font-size: var(--text-label-lg-semibold-fontSize);
7595
- line-height: var(--text-label-lg-semibold-lineHeight);
7596
- }
7597
-
7598
- .muka-label--disabled {
7599
- color: var(--color-text-subtle-default);
7600
- cursor: not-allowed;
7601
- }
7602
-
7603
- .muka-label__required {
7604
- color: var(--color-state-error-foreground);
7605
- }
7606
-
7607
-
7608
7779
  /* FAB */
7609
7780
  /* FAB (Floating Action Button) Component Styles */
7610
7781
 
@@ -8992,6 +9163,10 @@ li.muka-listitem {
8992
9163
  min-content, collapsing the flexible (1fr) stack track to 0. */
8993
9164
  .muka-data-table--responsive {
8994
9165
  display: block;
9166
+ /* Collapsed cards always use md cell padding regardless of the table's `size`
9167
+ — sm is too tight and lg wastes horizontal room, forcing the name to wrap. */
9168
+ --dt-pad-x: var(--datatable-cell-padding-x-md);
9169
+ --dt-pad-y: var(--datatable-cell-padding-y-md);
8995
9170
  }
8996
9171
 
8997
9172
  .muka-data-table--responsive .muka-data-table__body {
@@ -9035,6 +9210,11 @@ li.muka-listitem {
9035
9210
  .muka-data-table--responsive .muka-data-table__td--m-secondary {
9036
9211
  display: block;
9037
9212
  grid-column: 2;
9213
+ /* Hug the widest secondary content (e.g. a status badge). The desktop column's
9214
+ min/max-width are inline styles, so `!important` is required to drop them and
9215
+ let the `auto` grid track shrink to the badge — freeing space for the name. */
9216
+ min-width: 0 !important;
9217
+ max-width: none !important;
9038
9218
  }
9039
9219
 
9040
9220
  .muka-data-table--responsive .muka-data-table__td--action {
@@ -9052,6 +9232,14 @@ li.muka-listitem {
9052
9232
  justify-content: flex-end;
9053
9233
  }
9054
9234
 
9235
+ /* Utility for cell content: hide a sub-element in the collapsed card. Use it to
9236
+ drop a redundant text label next to a compact visual (e.g. the "75%" beside a
9237
+ donut) so only the visual shows and the secondary column hugs to its width.
9238
+ `display: none` also collapses any surrounding flex `gap`, leaving no gutter. */
9239
+ .muka-data-table--responsive .muka-data-table__mobile-hidden {
9240
+ display: none;
9241
+ }
9242
+
9055
9243
  /* Stacked primary column: first field is the title, the rest are subtitle lines. */
9056
9244
  .muka-data-table__stack {
9057
9245
  display: flex;
@@ -12227,3 +12415,194 @@ li.muka-listitem {
12227
12415
  border-bottom: none;
12228
12416
  }
12229
12417
 
12418
+
12419
+ /* Radio */
12420
+ /* Radio Component Styles - Using Muka Design Tokens */
12421
+
12422
+ /* Wrapper - clickable label container */
12423
+ .muka-radio {
12424
+ display: inline-flex;
12425
+ align-items: center;
12426
+ gap: var(--spacing-4);
12427
+ cursor: pointer;
12428
+ user-select: none;
12429
+ }
12430
+
12431
+ .muka-radio--disabled {
12432
+ cursor: not-allowed;
12433
+ opacity: 0.6;
12434
+ }
12435
+
12436
+ /* Control container */
12437
+ .muka-radio__control {
12438
+ position: relative;
12439
+ display: inline-flex;
12440
+ align-items: center;
12441
+ justify-content: center;
12442
+ flex-shrink: 0;
12443
+ }
12444
+
12445
+ /* Hidden native input */
12446
+ .muka-radio__input {
12447
+ position: absolute;
12448
+ width: 1px;
12449
+ height: 1px;
12450
+ padding: 0;
12451
+ margin: -1px;
12452
+ overflow: hidden;
12453
+ clip: rect(0, 0, 0, 0);
12454
+ white-space: nowrap;
12455
+ border: 0;
12456
+ }
12457
+
12458
+ /* Visual indicator (circle) */
12459
+ .muka-radio__indicator {
12460
+ display: flex;
12461
+ align-items: center;
12462
+ justify-content: center;
12463
+ width: var(--radio-size-default);
12464
+ height: var(--radio-size-default);
12465
+ border-radius: var(--border-radius-full);
12466
+ background-color: var(--radio-color-default-background);
12467
+ border: var(--border-width-regular) solid var(--radio-color-default-border);
12468
+ transition: all 0.15s ease;
12469
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.15);
12470
+ }
12471
+
12472
+ /* Size variants */
12473
+ .muka-radio--sm .muka-radio__indicator {
12474
+ width: var(--radio-size-sm);
12475
+ height: var(--radio-size-sm);
12476
+ }
12477
+
12478
+ .muka-radio--lg .muka-radio__indicator {
12479
+ width: var(--radio-size-lg);
12480
+ height: var(--radio-size-lg);
12481
+ }
12482
+
12483
+ /* Inner dot (shown when checked) */
12484
+ .muka-radio__dot {
12485
+ width: var(--radio-dot-size-default);
12486
+ height: var(--radio-dot-size-default);
12487
+ border-radius: var(--border-radius-full);
12488
+ background-color: var(--radio-color-default-dot);
12489
+ transform: scale(0);
12490
+ transition: transform 0.15s ease;
12491
+ }
12492
+
12493
+ .muka-radio--sm .muka-radio__dot {
12494
+ width: var(--radio-dot-size-sm);
12495
+ height: var(--radio-dot-size-sm);
12496
+ }
12497
+
12498
+ .muka-radio--lg .muka-radio__dot {
12499
+ width: var(--radio-dot-size-lg);
12500
+ height: var(--radio-dot-size-lg);
12501
+ }
12502
+
12503
+ /* Hover state - removed per design */
12504
+
12505
+ /* Focus state */
12506
+ .muka-radio__input:focus-visible + .muka-radio__indicator {
12507
+ outline: 2px solid var(--color-border-focus);
12508
+ outline-offset: 2px;
12509
+ }
12510
+
12511
+ /* Checked state */
12512
+ .muka-radio__input:checked + .muka-radio__indicator {
12513
+ background-color: var(--radio-color-checked-background);
12514
+ border-width: var(--border-width-bold);
12515
+ border-color: var(--radio-color-checked-border);
12516
+ box-shadow: none;
12517
+ }
12518
+
12519
+ .muka-radio__input:checked + .muka-radio__indicator .muka-radio__dot {
12520
+ background-color: var(--radio-color-checked-dot);
12521
+ transform: scale(1);
12522
+ }
12523
+
12524
+ /* Disabled state */
12525
+ .muka-radio--disabled .muka-radio__indicator {
12526
+ background-color: var(--radio-color-disabled-background);
12527
+ border-color: var(--radio-color-disabled-border);
12528
+ box-shadow: none;
12529
+ }
12530
+
12531
+ .muka-radio__input:disabled:checked + .muka-radio__indicator .muka-radio__dot {
12532
+ background-color: var(--radio-color-disabled-dot);
12533
+ }
12534
+
12535
+ /* Label text */
12536
+ .muka-radio__label {
12537
+ font-family: var(--text-label-lg-regular-fontFamily);
12538
+ font-weight: var(--text-label-lg-regular-fontWeight);
12539
+ font-size: var(--text-label-lg-regular-fontSize);
12540
+ line-height: var(--text-label-lg-regular-lineHeight);
12541
+ color: var(--color-text-default-default);
12542
+ }
12543
+
12544
+ .muka-radio--sm .muka-radio__label {
12545
+ font-family: var(--text-label-md-regular-fontFamily);
12546
+ font-weight: var(--text-label-md-regular-fontWeight);
12547
+ font-size: var(--text-label-md-regular-fontSize);
12548
+ line-height: var(--text-label-md-regular-lineHeight);
12549
+ }
12550
+
12551
+ .muka-radio--lg .muka-radio__label {
12552
+ font-family: var(--text-label-xl-regular-fontFamily);
12553
+ font-weight: var(--text-label-xl-regular-fontWeight);
12554
+ font-size: var(--text-label-xl-regular-fontSize);
12555
+ line-height: var(--text-label-xl-regular-lineHeight);
12556
+ }
12557
+
12558
+ .muka-radio--disabled .muka-radio__label {
12559
+ color: var(--color-text-subtle-default);
12560
+ }
12561
+
12562
+
12563
+ /* PullToRefresh */
12564
+ /* PullToRefresh Component Styles */
12565
+
12566
+ .muka-pull-to-refresh {
12567
+ position: relative;
12568
+ display: flex;
12569
+ flex-direction: column;
12570
+ width: 100%;
12571
+ height: 100%;
12572
+ overflow: hidden;
12573
+ }
12574
+
12575
+ .muka-pull-to-refresh__indicator {
12576
+ position: absolute;
12577
+ top: 0;
12578
+ left: 0;
12579
+ right: 0;
12580
+ display: flex;
12581
+ align-items: flex-end;
12582
+ justify-content: center;
12583
+ padding-bottom: var(--spacing-2);
12584
+ color: var(--color-text-subtle-default);
12585
+ overflow: hidden;
12586
+ pointer-events: none;
12587
+ z-index: 1;
12588
+ }
12589
+
12590
+ .muka-pull-to-refresh__chevron {
12591
+ display: inline-flex;
12592
+ align-items: center;
12593
+ justify-content: center;
12594
+ transition: transform 0.16s ease;
12595
+ }
12596
+
12597
+ .muka-pull-to-refresh__scroller {
12598
+ flex: 1 1 auto;
12599
+ min-height: 0;
12600
+ width: 100%;
12601
+ overflow-x: clip;
12602
+ overflow-y: auto;
12603
+ -webkit-overflow-scrolling: touch;
12604
+ overscroll-behavior-y: contain;
12605
+ touch-action: pan-y;
12606
+ will-change: transform;
12607
+ }
12608
+