@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
@@ -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,194 +5496,379 @@ body {
5388
5496
  }
5389
5497
 
5390
5498
 
5391
- /* Radio */
5392
- /* Radio Component Styles - Using Muka Design Tokens */
5499
+ /* ProgressTracker */
5500
+ /* ProgressTracker Component Styles — Using Muka Design Tokens */
5393
5501
 
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;
5502
+ /* ─── Root ──────────────────────────────────────────────── */
5503
+ .muka-progress-tracker {
5504
+ width: 100%;
5505
+ padding-bottom: var(--spacing-7);
5401
5506
  }
5402
5507
 
5403
- .muka-radio--disabled {
5404
- cursor: not-allowed;
5405
- opacity: 0.6;
5508
+ /* ─── Track (layered container) ─────────────────────────── */
5509
+ .muka-progress-tracker__track {
5510
+ position: relative;
5511
+ /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
5512
+ padding-top: 14px;
5513
+ padding-bottom: 14px;
5406
5514
  }
5407
5515
 
5408
- /* Control container */
5409
- .muka-radio__control {
5516
+ /* ─── Steps layer (on top) ──────────────────────────────── */
5517
+ .muka-progress-tracker__steps {
5518
+ position: absolute;
5519
+ inset: 0;
5520
+ display: flex;
5521
+ align-items: flex-start;
5522
+ justify-content: space-between;
5523
+ z-index: 2;
5524
+ }
5525
+
5526
+ /* ─── Individual step ───────────────────────────────────── */
5527
+ .muka-progress-tracker__step {
5528
+ display: flex;
5529
+ flex-direction: column;
5530
+ align-items: center;
5531
+ gap: 7px;
5410
5532
  position: relative;
5411
- display: inline-flex;
5533
+ }
5534
+
5535
+ /* ─── Step indicator (circle) ───────────────────────────── */
5536
+ .muka-progress-tracker__indicator {
5537
+ width: 32px;
5538
+ height: 32px;
5539
+ border-radius: var(--border-radius-full);
5540
+ display: flex;
5412
5541
  align-items: center;
5413
5542
  justify-content: center;
5414
5543
  flex-shrink: 0;
5544
+ position: relative;
5415
5545
  }
5416
5546
 
5417
- /* Hidden native input */
5418
- .muka-radio__input {
5419
- position: absolute;
5420
- width: 1px;
5421
- height: 1px;
5422
- padding: 0;
5423
- margin: -1px;
5424
- overflow: hidden;
5425
- clip: rect(0, 0, 0, 0);
5547
+ /* Past: dark accent contrast circle with white checkmark */
5548
+ .muka-progress-tracker__indicator--past {
5549
+ background-color: var(--alias-color-accent-contrast);
5550
+ color: var(--color-text-default-inverse);
5551
+ cursor: pointer;
5552
+ }
5553
+
5554
+ .muka-progress-tracker__indicator--past:hover {
5555
+ background-color: var(--alias-color-accent-pressed);
5556
+ }
5557
+
5558
+ .muka-progress-tracker__indicator--past:focus-visible {
5559
+ outline: 2px solid var(--color-border-focus);
5560
+ outline-offset: 2px;
5561
+ }
5562
+
5563
+ /* Current: accent default circle with white number */
5564
+ .muka-progress-tracker__indicator--current {
5565
+ background-color: var(--alias-color-accent-default);
5566
+ color: var(--color-text-default-inverse);
5567
+ }
5568
+
5569
+ /* Upcoming: sunken/gray circle with dark number */
5570
+ .muka-progress-tracker__indicator--upcoming {
5571
+ background-color: var(--color-surface-sunken);
5572
+ color: var(--color-text-default-default);
5573
+ }
5574
+
5575
+ /* ─── Step number text ──────────────────────────────────── */
5576
+ .muka-progress-tracker__number {
5577
+ font-family: var(--text-label-md-bold-fontFamily);
5578
+ font-weight: var(--text-label-md-bold-fontWeight);
5579
+ font-size: var(--text-label-md-bold-fontSize);
5580
+ line-height: var(--text-label-md-bold-lineHeight);
5581
+ text-align: center;
5582
+ user-select: none;
5583
+ }
5584
+
5585
+ /* ─── Checkmark icon ────────────────────────────────────── */
5586
+ .muka-progress-tracker__check-icon {
5587
+ width: 20px;
5588
+ height: 20px;
5589
+ }
5590
+
5591
+ /* Past checkmark uses inverse foreground, matching the active step number.
5592
+ Scoped under the indicator to override the Icon component's default color. */
5593
+ .muka-progress-tracker__indicator--past .muka-progress-tracker__check-icon {
5594
+ color: var(--color-text-default-inverse);
5595
+ }
5596
+
5597
+ /* ─── Step label ────────────────────────────────────────── */
5598
+ .muka-progress-tracker__label {
5599
+ font-family: var(--text-label-sm-regular-fontFamily);
5600
+ font-weight: var(--text-label-sm-regular-fontWeight);
5601
+ font-size: var(--text-label-sm-regular-fontSize);
5602
+ line-height: var(--text-label-sm-regular-lineHeight);
5603
+ color: var(--color-text-default-default);
5604
+ text-align: center;
5605
+ max-width: 120px;
5426
5606
  white-space: nowrap;
5427
- border: 0;
5607
+ overflow: hidden;
5608
+ text-overflow: ellipsis;
5428
5609
  }
5429
5610
 
5430
- /* Visual indicator (circle) */
5431
- .muka-radio__indicator {
5611
+ /* Current step label is bold */
5612
+ .muka-progress-tracker__label--current {
5613
+ font-family: var(--text-label-sm-bold-fontFamily);
5614
+ font-weight: var(--text-label-sm-bold-fontWeight);
5615
+ }
5616
+
5617
+ /* ─── Connectors layer (behind indicators) ──────────────── */
5618
+ .muka-progress-tracker__connectors {
5432
5619
  display: flex;
5433
5620
  align-items: center;
5434
- justify-content: center;
5435
- width: var(--radio-size-default);
5436
- height: var(--radio-size-default);
5437
- 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);
5621
+ /* Horizontal padding = indicator radius (32/2 = 16px) so lines meet circle centers */
5622
+ padding-left: var(--spacing-4);
5623
+ padding-right: var(--spacing-4);
5624
+ position: relative;
5625
+ z-index: 1;
5442
5626
  }
5443
5627
 
5444
- /* Size variants */
5445
- .muka-radio--sm .muka-radio__indicator {
5446
- width: var(--radio-size-sm);
5447
- height: var(--radio-size-sm);
5628
+ /* ─── Individual connector line ─────────────────────────── */
5629
+ .muka-progress-tracker__connector {
5630
+ flex: 1 0 0;
5631
+ height: 4px;
5632
+ min-width: 1px;
5448
5633
  }
5449
5634
 
5450
- .muka-radio--lg .muka-radio__indicator {
5451
- width: var(--radio-size-lg);
5452
- height: var(--radio-size-lg);
5635
+ /* Past: solid dark line */
5636
+ .muka-progress-tracker__connector--past {
5637
+ background-color: var(--alias-color-accent-contrast);
5453
5638
  }
5454
5639
 
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;
5640
+ /* Current: gradient from past (dark) toward current step */
5641
+ .muka-progress-tracker__connector--current {
5642
+ background: linear-gradient(
5643
+ to right,
5644
+ var(--alias-color-accent-contrast) 0%,
5645
+ var(--alias-color-accent-default) 100%
5646
+ );
5463
5647
  }
5464
5648
 
5465
- .muka-radio--sm .muka-radio__dot {
5466
- width: var(--radio-dot-size-sm);
5467
- height: var(--radio-dot-size-sm);
5649
+ /* Current-right: gradient fading from current step into upcoming */
5650
+ .muka-progress-tracker__connector--current-right {
5651
+ background: linear-gradient(
5652
+ to right,
5653
+ var(--alias-color-accent-default) 0%,
5654
+ var(--alias-color-accent-default) 15%,
5655
+ var(--color-surface-sunken) 50%
5656
+ );
5468
5657
  }
5469
5658
 
5470
- .muka-radio--lg .muka-radio__dot {
5471
- width: var(--radio-dot-size-lg);
5472
- height: var(--radio-dot-size-lg);
5659
+ /* Upcoming: solid gray line */
5660
+ .muka-progress-tracker__connector--upcoming {
5661
+ background-color: var(--color-surface-sunken);
5473
5662
  }
5474
5663
 
5475
- /* Hover state - removed per design */
5476
5664
 
5477
- /* Focus state */
5478
- .muka-radio__input:focus-visible + .muka-radio__indicator {
5479
- outline: 2px solid var(--color-border-focus);
5480
- outline-offset: 2px;
5665
+ /* ProgressAccordeon */
5666
+ /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
5667
+
5668
+ /* ─── Root ──────────────────────────────────────────────── */
5669
+ .muka-progress-accordeon {
5670
+ container-type: inline-size;
5671
+ display: flex;
5672
+ flex-direction: column;
5673
+ align-items: stretch;
5674
+ width: 100%;
5675
+ /* Top padding provides the vertical rhythm between stacked steps */
5676
+ padding-top: var(--spacing-8);
5481
5677
  }
5482
5678
 
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;
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);
5489
5683
  }
5490
5684
 
5491
- .muka-radio__input:checked + .muka-radio__indicator .muka-radio__dot {
5492
- background-color: var(--radio-color-checked-dot);
5493
- transform: scale(1);
5685
+ .muka-progress-accordeon--upcoming,
5686
+ .muka-progress-accordeon--past.muka-progress-accordeon--collapsed {
5687
+ gap: var(--spacing-8);
5494
5688
  }
5495
5689
 
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;
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%;
5501
5696
  }
5502
5697
 
5503
- .muka-radio__input:disabled:checked + .muka-radio__indicator .muka-radio__dot {
5504
- background-color: var(--radio-color-disabled-dot);
5698
+ /* ─── Header ─────────────────────────────────────────────── */
5699
+ .muka-progress-accordeon__header {
5700
+ display: flex;
5701
+ flex-direction: column;
5702
+ gap: var(--spacing-3);
5703
+ width: 100%;
5505
5704
  }
5506
5705
 
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);
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;
5712
+ }
5713
+
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);
5720
+ }
5721
+
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);
5725
+ }
5726
+
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);
5513
5760
  color: var(--color-text-default-default);
