@revikornmann/muka-ui 0.8.0 → 0.9.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/build/manifest.json +4 -1
  2. package/dist/cjs/components/Button/Button.css +29 -0
  3. package/dist/cjs/components/Button/Button.js +1 -1
  4. package/dist/cjs/components/Checkbox/Checkbox.js +44 -5
  5. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  6. package/dist/cjs/components/DatePicker/DatePicker.js +51 -6
  7. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  8. package/dist/cjs/components/Form/Form.css +17 -0
  9. package/dist/cjs/components/Form/Form.js +31 -0
  10. package/dist/cjs/components/Form/Form.js.map +1 -0
  11. package/dist/cjs/components/Form/index.js +13 -0
  12. package/dist/cjs/components/Form/index.js.map +1 -0
  13. package/dist/cjs/components/Form/useForm.js +95 -0
  14. package/dist/cjs/components/Form/useForm.js.map +1 -0
  15. package/dist/cjs/components/Input/Input.js +52 -5
  16. package/dist/cjs/components/Input/Input.js.map +1 -1
  17. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js +50 -5
  18. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  19. package/dist/cjs/components/NumberInput/NumberInput.js +51 -6
  20. package/dist/cjs/components/NumberInput/NumberInput.js.map +1 -1
  21. package/dist/cjs/components/Radio/Radio.js +37 -5
  22. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  23. package/dist/cjs/components/RangeSlider/RangeSlider.js +37 -5
  24. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  25. package/dist/cjs/components/Select/Select.js +53 -7
  26. package/dist/cjs/components/Select/Select.js.map +1 -1
  27. package/dist/cjs/components/Textarea/Textarea.js +43 -5
  28. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  29. package/dist/cjs/components/Toggle/Toggle.js +37 -5
  30. package/dist/cjs/components/Toggle/Toggle.js.map +1 -1
  31. package/dist/cjs/components/index.js +6 -3
  32. package/dist/cjs/components/index.js.map +1 -1
  33. package/dist/esm/components/Button/Button.css +29 -0
  34. package/dist/esm/components/Button/Button.js +1 -1
  35. package/dist/esm/components/Checkbox/Checkbox.js +11 -4
  36. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  37. package/dist/esm/components/DatePicker/DatePicker.js +18 -5
  38. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  39. package/dist/esm/components/Form/Form.css +17 -0
  40. package/dist/esm/components/Form/Form.js +27 -0
  41. package/dist/esm/components/Form/Form.js.map +1 -0
  42. package/dist/esm/components/Form/index.js +4 -0
  43. package/dist/esm/components/Form/index.js.map +1 -0
  44. package/dist/esm/components/Form/useForm.js +92 -0
  45. package/dist/esm/components/Form/useForm.js.map +1 -0
  46. package/dist/esm/components/Input/Input.js +19 -4
  47. package/dist/esm/components/Input/Input.js.map +1 -1
  48. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js +17 -4
  49. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  50. package/dist/esm/components/NumberInput/NumberInput.js +18 -5
  51. package/dist/esm/components/NumberInput/NumberInput.js.map +1 -1
  52. package/dist/esm/components/Radio/Radio.js +4 -4
  53. package/dist/esm/components/Radio/Radio.js.map +1 -1
  54. package/dist/esm/components/RangeSlider/RangeSlider.js +4 -4
  55. package/dist/esm/components/RangeSlider/RangeSlider.js.map +1 -1
  56. package/dist/esm/components/Select/Select.js +18 -5
  57. package/dist/esm/components/Select/Select.js.map +1 -1
  58. package/dist/esm/components/Textarea/Textarea.js +10 -4
  59. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  60. package/dist/esm/components/Toggle/Toggle.js +4 -4
  61. package/dist/esm/components/Toggle/Toggle.js.map +1 -1
  62. package/dist/esm/components/index.js +1 -0
  63. package/dist/esm/components/index.js.map +1 -1
  64. package/dist/styles/components/Button.css +29 -0
  65. package/dist/styles/components/Form.css +17 -0
  66. package/dist/styles/index.css +772 -685
  67. package/dist/styles/muka-dark.css +772 -685
  68. package/dist/styles/muka-light.css +772 -685
  69. package/dist/styles/tokens-bouwplan-dark.css +38 -0
  70. package/dist/styles/tokens-bouwplan-light.css +38 -0
  71. package/dist/styles/tokens-fscl-dark.css +38 -0
  72. package/dist/styles/tokens-fscl-light.css +38 -0
  73. package/dist/styles/tokens-grip-dark.css +38 -0
  74. package/dist/styles/tokens-grip-light.css +38 -0
  75. package/dist/styles/tokens-muka-dark.css +38 -0
  76. package/dist/styles/tokens-muka-light.css +38 -0
  77. package/dist/styles/tokens-wireframe-dark.css +80 -42
  78. package/dist/styles/tokens-wireframe-light.css +80 -42
  79. package/dist/styles/wireframe-dark.css +814 -727
  80. package/dist/styles/wireframe-light.css +814 -727
  81. package/dist/types/components/Button/Button.d.ts +2 -2
  82. package/dist/types/components/Button/Button.d.ts.map +1 -1
  83. package/dist/types/components/Checkbox/Checkbox.d.ts +1 -1
  84. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  85. package/dist/types/components/DatePicker/DatePicker.d.ts +5 -1
  86. package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -1
  87. package/dist/types/components/Form/Form.d.ts +34 -0
  88. package/dist/types/components/Form/Form.d.ts.map +1 -0
  89. package/dist/types/components/Form/index.d.ts +4 -0
  90. package/dist/types/components/Form/index.d.ts.map +1 -0
  91. package/dist/types/components/Form/useForm.d.ts +74 -0
  92. package/dist/types/components/Form/useForm.d.ts.map +1 -0
  93. package/dist/types/components/Input/Input.d.ts +5 -1
  94. package/dist/types/components/Input/Input.d.ts.map +1 -1
  95. package/dist/types/components/LicensePlateInput/LicensePlateInput.d.ts +5 -1
  96. package/dist/types/components/LicensePlateInput/LicensePlateInput.d.ts.map +1 -1
  97. package/dist/types/components/NumberInput/NumberInput.d.ts +5 -1
  98. package/dist/types/components/NumberInput/NumberInput.d.ts.map +1 -1
  99. package/dist/types/components/Radio/Radio.d.ts +1 -1
  100. package/dist/types/components/Radio/Radio.d.ts.map +1 -1
  101. package/dist/types/components/RangeSlider/RangeSlider.d.ts +1 -1
  102. package/dist/types/components/RangeSlider/RangeSlider.d.ts.map +1 -1
  103. package/dist/types/components/Select/Select.d.ts +7 -1
  104. package/dist/types/components/Select/Select.d.ts.map +1 -1
  105. package/dist/types/components/Textarea/Textarea.d.ts +5 -1
  106. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -1
  107. package/dist/types/components/Toggle/Toggle.d.ts +1 -1
  108. package/dist/types/components/Toggle/Toggle.d.ts.map +1 -1
  109. package/dist/types/components/index.d.ts +1 -0
  110. package/dist/types/components/index.d.ts.map +1 -1
  111. package/package.json +1 -1
  112. package/tokens/t2-alias/brand/wireframe/radius.json +34 -0
  113. package/tokens/t4-components/button.json +56 -0
@@ -1593,6 +1593,18 @@ body {
1593
1593
  --button-color-ghost-border-hover: #eae7ec;
1594
1594
  --button-color-ghost-border-pressed: #eae7ec;
1595
1595
  --button-color-ghost-border-disabled: transparent;
1596
+ --button-color-muted-background-default: transparent;
1597
+ --button-color-muted-background-hover: transparent;
1598
+ --button-color-muted-background-pressed: transparent;
1599
+ --button-color-muted-background-disabled: transparent;
1600
+ --button-color-muted-foreground-default: #8e8c99;
1601
+ --button-color-muted-foreground-hover: #211f26;
1602
+ --button-color-muted-foreground-pressed: #211f26;
1603
+ --button-color-muted-foreground-disabled: #8e8c99;
1604
+ --button-color-muted-border-default: transparent;
1605
+ --button-color-muted-border-hover: #eae7ec;
1606
+ --button-color-muted-border-pressed: #eae7ec;
1607
+ --button-color-muted-border-disabled: transparent;
1596
1608
  --button-color-tertiary-background-default: #fdfcfd;
1597
1609
  --button-color-tertiary-background-hover: #fdfcfd;
1598
1610
  --button-color-tertiary-background-pressed: #f2eff3;
@@ -2227,6 +2239,20 @@ body {
2227
2239
  }
2228
2240
  }