5514
5761
  }
5515
5762
 
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);
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);
5521
5795
  }
5522
5796
 
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);
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);
5528
5807
  }
5529
5808
 
5530
- .muka-radio--disabled .muka-radio__label {
5531
- color: var(--color-text-subtle-default);
5809
+ /* ─── Edit button ────────────────────────────────────────── */
5810
+ .muka-progress-accordeon__edit {
5811
+ flex-shrink: 0;
5532
5812
  }
5533
5813
 
5814
+ /* Wide container shows the labelled button; the icon-only one is hidden */
5815
+ .muka-progress-accordeon__edit--narrow {
5816
+ display: none;
5817
+ }
5534
5818
 
5535
- /* PullToRefresh */
5536
- /* PullToRefresh Component Styles */
5537
-
5538
- .muka-pull-to-refresh {
5539
- position: relative;
5819
+ /* ─── Content slot ───────────────────────────────────────── */
5820
+ .muka-progress-accordeon__slot {
5540
5821
  display: flex;
5541
5822
  flex-direction: column;
5823
+ align-items: stretch;
5542
5824
  width: 100%;
5543
- height: 100%;
5544
- overflow: hidden;
5545
5825
  }
5546
5826
 
5547
- .muka-pull-to-refresh__indicator {
5548
- position: absolute;
5549
- top: 0;
5550
- left: 0;
5551
- right: 0;
5827
+ /* ─── Action buttons (current state) ─────────────────────── */
5828
+ .muka-progress-accordeon__actions {
5552
5829
  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;
5830
+ justify-content: flex-end;
5831
+ gap: var(--spacing-4);
5832
+ width: 100%;
5560
5833
  }
5561
5834
 
5562
- .muka-pull-to-refresh__chevron {
5563
- display: inline-flex;
5564
- align-items: center;
5565
- justify-content: center;
5566
- transition: transform 0.16s ease;
5835
+ .muka-progress-accordeon__action {
5836
+ min-width: 160px;
5567
5837
  }
5568
5838
 
5569
- .muka-pull-to-refresh__scroller {
5570
- flex: 1 1 auto;
5571
- min-height: 0;
5839
+ /* ─── Divider ────────────────────────────────────────────── */
5840
+ .muka-progress-accordeon__divider {
5572
5841
  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;
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
+ }
5579
5872
  }
5580
5873
 
5581
5874
 
@@ -6512,7 +6805,7 @@ body {
6512
6805
  position: relative;
6513
6806
 
6514
6807
  /* Interaction - only apply if interactive */
6515
- transition: background-color 0.2s ease;
6808
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
6516
6809
  }
6517
6810
 
6518
6811
  /* Interactive state */
@@ -6520,13 +6813,19 @@ body {
6520
6813
  cursor: pointer;
6521
6814
  }
6522
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
+ */
6523
6822
  .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
6524
- background-color: var(--color-surface-hover);
6823
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
6525
6824
  }
6526
6825
 
6527
6826
  .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
6528
6827
  .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
6529
- background-color: var(--color-surface-pressed);
6828
+ box-shadow: inset 0 0 0 9999px var(--color-surface-pressed);
6530
6829
  }
6531
6830
 
6532
6831
  /* Focus styles for accessibility */
@@ -6552,7 +6851,7 @@ body {
6552
6851
  }
6553
6852
 
6554
6853
  .muka-listitem--selected:hover {
6555
- background-color: var(--color-surface-hover);
6854
+ box-shadow: inset 0 0 0 9999px var(--color-surface-hover);
6556
6855
  }
6557
6856
 
6558
6857
  /* No divider modifier */
@@ -6871,6 +7170,47 @@ li.muka-listitem {
6871
7170
  }
6872
7171
 
6873
7172
 
7173
+ /* Label */
7174
+ /* Label Component Styles - Using Muka Design Tokens */
7175
+
7176
+ .muka-label {
7177
+ display: inline-flex;
7178
+ align-items: center;
7179
+ color: var(--color-text-default-default);
7180
+ cursor: pointer;
7181
+ }
7182
+
7183
+ .muka-label--sm {
7184
+ font-family: var(--text-label-sm-semibold-fontFamily);
7185
+ font-weight: var(--text-label-sm-semibold-fontWeight);
7186
+ font-size: var(--text-label-sm-semibold-fontSize);
7187
+ line-height: var(--text-label-sm-semibold-lineHeight);
7188
+ }
7189
+
7190
+ .muka-label--md {
7191
+ font-family: var(--text-label-md-semibold-fontFamily);
7192
+ font-weight: var(--text-label-md-semibold-fontWeight);
7193
+ font-size: var(--text-label-md-semibold-fontSize);
7194
+ line-height: var(--text-label-md-semibold-lineHeight);
7195
+ }
7196
+
7197
+ .muka-label--lg {
7198
+ font-family: var(--text-label-lg-semibold-fontFamily);
7199
+ font-weight: var(--text-label-lg-semibold-fontWeight);
7200
+ font-size: var(--text-label-lg-semibold-fontSize);
7201
+ line-height: var(--text-label-lg-semibold-lineHeight);
7202
+ }
7203
+
7204
+ .muka-label--disabled {
7205
+ color: var(--color-text-subtle-default);
7206
+ cursor: not-allowed;
7207
+ }
7208
+
7209
+ .muka-label__required {
7210
+ color: var(--color-state-error-foreground);
7211
+ }
7212
+
7213
+
6874
7214
  /* Input */
6875
7215
  /* Input Component Styles - Using Muka Design Tokens */
6876
7216
 
@@ -7122,182 +7462,22 @@ li.muka-listitem {
7122
7462
 
7123
7463
  .muka-icon--sm {
7124
7464
  width: var(--icon-size-sm);
7125
- height: var(--icon-size-sm);
7126
- }
7127
-
7128
- .muka-icon--md {
7129
- width: var(--icon-size-default);
7130
- height: var(--icon-size-default);
7131
- }
7132
-
7133
- .muka-icon--lg {
7134
- width: var(--icon-size-lg);
7135
- height: var(--icon-size-lg);
7136
- }
7137
-
7138
- .muka-icon svg {
7139
- width: 100%;
7140
- height: 100%;
7141
- }
7142
-
7143
-
7144
- /* FormProgressBar */
7145
- /* FormProgressBar Component Styles — Using Muka Design Tokens */
7146
-
7147
- /* ─── Root ──────────────────────────────────────────────── */
7148
- .muka-progress-bar {
7149
- width: 100%;
7150
- padding-bottom: var(--spacing-7);
7151
- }
7152
-
7153
- /* ─── Track (layered container) ─────────────────────────── */
7154
- .muka-progress-bar__track {
7155
- position: relative;
7156
- /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
7157
- padding-top: 14px;
7158
- padding-bottom: 14px;
7159
- }
7160
-
7161
- /* ─── Steps layer (on top) ──────────────────────────────── */
7162
- .muka-progress-bar__steps {
7163
- position: absolute;
7164
- inset: 0;
7165
- display: flex;
7166
- align-items: flex-start;
7167
- justify-content: space-between;
7168
- z-index: 2;
7169
- }
7170
-
7171
- /* ─── Individual step ───────────────────────────────────── */
7172
- .muka-progress-bar__step {
7173
- display: flex;
7174
- flex-direction: column;
7175
- align-items: center;
7176
- gap: 7px;
7177
- position: relative;
7178
- }
7179
-
7180
- /* ─── Step indicator (circle) ───────────────────────────── */
7181
- .muka-progress-bar__indicator {
7182
- width: 32px;
7183
- height: 32px;
7184
- border-radius: var(--border-radius-full);
7185
- display: flex;
7186
- align-items: center;
7187
- justify-content: center;
7188
- flex-shrink: 0;
7189
- position: relative;
7190
- }
7191
-
7192
- /* Past: dark accent contrast circle with white checkmark */
7193
- .muka-progress-bar__indicator--past {
7194
- background-color: var(--alias-color-accent-contrast);
7195
- color: var(--color-text-default-inverse);
7196
- cursor: pointer;
7197
- }
7198
-
7199
- .muka-progress-bar__indicator--past:hover {
7200
- opacity: 0.85;
7201
- }
7202
-
7203
- .muka-progress-bar__indicator--past:focus-visible {
7204
- outline: 2px solid var(--color-border-focus);
7205
- outline-offset: 2px;
7206
- }
7207
-
7208
- /* Current: accent default circle with white number */
7209
- .muka-progress-bar__indicator--current {
7210
- background-color: var(--alias-color-accent-default);
7211
- color: var(--color-text-default-inverse);
7212
- }
7213
-
7214
- /* Upcoming: sunken/gray circle with dark number */
7215
- .muka-progress-bar__indicator--upcoming {
7216
- background-color: var(--color-surface-sunken);
7217
- color: var(--color-text-default-default);
7218
- }
7219
-
7220
- /* ─── Step number text ──────────────────────────────────── */
7221
- .muka-progress-bar__number {
7222
- font-family: var(--text-label-md-bold-fontFamily);
7223
- font-weight: var(--text-label-md-bold-fontWeight);
7224
- font-size: var(--text-label-md-bold-fontSize);
7225
- line-height: var(--text-label-md-bold-lineHeight);
7226
- text-align: center;
7227
- user-select: none;
7228
- }
7229
-
7230
- /* ─── Checkmark icon ────────────────────────────────────── */
7231
- .muka-progress-bar__check-icon {
7232
- width: 20px;
7233
- height: 20px;
7234
- }
7235
-
7236
- /* ─── Step label ────────────────────────────────────────── */
7237
- .muka-progress-bar__label {
7238
- font-family: var(--text-label-sm-regular-fontFamily);
7239
- font-weight: var(--text-label-sm-regular-fontWeight);
7240
- font-size: var(--text-label-sm-regular-fontSize);
7241
- line-height: var(--text-label-sm-regular-lineHeight);
7242
- color: var(--color-text-default-default);
7243
- text-align: center;
7244
- max-width: 120px;
7245
- white-space: nowrap;
7246
- overflow: hidden;
7247
- text-overflow: ellipsis;
7248
- }
7249
-
7250
- /* Current step label is bold */
7251
- .muka-progress-bar__label--current {
7252
- font-family: var(--text-label-sm-bold-fontFamily);
7253
- font-weight: var(--text-label-sm-bold-fontWeight);
7254
- }
7255
-
7256
- /* ─── Connectors layer (behind indicators) ──────────────── */
7257
- .muka-progress-bar__connectors {
7258
- display: flex;
7259
- align-items: center;
7260
- /* Horizontal padding = indicator radius (32/2 = 16px) so lines meet circle centers */
7261
- padding-left: var(--spacing-4);
7262
- padding-right: var(--spacing-4);
7263
- position: relative;
7264
- z-index: 1;
7265
- }
7266
-
7267
- /* ─── Individual connector line ─────────────────────────── */
7268
- .muka-progress-bar__connector {
7269
- flex: 1 0 0;
7270
- height: 4px;
7271
- min-width: 1px;
7272
- }
7273
-
7274
- /* Past: solid dark line */
7275
- .muka-progress-bar__connector--past {
7276
- background-color: var(--alias-color-accent-contrast);
7277
- }
7278
-
7279
- /* Current: gradient from past (dark) toward current step */
7280
- .muka-progress-bar__connector--current {
7281
- background: linear-gradient(
7282
- to right,
7283
- var(--alias-color-accent-contrast) 0%,
7284
- var(--alias-color-accent-default) 100%
7285
- );
7465
+ height: var(--icon-size-sm);
7286
7466
  }
7287
7467
 
7288
- /* Current-right: gradient fading from current step into upcoming */
7289
- .muka-progress-bar__connector--current-right {
7290
- background: linear-gradient(
7291
- to right,
7292
- var(--alias-color-accent-default) 0%,
7293
- var(--alias-color-accent-default) 15%,
7294
- var(--color-surface-sunken) 50%
7295
- );
7468
+ .muka-icon--md {
7469
+ width: var(--icon-size-default);
7470
+ height: var(--icon-size-default);
7296
7471
  }
7297
7472
 
7298
- /* Upcoming: solid gray line */
7299
- .muka-progress-bar__connector--upcoming {
7300
- background-color: var(--color-surface-sunken);
7473
+ .muka-icon--lg {
7474
+ width: var(--icon-size-lg);
7475
+ height: var(--icon-size-lg);
7476
+ }
7477
+
7478
+ .muka-icon svg {
7479
+ width: 100%;
7480
+ height: 100%;
7301
7481
  }
7302
7482
 
7303
7483
 
@@ -7563,47 +7743,6 @@ li.muka-listitem {
7563
7743
  }
7564
7744
 
7565
7745
 
7566
- /* Label */
7567
- /* Label Component Styles - Using Muka Design Tokens */
7568
-
7569
- .muka-label {
7570
- display: inline-flex;
7571
- align-items: center;
7572
- color: var(--color-text-default-default);
7573
- cursor: pointer;
7574
- }
7575
-
7576
- .muka-label--sm {
7577
- font-family: var(--text-label-sm-semibold-fontFamily);
7578
- font-weight: var(--text-label-sm-semibold-fontWeight);
7579
- font-size: var(--text-label-sm-semibold-fontSize);
7580
- line-height: var(--text-label-sm-semibold-lineHeight);
7581
- }
7582
-
7583
- .muka-label--md {
7584
- font-family: var(--text-label-md-semibold-fontFamily);
7585
- font-weight: var(--text-label-md-semibold-fontWeight);
7586
- font-size: var(--text-label-md-semibold-fontSize);
7587
- line-height: var(--text-label-md-semibold-lineHeight);
7588
- }
7589
-
7590
- .muka-label--lg {
7591
- font-family: var(--text-label-lg-semibold-fontFamily);
7592
- font-weight: var(--text-label-lg-semibold-fontWeight);
7593
- font-size: var(--text-label-lg-semibold-fontSize);
7594
- line-height: var(--text-label-lg-semibold-lineHeight);
7595
- }
7596
-
7597
- .muka-label--disabled {
7598
- color: var(--color-text-subtle-default);
7599
- cursor: not-allowed;
7600
- }
7601
-
7602
- .muka-label__required {
7603
- color: var(--color-state-error-foreground);
7604
- }
7605
-
7606
-
7607
7746
  /* FAB */
7608
7747
  /* FAB (Floating Action Button) Component Styles */
7609
7748
 
@@ -8991,6 +9130,10 @@ li.muka-listitem {
8991
9130
  min-content, collapsing the flexible (1fr) stack track to 0. */
8992
9131
  .muka-data-table--responsive {
8993
9132
  display: block;
9133
+ /* Collapsed cards always use md cell padding regardless of the table's `size`
9134
+ — sm is too tight and lg wastes horizontal room, forcing the name to wrap. */
9135
+ --dt-pad-x: var(--datatable-cell-padding-x-md);
9136
+ --dt-pad-y: var(--datatable-cell-padding-y-md);
8994
9137
  }
8995
9138
 
8996
9139
  .muka-data-table--responsive .muka-data-table__body {
@@ -9034,6 +9177,11 @@ li.muka-listitem {
9034
9177
  .muka-data-table--responsive .muka-data-table__td--m-secondary {
9035
9178
  display: block;
9036
9179
  grid-column: 2;
9180
+ /* Hug the widest secondary content (e.g. a status badge). The desktop column's
9181
+ min/max-width are inline styles, so `!important` is required to drop them and
9182
+ let the `auto` grid track shrink to the badge — freeing space for the name. */
9183
+ min-width: 0 !important;
9184
+ max-width: none !important;
9037
9185
  }
9038
9186
 
9039
9187
  .muka-data-table--responsive .muka-data-table__td--action {
@@ -9051,6 +9199,14 @@ li.muka-listitem {
9051
9199
  justify-content: flex-end;
9052
9200
  }
9053
9201
 
9202
+ /* Utility for cell content: hide a sub-element in the collapsed card. Use it to
9203
+ drop a redundant text label next to a compact visual (e.g. the "75%" beside a
9204
+ donut) so only the visual shows and the secondary column hugs to its width.
9205
+ `display: none` also collapses any surrounding flex `gap`, leaving no gutter. */
9206
+ .muka-data-table--responsive .muka-data-table__mobile-hidden {
9207
+ display: none;
9208
+ }
9209
+
9054
9210
  /* Stacked primary column: first field is the title, the rest are subtitle lines. */
9055
9211
  .muka-data-table__stack {
9056
9212
  display: flex;
@@ -12226,3 +12382,194 @@ li.muka-listitem {
12226
12382
  border-bottom: none;
12227
12383
  }
12228
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
+