2229
2241
 
2242
+ /* Responsive overrides: xl (min-width: 1280px) */
2243
+ @media (min-width: 1280px) {
2244
+ :root {
2245
+ --section-padding-vertical-default: 3rem;
2246
+ --section-padding-vertical-compact: 2.5rem;
2247
+ --section-padding-vertical-spacious: 4rem;
2248
+ --section-padding-horizontal-default: 2.5rem;
2249
+ --section-padding-horizontal-compact: 1.5rem;
2250
+ --section-padding-horizontal-spacious: 3rem;
2251
+ --container-gap-default: 2rem;
2252
+ --container-gap-spacious: 3rem;
2253
+ }
2254
+ }
2255
+
2230
2256
  /* Layout mode: tablet (forced via data-layout attribute) */
2231
2257
  [data-layout="tablet"] {
2232
2258
  --section-padding-vertical-default: 2.5rem;
@@ -2252,6 +2278,18 @@ body {
2252
2278
  --container-gap-spacious: 3rem;
2253
2279
  }
2254
2280
 
2281
+ /* Layout mode: widescreen (forced via data-layout attribute) */
2282
+ [data-layout="widescreen"] {
2283
+ --section-padding-vertical-default: 3rem;
2284
+ --section-padding-vertical-compact: 2.5rem;
2285
+ --section-padding-vertical-spacious: 4rem;
2286
+ --section-padding-horizontal-default: 2.5rem;
2287
+ --section-padding-horizontal-compact: 1.5rem;
2288
+ --section-padding-horizontal-spacious: 3rem;
2289
+ --container-gap-default: 2rem;
2290
+ --container-gap-spacious: 3rem;
2291
+ }
2292
+
2255
2293
  /* Accessibility: disable motion for users who prefer reduced motion */
2256
2294
  @media (prefers-reduced-motion: reduce) {
2257
2295
  :root {
@@ -2794,6 +2832,196 @@ body {
2794
2832
  }
2795
2833
 
2796
2834
 
2835
+ /* Toast */
2836
+ /* Toast Component Styles - Using Muka Design Tokens */
2837
+
2838
+ .muka-toast {
2839
+ display: flex;
2840
+ align-items: flex-start;
2841
+ gap: var(--toast-gap);
2842
+ padding: var(--toast-padding-y) var(--toast-padding-x);
2843
+ border-radius: var(--toast-radius);
2844
+ box-shadow: var(--toast-shadow);
2845
+ min-width: var(--toast-width-min);
2846
+ max-width: var(--toast-width-max);
2847
+ pointer-events: auto;
2848
+ animation: muka-toast-slide-in 0.2s ease-out;
2849
+ }
2850
+
2851
+ /* Entry animation */
2852
+ @keyframes muka-toast-slide-in {
2853
+ from {
2854
+ opacity: 0;
2855
+ transform: translateY(8px);
2856
+ }
2857
+ to {
2858
+ opacity: 1;
2859
+ transform: translateY(0);
2860
+ }
2861
+ }
2862
+
2863
+ /* Position variants (for standalone use - typically managed by ToastProvider) */
2864
+ .muka-toast--top-right,
2865
+ .muka-toast--top-left,
2866
+ .muka-toast--top-center,
2867
+ .muka-toast--bottom-right,
2868
+ .muka-toast--bottom-left,
2869
+ .muka-toast--bottom-center {
2870
+ position: fixed;
2871
+ z-index: 9999;
2872
+ }
2873
+
2874
+ .muka-toast--top-right {
2875
+ top: var(--spacing-4);
2876
+ right: var(--spacing-4);
2877
+ }
2878
+
2879
+ .muka-toast--top-left {
2880
+ top: var(--spacing-4);
2881
+ left: var(--spacing-4);
2882
+ }
2883
+
2884
+ .muka-toast--top-center {
2885
+ top: var(--spacing-4);
2886
+ left: 50%;
2887
+ transform: translateX(-50%);
2888
+ }
2889
+
2890
+ .muka-toast--bottom-right {
2891
+ bottom: var(--spacing-4);
2892
+ right: var(--spacing-4);
2893
+ }
2894
+
2895
+ .muka-toast--bottom-left {
2896
+ bottom: var(--spacing-4);
2897
+ left: var(--spacing-4);
2898
+ }
2899
+
2900
+ .muka-toast--bottom-center {
2901
+ bottom: var(--spacing-4);
2902
+ left: 50%;
2903
+ transform: translateX(-50%);
2904
+ }
2905
+
2906
+ /* Variant: Info */
2907
+ .muka-toast--info {
2908
+ background-color: var(--toast-color-info-background);
2909
+ color: var(--toast-color-info-foreground);
2910
+ }
2911
+
2912
+ .muka-toast--info .muka-toast__icon {
2913
+ color: var(--toast-color-info-accent);
2914
+ }
2915
+
2916
+ /* Variant: Success */
2917
+ .muka-toast--success {
2918
+ background-color: var(--toast-color-success-background);
2919
+ color: var(--toast-color-success-foreground);
2920
+ }
2921
+
2922
+ .muka-toast--success .muka-toast__icon {
2923
+ color: var(--toast-color-success-accent);
2924
+ }
2925
+
2926
+ /* Variant: Warning */
2927
+ .muka-toast--warning {
2928
+ background-color: var(--toast-color-warning-background);
2929
+ color: var(--toast-color-warning-foreground);
2930
+ }
2931
+
2932
+ .muka-toast--warning .muka-toast__icon {
2933
+ color: var(--toast-color-warning-accent);
2934
+ }
2935
+
2936
+ /* Variant: Error */
2937
+ .muka-toast--error {
2938
+ background-color: var(--toast-color-error-background);
2939
+ color: var(--toast-color-error-foreground);
2940
+ }
2941
+
2942
+ .muka-toast--error .muka-toast__icon {
2943
+ color: var(--toast-color-error-accent);
2944
+ }
2945
+
2946
+ /* Icon */
2947
+ .muka-toast__icon {
2948
+ display: flex;
2949
+ align-items: center;
2950
+ justify-content: center;
2951
+ flex-shrink: 0;
2952
+ width: var(--toast-icon-size);
2953
+ height: var(--toast-icon-size);
2954
+ }
2955
+
2956
+ .muka-toast__icon svg {
2957
+ width: 100%;
2958
+ height: 100%;
2959
+ }
2960
+
2961
+ /* Content */
2962
+ .muka-toast__content {
2963
+ flex: 1;
2964
+ min-width: 0;
2965
+ }
2966
+
2967
+ .muka-toast__title {
2968
+ font-family: var(--text-label-md-semibold-fontFamily);
2969
+ font-weight: var(--text-label-md-semibold-fontWeight);
2970
+ font-size: var(--text-label-md-semibold-fontSize);
2971
+ line-height: var(--text-label-md-semibold-lineHeight);
2972
+ margin-bottom: var(--spacing-1);
2973
+ }
2974
+
2975
+ .muka-toast__message {
2976
+ font-family: var(--text-body-sm-regular-fontFamily);
2977
+ font-weight: var(--text-body-sm-regular-fontWeight);
2978
+ font-size: var(--text-body-sm-regular-fontSize);
2979
+ line-height: var(--text-body-sm-regular-lineHeight);
2980
+ }
2981
+
2982
+ /* Action slot */
2983
+ .muka-toast__action {
2984
+ display: flex;
2985
+ align-items: center;
2986
+ flex-shrink: 0;
2987
+ }
2988
+
2989
+ /* Dismiss button */
2990
+ .muka-toast__dismiss {
2991
+ display: flex;
2992
+ align-items: center;
2993
+ justify-content: center;
2994
+ flex-shrink: 0;
2995
+ width: 24px;
2996
+ height: 24px;
2997
+ padding: 0;
2998
+ margin: -2px -4px -2px 0;
2999
+ border: none;
3000
+ background: transparent;
3001
+ color: inherit;
3002
+ opacity: 0.7;
3003
+ cursor: pointer;
3004
+ border-radius: var(--border-radius-sm);
3005
+ transition: opacity 0.15s ease, background-color 0.15s ease;
3006
+ }
3007
+
3008
+ .muka-toast__dismiss:hover {
3009
+ opacity: 1;
3010
+ background-color: rgba(0, 0, 0, 0.05);
3011
+ }
3012
+
3013
+ .muka-toast__dismiss:focus-visible {
3014
+ outline: 2px solid var(--color-border-focus);
3015
+ outline-offset: 2px;
3016
+ opacity: 1;
3017
+ }
3018
+
3019
+ .muka-toast__dismiss svg {
3020
+ width: 16px;
3021
+ height: 16px;
3022
+ }
3023
+
3024
+
2797
3025
  /* Tile */
2798
3026
  /* Tile Component Styles - Using Muka Design Tokens */
2799
3027
 
@@ -3096,252 +3324,62 @@ body {
3096
3324
 
3097
3325
  .muka-tile__subheading {
3098
3326
  margin: 0;
3099
- color: var(--color-text-subtle-default);
3100
- }
3101
-
3102
- .muka-tile--lg .muka-tile__subheading {
3103
- font-family: var(--text-subheading-md-fontFamily);
3104
- font-weight: var(--text-subheading-md-fontWeight);
3105
- font-size: var(--text-subheading-md-fontSize);
3106
- line-height: var(--text-subheading-md-lineHeight);
3107
- }
3108
-
3109
- .muka-tile--md .muka-tile__subheading,
3110
- .muka-tile--sm .muka-tile__subheading {
3111
- font-family: var(--text-subheading-sm-fontFamily);
3112
- font-weight: var(--text-subheading-sm-fontWeight);
3113
- font-size: var(--text-subheading-sm-fontSize);
3114
- line-height: var(--text-subheading-sm-lineHeight);
3115
- }
3116
-
3117
- /* ─── Description typography ──────────────────────────── */
3118
-
3119
- .muka-tile__description {
3120
- margin: 0;
3121
- color: var(--color-text-default-default);
3122
- }
3123
-
3124
- .muka-tile--lg .muka-tile__description {
3125
- font-family: var(--text-body-lg-regular-fontFamily);
3126
- font-weight: var(--text-body-lg-regular-fontWeight);
3127
- font-size: var(--text-body-lg-regular-fontSize);
3128
- line-height: var(--text-body-lg-regular-lineHeight);
3129
- }
3130
-
3131
- .muka-tile--md .muka-tile__description,
3132
- .muka-tile--sm .muka-tile__description {
3133
- font-family: var(--text-body-base-regular-fontFamily);
3134
- font-weight: var(--text-body-base-regular-fontWeight);
3135
- font-size: var(--text-body-base-regular-fontSize);
3136
- line-height: var(--text-body-base-regular-lineHeight);
3137
- }
3138
-
3139
- /* Description overflow for medium */
3140
- .muka-tile--md .muka-tile__description {
3141
- overflow: hidden;
3142
- text-overflow: ellipsis;
3143
- }
3144
-
3145
- /* ─── Price slot ──────────────────────────────────────── */
3146
-
3147
- .muka-tile__price {
3148
- flex-shrink: 0;
3149
- }
3150
-
3151
- /* ─── Action slot ─────────────────────────────────────── */
3152
-
3153
- .muka-tile__action {
3154
- flex-shrink: 0;
3155
- }
3156
-
3157
-
3158
- /* Toast */
3159
- /* Toast Component Styles - Using Muka Design Tokens */
3160
-
3161
- .muka-toast {
3162
- display: flex;
3163
- align-items: flex-start;
3164
- gap: var(--toast-gap);
3165
- padding: var(--toast-padding-y) var(--toast-padding-x);
3166
- border-radius: var(--toast-radius);
3167
- box-shadow: var(--toast-shadow);
3168
- min-width: var(--toast-width-min);
3169
- max-width: var(--toast-width-max);
3170
- pointer-events: auto;
3171
- animation: muka-toast-slide-in 0.2s ease-out;
3172
- }
3173
-
3174
- /* Entry animation */
3175
- @keyframes muka-toast-slide-in {
3176
- from {
3177
- opacity: 0;
3178
- transform: translateY(8px);
3179
- }
3180
- to {
3181
- opacity: 1;
3182
- transform: translateY(0);
3183
- }
3184
- }
3185
-
3186
- /* Position variants (for standalone use - typically managed by ToastProvider) */
3187
- .muka-toast--top-right,
3188
- .muka-toast--top-left,
3189
- .muka-toast--top-center,
3190
- .muka-toast--bottom-right,
3191
- .muka-toast--bottom-left,
3192
- .muka-toast--bottom-center {
3193
- position: fixed;
3194
- z-index: 9999;
3195
- }
3196
-
3197
- .muka-toast--top-right {
3198
- top: var(--spacing-4);
3199
- right: var(--spacing-4);
3200
- }
3201
-
3202
- .muka-toast--top-left {
3203
- top: var(--spacing-4);
3204
- left: var(--spacing-4);
3205
- }
3206
-
3207
- .muka-toast--top-center {
3208
- top: var(--spacing-4);
3209
- left: 50%;
3210
- transform: translateX(-50%);
3211
- }
3212
-
3213
- .muka-toast--bottom-right {
3214
- bottom: var(--spacing-4);
3215
- right: var(--spacing-4);
3216
- }
3217
-
3218
- .muka-toast--bottom-left {
3219
- bottom: var(--spacing-4);
3220
- left: var(--spacing-4);
3221
- }
3222
-
3223
- .muka-toast--bottom-center {
3224
- bottom: var(--spacing-4);
3225
- left: 50%;
3226
- transform: translateX(-50%);
3227
- }
3228
-
3229
- /* Variant: Info */
3230
- .muka-toast--info {
3231
- background-color: var(--toast-color-info-background);
3232
- color: var(--toast-color-info-foreground);
3233
- }
3234
-
3235
- .muka-toast--info .muka-toast__icon {
3236
- color: var(--toast-color-info-accent);
3237
- }
3238
-
3239
- /* Variant: Success */
3240
- .muka-toast--success {
3241
- background-color: var(--toast-color-success-background);
3242
- color: var(--toast-color-success-foreground);
3243
- }
3244
-
3245
- .muka-toast--success .muka-toast__icon {
3246
- color: var(--toast-color-success-accent);
3247
- }
3248
-
3249
- /* Variant: Warning */
3250
- .muka-toast--warning {
3251
- background-color: var(--toast-color-warning-background);
3252
- color: var(--toast-color-warning-foreground);
3253
- }
3254
-
3255
- .muka-toast--warning .muka-toast__icon {
3256
- color: var(--toast-color-warning-accent);
3257
- }
3258
-
3259
- /* Variant: Error */
3260
- .muka-toast--error {
3261
- background-color: var(--toast-color-error-background);
3262
- color: var(--toast-color-error-foreground);
3263
- }
3264
-
3265
- .muka-toast--error .muka-toast__icon {
3266
- color: var(--toast-color-error-accent);
3267
- }
3268
-
3269
- /* Icon */
3270
- .muka-toast__icon {
3271
- display: flex;
3272
- align-items: center;
3273
- justify-content: center;
3274
- flex-shrink: 0;
3275
- width: var(--toast-icon-size);
3276
- height: var(--toast-icon-size);
3327
+ color: var(--color-text-subtle-default);
3277
3328
  }
3278
3329
 
3279
- .muka-toast__icon svg {
3280
- width: 100%;
3281
- height: 100%;
3330
+ .muka-tile--lg .muka-tile__subheading {
3331
+ font-family: var(--text-subheading-md-fontFamily);
3332
+ font-weight: var(--text-subheading-md-fontWeight);
3333
+ font-size: var(--text-subheading-md-fontSize);
3334
+ line-height: var(--text-subheading-md-lineHeight);
3282
3335
  }
3283
3336
 
3284
- /* Content */
3285
- .muka-toast__content {
3286
- flex: 1;
3287
- min-width: 0;
3337
+ .muka-tile--md .muka-tile__subheading,
3338
+ .muka-tile--sm .muka-tile__subheading {
3339
+ font-family: var(--text-subheading-sm-fontFamily);
3340
+ font-weight: var(--text-subheading-sm-fontWeight);
3341
+ font-size: var(--text-subheading-sm-fontSize);
3342
+ line-height: var(--text-subheading-sm-lineHeight);
3288
3343
  }
3289
3344
 
3290
- .muka-toast__title {
3291
- font-family: var(--text-label-md-semibold-fontFamily);
3292
- font-weight: var(--text-label-md-semibold-fontWeight);
3293
- font-size: var(--text-label-md-semibold-fontSize);
3294
- line-height: var(--text-label-md-semibold-lineHeight);
3295
- margin-bottom: var(--spacing-1);
3296
- }
3345
+ /* ─── Description typography ──────────────────────────── */
3297
3346
 
3298
- .muka-toast__message {
3299
- font-family: var(--text-body-sm-regular-fontFamily);
3300
- font-weight: var(--text-body-sm-regular-fontWeight);
3301
- font-size: var(--text-body-sm-regular-fontSize);
3302
- line-height: var(--text-body-sm-regular-lineHeight);
3347
+ .muka-tile__description {
3348
+ margin: 0;
3349
+ color: var(--color-text-default-default);
3303
3350
  }
3304
3351
 
3305
- /* Action slot */
3306
- .muka-toast__action {
3307
- display: flex;
3308
- align-items: center;
3309
- flex-shrink: 0;
3352
+ .muka-tile--lg .muka-tile__description {
3353
+ font-family: var(--text-body-lg-regular-fontFamily);
3354
+ font-weight: var(--text-body-lg-regular-fontWeight);
3355
+ font-size: var(--text-body-lg-regular-fontSize);
3356
+ line-height: var(--text-body-lg-regular-lineHeight);
3310
3357
  }
3311
3358
 
3312
- /* Dismiss button */
3313
- .muka-toast__dismiss {
3314
- display: flex;
3315
- align-items: center;
3316
- justify-content: center;
3317
- flex-shrink: 0;
3318
- width: 24px;
3319
- height: 24px;
3320
- padding: 0;
3321
- margin: -2px -4px -2px 0;
3322
- border: none;
3323
- background: transparent;
3324
- color: inherit;
3325
- opacity: 0.7;
3326
- cursor: pointer;
3327
- border-radius: var(--border-radius-sm);
3328
- transition: opacity 0.15s ease, background-color 0.15s ease;
3359
+ .muka-tile--md .muka-tile__description,
3360
+ .muka-tile--sm .muka-tile__description {
3361
+ font-family: var(--text-body-base-regular-fontFamily);
3362
+ font-weight: var(--text-body-base-regular-fontWeight);
3363
+ font-size: var(--text-body-base-regular-fontSize);
3364
+ line-height: var(--text-body-base-regular-lineHeight);
3329
3365
  }
3330
3366
 
3331
- .muka-toast__dismiss:hover {
3332
- opacity: 1;
3333
- background-color: rgba(0, 0, 0, 0.05);
3367
+ /* Description overflow for medium */
3368
+ .muka-tile--md .muka-tile__description {
3369
+ overflow: hidden;
3370
+ text-overflow: ellipsis;
3334
3371
  }
3335
3372
 
3336
- .muka-toast__dismiss:focus-visible {
3337
- outline: 2px solid var(--color-border-focus);
3338
- outline-offset: 2px;
3339
- opacity: 1;
3373
+ /* ─── Price slot ──────────────────────────────────────── */
3374
+
3375
+ .muka-tile__price {
3376
+ flex-shrink: 0;
3340
3377
  }
3341
3378
 
3342
- .muka-toast__dismiss svg {
3343
- width: 16px;
3344
- height: 16px;
3379
+ /* ─── Action slot ─────────────────────────────────────── */
3380
+
3381
+ .muka-tile__action {
3382
+ flex-shrink: 0;
3345
3383
  }
3346
3384
 
3347
3385
 
@@ -4774,49 +4812,243 @@ body {
4774
4812
  outline: none;
4775
4813
  }
4776
4814
 
4777
- /* Safe-area bottom inset for the iPhone home indicator. */
4778
- .muka-sheet:not(.muka-sheet--no-safe-area) {
4779
- padding-bottom: env(safe-area-inset-bottom);
4815
+ /* Safe-area bottom inset for the iPhone home indicator. */
4816
+ .muka-sheet:not(.muka-sheet--no-safe-area) {
4817
+ padding-bottom: env(safe-area-inset-bottom);
4818
+ }
4819
+
4820
+ /* ─── Drag handle ─────────────────────────────────────── */
4821
+
4822
+ .muka-sheet__handle-container {
4823
+ display: flex;
4824
+ justify-content: center;
4825
+ flex-shrink: 0;
4826
+ padding: var(--spacing-3) 0;
4827
+ }
4828
+
4829
+ .muka-sheet__handle {
4830
+ width: var(--dialog-drag-handle-width);
4831
+ height: var(--dialog-drag-handle-height);
4832
+ background-color: var(--dialog-drag-handle-color);
4833
+ border-radius: var(--dialog-drag-handle-radius);
4834
+ }
4835
+
4836
+ /* ─── Body (scrollable) ───────────────────────────────── */
4837
+
4838
+ .muka-sheet__body {
4839
+ flex: 1 1 0%;
4840
+ min-height: 0;
4841
+ overflow-y: auto;
4842
+ -webkit-overflow-scrolling: touch;
4843
+ overscroll-behavior: contain;
4844
+ }
4845
+
4846
+ /* ─── Visually-hidden title (a11y) ────────────────────── */
4847
+
4848
+ .muka-sheet__sr-title {
4849
+ position: absolute;
4850
+ width: 1px;
4851
+ height: 1px;
4852
+ padding: 0;
4853
+ margin: -1px;
4854
+ overflow: hidden;
4855
+ clip: rect(0, 0, 0, 0);
4856
+ white-space: nowrap;
4857
+ border: 0;
4858
+ }
4859
+
4860
+
4861
+ /* Select */
4862
+ /* Select Component Styles - Aligned with Input for consistency */
4863
+
4864
+ .muka-select {
4865
+ display: inline-flex;
4866
+ flex-direction: column;
4867
+ gap: var(--spacing-2);
4868
+ }
4869
+
4870
+ .muka-select--full-width {
4871
+ width: 100%;
4872
+ }
4873
+
4874
+ /* Label */
4875
+ .muka-select__label {
4876
+ color: var(--color-text-default-default);
4877
+ cursor: pointer;
4878
+ }
4879
+
4880
+ .muka-select__label--sm {
4881
+ font-family: var(--text-label-sm-semibold-fontFamily);
4882
+ font-weight: var(--text-label-sm-semibold-fontWeight);
4883
+ font-size: var(--text-label-sm-semibold-fontSize);
4884
+ line-height: var(--text-label-sm-semibold-lineHeight);
4885
+ }
4886
+
4887
+ .muka-select__label--md {
4888
+ font-family: var(--text-label-md-semibold-fontFamily);
4889
+ font-weight: var(--text-label-md-semibold-fontWeight);
4890
+ font-size: var(--text-label-md-semibold-fontSize);
4891
+ line-height: var(--text-label-md-semibold-lineHeight);
4892
+ }
4893
+
4894
+ .muka-select__label--lg {
4895
+ font-family: var(--text-label-lg-semibold-fontFamily);
4896
+ font-weight: var(--text-label-lg-semibold-fontWeight);
4897
+ font-size: var(--text-label-lg-semibold-fontSize);
4898
+ line-height: var(--text-label-lg-semibold-lineHeight);
4899
+ }
4900
+
4901
+ .muka-select__required {
4902
+ color: var(--color-state-error-foreground);
4903
+ }
4904
+
4905
+ .muka-select__label--sm + .muka-select__field--disabled,
4906
+ .muka-select__label--md + .muka-select__field--disabled,
4907
+ .muka-select__label--lg + .muka-select__field--disabled {
4908
+ cursor: not-allowed;
4909
+ }
4910
+
4911
+ /* Field container — same as Input: 1px border, radius, padding, inset shadow */
4912
+ .muka-select__field {
4913
+ display: flex;
4914
+ align-items: center;
4915
+ gap: var(--spacing-2);
4916
+ position: relative;
4917
+ background-color: var(--input-field-color-default-background);
4918
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
4919
+ border-radius: var(--input-field-radius-md);
4920
+ padding: var(--input-field-padding-y) var(--input-field-padding-x);
4921
+ transition: border-color 0.2s ease, background-color 0.2s ease;
4922
+ cursor: pointer;
4923
+ box-sizing: border-box;
4924
+ }
4925
+
4926
+ /* Inset shadow — same as Input (single subtle line) */
4927
+ .muka-select__field::after {
4928
+ content: '';
4929
+ position: absolute;
4930
+ inset: 0;
4931
+ border-radius: inherit;
4932
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
4933
+ pointer-events: none;
4934
+ }
4935
+
4936
+ /* Size variants — same radius/height as Input */
4937
+ .muka-select__field--sm {
4938
+ min-height: var(--input-field-height-sm);
4939
+ border-radius: var(--input-field-radius-sm);
4940
+ }
4941
+
4942
+ .muka-select__field--md {
4943
+ min-height: var(--input-field-height-default);
4944
+ border-radius: var(--input-field-radius-md);
4945
+ }
4946
+
4947
+ .muka-select__field--lg {
4948
+ min-height: var(--input-field-height-lg);
4949
+ border-radius: var(--input-field-radius-lg);
4950
+ }
4951
+
4952
+ /* Hover — no visual change (same as Input) */
4953
+
4954
+ /* Focus (active) — same as Input: 2px border, padding compensation */
4955
+ .muka-select__field--focused:not(.muka-select__field--disabled) {
4956
+ border-width: var(--border-width-bold);
4957
+ border-color: var(--input-field-color-focus-border);
4958
+ background-color: var(--input-field-color-focus-background);
4959
+ padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
4960
+ }
4961
+
4962
+ /* Error — same as Input: 2px border, padding compensation */
4963
+ .muka-select__field--error:not(.muka-select__field--disabled) {
4964
+ border-width: var(--border-width-bold);
4965
+ border-color: var(--input-field-color-error-border);
4966
+ background-color: var(--input-field-color-error-background);
4967
+ padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
4968
+ }
4969
+
4970
+ /* Disabled — same as Input */
4971
+ .muka-select__field--disabled {
4972
+ background-color: var(--input-field-color-disabled-background);
4973
+ border-color: var(--input-field-color-disabled-border);
4974
+ cursor: not-allowed;
4975
+ }
4976
+
4977
+ .muka-select__field--disabled::after {
4978
+ display: none;
4979
+ }
4980
+
4981
+ /* Native select — padding on field so native has 0 + right space for chevron */
4982
+ .muka-select__native {
4983
+ appearance: none;
4984
+ -webkit-appearance: none;
4985
+ flex: 1;
4986
+ border: none;
4987
+ outline: none;
4988
+ background: transparent;
4989
+ color: var(--input-field-color-default-foreground);
4990
+ font-family: var(--text-input-md-fontFamily);
4991
+ font-weight: var(--text-input-md-fontWeight);
4992
+ font-size: var(--text-input-md-fontSize);
4993
+ line-height: var(--text-input-md-lineHeight);
4994
+ padding: 0;
4995
+ padding-right: calc(var(--input-field-padding-x) + 1.5rem);
4996
+ cursor: pointer;
4997
+ min-width: 0;
4998
+ width: 100%;
4999
+ }
5000
+
5001
+ .muka-select__field--sm .muka-select__native {
5002
+ font-family: var(--text-input-sm-fontFamily);
5003
+ font-weight: var(--text-input-sm-fontWeight);
5004
+ font-size: var(--text-input-sm-fontSize);
5005
+ line-height: var(--text-input-sm-lineHeight);
4780
5006
  }
4781
5007
 
4782
- /* ─── Drag handle ─────────────────────────────────────── */
4783
-
4784
- .muka-sheet__handle-container {
4785
- display: flex;
4786
- justify-content: center;
4787
- flex-shrink: 0;
4788
- padding: var(--spacing-3) 0;
5008
+ .muka-select__field--lg .muka-select__native {
5009
+ font-family: var(--text-input-lg-fontFamily);
5010
+ font-weight: var(--text-input-lg-fontWeight);
5011
+ font-size: var(--text-input-lg-fontSize);
5012
+ line-height: var(--text-input-lg-lineHeight);
4789
5013
  }
4790
5014
 
4791
- .muka-sheet__handle {
4792
- width: var(--dialog-drag-handle-width);
4793
- height: var(--dialog-drag-handle-height);
4794
- background-color: var(--dialog-drag-handle-color);
4795
- border-radius: var(--dialog-drag-handle-radius);
5015
+ .muka-select__field--disabled .muka-select__native {
5016
+ color: var(--input-field-color-disabled-foreground);
5017
+ cursor: not-allowed;
4796
5018
  }
4797
5019
 
4798
- /* ─── Body (scrollable) ───────────────────────────────── */
5020
+ /* Chevron — aligned with field padding */
5021
+ .muka-select__chevron {
5022
+ display: inline-flex;
5023
+ align-items: center;
5024
+ position: absolute;
5025
+ right: var(--input-field-padding-x);
5026
+ pointer-events: none;
5027
+ color: var(--color-text-subtle-default);
5028
+ }
4799
5029
 
4800
- .muka-sheet__body {
4801
- flex: 1 1 0%;
4802
- min-height: 0;
4803
- overflow-y: auto;
4804
- -webkit-overflow-scrolling: touch;
4805
- overscroll-behavior: contain;
5030
+ .muka-select__field--disabled .muka-select__chevron {
5031
+ color: var(--input-field-color-disabled-foreground);
4806
5032
  }
4807
5033
 
4808
- /* ─── Visually-hidden title (a11y) ────────────────────── */
5034
+ /* Helper text — same as Input */
5035
+ .muka-select__helper {
5036
+ font-family: var(--text-label-sm-regular-fontFamily);
5037
+ font-weight: var(--text-label-sm-regular-fontWeight);
5038
+ font-size: var(--text-label-sm-regular-fontSize);
5039
+ line-height: var(--text-label-sm-regular-lineHeight);
5040
+ color: var(--color-text-subtle-default);
5041
+ margin: 0;
5042
+ }
4809
5043
 
4810
- .muka-sheet__sr-title {
4811
- position: absolute;
4812
- width: 1px;
4813
- height: 1px;
4814
- padding: 0;
4815
- margin: -1px;
4816
- overflow: hidden;
4817
- clip: rect(0, 0, 0, 0);
4818
- white-space: nowrap;
4819
- border: 0;
5044
+ /* Error message — same as Input */
5045
+ .muka-select__error {
5046
+ font-family: var(--text-label-sm-regular-fontFamily);
5047
+ font-weight: var(--text-label-sm-regular-fontWeight);
5048
+ font-size: var(--text-label-sm-regular-fontSize);
5049
+ line-height: var(--text-label-sm-regular-lineHeight);
5050
+ color: var(--color-state-error-foreground);
5051
+ margin: 0;
4820
5052
  }
4821
5053
 
4822
5054
 
@@ -5703,53 +5935,6 @@ body {
5703
5935
  }
5704
5936
 
5705
5937
 
5706
- /* PullToRefresh */
5707
- /* PullToRefresh Component Styles */
5708
-
5709
- .muka-pull-to-refresh {
5710
- position: relative;
5711
- display: flex;
5712
- flex-direction: column;
5713
- width: 100%;
5714
- height: 100%;
5715
- overflow: hidden;
5716
- }
5717
-
5718
- .muka-pull-to-refresh__indicator {
5719
- position: absolute;
5720
- top: 0;
5721
- left: 0;
5722
- right: 0;
5723
- display: flex;
5724
- align-items: flex-end;
5725
- justify-content: center;
5726
- padding-bottom: var(--spacing-2);
5727
- color: var(--color-text-subtle-default);
5728
- overflow: hidden;
5729
- pointer-events: none;
5730
- z-index: 1;
5731
- }
5732
-
5733
- .muka-pull-to-refresh__chevron {
5734
- display: inline-flex;
5735
- align-items: center;
5736
- justify-content: center;
5737
- transition: transform 0.16s ease;
5738
- }
5739
-
5740
- .muka-pull-to-refresh__scroller {
5741
- flex: 1 1 auto;
5742
- min-height: 0;
5743
- width: 100%;
5744
- overflow-x: clip;
5745
- overflow-y: auto;
5746
- -webkit-overflow-scrolling: touch;
5747
- overscroll-behavior-y: contain;
5748
- touch-action: pan-y;
5749
- will-change: transform;
5750
- }
5751
-
5752
-
5753
5938
  /* ProgressTracker */
5754
5939
  /* ProgressTracker Component Styles — Using Muka Design Tokens */
5755
5940
 
@@ -6156,6 +6341,53 @@ body {
6156
6341
  }
6157
6342
 
6158
6343
 
6344
+ /* PullToRefresh */
6345
+ /* PullToRefresh Component Styles */
6346
+
6347
+ .muka-pull-to-refresh {
6348
+ position: relative;
6349
+ display: flex;
6350
+ flex-direction: column;
6351
+ width: 100%;
6352
+ height: 100%;
6353
+ overflow: hidden;
6354
+ }
6355
+
6356
+ .muka-pull-to-refresh__indicator {
6357
+ position: absolute;
6358
+ top: 0;
6359
+ left: 0;
6360
+ right: 0;
6361
+ display: flex;
6362
+ align-items: flex-end;
6363
+ justify-content: center;
6364
+ padding-bottom: var(--spacing-2);
6365
+ color: var(--color-text-subtle-default);
6366
+ overflow: hidden;
6367
+ pointer-events: none;
6368
+ z-index: 1;
6369
+ }
6370
+
6371
+ .muka-pull-to-refresh__chevron {
6372
+ display: inline-flex;
6373
+ align-items: center;
6374
+ justify-content: center;
6375
+ transition: transform 0.16s ease;
6376
+ }
6377
+
6378
+ .muka-pull-to-refresh__scroller {
6379
+ flex: 1 1 auto;
6380
+ min-height: 0;
6381
+ width: 100%;
6382
+ overflow-x: clip;
6383
+ overflow-y: auto;
6384
+ -webkit-overflow-scrolling: touch;
6385
+ overscroll-behavior-y: contain;
6386
+ touch-action: pan-y;
6387
+ will-change: transform;
6388
+ }
6389
+
6390
+
6159
6391
  /* Progress */
6160
6392
  /* Progress Component Styles - Using Muka Design Tokens */
6161
6393
 
@@ -6288,114 +6520,43 @@ body {
6288
6520
  color: var(--color-text-default-default);
6289
6521
  }
6290
6522
 
6291
- .muka-progress--circle.muka-progress--sm .muka-progress__label {
6292
- font-size: var(--text-label-sm-semibold-fontSize);
6293
- }
6294
-
6295
- .muka-progress--circle.muka-progress--md .muka-progress__label {
6296
- font-size: var(--text-label-md-semibold-fontSize);
6297
- }
6298
-
6299
- .muka-progress--circle.muka-progress--lg .muka-progress__label {
6300
- font-size: var(--text-label-lg-semibold-fontSize);
6301
- }
6302
-
6303
- /* Indeterminate animation for circle */
6304
- .muka-progress--circle.muka-progress--indeterminate .muka-progress__circle {
6305
- animation: muka-progress-circle-rotate 2s linear infinite;
6306
- }
6307
-
6308
- .muka-progress--circle.muka-progress--indeterminate .muka-progress__fill {
6309
- animation: muka-progress-circle-dash 1.5s ease-in-out infinite;
6310
- }
6311
-
6312
- @keyframes muka-progress-circle-rotate {
6313
- 100% {
6314
- transform: rotate(270deg);
6315
- }
6316
- }
6317
-
6318
- @keyframes muka-progress-circle-dash {
6319
- 0% {
6320
- stroke-dashoffset: 220;
6321
- }
6322
- 50% {
6323
- stroke-dashoffset: 70;
6324
- }
6325
- 100% {
6326
- stroke-dashoffset: 220;
6327
- }
6328
- }
6329
-
6330
-
6331
- /* ProfileBadge */
6332
- /* ProfileBadge Component Styles - Using Muka Design Tokens */
6333
-
6334
- .muka-profile-badge {
6335
- display: inline-flex;
6336
- align-items: center;
6337
- font-family: var(--text-body-base-regular-fontFamily);
6338
- }
6339
-
6340
- /* Size variants */
6341
- .muka-profile-badge--lg {
6342
- gap: var(--spacing-4); /* 16px */
6343
- }
6344
-
6345
- .muka-profile-badge--md {
6346
- gap: var(--spacing-3); /* 12px */
6347
- }
6348
-
6349
- .muka-profile-badge__avatar {
6350
- flex-shrink: 0;
6351
- }
6352
-
6353
- /* Text stack */
6354
- .muka-profile-badge__text {
6355
- display: flex;
6356
- flex-direction: column;
6357
- align-items: flex-start;
6358
- min-width: 0;
6523
+ .muka-progress--circle.muka-progress--sm .muka-progress__label {
6524
+ font-size: var(--text-label-sm-semibold-fontSize);
6359
6525
  }
6360
6526
 
6361
- .muka-profile-badge__name {
6362
- font-family: var(--text-body-base-regular-fontFamily);
6363
- font-size: var(--text-body-base-regular-fontSize);
6364
- font-weight: var(--text-body-base-regular-fontWeight);
6365
- line-height: var(--text-body-base-regular-lineHeight);
6366
- color: var(--color-text-default-default);
6527
+ .muka-progress--circle.muka-progress--md .muka-progress__label {
6528
+ font-size: var(--text-label-md-semibold-fontSize);
6367
6529
  }
6368
6530
 
6369
- .muka-profile-badge__email {
6370
- font-family: var(--text-body-xs-regular-fontFamily);
6371
- font-size: var(--text-body-xs-regular-fontSize);
6372
- font-weight: var(--text-body-xs-regular-fontWeight);
6373
- line-height: var(--text-body-xs-regular-lineHeight);
6374
- color: var(--color-text-subtle-default);
6531
+ .muka-progress--circle.muka-progress--lg .muka-progress__label {
6532
+ font-size: var(--text-label-lg-semibold-fontSize);
6375
6533
  }
6376
6534
 
6377
- /* Clickable state */
6378
- .muka-profile-badge--clickable {
6379
- cursor: pointer;
6380
- border: none;
6381
- background: none;
6382
- padding: 0;
6383
- text-align: left;
6384
- border-radius: var(--radius-md);
6385
- transition: opacity 0.2s ease;
6535
+ /* Indeterminate animation for circle */
6536
+ .muka-progress--circle.muka-progress--indeterminate .muka-progress__circle {
6537
+ animation: muka-progress-circle-rotate 2s linear infinite;
6386
6538
  }
6387
6539
 
6388
- .muka-profile-badge--clickable:hover {
6389
- opacity: 0.9;
6540
+ .muka-progress--circle.muka-progress--indeterminate .muka-progress__fill {
6541
+ animation: muka-progress-circle-dash 1.5s ease-in-out infinite;
6390
6542
  }
6391
6543
 
6392
- .muka-profile-badge--clickable:active {
6393
- opacity: 0.8;
6544
+ @keyframes muka-progress-circle-rotate {
6545
+ 100% {
6546
+ transform: rotate(270deg);
6547
+ }
6394
6548
  }
6395
6549
 
6396
- .muka-profile-badge--clickable:focus-visible {
6397
- outline: 2px solid var(--color-border-focus);
6398
- outline-offset: 2px;
6550
+ @keyframes muka-progress-circle-dash {
6551
+ 0% {
6552
+ stroke-dashoffset: 220;
6553
+ }
6554
+ 50% {
6555
+ stroke-dashoffset: 70;
6556
+ }
6557
+ 100% {
6558
+ stroke-dashoffset: 220;
6559
+ }
6399
6560
  }
6400
6561
 
6401
6562
 
@@ -6527,6 +6688,77 @@ body {
6527
6688
  }
6528
6689
 
6529
6690
 
6691
+ /* ProfileBadge */
6692
+ /* ProfileBadge Component Styles - Using Muka Design Tokens */
6693
+
6694
+ .muka-profile-badge {
6695
+ display: inline-flex;
6696
+ align-items: center;
6697
+ font-family: var(--text-body-base-regular-fontFamily);
6698
+ }
6699
+
6700
+ /* Size variants */
6701
+ .muka-profile-badge--lg {
6702
+ gap: var(--spacing-4); /* 16px */
6703
+ }
6704
+
6705
+ .muka-profile-badge--md {
6706
+ gap: var(--spacing-3); /* 12px */
6707
+ }
6708
+
6709
+ .muka-profile-badge__avatar {
6710
+ flex-shrink: 0;
6711
+ }
6712
+
6713
+ /* Text stack */
6714
+ .muka-profile-badge__text {
6715
+ display: flex;
6716
+ flex-direction: column;
6717
+ align-items: flex-start;
6718
+ min-width: 0;
6719
+ }
6720
+
6721
+ .muka-profile-badge__name {
6722
+ font-family: var(--text-body-base-regular-fontFamily);
6723
+ font-size: var(--text-body-base-regular-fontSize);
6724
+ font-weight: var(--text-body-base-regular-fontWeight);
6725
+ line-height: var(--text-body-base-regular-lineHeight);
6726
+ color: var(--color-text-default-default);
6727
+ }
6728
+
6729
+ .muka-profile-badge__email {
6730
+ font-family: var(--text-body-xs-regular-fontFamily);
6731
+ font-size: var(--text-body-xs-regular-fontSize);
6732
+ font-weight: var(--text-body-xs-regular-fontWeight);
6733
+ line-height: var(--text-body-xs-regular-lineHeight);
6734
+ color: var(--color-text-subtle-default);
6735
+ }
6736
+
6737
+ /* Clickable state */
6738
+ .muka-profile-badge--clickable {
6739
+ cursor: pointer;
6740
+ border: none;
6741
+ background: none;
6742
+ padding: 0;
6743
+ text-align: left;
6744
+ border-radius: var(--radius-md);
6745
+ transition: opacity 0.2s ease;
6746
+ }
6747
+
6748
+ .muka-profile-badge--clickable:hover {
6749
+ opacity: 0.9;
6750
+ }
6751
+
6752
+ .muka-profile-badge--clickable:active {
6753
+ opacity: 0.8;
6754
+ }
6755
+
6756
+ .muka-profile-badge--clickable:focus-visible {
6757
+ outline: 2px solid var(--color-border-focus);
6758
+ outline-offset: 2px;
6759
+ }
6760
+
6761
+
6530
6762
  /* PieChart */
6531
6763
  /* PieChart Component Styles - Using Muka Design Tokens */
6532
6764
 
@@ -7839,57 +8071,23 @@ li.muka-listitem {
7839
8071
  }
7840
8072
 
7841
8073
 
7842
- /* Icon */
7843
- /* Icon Component Styles - Using Muka Design Tokens */
7844
-
7845
- .muka-icon {
7846
- display: inline-flex;
7847
- align-items: center;
7848
- justify-content: center;
7849
- flex-shrink: 0;
7850
- color: var(--color-icon-default-default, currentColor);
7851
- }
7852
-
7853
- /* Icons inside buttons should inherit from button's foreground color */
7854
- .muka-button .muka-icon {
7855
- color: inherit;
7856
- }
7857
-
7858
- .muka-icon--subtle {
7859
- color: var(--color-icon-subtle-default);
7860
- }
7861
-
7862
- .muka-icon--muted {
7863
- color: var(--color-icon-muted-default);
7864
- }
7865
-
7866
- .muka-icon--inverse {
7867
- color: var(--color-icon-default-inverse);
7868
- }
7869
-
7870
- .muka-icon--xs {
7871
- width: var(--icon-size-xs);
7872
- height: var(--icon-size-xs);
7873
- }
7874
-
7875
- .muka-icon--sm {
7876
- width: var(--icon-size-sm);
7877
- height: var(--icon-size-sm);
8074
+ /* Form */
8075
+ .muka-form {
8076
+ display: flex;
8077
+ flex-direction: column;
8078
+ width: 100%;
7878
8079
  }
7879
8080
 
7880
- .muka-icon--md {
7881
- width: var(--icon-size-default);
7882
- height: var(--icon-size-default);
8081
+ .muka-form--gap-sm {
8082
+ gap: var(--size-sm);
7883
8083
  }
7884
8084
 
7885
- .muka-icon--lg {
7886
- width: var(--icon-size-lg);
7887
- height: var(--icon-size-lg);
8085
+ .muka-form--gap-md {
8086
+ gap: var(--size-md);
7888
8087
  }
7889
8088
 
7890
- .muka-icon svg {
7891
- width: 100%;
7892
- height: 100%;
8089
+ .muka-form--gap-lg {
8090
+ gap: var(--size-lg);
7893
8091
  }
7894
8092
 
7895
8093
 
@@ -8296,6 +8494,60 @@ li.muka-listitem {
8296
8494
  }
8297
8495
 
8298
8496
 
8497
+ /* Icon */
8498
+ /* Icon Component Styles - Using Muka Design Tokens */
8499
+
8500
+ .muka-icon {
8501
+ display: inline-flex;
8502
+ align-items: center;
8503
+ justify-content: center;
8504
+ flex-shrink: 0;
8505
+ color: var(--color-icon-default-default, currentColor);
8506
+ }
8507
+
8508
+ /* Icons inside buttons should inherit from button's foreground color */
8509
+ .muka-button .muka-icon {
8510
+ color: inherit;
8511
+ }
8512
+
8513
+ .muka-icon--subtle {
8514
+ color: var(--color-icon-subtle-default);
8515
+ }
8516
+
8517
+ .muka-icon--muted {
8518
+ color: var(--color-icon-muted-default);
8519
+ }
8520
+
8521
+ .muka-icon--inverse {
8522
+ color: var(--color-icon-default-inverse);
8523
+ }
8524
+
8525
+ .muka-icon--xs {
8526
+ width: var(--icon-size-xs);
8527
+ height: var(--icon-size-xs);
8528
+ }
8529
+
8530
+ .muka-icon--sm {
8531
+ width: var(--icon-size-sm);
8532
+ height: var(--icon-size-sm);
8533
+ }
8534
+
8535
+ .muka-icon--md {
8536
+ width: var(--icon-size-default);
8537
+ height: var(--icon-size-default);
8538
+ }
8539
+
8540
+ .muka-icon--lg {
8541
+ width: var(--icon-size-lg);
8542
+ height: var(--icon-size-lg);
8543
+ }
8544
+
8545
+ .muka-icon svg {
8546
+ width: 100%;
8547
+ height: 100%;
8548
+ }
8549
+
8550
+
8299
8551
  /* EmptyState */
8300
8552
  /* EmptyState Component Styles - Using Muka Design Tokens */
8301
8553
 
@@ -8847,55 +9099,28 @@ li.muka-listitem {
8847
9099
  .react-pdf__Document {
8848
9100
  display: flex;
8849
9101
  flex-direction: column;
8850
- align-items: center;
8851
- }
8852
-
8853
- .react-pdf__Page {
8854
- max-width: 100%;
8855
- box-shadow: var(--documentviewer-page-shadow);
8856
- border-radius: var(--documentviewer-page-borderRadius);
8857
- overflow: hidden;
8858
- }
8859
-
8860
- .react-pdf__Page__canvas {
8861
- max-width: 100%;
8862
- height: auto !important;
8863
- display: block;
8864
- }
8865
-
8866
- .react-pdf__Page__textContent {
8867
- max-width: 100%;
8868
- }
8869
-
8870
- .react-pdf__Page__annotations {
8871
- max-width: 100%;
8872
- }
8873
-
8874
-
8875
- /* Divider */
8876
- /* Divider Component Styles - Using Muka Design Tokens */
8877
-
8878
- .muka-divider {
8879
- flex-shrink: 0;
9102
+ align-items: center;
8880
9103
  }
8881
9104
 
8882
- .muka-divider--horizontal {
8883
- width: 100%;
8884
- height: var(--separator-width);
9105
+ .react-pdf__Page {
9106
+ max-width: 100%;
9107
+ box-shadow: var(--documentviewer-page-shadow);
9108
+ border-radius: var(--documentviewer-page-borderRadius);
9109
+ overflow: hidden;
8885
9110
  }
8886
9111
 
8887
- .muka-divider--vertical {
8888
- height: 100%;
8889
- width: var(--separator-width);
8890
- align-self: stretch;
9112
+ .react-pdf__Page__canvas {
9113
+ max-width: 100%;
9114
+ height: auto !important;
9115
+ display: block;
8891
9116
  }
8892
9117
 
8893
- .muka-divider--default {
8894
- background-color: var(--separator-color-default);
9118
+ .react-pdf__Page__textContent {
9119
+ max-width: 100%;
8895
9120
  }
8896
9121
 
8897
- .muka-divider--contrast {
8898
- background-color: var(--separator-color-contrast);
9122
+ .react-pdf__Page__annotations {
9123
+ max-width: 100%;
8899
9124
  }
8900
9125
 
8901
9126
 
@@ -9166,6 +9391,33 @@ li.muka-listitem {
9166
9391
  }
9167
9392
 
9168
9393
 
9394
+ /* Divider */
9395
+ /* Divider Component Styles - Using Muka Design Tokens */
9396
+
9397
+ .muka-divider {
9398
+ flex-shrink: 0;
9399
+ }
9400
+
9401
+ .muka-divider--horizontal {
9402
+ width: 100%;
9403
+ height: var(--separator-width);
9404
+ }
9405
+
9406
+ .muka-divider--vertical {
9407
+ height: 100%;
9408
+ width: var(--separator-width);
9409
+ align-self: stretch;
9410
+ }
9411
+
9412
+ .muka-divider--default {
9413
+ background-color: var(--separator-color-default);
9414
+ }
9415
+
9416
+ .muka-divider--contrast {
9417
+ background-color: var(--separator-color-contrast);
9418
+ }
9419
+
9420
+
9169
9421
  /* DatePicker */
9170
9422
  /* DatePicker — compact native date field. */
9171
9423
  /* Field/label/helper styling is inherited from ../Input/Input.css. */
@@ -11220,6 +11472,35 @@ li.muka-listitem {
11220
11472
  opacity: 1;
11221
11473
  }
11222
11474
 
11475
+ /* Muted variant - same as ghost but resting foreground is subtle, darkens on interaction */
11476
+ .muka-button--muted {
11477
+ background-color: var(--button-color-muted-background-default);
11478
+ color: var(--button-color-muted-foreground-default);
11479
+ border: 1px solid var(--button-color-muted-border-default);
11480
+ }
11481
+
11482
+ .muka-button--muted:hover:not(:disabled) {
11483
+ background-color: var(--button-color-muted-background-hover);
11484
+ color: var(--button-color-muted-foreground-hover);
11485
+ border-color: var(--button-color-muted-border-hover);
11486
+ }
11487
+
11488
+ .muka-button--muted:active:not(:disabled),
11489
+ .muka-button--muted.muka-button--pressed:not(:disabled),
11490
+ .muka-button--muted[data-state="open"]:not(:disabled) {
11491
+ background-color: var(--button-color-muted-background-pressed);
11492
+ color: var(--button-color-muted-foreground-pressed);
11493
+ border-color: var(--button-color-muted-border-pressed);
11494
+ }
11495
+
11496
+ .muka-button--muted:disabled {
11497
+ background-color: var(--button-color-muted-background-disabled);
11498
+ color: var(--button-color-muted-foreground-disabled);
11499
+ border-color: var(--button-color-muted-border-disabled);
11500
+ cursor: not-allowed;
11501
+ opacity: 1;
11502
+ }
11503
+
11223
11504
  /* General disabled state - fallback */
11224
11505
  .muka-button:disabled {
11225
11506
  cursor: not-allowed;
@@ -12830,197 +13111,3 @@ li.muka-listitem {
12830
13111
  border-bottom: none;
12831
13112
  }
12832
13113
 
12833
-
12834
- /* Select */
12835
- /* Select Component Styles - Aligned with Input for consistency */
12836
-
12837
- .muka-select {
12838
- display: inline-flex;
12839
- flex-direction: column;
12840
- gap: var(--spacing-2);
12841
- }
12842
-
12843
- .muka-select--full-width {
12844
- width: 100%;
12845
- }
12846
-
12847
- /* Label */
12848
- .muka-select__label {
12849
- color: var(--color-text-default-default);
12850
- cursor: pointer;
12851
- }
12852
-
12853
- .muka-select__label--sm {
12854
- font-family: var(--text-label-sm-semibold-fontFamily);
12855
- font-weight: var(--text-label-sm-semibold-fontWeight);
12856
- font-size: var(--text-label-sm-semibold-fontSize);
12857
- line-height: var(--text-label-sm-semibold-lineHeight);
12858
- }
12859
-
12860
- .muka-select__label--md {
12861
- font-family: var(--text-label-md-semibold-fontFamily);
12862
- font-weight: var(--text-label-md-semibold-fontWeight);
12863
- font-size: var(--text-label-md-semibold-fontSize);
12864
- line-height: var(--text-label-md-semibold-lineHeight);
12865
- }
12866
-
12867
- .muka-select__label--lg {
12868
- font-family: var(--text-label-lg-semibold-fontFamily);
12869
- font-weight: var(--text-label-lg-semibold-fontWeight);
12870
- font-size: var(--text-label-lg-semibold-fontSize);
12871
- line-height: var(--text-label-lg-semibold-lineHeight);
12872
- }
12873
-
12874
- .muka-select__required {
12875
- color: var(--color-state-error-foreground);
12876
- }
12877
-
12878
- .muka-select__label--sm + .muka-select__field--disabled,
12879
- .muka-select__label--md + .muka-select__field--disabled,
12880
- .muka-select__label--lg + .muka-select__field--disabled {
12881
- cursor: not-allowed;
12882
- }
12883
-
12884
- /* Field container — same as Input: 1px border, radius, padding, inset shadow */
12885
- .muka-select__field {
12886
- display: flex;
12887
- align-items: center;
12888
- gap: var(--spacing-2);
12889
- position: relative;
12890
- background-color: var(--input-field-color-default-background);
12891
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
12892
- border-radius: var(--input-field-radius-md);
12893
- padding: var(--input-field-padding-y) var(--input-field-padding-x);
12894
- transition: border-color 0.2s ease, background-color 0.2s ease;
12895
- cursor: pointer;
12896
- box-sizing: border-box;
12897
- }
12898
-
12899
- /* Inset shadow — same as Input (single subtle line) */
12900
- .muka-select__field::after {
12901
- content: '';
12902
- position: absolute;
12903
- inset: 0;
12904
- border-radius: inherit;
12905
- box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
12906
- pointer-events: none;
12907
- }
12908
-
12909
- /* Size variants — same radius/height as Input */
12910
- .muka-select__field--sm {
12911
- min-height: var(--input-field-height-sm);
12912
- border-radius: var(--input-field-radius-sm);
12913
- }
12914
-
12915
- .muka-select__field--md {
12916
- min-height: var(--input-field-height-default);
12917
- border-radius: var(--input-field-radius-md);
12918
- }
12919
-
12920
- .muka-select__field--lg {
12921
- min-height: var(--input-field-height-lg);
12922
- border-radius: var(--input-field-radius-lg);
12923
- }
12924
-
12925
- /* Hover — no visual change (same as Input) */
12926
-
12927
- /* Focus (active) — same as Input: 2px border, padding compensation */
12928
- .muka-select__field--focused:not(.muka-select__field--disabled) {
12929
- border-width: var(--border-width-bold);
12930
- border-color: var(--input-field-color-focus-border);
12931
- background-color: var(--input-field-color-focus-background);
12932
- padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
12933
- }
12934
-
12935
- /* Error — same as Input: 2px border, padding compensation */
12936
- .muka-select__field--error:not(.muka-select__field--disabled) {
12937
- border-width: var(--border-width-bold);
12938
- border-color: var(--input-field-color-error-border);
12939
- background-color: var(--input-field-color-error-background);
12940
- padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
12941
- }
12942
-
12943
- /* Disabled — same as Input */
12944
- .muka-select__field--disabled {
12945
- background-color: var(--input-field-color-disabled-background);
12946
- border-color: var(--input-field-color-disabled-border);
12947
- cursor: not-allowed;
12948
- }
12949
-
12950
- .muka-select__field--disabled::after {
12951
- display: none;
12952
- }
12953
-
12954
- /* Native select — padding on field so native has 0 + right space for chevron */
12955
- .muka-select__native {
12956
- appearance: none;
12957
- -webkit-appearance: none;
12958
- flex: 1;
12959
- border: none;
12960
- outline: none;
12961
- background: transparent;
12962
- color: var(--input-field-color-default-foreground);
12963
- font-family: var(--text-input-md-fontFamily);
12964
- font-weight: var(--text-input-md-fontWeight);
12965
- font-size: var(--text-input-md-fontSize);
12966
- line-height: var(--text-input-md-lineHeight);
12967
- padding: 0;
12968
- padding-right: calc(var(--input-field-padding-x) + 1.5rem);
12969
- cursor: pointer;
12970
- min-width: 0;
12971
- width: 100%;
12972
- }
12973
-
12974
- .muka-select__field--sm .muka-select__native {
12975
- font-family: var(--text-input-sm-fontFamily);
12976
- font-weight: var(--text-input-sm-fontWeight);
12977
- font-size: var(--text-input-sm-fontSize);
12978
- line-height: var(--text-input-sm-lineHeight);
12979
- }
12980
-
12981
- .muka-select__field--lg .muka-select__native {
12982
- font-family: var(--text-input-lg-fontFamily);
12983
- font-weight: var(--text-input-lg-fontWeight);
12984
- font-size: var(--text-input-lg-fontSize);
12985
- line-height: var(--text-input-lg-lineHeight);
12986
- }
12987
-
12988
- .muka-select__field--disabled .muka-select__native {
12989
- color: var(--input-field-color-disabled-foreground);
12990
- cursor: not-allowed;
12991
- }
12992
-
12993
- /* Chevron — aligned with field padding */
12994
- .muka-select__chevron {
12995
- display: inline-flex;
12996
- align-items: center;
12997
- position: absolute;
12998
- right: var(--input-field-padding-x);
12999
- pointer-events: none;
13000
- color: var(--color-text-subtle-default);
13001
- }
13002
-
13003
- .muka-select__field--disabled .muka-select__chevron {
13004
- color: var(--input-field-color-disabled-foreground);
13005
- }
13006
-
13007
- /* Helper text — same as Input */
13008
- .muka-select__helper {
13009
- font-family: var(--text-label-sm-regular-fontFamily);
13010
- font-weight: var(--text-label-sm-regular-fontWeight);
13011
- font-size: var(--text-label-sm-regular-fontSize);
13012
- line-height: var(--text-label-sm-regular-lineHeight);
13013
- color: var(--color-text-subtle-default);
13014
- margin: 0;
13015
- }
13016
-
13017
- /* Error message — same as Input */
13018
- .muka-select__error {
13019
- font-family: var(--text-label-sm-regular-fontFamily);
13020
- font-weight: var(--text-label-sm-regular-fontWeight);
13021
- font-size: var(--text-label-sm-regular-fontSize);
13022
- line-height: var(--text-label-sm-regular-lineHeight);
13023
- color: var(--color-state-error-foreground);
13024
- margin: 0;
13025
- }
13026
-