@revikornmann/muka-ui 0.19.0 → 0.21.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 (124) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheet.css +4 -4
  2. package/dist/cjs/components/BottomBar/BottomBar.css +0 -3
  3. package/dist/cjs/components/Breadcrumb/Breadcrumb.css +26 -2
  4. package/dist/cjs/components/Combobox/Combobox.css +2 -2
  5. package/dist/cjs/components/ContextSelect/ContextSelect.css +4 -4
  6. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js +1 -1
  7. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  8. package/dist/cjs/components/DocumentViewer/DocumentViewer.css +2 -2
  9. package/dist/cjs/components/DropdownSelect/DropdownSelect.css +3 -3
  10. package/dist/cjs/components/EmptyState/EmptyState.css +8 -8
  11. package/dist/cjs/components/FAB/FAB.css +1 -1
  12. package/dist/cjs/components/FileUpload/FileUpload.css +10 -10
  13. package/dist/cjs/components/Icon/Icon.js +17 -7
  14. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  15. package/dist/cjs/components/Icon/iconRegistry.js +143 -111
  16. package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
  17. package/dist/cjs/components/Icon/index.js +4 -1
  18. package/dist/cjs/components/Icon/index.js.map +1 -1
  19. package/dist/cjs/components/Input/Input.css +2 -2
  20. package/dist/cjs/components/Label/Label.css +1 -1
  21. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.css +1 -1
  22. package/dist/cjs/components/Menu/Menu.css +1 -1
  23. package/dist/cjs/components/Pagination/Pagination.css +15 -15
  24. package/dist/cjs/components/PhotoUploader/PhotoUploader.css +4 -4
  25. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.css +10 -6
  26. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js +27 -16
  27. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
  28. package/dist/cjs/components/SearchInput/SearchInput.css +4 -4
  29. package/dist/cjs/components/Select/Select.css +2 -2
  30. package/dist/cjs/components/SmsOtpField/SmsOtpField.css +2 -2
  31. package/dist/cjs/components/SpecList/SpecList.css +8 -8
  32. package/dist/cjs/components/Spinner/Spinner.css +1 -1
  33. package/dist/cjs/components/SwipeActions/SwipeActions.css +6 -6
  34. package/dist/cjs/components/Table/Table.css +3 -3
  35. package/dist/cjs/components/Table/TablePagination.css +1 -1
  36. package/dist/cjs/components/Tabs/Tabs.css +6 -6
  37. package/dist/cjs/components/Textarea/Textarea.css +2 -2
  38. package/dist/cjs/components/Waveform/Waveform.css +1 -1
  39. package/dist/cjs/components/index.js +5 -3
  40. package/dist/cjs/components/index.js.map +1 -1
  41. package/dist/esm/components/ActionSheet/ActionSheet.css +4 -4
  42. package/dist/esm/components/BottomBar/BottomBar.css +0 -3
  43. package/dist/esm/components/Breadcrumb/Breadcrumb.css +26 -2
  44. package/dist/esm/components/Combobox/Combobox.css +2 -2
  45. package/dist/esm/components/ContextSelect/ContextSelect.css +4 -4
  46. package/dist/esm/components/DocumentViewer/DocumentToolbar.js +1 -1
  47. package/dist/esm/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  48. package/dist/esm/components/DocumentViewer/DocumentViewer.css +2 -2
  49. package/dist/esm/components/DropdownSelect/DropdownSelect.css +3 -3
  50. package/dist/esm/components/EmptyState/EmptyState.css +8 -8
  51. package/dist/esm/components/FAB/FAB.css +1 -1
  52. package/dist/esm/components/FileUpload/FileUpload.css +10 -10
  53. package/dist/esm/components/Icon/Icon.js +14 -7
  54. package/dist/esm/components/Icon/Icon.js.map +1 -1
  55. package/dist/esm/components/Icon/iconRegistry.js +141 -78
  56. package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
  57. package/dist/esm/components/Icon/index.js +1 -1
  58. package/dist/esm/components/Icon/index.js.map +1 -1
  59. package/dist/esm/components/Input/Input.css +2 -2
  60. package/dist/esm/components/Label/Label.css +1 -1
  61. package/dist/esm/components/LicensePlateInput/LicensePlateInput.css +1 -1
  62. package/dist/esm/components/Menu/Menu.css +1 -1
  63. package/dist/esm/components/Pagination/Pagination.css +15 -15
  64. package/dist/esm/components/PhotoUploader/PhotoUploader.css +4 -4
  65. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.css +10 -6
  66. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js +27 -16
  67. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
  68. package/dist/esm/components/SearchInput/SearchInput.css +4 -4
  69. package/dist/esm/components/Select/Select.css +2 -2
  70. package/dist/esm/components/SmsOtpField/SmsOtpField.css +2 -2
  71. package/dist/esm/components/SpecList/SpecList.css +8 -8
  72. package/dist/esm/components/Spinner/Spinner.css +1 -1
  73. package/dist/esm/components/SwipeActions/SwipeActions.css +6 -6
  74. package/dist/esm/components/Table/Table.css +3 -3
  75. package/dist/esm/components/Table/TablePagination.css +1 -1
  76. package/dist/esm/components/Tabs/Tabs.css +6 -6
  77. package/dist/esm/components/Textarea/Textarea.css +2 -2
  78. package/dist/esm/components/Waveform/Waveform.css +1 -1
  79. package/dist/esm/components/index.js +1 -1
  80. package/dist/esm/components/index.js.map +1 -1
  81. package/dist/styles/components/ActionSheet.css +4 -4
  82. package/dist/styles/components/BottomBar.css +0 -3
  83. package/dist/styles/components/Breadcrumb.css +26 -2
  84. package/dist/styles/components/Combobox.css +2 -2
  85. package/dist/styles/components/ContextSelect.css +4 -4
  86. package/dist/styles/components/DocumentViewer.css +2 -2
  87. package/dist/styles/components/DropdownSelect.css +3 -3
  88. package/dist/styles/components/EmptyState.css +8 -8
  89. package/dist/styles/components/FAB.css +1 -1
  90. package/dist/styles/components/FileUpload.css +10 -10
  91. package/dist/styles/components/Input.css +2 -2
  92. package/dist/styles/components/Label.css +1 -1
  93. package/dist/styles/components/LicensePlateInput.css +1 -1
  94. package/dist/styles/components/Menu.css +1 -1
  95. package/dist/styles/components/Pagination.css +15 -15
  96. package/dist/styles/components/PhotoUploader.css +4 -4
  97. package/dist/styles/components/ProgressAccordeon.css +10 -6
  98. package/dist/styles/components/SearchInput.css +4 -4
  99. package/dist/styles/components/Select.css +2 -2
  100. package/dist/styles/components/SmsOtpField.css +2 -2
  101. package/dist/styles/components/SpecList.css +8 -8
  102. package/dist/styles/components/Spinner.css +1 -1
  103. package/dist/styles/components/SwipeActions.css +6 -6
  104. package/dist/styles/components/Table.css +3 -3
  105. package/dist/styles/components/Tabs.css +6 -6
  106. package/dist/styles/components/Textarea.css +2 -2
  107. package/dist/styles/components/Waveform.css +1 -1
  108. package/dist/styles/index.css +1253 -1228
  109. package/dist/styles/muka-dark.css +1253 -1228
  110. package/dist/styles/muka-light.css +1253 -1228
  111. package/dist/styles/wireframe-dark.css +1253 -1228
  112. package/dist/styles/wireframe-light.css +1253 -1228
  113. package/dist/types/components/Icon/Icon.d.ts +20 -7
  114. package/dist/types/components/Icon/Icon.d.ts.map +1 -1
  115. package/dist/types/components/Icon/iconRegistry.d.ts +109 -14
  116. package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
  117. package/dist/types/components/Icon/index.d.ts +1 -1
  118. package/dist/types/components/Icon/index.d.ts.map +1 -1
  119. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts +17 -12
  120. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts.map +1 -1
  121. package/dist/types/components/index.d.ts +1 -1
  122. package/dist/types/components/index.d.ts.map +1 -1
  123. package/package.json +3 -1
  124. package/skills/figma-to-code/SKILL.md +17 -2
@@ -2406,7 +2406,7 @@ body {
2406
2406
  .muka-waveform {
2407
2407
  display: flex;
2408
2408
  align-items: center;
2409
- gap: var(--spacing-05, 2px);
2409
+ gap: var(--size-3xs);
2410
2410
  width: 100%;
2411
2411
  min-width: 0;
2412
2412
  }
@@ -3837,7 +3837,7 @@ body {
3837
3837
  }
3838
3838
 
3839
3839
  .muka-textarea__required {
3840
- color: var(--color-state-error-foreground);
3840
+ color: var(--color-state-error-default);
3841
3841
  }
3842
3842
 
3843
3843
  /* Field container */
@@ -3950,7 +3950,7 @@ body {
3950
3950
  font-weight: var(--text-label-sm-regular-fontWeight);
3951
3951
  font-size: var(--text-label-sm-regular-fontSize);
3952
3952
  line-height: var(--text-label-sm-regular-lineHeight);
3953
- color: var(--color-state-error-foreground);
3953
+ color: var(--color-state-error-default);
3954
3954
  margin: 0;
3955
3955
  }
3956
3956
 
@@ -4074,7 +4074,7 @@ body {
4074
4074
  align-items: center;
4075
4075
  position: relative;
4076
4076
  z-index: 2;
4077
- border-bottom: 1px solid var(--color-border-default, #e0e0e0);
4077
+ border-bottom: 1px solid var(--tabs-trigger-color-default-border);
4078
4078
  }
4079
4079
 
4080
4080
  /* Tab Trigger — clean underline style */
@@ -4092,7 +4092,7 @@ body {
4092
4092
  white-space: nowrap;
4093
4093
  position: relative;
4094
4094
  z-index: 2;
4095
- color: var(--color-text-subtle-default, #838383);
4095
+ color: var(--tabs-trigger-color-default-foreground);
4096
4096
 
4097
4097
  /* Default MD size values */
4098
4098
  height: 48px;
@@ -4124,12 +4124,12 @@ body {
4124
4124
 
4125
4125
  /* Hover state */
4126
4126
  .muka-tabs__trigger:hover:not(:disabled):not(.muka-tabs__trigger--current) {
4127
- color: var(--color-text-neutral-default, #202020);
4127
+ color: var(--tabs-trigger-color-hover-foreground);
4128
4128
  }
4129
4129
 
4130
4130
  /* Current tab */
4131
4131
  .muka-tabs__trigger--current {
4132
- color: var(--color-text-action-default, #202020);
4132
+ color: var(--tabs-trigger-color-current-foreground);
4133
4133
  }
4134
4134
 
4135
4135
  /* Active bottom border (underline) */
@@ -4140,7 +4140,7 @@ body {
4140
4140
  left: 0;
4141
4141
  right: 0;
4142
4142
  height: 3px;
4143
- background-color: var(--color-text-action-default, #202020);
4143
+ background-color: var(--tabs-trigger-color-current-foreground);
4144
4144
  border-bottom-left-radius: 1px;
4145
4145
  border-bottom-right-radius: 1px;
4146
4146
  border-top-left-radius: 3px;
@@ -4149,7 +4149,7 @@ body {
4149
4149
  }
4150
4150
 
4151
4151
  .muka-tabs__trigger--disabled {
4152
- color: var(--color-text-disabled-foreground, #a0a0a0);
4152
+ color: var(--tabs-trigger-color-disabled-foreground);
4153
4153
  cursor: not-allowed;
4154
4154
  }
4155
4155
 
@@ -4271,7 +4271,7 @@ body {
4271
4271
  ======================================== */
4272
4272
 
4273
4273
  .muka-table__body .muka-table__row {
4274
- border-bottom: var(--border-width-regular) solid var(--color-border-subtle);
4274
+ border-bottom: var(--border-width-regular) solid var(--color-border-muted);
4275
4275
  }
4276
4276
 
4277
4277
  .muka-table__body .muka-table__row:last-child {
@@ -4283,11 +4283,11 @@ body {
4283
4283
  }
4284
4284
 
4285
4285
  .muka-table__body .muka-table__row--selected {
4286
- background-color: var(--table-row-selected-background, var(--color-action-background));
4286
+ background-color: var(--table-row-selected-background, var(--color-action-default));
4287
4287
  }
4288
4288
 
4289
4289
  .muka-table__body .muka-table__row--selected:hover {
4290
- background-color: var(--table-row-selected-background, var(--color-action-background));
4290
+ background-color: var(--table-row-selected-background, var(--color-action-default));
4291
4291
  }
4292
4292
 
4293
4293
  .muka-table__row--clickable {
@@ -4447,7 +4447,7 @@ body {
4447
4447
  ======================================== */
4448
4448
 
4449
4449
  .muka-table__body .muka-table__row {
4450
- border-bottom: var(--border-width-regular) solid var(--color-border-subtle);
4450
+ border-bottom: var(--border-width-regular) solid var(--color-border-muted);
4451
4451
  }
4452
4452
 
4453
4453
  .muka-table__body .muka-table__row:last-child {
@@ -4459,11 +4459,11 @@ body {
4459
4459
  }
4460
4460
 
4461
4461
  .muka-table__body .muka-table__row--selected {
4462
- background-color: var(--table-row-selected-background, var(--color-action-background));
4462
+ background-color: var(--table-row-selected-background, var(--color-action-default));
4463
4463
  }
4464
4464
 
4465
4465
  .muka-table__body .muka-table__row--selected:hover {
4466
- background-color: var(--table-row-selected-background, var(--color-action-background));
4466
+ background-color: var(--table-row-selected-background, var(--color-action-default));
4467
4467
  }
4468
4468
 
4469
4469
  .muka-table__row--clickable {
@@ -4654,107 +4654,22 @@ body {
4654
4654
 
4655
4655
  .muka-swipe-actions__button--primary {
4656
4656
  background-color: var(--color-action-default);
4657
- color: var(--color-text-inverse-default, #fff);
4657
+ color: var(--color-text-default-inverse);
4658
4658
  }
4659
4659
 
4660
4660
  .muka-swipe-actions__button--success {
4661
- background-color: var(--color-state-success-default, var(--color-action-default));
4662
- color: var(--color-text-inverse-default, #fff);
4661
+ background-color: var(--color-state-success-default);
4662
+ color: var(--color-text-default-inverse);
4663
4663
  }
4664
4664
 
4665
4665
  .muka-swipe-actions__button--warning {
4666
- background-color: var(--color-state-warning-default, var(--color-action-default));
4666
+ background-color: var(--color-state-warning-default);
4667
4667
  color: var(--color-text-default-default);
4668
4668
  }
4669
4669
 
4670
4670
  .muka-swipe-actions__button--destructive {
4671
- background-color: var(--color-state-error-default, #c0392b);
4672
- color: var(--color-text-inverse-default, #fff);
4673
- }
4674
-
4675
-
4676
- /* SpecList */
4677
- /* SpecList Component Styles */
4678
-
4679
- .muka-spec-list {
4680
- margin: 0;
4681
- padding: 0;
4682
- }
4683
-
4684
- /* ─── Row ─────────────────────────────────────────────── */
4685
-
4686
- .muka-spec-row {
4687
- display: flex;
4688
- align-items: flex-start;
4689
- gap: var(--spacing-3);
4690
- padding-bottom: var(--spacing-3);
4691
- }
4692
-
4693
- /* ─── Label ───────────────────────────────────────────── */
4694
-
4695
- .muka-spec-row__label {
4696
- flex: 0 0 auto;
4697
- margin: 0;
4698
- color: var(--color-text-subtle-default);
4699
- font-family: var(--text-body-md-regular-fontFamily);
4700
- font-weight: var(--text-body-md-regular-fontWeight);
4701
- font-size: var(--text-body-md-regular-fontSize);
4702
- line-height: var(--text-body-md-regular-lineHeight);
4703
- overflow: hidden;
4704
- text-overflow: ellipsis;
4705
- white-space: nowrap;
4706
- }
4707
-
4708
- /* ─── Value ───────────────────────────────────────────── */
4709
-
4710
- .muka-spec-row__value {
4711
- flex: 1 1 0;
4712
- min-width: 0;
4713
- margin: 0;
4714
- display: flex;
4715
- flex-direction: column;
4716
- color: var(--color-text-default-default);
4717
- }
4718
-
4719
- .muka-spec-row__value-text {
4720
- font-family: var(--text-body-md-regular-fontFamily);
4721
- font-weight: var(--text-body-md-regular-fontWeight);
4722
- font-size: var(--text-body-md-regular-fontSize);
4723
- line-height: var(--text-body-md-regular-lineHeight);
4724
- }
4725
-
4726
- .muka-spec-row__hint {
4727
- color: var(--color-text-subtle-default);
4728
- font-family: var(--text-body-sm-regular-fontFamily);
4729
- font-weight: var(--text-body-sm-regular-fontWeight);
4730
- font-size: var(--text-body-sm-regular-fontSize);
4731
- line-height: var(--text-body-sm-regular-lineHeight);
4732
- }
4733
-
4734
- /* ─── Label width (horizontal stacking) ───────────────── */
4735
-
4736
- .muka-spec-list--label-small .muka-spec-row__label {
4737
- width: 80px;
4738
- }
4739
-
4740
- .muka-spec-list--label-medium .muka-spec-row__label {
4741
- width: 120px;
4742
- }
4743
-
4744
- .muka-spec-list--label-large .muka-spec-row__label {
4745
- width: 160px;
4746
- }
4747
-
4748
- /* ─── Vertical stacking ───────────────────────────────── */
4749
-
4750
- .muka-spec-list--vertical .muka-spec-row {
4751
- flex-direction: column;
4752
- gap: var(--spacing-1);
4753
- }
4754
-
4755
- .muka-spec-list--vertical .muka-spec-row__label {
4756
- width: 100%;
4757
- white-space: normal;
4671
+ background-color: var(--color-state-error-default);
4672
+ color: var(--color-text-default-inverse);
4758
4673
  }
4759
4674
 
4760
4675
 
@@ -4774,7 +4689,7 @@ body {
4774
4689
  }
4775
4690
 
4776
4691
  .muka-spinner--inverse {
4777
- color: var(--color-text-inverse-default);
4692
+ color: var(--color-text-default-inverse);
4778
4693
  }
4779
4694
 
4780
4695
  .muka-spinner__circle {
@@ -4836,149 +4751,49 @@ body {
4836
4751
  }
4837
4752
 
4838
4753
 
4839
- /* Skeleton */
4840
- /* Skeleton Component Styles */
4841
-
4842
- .muka-skeleton {
4843
- background-color: var(--color-surface-level1);
4844
- display: block;
4845
- }
4846
-
4847
- /* Variants */
4848
- .muka-skeleton--text {
4849
- height: 1em;
4850
- border-radius: var(--radius-md);
4851
- width: 100%;
4852
- }
4853
-
4854
- .muka-skeleton--circular {
4855
- width: 2.5rem;
4856
- height: 2.5rem;
4857
- border-radius: var(--radius-full);
4858
- }
4859
-
4860
- .muka-skeleton--rectangular {
4861
- height: 7.5rem;
4862
- border-radius: var(--radius-md);
4863
- width: 100%;
4864
- }
4865
-
4866
- /* Last line in multi-line text is shorter */
4867
- .muka-skeleton--last-line {
4868
- width: 80%;
4869
- }
4754
+ /* SmsOtpField */
4755
+ /* SmsOtpField Component Styles - Using Muka Design Tokens */
4870
4756
 
4871
- /* Lines container */
4872
- .muka-skeleton__lines {
4873
- display: flex;
4757
+ /* Wrapper */
4758
+ .muka-sms-otp-field {
4759
+ display: inline-flex;
4874
4760
  flex-direction: column;
4875
4761
  gap: var(--spacing-2);
4876
4762
  }
4877
4763
 
4878
- /* Shimmer animation */
4879
- @keyframes muka-skeleton-shimmer {
4880
- 0% {
4881
- background-position: -200% 0;
4882
- }
4883
- 100% {
4884
- background-position: 200% 0;
4885
- }
4886
- }
4887
-
4888
- .muka-skeleton--shimmer {
4889
- background: linear-gradient(
4890
- 90deg,
4891
- var(--color-surface-level1) 25%,
4892
- var(--color-surface-level2) 50%,
4893
- var(--color-surface-level1) 75%
4894
- );
4895
- background-size: 200% 100%;
4896
- animation: muka-skeleton-shimmer 1.5s ease-in-out infinite;
4897
- }
4898
-
4899
- /* Pulse animation */
4900
- @keyframes muka-skeleton-pulse {
4901
- 0%, 100% {
4902
- opacity: 1;
4903
- }
4904
- 50% {
4905
- opacity: 0.4;
4906
- }
4907
- }
4908
-
4909
- .muka-skeleton--pulse {
4910
- animation: muka-skeleton-pulse 1.5s ease-in-out infinite;
4911
- }
4912
-
4913
-
4914
- /* Sheet */
4915
- /* Sheet Component Styles */
4916
-
4917
- /* ─── Backdrop ────────────────────────────────────────── */
4918
-
4919
- .muka-sheet__overlay {
4920
- position: fixed;
4921
- inset: 0;
4922
- background-color: var(--color-surface-backdrop);
4923
- z-index: 50;
4924
- }
4925
-
4926
- /* ─── Surface ─────────────────────────────────────────── */
4927
-
4928
- .muka-sheet {
4929
- position: fixed;
4930
- left: 0;
4931
- right: 0;
4932
- bottom: 0;
4933
- z-index: 51;
4934
-
4935
- display: flex;
4936
- flex-direction: column;
4937
-
4938
- max-height: 96dvh;
4939
-
4940
- background-color: var(--color-surface-level3);
4941
- border-top-left-radius: var(--radius-lg);
4942
- border-top-right-radius: var(--radius-lg);
4943
- box-shadow: var(--shadow-level5);
4944
-
4945
- outline: none;
4764
+ /* Label */
4765
+ .muka-sms-otp-field__label {
4766
+ color: var(--color-text-default-default);
4767
+ cursor: pointer;
4946
4768
  }
4947
4769
 
4948
- /* Safe-area bottom inset for the iPhone home indicator. */
4949
- .muka-sheet:not(.muka-sheet--no-safe-area) {
4950
- padding-bottom: env(safe-area-inset-bottom);
4770
+ .muka-sms-otp-field__label--sm {
4771
+ font-family: var(--text-label-sm-semibold-fontFamily);
4772
+ font-weight: var(--text-label-sm-semibold-fontWeight);
4773
+ font-size: var(--text-label-sm-semibold-fontSize);
4774
+ line-height: var(--text-label-sm-semibold-lineHeight);
4951
4775
  }
4952
4776
 
4953
- /* ─── Drag handle ─────────────────────────────────────── */
4954
-
4955
- .muka-sheet__handle-container {
4956
- display: flex;
4957
- justify-content: center;
4958
- flex-shrink: 0;
4959
- padding: var(--spacing-3) 0;
4777
+ .muka-sms-otp-field__label--md {
4778
+ font-family: var(--text-label-md-semibold-fontFamily);
4779
+ font-weight: var(--text-label-md-semibold-fontWeight);
4780
+ font-size: var(--text-label-md-semibold-fontSize);
4781
+ line-height: var(--text-label-md-semibold-lineHeight);
4960
4782
  }
4961
4783
 
4962
- .muka-sheet__handle {
4963
- width: var(--dialog-drag-handle-width);
4964
- height: var(--dialog-drag-handle-height);
4965
- background-color: var(--dialog-drag-handle-color);
4966
- border-radius: var(--dialog-drag-handle-radius);
4784
+ .muka-sms-otp-field__label--lg {
4785
+ font-family: var(--text-label-lg-semibold-fontFamily);
4786
+ font-weight: var(--text-label-lg-semibold-fontWeight);
4787
+ font-size: var(--text-label-lg-semibold-fontSize);
4788
+ line-height: var(--text-label-lg-semibold-lineHeight);
4967
4789
  }
4968
4790
 
4969
- /* ─── Body (scrollable) ───────────────────────────────── */
4970
-
4971
- .muka-sheet__body {
4972
- flex: 1 1 0%;
4973
- min-height: 0;
4974
- overflow-y: auto;
4975
- -webkit-overflow-scrolling: touch;
4976
- overscroll-behavior: contain;
4791
+ .muka-sms-otp-field__required {
4792
+ color: var(--color-state-error-default);
4977
4793
  }
4978
4794
 
4979
- /* ─── Visually-hidden title (a11y) ────────────────────── */
4980
-
4981
- .muka-sheet__sr-title {
4795
+ /* Hidden input for browser autofill */
4796
+ .muka-sms-otp-field__hidden-input {
4982
4797
  position: absolute;
4983
4798
  width: 1px;
4984
4799
  height: 1px;
@@ -4988,19 +4803,396 @@ body {
4988
4803
  clip: rect(0, 0, 0, 0);
4989
4804
  white-space: nowrap;
4990
4805
  border: 0;
4806
+ opacity: 0;
4807
+ pointer-events: none;
4991
4808
  }
4992
4809
 
4993
-
4994
- /* Select */
4995
- /* Select Component Styles - Aligned with Input for consistency */
4996
-
4997
- .muka-select {
4998
- display: inline-flex;
4999
- flex-direction: column;
4810
+ /* Digits container */
4811
+ .muka-sms-otp-field__digits {
4812
+ display: flex;
4813
+ align-items: center;
5000
4814
  gap: var(--spacing-2);
5001
4815
  }
5002
4816
 
5003
- .muka-select--full-width {
4817
+ /* Separator */
4818
+ .muka-sms-otp-field__separator {
4819
+ display: inline-flex;
4820
+ align-items: center;
4821
+ justify-content: center;
4822
+ color: var(--color-text-subtle-default);
4823
+ font-size: 1.25rem;
4824
+ padding: 0 var(--spacing-1);
4825
+ user-select: none;
4826
+ }
4827
+
4828
+ /* Individual digit box */
4829
+ .muka-sms-otp-field__digit {
4830
+ display: flex;
4831
+ align-items: center;
4832
+ justify-content: center;
4833
+ text-align: center;
4834
+ background-color: var(--input-field-color-default-background);
4835
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
4836
+ color: var(--input-field-color-default-foreground);
4837
+ transition: border-color 0.2s ease, background-color 0.2s ease;
4838
+ box-sizing: border-box;
4839
+ caret-color: var(--input-field-color-focus-border);
4840
+ -moz-appearance: textfield;
4841
+ appearance: textfield;
4842
+ }
4843
+
4844
+ /* Remove spinner buttons */
4845
+ .muka-sms-otp-field__digit::-webkit-inner-spin-button,
4846
+ .muka-sms-otp-field__digit::-webkit-outer-spin-button {
4847
+ -webkit-appearance: none;
4848
+ margin: 0;
4849
+ }
4850
+
4851
+ /* Size variants */
4852
+ .muka-sms-otp-field__digit--sm {
4853
+ width: 36px;
4854
+ height: var(--input-field-height-sm);
4855
+ border-radius: var(--input-field-radius-sm);
4856
+ font-family: var(--text-input-sm-fontFamily);
4857
+ font-weight: var(--text-input-sm-fontWeight);
4858
+ font-size: var(--text-input-sm-fontSize);
4859
+ line-height: var(--text-input-sm-lineHeight);
4860
+ }
4861
+
4862
+ .muka-sms-otp-field__digit--md {
4863
+ width: 44px;
4864
+ height: var(--input-field-height-default);
4865
+ border-radius: var(--input-field-radius-md);
4866
+ font-family: var(--text-input-md-fontFamily);
4867
+ font-weight: var(--text-input-md-fontWeight);
4868
+ font-size: var(--text-input-md-fontSize);
4869
+ line-height: var(--text-input-md-lineHeight);
4870
+ }
4871
+
4872
+ .muka-sms-otp-field__digit--lg {
4873
+ width: 52px;
4874
+ height: var(--input-field-height-lg);
4875
+ border-radius: var(--input-field-radius-lg);
4876
+ font-family: var(--text-input-lg-fontFamily);
4877
+ font-weight: var(--text-input-lg-fontWeight);
4878
+ font-size: var(--text-input-lg-fontSize);
4879
+ line-height: var(--text-input-lg-lineHeight);
4880
+ }
4881
+
4882
+ /* Inset shadow (matches Input component) */
4883
+ .muka-sms-otp-field__digit::after {
4884
+ content: '';
4885
+ position: absolute;
4886
+ inset: 0;
4887
+ border-radius: inherit;
4888
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
4889
+ pointer-events: none;
4890
+ }
4891
+
4892
+ /* Focus state */
4893
+ .muka-sms-otp-field__digit--focused:not(.muka-sms-otp-field__digit--disabled) {
4894
+ border-width: var(--border-width-bold);
4895
+ border-color: var(--input-field-color-focus-border);
4896
+ background-color: var(--input-field-color-focus-background);
4897
+ outline: none;
4898
+ }
4899
+
4900
+ /* Also handle native :focus for keyboard navigation */
4901
+ .muka-sms-otp-field__digit:focus {
4902
+ outline: none;
4903
+ }
4904
+
4905
+ /* Error state */
4906
+ .muka-sms-otp-field__digit--error:not(.muka-sms-otp-field__digit--disabled) {
4907
+ border-width: var(--border-width-bold);
4908
+ border-color: var(--input-field-color-error-border);
4909
+ background-color: var(--input-field-color-error-background);
4910
+ }
4911
+
4912
+ /* Disabled state */
4913
+ .muka-sms-otp-field__digit--disabled {
4914
+ background-color: var(--input-field-color-disabled-background);
4915
+ border-color: var(--input-field-color-disabled-border);
4916
+ color: var(--input-field-color-disabled-foreground);
4917
+ cursor: not-allowed;
4918
+ }
4919
+
4920
+ /* Filled state — slightly bolder text */
4921
+ .muka-sms-otp-field__digit--filled {
4922
+ color: var(--input-field-color-default-foreground);
4923
+ }
4924
+
4925
+ /* Helper text */
4926
+ .muka-sms-otp-field__helper {
4927
+ font-family: var(--text-label-sm-regular-fontFamily);
4928
+ font-weight: var(--text-label-sm-regular-fontWeight);
4929
+ font-size: var(--text-label-sm-regular-fontSize);
4930
+ line-height: var(--text-label-sm-regular-lineHeight);
4931
+ color: var(--color-text-subtle-default);
4932
+ margin: 0;
4933
+ }
4934
+
4935
+ /* Error message */
4936
+ .muka-sms-otp-field__error {
4937
+ font-family: var(--text-label-sm-regular-fontFamily);
4938
+ font-weight: var(--text-label-sm-regular-fontWeight);
4939
+ font-size: var(--text-label-sm-regular-fontSize);
4940
+ line-height: var(--text-label-sm-regular-lineHeight);
4941
+ color: var(--color-state-error-default);
4942
+ margin: 0;
4943
+ }
4944
+
4945
+
4946
+ /* SpecList */
4947
+ /* SpecList Component Styles */
4948
+
4949
+ .muka-spec-list {
4950
+ margin: 0;
4951
+ padding: 0;
4952
+ }
4953
+
4954
+ /* ─── Row ─────────────────────────────────────────────── */
4955
+
4956
+ .muka-spec-row {
4957
+ display: flex;
4958
+ align-items: flex-start;
4959
+ gap: var(--spacing-3);
4960
+ padding-bottom: var(--spacing-3);
4961
+ }
4962
+
4963
+ /* ─── Label ───────────────────────────────────────────── */
4964
+
4965
+ .muka-spec-row__label {
4966
+ flex: 0 0 auto;
4967
+ margin: 0;
4968
+ color: var(--color-text-subtle-default);
4969
+ font-family: var(--text-body-base-regular-fontFamily);
4970
+ font-weight: var(--text-body-base-regular-fontWeight);
4971
+ font-size: var(--text-body-base-regular-fontSize);
4972
+ line-height: var(--text-body-base-regular-lineHeight);
4973
+ overflow: hidden;
4974
+ text-overflow: ellipsis;
4975
+ white-space: nowrap;
4976
+ }
4977
+
4978
+ /* ─── Value ───────────────────────────────────────────── */
4979
+
4980
+ .muka-spec-row__value {
4981
+ flex: 1 1 0;
4982
+ min-width: 0;
4983
+ margin: 0;
4984
+ display: flex;
4985
+ flex-direction: column;
4986
+ color: var(--color-text-default-default);
4987
+ }
4988
+
4989
+ .muka-spec-row__value-text {
4990
+ font-family: var(--text-body-base-regular-fontFamily);
4991
+ font-weight: var(--text-body-base-regular-fontWeight);
4992
+ font-size: var(--text-body-base-regular-fontSize);
4993
+ line-height: var(--text-body-base-regular-lineHeight);
4994
+ }
4995
+
4996
+ .muka-spec-row__hint {
4997
+ color: var(--color-text-subtle-default);
4998
+ font-family: var(--text-body-sm-regular-fontFamily);
4999
+ font-weight: var(--text-body-sm-regular-fontWeight);
5000
+ font-size: var(--text-body-sm-regular-fontSize);
5001
+ line-height: var(--text-body-sm-regular-lineHeight);
5002
+ }
5003
+
5004
+ /* ─── Label width (horizontal stacking) ───────────────── */
5005
+
5006
+ .muka-spec-list--label-small .muka-spec-row__label {
5007
+ width: 80px;
5008
+ }
5009
+
5010
+ .muka-spec-list--label-medium .muka-spec-row__label {
5011
+ width: 120px;
5012
+ }
5013
+
5014
+ .muka-spec-list--label-large .muka-spec-row__label {
5015
+ width: 160px;
5016
+ }
5017
+
5018
+ /* ─── Vertical stacking ───────────────────────────────── */
5019
+
5020
+ .muka-spec-list--vertical .muka-spec-row {
5021
+ flex-direction: column;
5022
+ gap: var(--spacing-1);
5023
+ }
5024
+
5025
+ .muka-spec-list--vertical .muka-spec-row__label {
5026
+ width: 100%;
5027
+ white-space: normal;
5028
+ }
5029
+
5030
+
5031
+ /* Skeleton */
5032
+ /* Skeleton Component Styles */
5033
+
5034
+ .muka-skeleton {
5035
+ background-color: var(--color-surface-level1);
5036
+ display: block;
5037
+ }
5038
+
5039
+ /* Variants */
5040
+ .muka-skeleton--text {
5041
+ height: 1em;
5042
+ border-radius: var(--radius-md);
5043
+ width: 100%;
5044
+ }
5045
+
5046
+ .muka-skeleton--circular {
5047
+ width: 2.5rem;
5048
+ height: 2.5rem;
5049
+ border-radius: var(--radius-full);
5050
+ }
5051
+
5052
+ .muka-skeleton--rectangular {
5053
+ height: 7.5rem;
5054
+ border-radius: var(--radius-md);
5055
+ width: 100%;
5056
+ }
5057
+
5058
+ /* Last line in multi-line text is shorter */
5059
+ .muka-skeleton--last-line {
5060
+ width: 80%;
5061
+ }
5062
+
5063
+ /* Lines container */
5064
+ .muka-skeleton__lines {
5065
+ display: flex;
5066
+ flex-direction: column;
5067
+ gap: var(--spacing-2);
5068
+ }
5069
+
5070
+ /* Shimmer animation */
5071
+ @keyframes muka-skeleton-shimmer {
5072
+ 0% {
5073
+ background-position: -200% 0;
5074
+ }
5075
+ 100% {
5076
+ background-position: 200% 0;
5077
+ }
5078
+ }
5079
+
5080
+ .muka-skeleton--shimmer {
5081
+ background: linear-gradient(
5082
+ 90deg,
5083
+ var(--color-surface-level1) 25%,
5084
+ var(--color-surface-level2) 50%,
5085
+ var(--color-surface-level1) 75%
5086
+ );
5087
+ background-size: 200% 100%;
5088
+ animation: muka-skeleton-shimmer 1.5s ease-in-out infinite;
5089
+ }
5090
+
5091
+ /* Pulse animation */
5092
+ @keyframes muka-skeleton-pulse {
5093
+ 0%, 100% {
5094
+ opacity: 1;
5095
+ }
5096
+ 50% {
5097
+ opacity: 0.4;
5098
+ }
5099
+ }
5100
+
5101
+ .muka-skeleton--pulse {
5102
+ animation: muka-skeleton-pulse 1.5s ease-in-out infinite;
5103
+ }
5104
+
5105
+
5106
+ /* Sheet */
5107
+ /* Sheet Component Styles */
5108
+
5109
+ /* ─── Backdrop ────────────────────────────────────────── */
5110
+
5111
+ .muka-sheet__overlay {
5112
+ position: fixed;
5113
+ inset: 0;
5114
+ background-color: var(--color-surface-backdrop);
5115
+ z-index: 50;
5116
+ }
5117
+
5118
+ /* ─── Surface ─────────────────────────────────────────── */
5119
+
5120
+ .muka-sheet {
5121
+ position: fixed;
5122
+ left: 0;
5123
+ right: 0;
5124
+ bottom: 0;
5125
+ z-index: 51;
5126
+
5127
+ display: flex;
5128
+ flex-direction: column;
5129
+
5130
+ max-height: 96dvh;
5131
+
5132
+ background-color: var(--color-surface-level3);
5133
+ border-top-left-radius: var(--radius-lg);
5134
+ border-top-right-radius: var(--radius-lg);
5135
+ box-shadow: var(--shadow-level5);
5136
+
5137
+ outline: none;
5138
+ }
5139
+
5140
+ /* Safe-area bottom inset for the iPhone home indicator. */
5141
+ .muka-sheet:not(.muka-sheet--no-safe-area) {
5142
+ padding-bottom: env(safe-area-inset-bottom);
5143
+ }
5144
+
5145
+ /* ─── Drag handle ─────────────────────────────────────── */
5146
+
5147
+ .muka-sheet__handle-container {
5148
+ display: flex;
5149
+ justify-content: center;
5150
+ flex-shrink: 0;
5151
+ padding: var(--spacing-3) 0;
5152
+ }
5153
+
5154
+ .muka-sheet__handle {
5155
+ width: var(--dialog-drag-handle-width);
5156
+ height: var(--dialog-drag-handle-height);
5157
+ background-color: var(--dialog-drag-handle-color);
5158
+ border-radius: var(--dialog-drag-handle-radius);
5159
+ }
5160
+
5161
+ /* ─── Body (scrollable) ───────────────────────────────── */
5162
+
5163
+ .muka-sheet__body {
5164
+ flex: 1 1 0%;
5165
+ min-height: 0;
5166
+ overflow-y: auto;
5167
+ -webkit-overflow-scrolling: touch;
5168
+ overscroll-behavior: contain;
5169
+ }
5170
+
5171
+ /* ─── Visually-hidden title (a11y) ────────────────────── */
5172
+
5173
+ .muka-sheet__sr-title {
5174
+ position: absolute;
5175
+ width: 1px;
5176
+ height: 1px;
5177
+ padding: 0;
5178
+ margin: -1px;
5179
+ overflow: hidden;
5180
+ clip: rect(0, 0, 0, 0);
5181
+ white-space: nowrap;
5182
+ border: 0;
5183
+ }
5184
+
5185
+
5186
+ /* Select */
5187
+ /* Select Component Styles - Aligned with Input for consistency */
5188
+
5189
+ .muka-select {
5190
+ display: inline-flex;
5191
+ flex-direction: column;
5192
+ gap: var(--spacing-2);
5193
+ }
5194
+
5195
+ .muka-select--full-width {
5004
5196
  width: 100%;
5005
5197
  }
5006
5198
 
@@ -5032,7 +5224,7 @@ body {
5032
5224
  }
5033
5225
 
5034
5226
  .muka-select__required {
5035
- color: var(--color-state-error-foreground);
5227
+ color: var(--color-state-error-default);
5036
5228
  }
5037
5229
 
5038
5230
  .muka-select__label--sm + .muka-select__field--disabled,
@@ -5180,7 +5372,7 @@ body {
5180
5372
  font-weight: var(--text-label-sm-regular-fontWeight);
5181
5373
  font-size: var(--text-label-sm-regular-fontSize);
5182
5374
  line-height: var(--text-label-sm-regular-lineHeight);
5183
- color: var(--color-state-error-foreground);
5375
+ color: var(--color-state-error-default);
5184
5376
  margin: 0;
5185
5377
  }
5186
5378
 
@@ -5373,29 +5565,6 @@ body {
5373
5565
  }
5374
5566
 
5375
5567
 
5376
- /* Section */
5377
- /* Section Component - Layout tokens (section.padding) */
5378
-
5379
- .muka-section {
5380
- box-sizing: border-box;
5381
- }
5382
-
5383
- .muka-section--padding-compact {
5384
- padding-block: var(--section-padding-vertical-compact);
5385
- padding-inline: var(--section-padding-horizontal-compact);
5386
- }
5387
-
5388
- .muka-section--padding-default {
5389
- padding-block: var(--section-padding-vertical-default);
5390
- padding-inline: var(--section-padding-horizontal-default);
5391
- }
5392
-
5393
- .muka-section--padding-spacious {
5394
- padding-block: var(--section-padding-vertical-spacious);
5395
- padding-inline: var(--section-padding-horizontal-spacious);
5396
- }
5397
-
5398
-
5399
5568
  /* SearchInput */
5400
5569
  /* SearchInput Component Styles */
5401
5570
 
@@ -5479,10 +5648,10 @@ body {
5479
5648
  outline: none;
5480
5649
  padding: 0;
5481
5650
  color: var(--color-text-default-default);
5482
- font-family: var(--text-body-md-regular-fontFamily);
5483
- font-weight: var(--text-body-md-regular-fontWeight);
5484
- font-size: var(--text-body-md-regular-fontSize);
5485
- line-height: var(--text-body-md-regular-lineHeight);
5651
+ font-family: var(--text-body-base-regular-fontFamily);
5652
+ font-weight: var(--text-body-base-regular-fontWeight);
5653
+ font-size: var(--text-body-base-regular-fontSize);
5654
+ line-height: var(--text-body-base-regular-lineHeight);
5486
5655
  appearance: none;
5487
5656
  -webkit-appearance: none;
5488
5657
  }
@@ -5565,6 +5734,79 @@ body {
5565
5734
  }
5566
5735
 
5567
5736
 
5737
+ /* Section */
5738
+ /* Section Component - Layout tokens (section.padding) */
5739
+
5740
+ .muka-section {
5741
+ box-sizing: border-box;
5742
+ }
5743
+
5744
+ .muka-section--padding-compact {
5745
+ padding-block: var(--section-padding-vertical-compact);
5746
+ padding-inline: var(--section-padding-horizontal-compact);
5747
+ }
5748
+
5749
+ .muka-section--padding-default {
5750
+ padding-block: var(--section-padding-vertical-default);
5751
+ padding-inline: var(--section-padding-horizontal-default);
5752
+ }
5753
+
5754
+ .muka-section--padding-spacious {
5755
+ padding-block: var(--section-padding-vertical-spacious);
5756
+ padding-inline: var(--section-padding-horizontal-spacious);
5757
+ }
5758
+
5759
+
5760
+ /* RecordingBar */
5761
+ /* RecordingBar Component Styles */
5762
+
5763
+ .muka-recording-bar {
5764
+ display: flex;
5765
+ align-items: center;
5766
+ gap: var(--spacing-3);
5767
+ width: 100%;
5768
+ min-width: 0;
5769
+ }
5770
+
5771
+ .muka-recording-bar__dot {
5772
+ flex: 0 0 auto;
5773
+ width: 0.625rem;
5774
+ height: 0.625rem;
5775
+ border-radius: var(--radius-full, 9999px);
5776
+ background: var(--alert-color-error-accent, var(--color-text-default-default));
5777
+ animation: muka-recording-bar-pulse 1s ease-in-out infinite;
5778
+ }
5779
+
5780
+ .muka-recording-bar__time {
5781
+ flex: 0 0 auto;
5782
+ font-size: var(--text-label-sm-fontSize, 0.75rem);
5783
+ line-height: var(--text-label-sm-lineHeight, 1);
5784
+ font-variant-numeric: tabular-nums;
5785
+ color: var(--color-text-default-default);
5786
+ }
5787
+
5788
+ .muka-recording-bar__wave {
5789
+ flex: 1 1 auto;
5790
+ min-width: 0;
5791
+ }
5792
+
5793
+ @keyframes muka-recording-bar-pulse {
5794
+ 0%,
5795
+ 100% {
5796
+ opacity: 1;
5797
+ }
5798
+ 50% {
5799
+ opacity: 0.3;
5800
+ }
5801
+ }
5802
+
5803
+ @media (prefers-reduced-motion: reduce) {
5804
+ .muka-recording-bar__dot {
5805
+ animation: none;
5806
+ }
5807
+ }
5808
+
5809
+
5568
5810
  /* Scrollbar */
5569
5811
  /* Scrollbar — Figma menu scrollbar (32px rail, chevrons, grip thumb) */
5570
5812
 
@@ -5684,61 +5926,11 @@ body {
5684
5926
  border-radius: var(--border-radius-md);
5685
5927
  background-color: var(--color-text-subtle-default);
5686
5928
  }
5687
-
5688
- .muka-scrollbar__spacer {
5689
- flex: 1 1 auto;
5690
- min-height: 0;
5691
- background-color: var(--color-surface-level2);
5692
- }
5693
-
5694
-
5695
- /* RecordingBar */
5696
- /* RecordingBar Component Styles */
5697
-
5698
- .muka-recording-bar {
5699
- display: flex;
5700
- align-items: center;
5701
- gap: var(--spacing-3);
5702
- width: 100%;
5703
- min-width: 0;
5704
- }
5705
-
5706
- .muka-recording-bar__dot {
5707
- flex: 0 0 auto;
5708
- width: 0.625rem;
5709
- height: 0.625rem;
5710
- border-radius: var(--radius-full, 9999px);
5711
- background: var(--alert-color-error-accent, var(--color-text-default-default));
5712
- animation: muka-recording-bar-pulse 1s ease-in-out infinite;
5713
- }
5714
-
5715
- .muka-recording-bar__time {
5716
- flex: 0 0 auto;
5717
- font-size: var(--text-label-sm-fontSize, 0.75rem);
5718
- line-height: var(--text-label-sm-lineHeight, 1);
5719
- font-variant-numeric: tabular-nums;
5720
- color: var(--color-text-default-default);
5721
- }
5722
-
5723
- .muka-recording-bar__wave {
5724
- flex: 1 1 auto;
5725
- min-width: 0;
5726
- }
5727
-
5728
- @keyframes muka-recording-bar-pulse {
5729
- 0%,
5730
- 100% {
5731
- opacity: 1;
5732
- }
5733
- 50% {
5734
- opacity: 0.3;
5735
- }
5736
- }
5737
-
5738
- @media (prefers-reduced-motion: reduce) {
5739
- .muka-recording-bar__dot {
5740
- animation: none;
5741
- }
5929
+
5930
+ .muka-scrollbar__spacer {
5931
+ flex: 1 1 auto;
5932
+ min-height: 0;
5933
+ background-color: var(--color-surface-level2);
5742
5934
  }
5743
5935
 
5744
5936
 
@@ -6101,6 +6293,53 @@ body {
6101
6293
  }
6102
6294
 
6103
6295
 
6296
+ /* PullToRefresh */
6297
+ /* PullToRefresh Component Styles */
6298
+
6299
+ .muka-pull-to-refresh {
6300
+ position: relative;
6301
+ display: flex;
6302
+ flex-direction: column;
6303
+ width: 100%;
6304
+ height: 100%;
6305
+ overflow: hidden;
6306
+ }
6307
+
6308
+ .muka-pull-to-refresh__indicator {
6309
+ position: absolute;
6310
+ top: 0;
6311
+ left: 0;
6312
+ right: 0;
6313
+ display: flex;
6314
+ align-items: flex-end;
6315
+ justify-content: center;
6316
+ padding-bottom: var(--spacing-2);
6317
+ color: var(--color-text-subtle-default);
6318
+ overflow: hidden;
6319
+ pointer-events: none;
6320
+ z-index: 1;
6321
+ }
6322
+
6323
+ .muka-pull-to-refresh__chevron {
6324
+ display: inline-flex;
6325
+ align-items: center;
6326
+ justify-content: center;
6327
+ transition: transform 0.16s ease;
6328
+ }
6329
+
6330
+ .muka-pull-to-refresh__scroller {
6331
+ flex: 1 1 auto;
6332
+ min-height: 0;
6333
+ width: 100%;
6334
+ overflow-x: clip;
6335
+ overflow-y: auto;
6336
+ -webkit-overflow-scrolling: touch;
6337
+ overscroll-behavior-y: contain;
6338
+ touch-action: pan-y;
6339
+ will-change: transform;
6340
+ }
6341
+
6342
+
6104
6343
  /* Radio */
6105
6344
  /* Radio Component Styles - Using Muka Design Tokens */
6106
6345
 
@@ -6245,50 +6484,247 @@ body {
6245
6484
  }
6246
6485
 
6247
6486
 
6248
- /* PullToRefresh */
6249
- /* PullToRefresh Component Styles */
6487
+ /* ProgressAccordeon */
6488
+ /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
6250
6489
 
6251
- .muka-pull-to-refresh {
6252
- position: relative;
6490
+ /* ─── Root ──────────────────────────────────────────────── */
6491
+ .muka-progress-accordeon {
6492
+ container-type: inline-size;
6253
6493
  display: flex;
6254
6494
  flex-direction: column;
6495
+ align-items: stretch;
6255
6496
  width: 100%;
6256
- height: 100%;
6257
- overflow: hidden;
6497
+ /* Top padding provides the vertical rhythm between stacked steps */
6498
+ padding-top: var(--spacing-8);
6258
6499
  }
6259
6500
 
6260
- .muka-pull-to-refresh__indicator {
6261
- position: absolute;
6262
- top: 0;
6263
- left: 0;
6264
- right: 0;
6501
+ /* Per-state gap: content-bearing steps are tighter, header-only steps looser */
6502
+ .muka-progress-accordeon--current,
6503
+ .muka-progress-accordeon--past.muka-progress-accordeon--expanded,
6504
+ .muka-progress-accordeon--upcoming.muka-progress-accordeon--expanded {
6505
+ gap: var(--spacing-6);
6506
+ }
6507
+
6508
+ .muka-progress-accordeon--upcoming,
6509
+ .muka-progress-accordeon--past.muka-progress-accordeon--collapsed,
6510
+ .muka-progress-accordeon--upcoming.muka-progress-accordeon--collapsed {
6511
+ gap: var(--spacing-8);
6512
+ }
6513
+
6514
+ /* Collapsible steps group header + slot. The header↔content gap lives inside the
6515
+ collapsing slot (as padding-top) so it collapses with the content, so the
6516
+ body gap itself is 0. */
6517
+ .muka-progress-accordeon__body {
6265
6518
  display: flex;
6266
- align-items: flex-end;
6267
- justify-content: center;
6268
- padding-bottom: var(--spacing-2);
6269
- color: var(--color-text-subtle-default);
6270
- overflow: hidden;
6271
- pointer-events: none;
6272
- z-index: 1;
6519
+ flex-direction: column;
6520
+ gap: 0;
6521
+ width: 100%;
6273
6522
  }
6274
6523
 
6275
- .muka-pull-to-refresh__chevron {
6276
- display: inline-flex;
6524
+ /* ─── Header ─────────────────────────────────────────────── */
6525
+ .muka-progress-accordeon__header {
6526
+ display: flex;
6527
+ flex-direction: column;
6528
+ gap: var(--spacing-3);
6529
+ width: 100%;
6530
+ }
6531
+
6532
+ .muka-progress-accordeon__header-row {
6533
+ display: flex;
6534
+ align-items: flex-start;
6535
+ gap: var(--spacing-3);
6536
+ width: 100%;
6537
+ min-height: 40px;
6538
+ }
6539
+
6540
+ .muka-progress-accordeon__heading-group {
6541
+ display: flex;
6542
+ flex: 1 0 0;
6543
+ min-width: 0;
6544
+ align-items: flex-start;
6545
+ gap: var(--spacing-4);
6546
+ }
6547
+
6548
+ /* Steps with header controls (edit / chevron) are 40px tall; nudge the heading
6549
+ so a single line centres against the indicator + controls row. */
6550
+ .muka-progress-accordeon:has(.muka-progress-accordeon__controls)
6551
+ .muka-progress-accordeon__heading-group {
6552
+ padding-top: var(--spacing-1);
6553
+ }
6554
+
6555
+ .muka-progress-accordeon__controls {
6556
+ display: flex;
6557
+ flex-shrink: 0;
6558
+ align-items: center;
6559
+ gap: var(--spacing-3);
6560
+ }
6561
+
6562
+ /* ─── Step indicator (circle) ───────────────────────────── */
6563
+ .muka-progress-accordeon__indicator {
6564
+ width: 32px;
6565
+ height: 32px;
6566
+ flex-shrink: 0;
6567
+ border-radius: var(--border-radius-full);
6568
+ display: flex;
6277
6569
  align-items: center;
6278
6570
  justify-content: center;
6279
- transition: transform 0.16s ease;
6280
6571
  }
6281
6572
 
6282
- .muka-pull-to-refresh__scroller {
6283
- flex: 1 1 auto;
6284
- min-height: 0;
6573
+ /* Past: dark accent-contrast circle with inverse checkmark */
6574
+ .muka-progress-accordeon__indicator--past {
6575
+ background-color: var(--alias-color-accent-contrast);
6576
+ color: var(--color-text-default-inverse);
6577
+ }
6578
+
6579
+ /* Current: accent circle with inverse bold number */
6580
+ .muka-progress-accordeon__indicator--current {
6581
+ background-color: var(--alias-color-accent-default);
6582
+ color: var(--color-text-default-inverse);
6583
+ }
6584
+
6585
+ /* Upcoming: sunken/muted circle with default-color number */
6586
+ .muka-progress-accordeon__indicator--upcoming {
6587
+ background-color: var(--color-surface-sunken);
6588
+ color: var(--color-text-default-default);
6589
+ }
6590
+
6591
+ .muka-progress-accordeon__check-icon {
6592
+ width: 20px;
6593
+ height: 20px;
6594
+ color: var(--color-text-default-inverse);
6595
+ }
6596
+
6597
+ .muka-progress-accordeon__number {
6598
+ font-family: var(--text-label-md-bold-fontFamily);
6599
+ font-weight: var(--text-label-md-bold-fontWeight);
6600
+ font-size: var(--text-label-md-bold-fontSize);
6601
+ line-height: var(--text-label-md-bold-lineHeight);
6602
+ text-align: center;
6603
+ user-select: none;
6604
+ }
6605
+
6606
+ /* Upcoming number is semibold (not bold) per Figma */
6607
+ .muka-progress-accordeon__indicator--upcoming .muka-progress-accordeon__number {
6608
+ font-family: var(--text-label-md-semibold-fontFamily);
6609
+ font-weight: var(--text-label-md-semibold-fontWeight);
6610
+ }
6611
+
6612
+ /* ─── Heading (responsive: heading/md on wide, heading/sm on narrow) ─────── */
6613
+ .muka-progress-accordeon__heading {
6614
+ flex: 1 0 0;
6615
+ min-width: 0;
6616
+ margin: 0;
6617
+ font-family: var(--text-heading-md-fontFamily);
6618
+ font-weight: var(--text-heading-md-fontWeight);
6619
+ font-size: var(--text-heading-md-fontSize);
6620
+ line-height: var(--text-heading-md-lineHeight);
6621
+ letter-spacing: var(--text-heading-md-letterSpacing);
6622
+ color: var(--color-text-default-default);
6623
+ }
6624
+
6625
+ /* ─── Description ────────────────────────────────────────── */
6626
+ /* Indented 48px (32px indicator + 16px gap) to align under the heading text */
6627
+ .muka-progress-accordeon__description {
6628
+ width: 100%;
6629
+ padding-left: 48px;
6630
+ font-family: var(--text-body-base-regular-fontFamily);
6631
+ font-weight: var(--text-body-base-regular-fontWeight);
6632
+ font-size: var(--text-body-base-regular-fontSize);
6633
+ line-height: var(--text-body-base-regular-lineHeight);
6634
+ color: var(--color-text-default-default);
6635
+ }
6636
+
6637
+ /* ─── Edit button ────────────────────────────────────────── */
6638
+ .muka-progress-accordeon__edit {
6639
+ flex-shrink: 0;
6640
+ }
6641
+
6642
+ /* Wide container shows the labelled button; the icon-only one is hidden */
6643
+ .muka-progress-accordeon__edit--narrow {
6644
+ display: none;
6645
+ }
6646
+
6647
+ /* ─── Content slot ───────────────────────────────────────── */
6648
+ .muka-progress-accordeon__slot {
6649
+ display: flex;
6650
+ flex-direction: column;
6651
+ align-items: stretch;
6652
+ width: 100%;
6653
+ }
6654
+
6655
+ /* ─── Collapse/expand animation (past & upcoming steps) ──────
6656
+ The grid-template-rows 1fr → 0fr technique animates the content to/from its
6657
+ intrinsic (auto) height with no magic max-height. Under prefers-reduced-motion
6658
+ --motion-duration-view resolves to 0ms, so the toggle stays instant. */
6659
+ .muka-progress-accordeon__slot-wrapper {
6660
+ display: grid;
6661
+ grid-template-rows: 1fr;
6662
+ transition: grid-template-rows var(--motion-duration-view) var(--motion-easing-enter);
6663
+ }
6664
+
6665
+ .muka-progress-accordeon__slot-wrapper--collapsed {
6666
+ grid-template-rows: 0fr;
6667
+ }
6668
+
6669
+ /* The direct grid child clips and must have NO padding/border of its own —
6670
+ min-height:0 lets it shrink, and with no padding the 0fr track reaches a true
6671
+ 0 height (padding on the item would leave a residual gap when collapsed). */
6672
+ .muka-progress-accordeon__slot-clip {
6673
+ overflow: hidden;
6674
+ min-height: 0;
6675
+ }
6676
+
6677
+ /* The header↔content spacing lives on the inner slot (inside the clip region)
6678
+ so it collapses together with the content. */
6679
+ .muka-progress-accordeon__slot-wrapper .muka-progress-accordeon__slot {
6680
+ padding-top: var(--spacing-4);
6681
+ }
6682
+
6683
+ /* ─── Action buttons (current state) ─────────────────────── */
6684
+ .muka-progress-accordeon__actions {
6685
+ display: flex;
6686
+ justify-content: flex-end;
6687
+ gap: var(--spacing-4);
6688
+ width: 100%;
6689
+ }
6690
+
6691
+ .muka-progress-accordeon__action {
6692
+ min-width: 160px;
6693
+ }
6694
+
6695
+ /* ─── Divider ────────────────────────────────────────────── */
6696
+ .muka-progress-accordeon__divider {
6285
6697
  width: 100%;
6286
- overflow-x: clip;
6287
- overflow-y: auto;
6288
- -webkit-overflow-scrolling: touch;
6289
- overscroll-behavior-y: contain;
6290
- touch-action: pan-y;
6291
- will-change: transform;
6698
+ }
6699
+
6700
+ /* ─── Responsive (narrow container) ──────────────────────── */
6701
+ @container (max-width: 480px) {
6702
+ /* Heading steps down to heading/sm. The 24px line-height is shorter than the
6703
+ 32px step indicator, so nudge the text down to keep a single line centred. */
6704
+ .muka-progress-accordeon__heading {
6705
+ font-size: var(--text-heading-sm-fontSize);
6706
+ line-height: var(--text-heading-sm-lineHeight);
6707
+ padding-top: var(--spacing-1);
6708
+ }
6709
+
6710
+ /* Edit button swaps to the icon-only variant */
6711
+ .muka-progress-accordeon__edit--wide {
6712
+ display: none;
6713
+ }
6714
+
6715
+ .muka-progress-accordeon__edit--narrow {
6716
+ display: inline-flex;
6717
+ }
6718
+
6719
+ /* Action buttons stretch to fill the row */
6720
+ .muka-progress-accordeon__actions {
6721
+ justify-content: stretch;
6722
+ }
6723
+
6724
+ .muka-progress-accordeon__action {
6725
+ flex: 1 0 0;
6726
+ min-width: 0;
6727
+ }
6292
6728
  }
6293
6729
 
6294
6730
 
@@ -6623,329 +7059,160 @@ body {
6623
7059
  .muka-progress-tracker--vertical .muka-progress-tracker__connector--current-right {
6624
7060
  background: linear-gradient(
6625
7061
  to bottom,
6626
- var(--alias-color-accent-default) 0%,
6627
- var(--alias-color-accent-default) 15%,
6628
- var(--color-surface-sunken) 50%
6629
- );
6630
- }
6631
-
6632
- /* Vertical label: body/base/regular, wraps, not bold for current */
6633
- .muka-progress-tracker--vertical .muka-progress-tracker__label {
6634
- font-family: var(--text-body-base-regular-fontFamily);
6635
- font-weight: var(--text-body-base-regular-fontWeight);
6636
- font-size: var(--text-body-base-regular-fontSize);
6637
- line-height: var(--text-body-base-regular-lineHeight);
6638
- color: var(--color-text-default-default);
6639
- text-align: left;
6640
- flex: 1 0 0;
6641
- min-width: 0;
6642
- padding-top: var(--spacing-1);
6643
- padding-bottom: var(--spacing-1);
6644
- word-break: break-word;
6645
- }
6646
-
6647
- /* Current label stays regular weight in vertical layout */
6648
- .muka-progress-tracker--vertical .muka-progress-tracker__label--current {
6649
- font-family: var(--text-body-base-regular-fontFamily);
6650
- font-weight: var(--text-body-base-regular-fontWeight);
6651
- }
6652
-
6653
- /* Ensure step content paints above hover/selected backgrounds */
6654
- .muka-progress-tracker--vertical .muka-progress-tracker__indicator-col,
6655
- .muka-progress-tracker--vertical .muka-progress-tracker__label {
6656
- position: relative;
6657
- z-index: 1;
6658
- }
6659
-
6660
- /* ─── Hover halo (vertical interactive only) ────────────── */
6661
- .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:hover::before,
6662
- .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:active::before,
6663
- .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']::before {
6664
- content: '';
6665
- position: absolute;
6666
- background-color: var(--color-surface-level1);
6667
- pointer-events: none;
6668
- z-index: 0;
6669
- }
6670
-
6671
- /* Hover: 40px circle behind indicator only */
6672
- .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:hover::before {
6673
- left: -4px;
6674
- top: -4px;
6675
- width: 40px;
6676
- height: 40px;
6677
- border-radius: 20px;
6678
- }
6679
-
6680
- /* Selected / :active: pill behind full step row — wins over hover */
6681
- .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:active::before,
6682
- .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']::before {
6683
- left: -4px;
6684
- right: -8px;
6685
- top: -4px;
6686
- bottom: -4px;
6687
- width: auto;
6688
- height: auto;
6689
- border-radius: 20px;
6690
- }
6691
-
6692
- /* Selected steps without interactive class still show the pill */
6693
- .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']:not(.muka-progress-tracker__step--interactive)::before {
6694
- content: '';
6695
- position: absolute;
6696
- left: -4px;
6697
- right: -8px;
6698
- top: -4px;
6699
- bottom: -4px;
6700
- background-color: var(--color-surface-level1);
6701
- border-radius: 20px;
6702
- pointer-events: none;
6703
- z-index: 0;
6704
- }
6705
-
6706
- /* Connector stays behind indicators (indicator-col is z-index 1) */
6707
- .muka-progress-tracker--vertical .muka-progress-tracker__connector {
6708
- z-index: 0;
6709
- }
6710
-
6711
-
6712
- /* ProgressAccordeon */
6713
- /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
6714
-
6715
- /* ─── Root ──────────────────────────────────────────────── */
6716
- .muka-progress-accordeon {
6717
- container-type: inline-size;
6718
- display: flex;
6719
- flex-direction: column;
6720
- align-items: stretch;
6721
- width: 100%;
6722
- /* Top padding provides the vertical rhythm between stacked steps */
6723
- padding-top: var(--spacing-8);
6724
- }
6725
-
6726
- /* Per-state gap: content-bearing steps are tighter, header-only steps looser */
6727
- .muka-progress-accordeon--current,
6728
- .muka-progress-accordeon--past.muka-progress-accordeon--expanded {
6729
- gap: var(--spacing-6);
6730
- }
6731
-
6732
- .muka-progress-accordeon--upcoming,
6733
- .muka-progress-accordeon--past.muka-progress-accordeon--collapsed {
6734
- gap: var(--spacing-8);
6735
- }
6736
-
6737
- /* Past steps group header + slot. The header↔content gap lives inside the
6738
- collapsing slot (as padding-top) so it collapses with the content, so the
6739
- body gap itself is 0. */
6740
- .muka-progress-accordeon__body {
6741
- display: flex;
6742
- flex-direction: column;
6743
- gap: 0;
6744
- width: 100%;
6745
- }
6746
-
6747
- /* ─── Header ─────────────────────────────────────────────── */
6748
- .muka-progress-accordeon__header {
6749
- display: flex;
6750
- flex-direction: column;
6751
- gap: var(--spacing-3);
6752
- width: 100%;
6753
- }
6754
-
6755
- .muka-progress-accordeon__header-row {
6756
- display: flex;
6757
- align-items: flex-start;
6758
- gap: var(--spacing-3);
6759
- width: 100%;
6760
- min-height: 40px;
6761
- }
6762
-
6763
- .muka-progress-accordeon__heading-group {
6764
- display: flex;
6765
- flex: 1 0 0;
6766
- min-width: 0;
6767
- align-items: flex-start;
6768
- gap: var(--spacing-4);
6769
- }
6770
-
6771
- /* Past steps carry 40px controls; nudge the heading to vertically centre it */
6772
- .muka-progress-accordeon--past .muka-progress-accordeon__heading-group {
6773
- padding-top: var(--spacing-1);
6774
- }
6775
-
6776
- .muka-progress-accordeon__controls {
6777
- display: flex;
6778
- flex-shrink: 0;
6779
- align-items: center;
6780
- gap: var(--spacing-3);
6781
- }
6782
-
6783
- /* ─── Step indicator (circle) ───────────────────────────── */
6784
- .muka-progress-accordeon__indicator {
6785
- width: 32px;
6786
- height: 32px;
6787
- flex-shrink: 0;
6788
- border-radius: var(--border-radius-full);
6789
- display: flex;
6790
- align-items: center;
6791
- justify-content: center;
6792
- }
6793
-
6794
- /* Past: dark accent-contrast circle with inverse checkmark */
6795
- .muka-progress-accordeon__indicator--past {
6796
- background-color: var(--alias-color-accent-contrast);
6797
- color: var(--color-text-default-inverse);
6798
- }
6799
-
6800
- /* Current: accent circle with inverse bold number */
6801
- .muka-progress-accordeon__indicator--current {
6802
- background-color: var(--alias-color-accent-default);
6803
- color: var(--color-text-default-inverse);
6804
- }
6805
-
6806
- /* Upcoming: sunken/muted circle with default-color number */
6807
- .muka-progress-accordeon__indicator--upcoming {
6808
- background-color: var(--color-surface-sunken);
6809
- color: var(--color-text-default-default);
6810
- }
6811
-
6812
- .muka-progress-accordeon__check-icon {
6813
- width: 20px;
6814
- height: 20px;
6815
- color: var(--color-text-default-inverse);
6816
- }
6817
-
6818
- .muka-progress-accordeon__number {
6819
- font-family: var(--text-label-md-bold-fontFamily);
6820
- font-weight: var(--text-label-md-bold-fontWeight);
6821
- font-size: var(--text-label-md-bold-fontSize);
6822
- line-height: var(--text-label-md-bold-lineHeight);
6823
- text-align: center;
6824
- user-select: none;
6825
- }
6826
-
6827
- /* Upcoming number is semibold (not bold) per Figma */
6828
- .muka-progress-accordeon__indicator--upcoming .muka-progress-accordeon__number {
6829
- font-family: var(--text-label-md-semibold-fontFamily);
6830
- font-weight: var(--text-label-md-semibold-fontWeight);
6831
- }
6832
-
6833
- /* ─── Heading (responsive: heading/md on wide, heading/sm on narrow) ─────── */
6834
- .muka-progress-accordeon__heading {
6835
- flex: 1 0 0;
6836
- min-width: 0;
6837
- margin: 0;
6838
- font-family: var(--text-heading-md-fontFamily);
6839
- font-weight: var(--text-heading-md-fontWeight);
6840
- font-size: var(--text-heading-md-fontSize);
6841
- line-height: var(--text-heading-md-lineHeight);
6842
- letter-spacing: var(--text-heading-md-letterSpacing);
6843
- color: var(--color-text-default-default);
7062
+ var(--alias-color-accent-default) 0%,
7063
+ var(--alias-color-accent-default) 15%,
7064
+ var(--color-surface-sunken) 50%
7065
+ );
6844
7066
  }
6845
7067
 
6846
- /* ─── Description ────────────────────────────────────────── */
6847
- /* Indented 48px (32px indicator + 16px gap) to align under the heading text */
6848
- .muka-progress-accordeon__description {
6849
- width: 100%;
6850
- padding-left: 48px;
7068
+ /* Vertical label: body/base/regular, wraps, not bold for current */
7069
+ .muka-progress-tracker--vertical .muka-progress-tracker__label {
6851
7070
  font-family: var(--text-body-base-regular-fontFamily);
6852
7071
  font-weight: var(--text-body-base-regular-fontWeight);
6853
7072
  font-size: var(--text-body-base-regular-fontSize);
6854
7073
  line-height: var(--text-body-base-regular-lineHeight);
6855
7074
  color: var(--color-text-default-default);
7075
+ text-align: left;
7076
+ flex: 1 0 0;
7077
+ min-width: 0;
7078
+ padding-top: var(--spacing-1);
7079
+ padding-bottom: var(--spacing-1);
7080
+ word-break: break-word;
6856
7081
  }
6857
7082
 
6858
- /* ─── Edit button ────────────────────────────────────────── */
6859
- .muka-progress-accordeon__edit {
6860
- flex-shrink: 0;
7083
+ /* Current label stays regular weight in vertical layout */
7084
+ .muka-progress-tracker--vertical .muka-progress-tracker__label--current {
7085
+ font-family: var(--text-body-base-regular-fontFamily);
7086
+ font-weight: var(--text-body-base-regular-fontWeight);
6861
7087
  }
6862
7088
 
6863
- /* Wide container shows the labelled button; the icon-only one is hidden */
6864
- .muka-progress-accordeon__edit--narrow {
6865
- display: none;
7089
+ /* Ensure step content paints above hover/selected backgrounds */
7090
+ .muka-progress-tracker--vertical .muka-progress-tracker__indicator-col,
7091
+ .muka-progress-tracker--vertical .muka-progress-tracker__label {
7092
+ position: relative;
7093
+ z-index: 1;
6866
7094
  }
6867
7095
 
6868
- /* ─── Content slot ───────────────────────────────────────── */
6869
- .muka-progress-accordeon__slot {
6870
- display: flex;
6871
- flex-direction: column;
6872
- align-items: stretch;
6873
- width: 100%;
7096
+ /* ─── Hover halo (vertical interactive only) ────────────── */
7097
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:hover::before,
7098
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:active::before,
7099
+ .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']::before {
7100
+ content: '';
7101
+ position: absolute;
7102
+ background-color: var(--color-surface-level1);
7103
+ pointer-events: none;
7104
+ z-index: 0;
6874
7105
  }
6875
7106
 
6876
- /* ─── Collapse/expand animation (past steps) ─────────────────
6877
- The grid-template-rows 1fr → 0fr technique animates the content to/from its
6878
- intrinsic (auto) height with no magic max-height. Under prefers-reduced-motion
6879
- --motion-duration-view resolves to 0ms, so the toggle stays instant. */
6880
- .muka-progress-accordeon__slot-wrapper {
6881
- display: grid;
6882
- grid-template-rows: 1fr;
6883
- transition: grid-template-rows var(--motion-duration-view) var(--motion-easing-enter);
7107
+ /* Hover: 40px circle behind indicator only */
7108
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:hover::before {
7109
+ left: -4px;
7110
+ top: -4px;
7111
+ width: 40px;
7112
+ height: 40px;
7113
+ border-radius: 20px;
6884
7114
  }
6885
7115
 
6886
- .muka-progress-accordeon__slot-wrapper--collapsed {
6887
- grid-template-rows: 0fr;
7116
+ /* Selected / :active: pill behind full step row — wins over hover */
7117
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:active::before,
7118
+ .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']::before {
7119
+ left: -4px;
7120
+ right: -8px;
7121
+ top: -4px;
7122
+ bottom: -4px;
7123
+ width: auto;
7124
+ height: auto;
7125
+ border-radius: 20px;
6888
7126
  }
6889
7127
 
6890
- /* The direct grid child clips and must have NO padding/border of its own —
6891
- min-height:0 lets it shrink, and with no padding the 0fr track reaches a true
6892
- 0 height (padding on the item would leave a residual gap when collapsed). */
6893
- .muka-progress-accordeon__slot-clip {
6894
- overflow: hidden;
6895
- min-height: 0;
7128
+ /* Selected steps without interactive class still show the pill */
7129
+ .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']:not(.muka-progress-tracker__step--interactive)::before {
7130
+ content: '';
7131
+ position: absolute;
7132
+ left: -4px;
7133
+ right: -8px;
7134
+ top: -4px;
7135
+ bottom: -4px;
7136
+ background-color: var(--color-surface-level1);
7137
+ border-radius: 20px;
7138
+ pointer-events: none;
7139
+ z-index: 0;
6896
7140
  }
6897
7141
 
6898
- /* The header↔content spacing lives on the inner slot (inside the clip region)
6899
- so it collapses together with the content. */
6900
- .muka-progress-accordeon__slot-wrapper .muka-progress-accordeon__slot {
6901
- padding-top: var(--spacing-4);
7142
+ /* Connector stays behind indicators (indicator-col is z-index 1) */
7143
+ .muka-progress-tracker--vertical .muka-progress-tracker__connector {
7144
+ z-index: 0;
6902
7145
  }
6903
7146
 
6904
- /* ─── Action buttons (current state) ─────────────────────── */
6905
- .muka-progress-accordeon__actions {
6906
- display: flex;
6907
- justify-content: flex-end;
6908
- gap: var(--spacing-4);
6909
- width: 100%;
7147
+
7148
+ /* ProfileBadge */
7149
+ /* ProfileBadge Component Styles - Using Muka Design Tokens */
7150
+
7151
+ .muka-profile-badge {
7152
+ display: inline-flex;
7153
+ align-items: center;
7154
+ font-family: var(--text-body-base-regular-fontFamily);
6910
7155
  }
6911
7156
 
6912
- .muka-progress-accordeon__action {
6913
- min-width: 160px;
7157
+ /* Size variants */
7158
+ .muka-profile-badge--lg {
7159
+ gap: var(--spacing-4); /* 16px */
6914
7160
  }
6915
7161
 
6916
- /* ─── Divider ────────────────────────────────────────────── */
6917
- .muka-progress-accordeon__divider {
6918
- width: 100%;
7162
+ .muka-profile-badge--md {
7163
+ gap: var(--spacing-3); /* 12px */
6919
7164
  }
6920
7165
 
6921
- /* ─── Responsive (narrow container) ──────────────────────── */
6922
- @container (max-width: 480px) {
6923
- /* Heading steps down to heading/sm. The 24px line-height is shorter than the
6924
- 32px step indicator, so nudge the text down to keep a single line centred. */
6925
- .muka-progress-accordeon__heading {
6926
- font-size: var(--text-heading-sm-fontSize);
6927
- line-height: var(--text-heading-sm-lineHeight);
6928
- padding-top: var(--spacing-1);
6929
- }
7166
+ .muka-profile-badge__avatar {
7167
+ flex-shrink: 0;
7168
+ }
6930
7169
 
6931
- /* Edit button swaps to the icon-only variant */
6932
- .muka-progress-accordeon__edit--wide {
6933
- display: none;
6934
- }
7170
+ /* Text stack */
7171
+ .muka-profile-badge__text {
7172
+ display: flex;
7173
+ flex-direction: column;
7174
+ align-items: flex-start;
7175
+ min-width: 0;
7176
+ }
6935
7177
 
6936
- .muka-progress-accordeon__edit--narrow {
6937
- display: inline-flex;
6938
- }
7178
+ .muka-profile-badge__name {
7179
+ font-family: var(--text-body-base-regular-fontFamily);
7180
+ font-size: var(--text-body-base-regular-fontSize);
7181
+ font-weight: var(--text-body-base-regular-fontWeight);
7182
+ line-height: var(--text-body-base-regular-lineHeight);
7183
+ color: var(--color-text-default-default);
7184
+ }
6939
7185
 
6940
- /* Action buttons stretch to fill the row */
6941
- .muka-progress-accordeon__actions {
6942
- justify-content: stretch;
6943
- }
7186
+ .muka-profile-badge__email {
7187
+ font-family: var(--text-body-xs-regular-fontFamily);
7188
+ font-size: var(--text-body-xs-regular-fontSize);
7189
+ font-weight: var(--text-body-xs-regular-fontWeight);
7190
+ line-height: var(--text-body-xs-regular-lineHeight);
7191
+ color: var(--color-text-subtle-default);
7192
+ }
6944
7193
 
6945
- .muka-progress-accordeon__action {
6946
- flex: 1 0 0;
6947
- min-width: 0;
6948
- }
7194
+ /* Clickable state */
7195
+ .muka-profile-badge--clickable {
7196
+ cursor: pointer;
7197
+ border: none;
7198
+ background: none;
7199
+ padding: 0;
7200
+ text-align: left;
7201
+ border-radius: var(--radius-md);
7202
+ transition: opacity 0.2s ease;
7203
+ }
7204
+
7205
+ .muka-profile-badge--clickable:hover {
7206
+ opacity: 0.9;
7207
+ }
7208
+
7209
+ .muka-profile-badge--clickable:active {
7210
+ opacity: 0.8;
7211
+ }
7212
+
7213
+ .muka-profile-badge--clickable:focus-visible {
7214
+ outline: 2px solid var(--color-border-focus);
7215
+ outline-offset: 2px;
6949
7216
  }
6950
7217
 
6951
7218
 
@@ -7112,83 +7379,43 @@ body {
7112
7379
  0% {
7113
7380
  stroke-dashoffset: 220;
7114
7381
  }
7115
- 50% {
7116
- stroke-dashoffset: 70;
7117
- }
7118
- 100% {
7119
- stroke-dashoffset: 220;
7120
- }
7121
- }
7122
-
7123
-
7124
- /* ProfileBadge */
7125
- /* ProfileBadge Component Styles - Using Muka Design Tokens */
7126
-
7127
- .muka-profile-badge {
7128
- display: inline-flex;
7129
- align-items: center;
7130
- font-family: var(--text-body-base-regular-fontFamily);
7131
- }
7132
-
7133
- /* Size variants */
7134
- .muka-profile-badge--lg {
7135
- gap: var(--spacing-4); /* 16px */
7136
- }
7137
-
7138
- .muka-profile-badge--md {
7139
- gap: var(--spacing-3); /* 12px */
7140
- }
7141
-
7142
- .muka-profile-badge__avatar {
7143
- flex-shrink: 0;
7144
- }
7145
-
7146
- /* Text stack */
7147
- .muka-profile-badge__text {
7148
- display: flex;
7149
- flex-direction: column;
7150
- align-items: flex-start;
7151
- min-width: 0;
7152
- }
7153
-
7154
- .muka-profile-badge__name {
7155
- font-family: var(--text-body-base-regular-fontFamily);
7156
- font-size: var(--text-body-base-regular-fontSize);
7157
- font-weight: var(--text-body-base-regular-fontWeight);
7158
- line-height: var(--text-body-base-regular-lineHeight);
7159
- color: var(--color-text-default-default);
7160
- }
7161
-
7162
- .muka-profile-badge__email {
7163
- font-family: var(--text-body-xs-regular-fontFamily);
7164
- font-size: var(--text-body-xs-regular-fontSize);
7165
- font-weight: var(--text-body-xs-regular-fontWeight);
7166
- line-height: var(--text-body-xs-regular-lineHeight);
7167
- color: var(--color-text-subtle-default);
7168
- }
7169
-
7170
- /* Clickable state */
7171
- .muka-profile-badge--clickable {
7172
- cursor: pointer;
7173
- border: none;
7174
- background: none;
7175
- padding: 0;
7176
- text-align: left;
7177
- border-radius: var(--radius-md);
7178
- transition: opacity 0.2s ease;
7382
+ 50% {
7383
+ stroke-dashoffset: 70;
7384
+ }
7385
+ 100% {
7386
+ stroke-dashoffset: 220;
7387
+ }
7179
7388
  }
7180
7389
 
7181
- .muka-profile-badge--clickable:hover {
7182
- opacity: 0.9;
7390
+
7391
+ /* Popover */
7392
+ /* Popover Component Styles */
7393
+
7394
+ .muka-popover__content {
7395
+ background-color: var(--color-surface-level3);
7396
+ border: var(--border-width-regular) solid var(--color-border-default);
7397
+ border-radius: var(--radius-md);
7398
+ padding: var(--spacing-4);
7399
+ box-shadow: var(--shadow-level3);
7400
+ max-width: 20rem;
7401
+ z-index: 50;
7402
+ animation: muka-popover-fade-in 150ms ease;
7183
7403
  }
7184
7404
 
7185
- .muka-profile-badge--clickable:active {
7186
- opacity: 0.8;
7405
+ @keyframes muka-popover-fade-in {
7406
+ from {
7407
+ opacity: 0;
7408
+ transform: scale(0.96);
7409
+ }
7410
+ to {
7411
+ opacity: 1;
7412
+ transform: scale(1);
7413
+ }
7187
7414
  }
7188
7415
 
7189
- .muka-profile-badge--clickable:focus-visible {
7190
- outline: 2px solid var(--color-border-focus);
7191
- outline-offset: 2px;
7416
+ /* Arrow */
7417
+ .muka-popover__arrow {
7418
+ fill: var(--color-surface-level3);
7192
7419
  }
7193
7420
 
7194
7421
 
@@ -7289,134 +7516,6 @@ body {
7289
7516
  }
7290
7517
 
7291
7518
 
7292
- /* Popover */
7293
- /* Popover Component Styles */
7294
-
7295
- .muka-popover__content {
7296
- background-color: var(--color-surface-level3);
7297
- border: var(--border-width-regular) solid var(--color-border-default);
7298
- border-radius: var(--radius-md);
7299
- padding: var(--spacing-4);
7300
- box-shadow: var(--shadow-level3);
7301
- max-width: 20rem;
7302
- z-index: 50;
7303
- animation: muka-popover-fade-in 150ms ease;
7304
- }
7305
-
7306
- @keyframes muka-popover-fade-in {
7307
- from {
7308
- opacity: 0;
7309
- transform: scale(0.96);
7310
- }
7311
- to {
7312
- opacity: 1;
7313
- transform: scale(1);
7314
- }
7315
- }
7316
-
7317
- /* Arrow */
7318
- .muka-popover__arrow {
7319
- fill: var(--color-surface-level3);
7320
- }
7321
-
7322
-
7323
- /* PieChart */
7324
- /* PieChart Component Styles - Using Muka Design Tokens */
7325
-
7326
- .muka-piechart {
7327
- display: inline-flex;
7328
- align-items: center;
7329
- gap: var(--spacing-4);
7330
- }
7331
-
7332
- /* Legend layout */
7333
- .muka-piechart--legend-right {
7334
- flex-direction: row;
7335
- }
7336
-
7337
- .muka-piechart--legend-bottom {
7338
- flex-direction: column;
7339
- }
7340
-
7341
- /* ========================================
7342
- CHART
7343
- ======================================== */
7344
-
7345
- .muka-piechart__chart {
7346
- position: relative;
7347
- flex-shrink: 0;
7348
- }
7349
-
7350
- .muka-piechart__chart--sm {
7351
- width: var(--piechart-size-diameter-sm);
7352
- height: var(--piechart-size-diameter-sm);
7353
- }
7354
-
7355
- .muka-piechart__chart--md {
7356
- width: var(--piechart-size-diameter-md);
7357
- height: var(--piechart-size-diameter-md);
7358
- }
7359
-
7360
- .muka-piechart__chart--lg {
7361
- width: var(--piechart-size-diameter-lg);
7362
- height: var(--piechart-size-diameter-lg);
7363
- }
7364
-
7365
- .muka-piechart__svg {
7366
- display: block;
7367
- width: 100%;
7368
- height: 100%;
7369
- /* Start slices at 12 o'clock instead of 3 o'clock */
7370
- transform: rotate(-90deg);
7371
- }
7372
-
7373
- .muka-piechart__track {
7374
- fill: none;
7375
- stroke: var(--piechart-color-track);
7376
- }
7377
-
7378
- .muka-piechart__segment {
7379
- fill: none;
7380
- }
7381
-
7382
- /* ========================================
7383
- LEGEND
7384
- ======================================== */
7385
-
7386
- .muka-piechart__legend {
7387
- list-style: none;
7388
- margin: 0;
7389
- padding: 0;
7390
- display: flex;
7391
- flex-direction: column;
7392
- gap: var(--spacing-1);
7393
- }
7394
-
7395
- .muka-piechart__legend-item {
7396
- display: flex;
7397
- align-items: center;
7398
- gap: var(--spacing-2);
7399
- font-family: var(--text-body-sm-regular-fontFamily);
7400
- font-weight: var(--text-body-sm-regular-fontWeight);
7401
- font-size: var(--text-body-sm-regular-fontSize);
7402
- line-height: var(--text-body-sm-regular-lineHeight);
7403
- color: var(--color-text-default-default);
7404
- }
7405
-
7406
- .muka-piechart__swatch {
7407
- flex-shrink: 0;
7408
- width: var(--spacing-3);
7409
- height: var(--spacing-3);
7410
- border-radius: var(--border-radius-sm);
7411
- }
7412
-
7413
- .muka-piechart__legend-value {
7414
- margin-left: auto;
7415
- padding-left: var(--spacing-2);
7416
- color: var(--color-text-subtle-default);
7417
- }
7418
-
7419
-
7420
7519
  /* PhotoUploader */
7421
7520
  /* PhotoUploader Component Styles - Using Muka Design Tokens */
7422
7521
 
@@ -7480,68 +7579,165 @@ body {
7480
7579
  border-color var(--motion-duration-micro) var(--motion-easing-enter);
7481
7580
  }
7482
7581
 
7483
- .muka-photo-uploader__dropzone:hover,
7484
- .muka-photo-uploader__dropzone--active {
7485
- border-color: var(--color-border-focus);
7486
- background-color: var(--color-surface-level1);
7582
+ .muka-photo-uploader__dropzone:hover,
7583
+ .muka-photo-uploader__dropzone--active {
7584
+ border-color: var(--color-border-focus);
7585
+ background-color: var(--color-surface-level1);
7586
+ }
7587
+
7588
+ .muka-photo-uploader__dropzone:focus-visible {
7589
+ outline: 2px solid var(--color-border-focus);
7590
+ outline-offset: 2px;
7591
+ }
7592
+
7593
+ .muka-photo-uploader__dropzone-icon {
7594
+ display: flex;
7595
+ align-items: center;
7596
+ justify-content: center;
7597
+ color: var(--color-icon-subtle-default);
7598
+ }
7599
+
7600
+ .muka-photo-uploader__dropzone-text {
7601
+ font-family: var(--text-body-base-regular-fontFamily);
7602
+ font-size: var(--text-body-base-regular-fontSize);
7603
+ font-weight: var(--text-body-base-regular-fontWeight);
7604
+ line-height: var(--text-body-base-regular-lineHeight);
7605
+ color: var(--color-text-subtle-default);
7606
+ }
7607
+
7608
+ /* ─── Disabled ────────────────────────────────────────── */
7609
+ .muka-photo-uploader--disabled .muka-photo-uploader__dropzone {
7610
+ cursor: not-allowed;
7611
+ opacity: 0.6;
7612
+ }
7613
+
7614
+ .muka-photo-uploader--disabled .muka-photo-uploader__dropzone:hover {
7615
+ border-color: var(--card-color-default-border);
7616
+ background-color: var(--card-color-default-background);
7617
+ }
7618
+
7619
+ /* ─── Enlarged photo dialog ───────────────────────────── */
7620
+ .muka-photo-uploader__preview {
7621
+ display: flex;
7622
+ align-items: center;
7623
+ justify-content: center;
7624
+ width: 100%;
7625
+ height: 100%;
7626
+ }
7627
+
7628
+ /* Fits the dialog while preserving the photo's original aspect ratio. */
7629
+ .muka-photo-uploader__preview-image {
7630
+ display: block;
7631
+ max-width: 100%;
7632
+ max-height: 100%;
7633
+ width: auto;
7634
+ height: auto;
7635
+ object-fit: contain;
7636
+ border-radius: var(--border-radius-lg);
7637
+ }
7638
+
7639
+ /* ─── Reduced motion ──────────────────────────────────── */
7640
+ @media (prefers-reduced-motion: reduce) {
7641
+ .muka-photo-uploader__dropzone {
7642
+ transition: none;
7643
+ }
7644
+ }
7645
+
7646
+
7647
+ /* PieChart */
7648
+ /* PieChart Component Styles - Using Muka Design Tokens */
7649
+
7650
+ .muka-piechart {
7651
+ display: inline-flex;
7652
+ align-items: center;
7653
+ gap: var(--spacing-4);
7654
+ }
7655
+
7656
+ /* Legend layout */
7657
+ .muka-piechart--legend-right {
7658
+ flex-direction: row;
7659
+ }
7660
+
7661
+ .muka-piechart--legend-bottom {
7662
+ flex-direction: column;
7663
+ }
7664
+
7665
+ /* ========================================
7666
+ CHART
7667
+ ======================================== */
7668
+
7669
+ .muka-piechart__chart {
7670
+ position: relative;
7671
+ flex-shrink: 0;
7672
+ }
7673
+
7674
+ .muka-piechart__chart--sm {
7675
+ width: var(--piechart-size-diameter-sm);
7676
+ height: var(--piechart-size-diameter-sm);
7487
7677
  }
7488
7678
 
7489
- .muka-photo-uploader__dropzone:focus-visible {
7490
- outline: 2px solid var(--color-border-focus);
7491
- outline-offset: 2px;
7679
+ .muka-piechart__chart--md {
7680
+ width: var(--piechart-size-diameter-md);
7681
+ height: var(--piechart-size-diameter-md);
7492
7682
  }
7493
7683
 
7494
- .muka-photo-uploader__dropzone-icon {
7495
- display: flex;
7496
- align-items: center;
7497
- justify-content: center;
7498
- color: var(--color-icon-subtle-default);
7684
+ .muka-piechart__chart--lg {
7685
+ width: var(--piechart-size-diameter-lg);
7686
+ height: var(--piechart-size-diameter-lg);
7499
7687
  }
7500
7688
 
7501
- .muka-photo-uploader__dropzone-text {
7502
- font-family: var(--text-body-md-regular-fontFamily);
7503
- font-size: var(--text-body-md-regular-fontSize);
7504
- font-weight: var(--text-body-md-regular-fontWeight);
7505
- line-height: var(--text-body-md-regular-lineHeight);
7506
- color: var(--color-text-subtle-default);
7689
+ .muka-piechart__svg {
7690
+ display: block;
7691
+ width: 100%;
7692
+ height: 100%;
7693
+ /* Start slices at 12 o'clock instead of 3 o'clock */
7694
+ transform: rotate(-90deg);
7507
7695
  }
7508
7696
 
7509
- /* ─── Disabled ────────────────────────────────────────── */
7510
- .muka-photo-uploader--disabled .muka-photo-uploader__dropzone {
7511
- cursor: not-allowed;
7512
- opacity: 0.6;
7697
+ .muka-piechart__track {
7698
+ fill: none;
7699
+ stroke: var(--piechart-color-track);
7513
7700
  }
7514
7701
 
7515
- .muka-photo-uploader--disabled .muka-photo-uploader__dropzone:hover {
7516
- border-color: var(--card-color-default-border);
7517
- background-color: var(--card-color-default-background);
7702
+ .muka-piechart__segment {
7703
+ fill: none;
7518
7704
  }
7519
7705
 
7520
- /* ─── Enlarged photo dialog ───────────────────────────── */
7521
- .muka-photo-uploader__preview {
7706
+ /* ========================================
7707
+ LEGEND
7708
+ ======================================== */
7709
+
7710
+ .muka-piechart__legend {
7711
+ list-style: none;
7712
+ margin: 0;
7713
+ padding: 0;
7714
+ display: flex;
7715
+ flex-direction: column;
7716
+ gap: var(--spacing-1);
7717
+ }
7718
+
7719
+ .muka-piechart__legend-item {
7522
7720
  display: flex;
7523
7721
  align-items: center;
7524
- justify-content: center;
7525
- width: 100%;
7526
- height: 100%;
7722
+ gap: var(--spacing-2);
7723
+ font-family: var(--text-body-sm-regular-fontFamily);
7724
+ font-weight: var(--text-body-sm-regular-fontWeight);
7725
+ font-size: var(--text-body-sm-regular-fontSize);
7726
+ line-height: var(--text-body-sm-regular-lineHeight);
7727
+ color: var(--color-text-default-default);
7527
7728
  }
7528
7729
 
7529
- /* Fits the dialog while preserving the photo's original aspect ratio. */
7530
- .muka-photo-uploader__preview-image {
7531
- display: block;
7532
- max-width: 100%;
7533
- max-height: 100%;
7534
- width: auto;
7535
- height: auto;
7536
- object-fit: contain;
7537
- border-radius: var(--border-radius-lg);
7730
+ .muka-piechart__swatch {
7731
+ flex-shrink: 0;
7732
+ width: var(--spacing-3);
7733
+ height: var(--spacing-3);
7734
+ border-radius: var(--border-radius-sm);
7538
7735
  }
7539
7736
 
7540
- /* ─── Reduced motion ──────────────────────────────────── */
7541
- @media (prefers-reduced-motion: reduce) {
7542
- .muka-photo-uploader__dropzone {
7543
- transition: none;
7544
- }
7737
+ .muka-piechart__legend-value {
7738
+ margin-left: auto;
7739
+ padding-left: var(--spacing-2);
7740
+ color: var(--color-text-subtle-default);
7545
7741
  }
7546
7742
 
7547
7743
 
@@ -7608,9 +7804,9 @@ body {
7608
7804
 
7609
7805
  /* Active page */
7610
7806
  .muka-pagination__button--active {
7611
- background-color: var(--button-color-primary-default-background);
7612
- color: var(--button-color-primary-default-foreground);
7613
- border-color: var(--button-color-primary-default-background);
7807
+ background-color: var(--button-color-primary-background-default);
7808
+ color: var(--button-color-primary-foreground-default);
7809
+ border-color: var(--button-color-primary-background-default);
7614
7810
  font-weight: 600;
7615
7811
  }
7616
7812
 
@@ -7641,38 +7837,38 @@ body {
7641
7837
 
7642
7838
  /* Size variants */
7643
7839
  .muka-pagination--sm .muka-pagination__button {
7644
- min-width: var(--button-height-sm);
7645
- height: var(--button-height-sm);
7840
+ min-width: var(--size-2xl);
7841
+ height: var(--size-2xl);
7646
7842
  font-size: var(--text-label-sm-regular-fontSize);
7647
7843
  }
7648
7844
 
7649
7845
  .muka-pagination--sm .muka-pagination__ellipsis {
7650
- min-width: var(--button-height-sm);
7651
- height: var(--button-height-sm);
7846
+ min-width: var(--size-2xl);
7847
+ height: var(--size-2xl);
7652
7848
  font-size: var(--text-label-sm-regular-fontSize);
7653
7849
  }
7654
7850
 
7655
7851
  .muka-pagination--md .muka-pagination__button {
7656
- min-width: var(--button-height-default);
7657
- height: var(--button-height-default);
7852
+ min-width: var(--size-3xl);
7853
+ height: var(--size-3xl);
7658
7854
  font-size: var(--text-label-md-regular-fontSize);
7659
7855
  }
7660
7856
 
7661
7857
  .muka-pagination--md .muka-pagination__ellipsis {
7662
- min-width: var(--button-height-default);
7663
- height: var(--button-height-default);
7858
+ min-width: var(--size-3xl);
7859
+ height: var(--size-3xl);
7664
7860
  font-size: var(--text-label-md-regular-fontSize);
7665
7861
  }
7666
7862
 
7667
7863
  .muka-pagination--lg .muka-pagination__button {
7668
- min-width: var(--button-height-lg);
7669
- height: var(--button-height-lg);
7864
+ min-width: var(--size-4xl);
7865
+ height: var(--size-4xl);
7670
7866
  font-size: var(--text-label-lg-regular-fontSize);
7671
7867
  }
7672
7868
 
7673
7869
  .muka-pagination--lg .muka-pagination__ellipsis {
7674
- min-width: var(--button-height-lg);
7675
- height: var(--button-height-lg);
7870
+ min-width: var(--size-4xl);
7871
+ height: var(--size-4xl);
7676
7872
  font-size: var(--text-label-lg-regular-fontSize);
7677
7873
  }
7678
7874
 
@@ -7876,7 +8072,7 @@ body {
7876
8072
  }
7877
8073
 
7878
8074
  .muka-menu__match {
7879
- font-weight: var(--font-weight-bold, 700);
8075
+ font-weight: var(--text-label-md-bold-fontWeight);
7880
8076
  }
7881
8077
 
7882
8078
  .muka-menu__content--scrollbar {
@@ -8596,7 +8792,7 @@ li.muka-listitem {
8596
8792
  font-weight: var(--text-label-sm-regular-fontWeight);
8597
8793
  font-size: var(--text-label-sm-regular-fontSize);
8598
8794
  line-height: var(--text-label-sm-regular-lineHeight);
8599
- color: var(--color-state-error-foreground);
8795
+ color: var(--color-state-error-default);
8600
8796
  margin: 0;
8601
8797
  }
8602
8798
 
@@ -8638,7 +8834,7 @@ li.muka-listitem {
8638
8834
  }
8639
8835
 
8640
8836
  .muka-label__required {
8641
- color: var(--color-state-error-foreground);
8837
+ color: var(--color-state-error-default);
8642
8838
  }
8643
8839
 
8644
8840
 
@@ -8684,7 +8880,7 @@ li.muka-listitem {
8684
8880
  }
8685
8881
 
8686
8882
  .muka-input__required {
8687
- color: var(--color-state-error-foreground);
8883
+ color: var(--color-state-error-default);
8688
8884
  }
8689
8885
 
8690
8886
  .muka-input__label--sm + .muka-input__field--disabled,
@@ -8890,7 +9086,7 @@ li.muka-listitem {
8890
9086
  font-weight: var(--text-label-sm-regular-fontWeight);
8891
9087
  font-size: var(--text-label-sm-regular-fontSize);
8892
9088
  line-height: var(--text-label-sm-regular-lineHeight);
8893
- color: var(--color-state-error-foreground);
9089
+ color: var(--color-state-error-default);
8894
9090
  margin: 0;
8895
9091
  }
8896
9092
 
@@ -9090,10 +9286,10 @@ li.muka-listitem {
9090
9286
 
9091
9287
  /* Text */
9092
9288
  .muka-fileupload__text {
9093
- font-family: var(--text-body-md-regular-fontFamily);
9094
- font-size: var(--text-body-md-regular-fontSize);
9095
- font-weight: var(--text-body-md-regular-fontWeight);
9096
- line-height: var(--text-body-md-regular-lineHeight);
9289
+ font-family: var(--text-body-base-regular-fontFamily);
9290
+ font-size: var(--text-body-base-regular-fontSize);
9291
+ font-weight: var(--text-body-base-regular-fontWeight);
9292
+ line-height: var(--text-body-base-regular-lineHeight);
9097
9293
  color: var(--color-text-default-default);
9098
9294
  }
9099
9295
 
@@ -9176,10 +9372,10 @@ li.muka-listitem {
9176
9372
  }
9177
9373
 
9178
9374
  .muka-fileupload-item__name {
9179
- font-family: var(--text-body-sm-medium-fontFamily);
9180
- font-size: var(--text-body-sm-medium-fontSize);
9181
- font-weight: var(--text-body-sm-medium-fontWeight);
9182
- line-height: var(--text-body-sm-medium-lineHeight);
9375
+ font-family: var(--text-body-sm-regular-fontFamily);
9376
+ font-size: var(--text-body-sm-regular-fontSize);
9377
+ font-weight: var(--text-body-sm-regular-fontWeight);
9378
+ line-height: var(--text-body-sm-regular-lineHeight);
9183
9379
  color: var(--fileupload-item-color-default-foreground);
9184
9380
  white-space: nowrap;
9185
9381
  overflow: hidden;
@@ -9215,11 +9411,11 @@ li.muka-listitem {
9215
9411
  }
9216
9412
 
9217
9413
  .muka-fileupload-item__status-icon--success {
9218
- color: var(--color-state-success-foreground);
9414
+ color: var(--fileupload-item-color-success-foreground);
9219
9415
  }
9220
9416
 
9221
9417
  .muka-fileupload-item__status-icon--error {
9222
- color: var(--color-state-error-foreground);
9418
+ color: var(--fileupload-item-color-error-foreground);
9223
9419
  }
9224
9420
 
9225
9421
  .muka-fileupload-item__remove {
@@ -9272,7 +9468,7 @@ li.muka-listitem {
9272
9468
 
9273
9469
  .muka-fab--primary {
9274
9470
  background-color: var(--color-action-default);
9275
- color: var(--color-text-inverse-default);
9471
+ color: var(--color-text-default-inverse);
9276
9472
  }
9277
9473
 
9278
9474
  .muka-fab--primary:hover:not(:disabled) {
@@ -9455,10 +9651,10 @@ li.muka-listitem {
9455
9651
  .muka-emptystate__title {
9456
9652
  color: var(--emptystate-title-color);
9457
9653
  margin: 0;
9458
- font-family: var(--text-heading-h4-fontFamily);
9459
- font-weight: var(--text-heading-h4-fontWeight);
9460
- font-size: var(--text-heading-h4-fontSize);
9461
- line-height: var(--text-heading-h4-lineHeight);
9654
+ font-family: var(--text-heading-sm-fontFamily);
9655
+ font-weight: var(--text-heading-sm-fontWeight);
9656
+ font-size: var(--text-heading-sm-fontSize);
9657
+ line-height: var(--text-heading-sm-lineHeight);
9462
9658
  }
9463
9659
 
9464
9660
  .muka-emptystate--sm .muka-emptystate__title {
@@ -9469,10 +9665,10 @@ li.muka-listitem {
9469
9665
  }
9470
9666
 
9471
9667
  .muka-emptystate--lg .muka-emptystate__title {
9472
- font-family: var(--text-heading-h3-fontFamily);
9473
- font-weight: var(--text-heading-h3-fontWeight);
9474
- font-size: var(--text-heading-h3-fontSize);
9475
- line-height: var(--text-heading-h3-lineHeight);
9668
+ font-family: var(--text-heading-md-fontFamily);
9669
+ font-weight: var(--text-heading-md-fontWeight);
9670
+ font-size: var(--text-heading-md-fontSize);
9671
+ line-height: var(--text-heading-md-lineHeight);
9476
9672
  }
9477
9673
 
9478
9674
  /* Description */
@@ -9576,7 +9772,7 @@ li.muka-listitem {
9576
9772
  }
9577
9773
 
9578
9774
  .muka-dropdown-select__required {
9579
- color: var(--color-state-error-foreground);
9775
+ color: var(--color-state-error-default);
9580
9776
  }
9581
9777
 
9582
9778
  .muka-dropdown-select__field {
@@ -9636,7 +9832,7 @@ li.muka-listitem {
9636
9832
  }
9637
9833
 
9638
9834
  .muka-dropdown-select__field--error:not(.muka-dropdown-select__field--disabled) {
9639
- border-color: var(--color-state-error-border, var(--color-state-error-foreground));
9835
+ border-color: var(--color-state-error-contrast);
9640
9836
  }
9641
9837
 
9642
9838
  .muka-dropdown-select__field--disabled {
@@ -9751,7 +9947,7 @@ li.muka-listitem {
9751
9947
 
9752
9948
  .muka-dropdown-select__error {
9753
9949
  margin: 0;
9754
- color: var(--color-state-error-foreground);
9950
+ color: var(--color-state-error-default);
9755
9951
  font-family: var(--text-label-sm-regular-fontFamily);
9756
9952
  font-size: var(--text-label-sm-regular-fontSize);
9757
9953
  font-weight: var(--text-label-sm-regular-fontWeight);
@@ -9987,7 +10183,7 @@ li.muka-listitem {
9987
10183
  line-height: var(--text-label-sm-lineHeight);
9988
10184
  border: 1px solid var(--color-border-default);
9989
10185
  border-radius: var(--border-radius-md);
9990
- background-color: var(--color-surface-default);
10186
+ background-color: var(--color-surface-level0);
9991
10187
  color: var(--color-text-default-default);
9992
10188
  }
9993
10189
 
@@ -10132,7 +10328,7 @@ li.muka-listitem {
10132
10328
 
10133
10329
  .muka-documentviewer__thumbnail-label {
10134
10330
  font-family: var(--alias-font-brand-family);
10135
- font-size: var(--text-label-xs-fontSize);
10331
+ font-size: var(--text-label-xs-regular-fontSize);
10136
10332
  color: var(--color-text-default-default);
10137
10333
  font-weight: var(--alias-font-brand-weight-medium);
10138
10334
  }
@@ -11159,10 +11355,10 @@ li.muka-listitem {
11159
11355
  }
11160
11356
 
11161
11357
  .muka-context-select__label {
11162
- font-family: var(--text-label-sm-regular-font-family);
11163
- font-size: var(--text-label-sm-regular-font-size);
11164
- font-weight: var(--text-label-sm-regular-font-weight);
11165
- line-height: var(--text-label-sm-regular-line-height);
11358
+ font-family: var(--text-label-sm-regular-fontFamily);
11359
+ font-size: var(--text-label-sm-regular-fontSize);
11360
+ font-weight: var(--text-label-sm-regular-fontWeight);
11361
+ line-height: var(--text-label-sm-regular-lineHeight);
11166
11362
  white-space: nowrap;
11167
11363
  }
11168
11364
 
@@ -11343,7 +11539,7 @@ li.muka-listitem {
11343
11539
  }
11344
11540
 
11345
11541
  .muka-combobox__field--error:not(.muka-combobox__field--disabled) {
11346
- border-color: var(--color-state-error-border, var(--color-state-error-foreground));
11542
+ border-color: var(--color-state-error-contrast);
11347
11543
  }
11348
11544
 
11349
11545
  .muka-combobox__field--disabled {
@@ -11400,7 +11596,7 @@ li.muka-listitem {
11400
11596
 
11401
11597
  .muka-combobox__error {
11402
11598
  margin: 0;
11403
- color: var(--color-state-error-foreground);
11599
+ color: var(--color-state-error-default);
11404
11600
  font-family: var(--text-label-sm-regular-fontFamily);
11405
11601
  font-size: var(--text-label-sm-regular-fontSize);
11406
11602
  font-weight: var(--text-label-sm-regular-fontWeight);
@@ -11991,137 +12187,15 @@ li.muka-listitem {
11991
12187
  line-height: var(--text-label-md-regular-lineHeight);
11992
12188
  }
11993
12189
 
11994
- .muka-checkbox--lg .muka-checkbox__label {
11995
- font-family: var(--text-label-xl-regular-fontFamily);
11996
- font-weight: var(--text-label-xl-regular-fontWeight);
11997
- font-size: var(--text-label-xl-regular-fontSize);
11998
- line-height: var(--text-label-xl-regular-lineHeight);
11999
- }
12000
-
12001
- .muka-checkbox--disabled .muka-checkbox__label {
12002
- color: var(--color-text-subtle-default);
12003
- }
12004
-
12005
-
12006
- /* ChatPhotoGrid */
12007
- /* ChatPhotoGrid Component Styles */
12008
-
12009
- /*
12010
- * The grid clips to its own radius and the tiles stay square, so only the four
12011
- * outer corners round — matching the Figma "Wrapper" frame (5225:1394).
12012
- */
12013
- .muka-chat-photo-grid {
12014
- display: grid;
12015
- gap: var(--chatphotogrid-gap);
12016
- width: 100%;
12017
- min-width: 0;
12018
- overflow: hidden;
12019
- border-radius: var(--chatphotogrid-radius);
12020
- }
12021
-
12022
- /* ─── Tiles ────────────────────────────────────────────── */
12023
-
12024
- .muka-chat-photo-grid__tile {
12025
- position: relative;
12026
- display: block;
12027
- overflow: hidden;
12028
- min-width: 0;
12029
- padding: 0;
12030
- margin: 0;
12031
- border: none;
12032
- background-color: var(--chatphotogrid-color-placeholder);
12033
- aspect-ratio: 1 / 1;
12034
- }
12035
-
12036
- button.muka-chat-photo-grid__tile {
12037
- cursor: pointer;
12038
- appearance: none;
12039
- }
12040
-
12041
- button.muka-chat-photo-grid__tile:focus-visible {
12042
- outline: var(--border-width-bold) solid var(--color-border-focus);
12043
- /* Inset, so the grid's overflow clip cannot cut the ring off on corner tiles */
12044
- outline-offset: calc(-1 * var(--border-width-bold));
12045
- }
12046
-
12047
- .muka-chat-photo-grid__image {
12048
- display: block;
12049
- width: 100%;
12050
- height: 100%;
12051
- object-fit: cover;
12052
- }
12053
-
12054
- /* ─── Overflow tile ────────────────────────────────────── */
12055
-
12056
- .muka-chat-photo-grid__overflow {
12057
- position: absolute;
12058
- inset: 0;
12059
- display: flex;
12060
- align-items: center;
12061
- justify-content: center;
12062
- background-color: var(--chatphotogrid-color-overflow-background);
12063
- color: var(--chatphotogrid-color-overflow-foreground);
12064
- font-family: var(--text-body-2xl-regular-fontFamily);
12065
- font-weight: var(--text-body-2xl-regular-fontWeight);
12066
- font-size: var(--text-body-2xl-regular-fontSize);
12067
- line-height: var(--text-body-2xl-regular-lineHeight);
12068
- }
12069
-
12070
- /* ─── Layouts ──────────────────────────────────────────── */
12071
-
12072
- .muka-chat-photo-grid--1 {
12073
- grid-template-columns: 1fr;
12074
- }
12075
-
12076
- .muka-chat-photo-grid--landscape .muka-chat-photo-grid__tile {
12077
- aspect-ratio: 4 / 3;
12078
- }
12079
-
12080
- .muka-chat-photo-grid--portrait .muka-chat-photo-grid__tile {
12081
- aspect-ratio: 3 / 4;
12082
- }
12083
-
12084
- .muka-chat-photo-grid--2 {
12085
- grid-template-columns: repeat(2, 1fr);
12086
- }
12087
-
12088
- .muka-chat-photo-grid--3 {
12089
- grid-template-columns: repeat(3, 1fr);
12090
- }
12091
-
12092
- .muka-chat-photo-grid--4 {
12093
- grid-template-columns: repeat(2, 1fr);
12094
- }
12095
-
12096
- /* 5 photos: a 2-up row above a 3-up row, on a shared 6-column track */
12097
- .muka-chat-photo-grid--5 {
12098
- grid-template-columns: repeat(6, 1fr);
12099
- }
12100
-
12101
- .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(-n + 2) {
12102
- grid-column: span 3;
12103
- }
12104
-
12105
- .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(n + 3) {
12106
- grid-column: span 2;
12107
- }
12108
-
12109
- .muka-chat-photo-grid--6,
12110
- .muka-chat-photo-grid--overflow {
12111
- grid-template-columns: repeat(3, 1fr);
12112
- }
12113
-
12114
- /* ─── Print ────────────────────────────────────────────── */
12115
-
12116
- @media print {
12117
- .muka-chat-photo-grid {
12118
- break-inside: avoid;
12119
- }
12190
+ .muka-checkbox--lg .muka-checkbox__label {
12191
+ font-family: var(--text-label-xl-regular-fontFamily);
12192
+ font-weight: var(--text-label-xl-regular-fontWeight);
12193
+ font-size: var(--text-label-xl-regular-fontSize);
12194
+ line-height: var(--text-label-xl-regular-lineHeight);
12195
+ }
12120
12196
 
12121
- .muka-chat-photo-grid__image {
12122
- print-color-adjust: exact;
12123
- -webkit-print-color-adjust: exact;
12124
- }
12197
+ .muka-checkbox--disabled .muka-checkbox__label {
12198
+ color: var(--color-text-subtle-default);
12125
12199
  }
12126
12200
 
12127
12201
 
@@ -13284,19 +13358,36 @@ button.muka-chat-photo-grid__tile:focus-visible {
13284
13358
  gap: var(--spacing-1);
13285
13359
  }
13286
13360
 
13361
+ .muka-breadcrumb__item:has(.muka-breadcrumb__icon) {
13362
+ padding-left: var(--spacing-1);
13363
+ }
13364
+
13287
13365
  .muka-breadcrumb__icon {
13288
13366
  display: inline-flex;
13289
13367
  align-items: center;
13290
13368
  color: var(--color-text-subtle-default);
13291
13369
  }
13292
13370
 
13371
+ .muka-breadcrumb__icon .muka-icon {
13372
+ color: inherit;
13373
+ }
13374
+
13375
+ .muka-breadcrumb__item:has(.muka-breadcrumb__current) .muka-breadcrumb__icon {
13376
+ color: var(--color-text-default-default);
13377
+ }
13378
+
13379
+ .muka-breadcrumb__item:has(.muka-breadcrumb__link:hover) .muka-breadcrumb__icon {
13380
+ color: var(--color-text-action-default);
13381
+ }
13382
+
13293
13383
  /* Link styles */
13294
13384
  .muka-breadcrumb__link {
13295
13385
  color: var(--color-text-subtle-default);
13296
13386
  text-decoration: none;
13297
13387
  border: none;
13298
13388
  background: none;
13299
- padding: 0;
13389
+ padding-inline: var(--spacing-2);
13390
+ padding-block: 0;
13300
13391
  cursor: pointer;
13301
13392
  font: inherit;
13302
13393
  transition: color 0.15s ease;
@@ -13307,10 +13398,17 @@ button.muka-chat-photo-grid__tile:focus-visible {
13307
13398
  text-decoration: underline;
13308
13399
  }
13309
13400
 
13310
- /* Current page (last item) */
13401
+ /* Tighter gap after leading icon */
13402
+ .muka-breadcrumb__item:has(.muka-breadcrumb__icon) .muka-breadcrumb__link,
13403
+ .muka-breadcrumb__item:has(.muka-breadcrumb__icon) .muka-breadcrumb__current {
13404
+ padding-left: var(--spacing-1);
13405
+ }
13406
+
13407
+ /* Current page (last item, no context switcher) */
13311
13408
  .muka-breadcrumb__current {
13312
13409
  color: var(--color-text-default-default);
13313
13410
  font-weight: 600;
13411
+ padding-inline: var(--spacing-2);
13314
13412
  }
13315
13413
 
13316
13414
  /* Separator */
@@ -13499,7 +13597,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
13499
13597
  font-weight: var(--text-label-sm-regular-fontWeight);
13500
13598
  font-size: var(--text-label-sm-regular-fontSize);
13501
13599
  line-height: var(--text-label-sm-regular-lineHeight);
13502
- letter-spacing: var(--text-label-sm-regular-letterSpacing);
13503
13600
  }
13504
13601
 
13505
13602
  /* ─── Floating modifier ───────────────────────────────── */
@@ -13585,7 +13682,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
13585
13682
  font-weight: var(--text-label-md-regular-fontWeight);
13586
13683
  font-size: var(--text-label-md-regular-fontSize);
13587
13684
  line-height: var(--text-label-md-regular-lineHeight);
13588
- letter-spacing: var(--text-label-md-regular-letterSpacing);
13589
13685
  }
13590
13686
 
13591
13687
  /* When floating and sidebar, remove the floating card styles */
@@ -13650,7 +13746,6 @@ button.muka-chat-photo-grid__tile:focus-visible {
13650
13746
  font-weight: var(--text-label-md-regular-fontWeight);
13651
13747
  font-size: var(--text-label-md-regular-fontSize);
13652
13748
  line-height: var(--text-label-md-regular-lineHeight);
13653
- letter-spacing: var(--text-label-md-regular-letterSpacing);
13654
13749
  }
13655
13750
 
13656
13751
  /* When floating and topnav, remove the floating card styles */
@@ -14761,10 +14856,10 @@ button.muka-chat-photo-grid__tile:focus-visible {
14761
14856
  cursor: pointer;
14762
14857
  text-align: left;
14763
14858
  color: var(--color-text-default-default);
14764
- font-family: var(--text-body-md-regular-fontFamily);
14765
- font-weight: var(--text-body-md-regular-fontWeight);
14766
- font-size: var(--text-body-md-regular-fontSize);
14767
- line-height: var(--text-body-md-regular-lineHeight);
14859
+ font-family: var(--text-body-base-regular-fontFamily);
14860
+ font-weight: var(--text-body-base-regular-fontWeight);
14861
+ font-size: var(--text-body-base-regular-fontSize);
14862
+ line-height: var(--text-body-base-regular-lineHeight);
14768
14863
  -webkit-tap-highlight-color: transparent;
14769
14864
  transition: background-color 0.12s ease;
14770
14865
  }
@@ -14975,194 +15070,124 @@ button.muka-chat-photo-grid__tile:focus-visible {
14975
15070
  }
14976
15071
 
14977
15072
 
14978
- /* SmsOtpField */
14979
- /* SmsOtpField Component Styles - Using Muka Design Tokens */
15073
+ /* ChatPhotoGrid */
15074
+ /* ChatPhotoGrid Component Styles */
14980
15075
 
14981
- /* Wrapper */
14982
- .muka-sms-otp-field {
14983
- display: inline-flex;
14984
- flex-direction: column;
14985
- gap: var(--spacing-2);
15076
+ /*
15077
+ * The grid clips to its own radius and the tiles stay square, so only the four
15078
+ * outer corners round — matching the Figma "Wrapper" frame (5225:1394).
15079
+ */
15080
+ .muka-chat-photo-grid {
15081
+ display: grid;
15082
+ gap: var(--chatphotogrid-gap);
15083
+ width: 100%;
15084
+ min-width: 0;
15085
+ overflow: hidden;
15086
+ border-radius: var(--chatphotogrid-radius);
14986
15087
  }
14987
15088
 
14988
- /* Label */
14989
- .muka-sms-otp-field__label {
14990
- color: var(--color-text-default-default);
14991
- cursor: pointer;
14992
- }
15089
+ /* ─── Tiles ────────────────────────────────────────────── */
14993
15090
 
14994
- .muka-sms-otp-field__label--sm {
14995
- font-family: var(--text-label-sm-semibold-fontFamily);
14996
- font-weight: var(--text-label-sm-semibold-fontWeight);
14997
- font-size: var(--text-label-sm-semibold-fontSize);
14998
- line-height: var(--text-label-sm-semibold-lineHeight);
15091
+ .muka-chat-photo-grid__tile {
15092
+ position: relative;
15093
+ display: block;
15094
+ overflow: hidden;
15095
+ min-width: 0;
15096
+ padding: 0;
15097
+ margin: 0;
15098
+ border: none;
15099
+ background-color: var(--chatphotogrid-color-placeholder);
15100
+ aspect-ratio: 1 / 1;
14999
15101
  }
15000
15102
 
15001
- .muka-sms-otp-field__label--md {
15002
- font-family: var(--text-label-md-semibold-fontFamily);
15003
- font-weight: var(--text-label-md-semibold-fontWeight);
15004
- font-size: var(--text-label-md-semibold-fontSize);
15005
- line-height: var(--text-label-md-semibold-lineHeight);
15103
+ button.muka-chat-photo-grid__tile {
15104
+ cursor: pointer;
15105
+ appearance: none;
15006
15106
  }
15007
15107
 
15008
- .muka-sms-otp-field__label--lg {
15009
- font-family: var(--text-label-lg-semibold-fontFamily);
15010
- font-weight: var(--text-label-lg-semibold-fontWeight);
15011
- font-size: var(--text-label-lg-semibold-fontSize);
15012
- line-height: var(--text-label-lg-semibold-lineHeight);
15108
+ button.muka-chat-photo-grid__tile:focus-visible {
15109
+ outline: var(--border-width-bold) solid var(--color-border-focus);
15110
+ /* Inset, so the grid's overflow clip cannot cut the ring off on corner tiles */
15111
+ outline-offset: calc(-1 * var(--border-width-bold));
15013
15112
  }
15014
15113
 
15015
- .muka-sms-otp-field__required {
15016
- color: var(--color-state-error-foreground);
15114
+ .muka-chat-photo-grid__image {
15115
+ display: block;
15116
+ width: 100%;
15117
+ height: 100%;
15118
+ object-fit: cover;
15017
15119
  }
15018
15120
 
15019
- /* Hidden input for browser autofill */
15020
- .muka-sms-otp-field__hidden-input {
15021
- position: absolute;
15022
- width: 1px;
15023
- height: 1px;
15024
- padding: 0;
15025
- margin: -1px;
15026
- overflow: hidden;
15027
- clip: rect(0, 0, 0, 0);
15028
- white-space: nowrap;
15029
- border: 0;
15030
- opacity: 0;
15031
- pointer-events: none;
15032
- }
15121
+ /* ─── Overflow tile ────────────────────────────────────── */
15033
15122
 
15034
- /* Digits container */
15035
- .muka-sms-otp-field__digits {
15123
+ .muka-chat-photo-grid__overflow {
15124
+ position: absolute;
15125
+ inset: 0;
15036
15126
  display: flex;
15037
15127
  align-items: center;
15038
- gap: var(--spacing-2);
15039
- }
15040
-
15041
- /* Separator */
15042
- .muka-sms-otp-field__separator {
15043
- display: inline-flex;
15044
- align-items: center;
15045
15128
  justify-content: center;
15046
- color: var(--color-text-subtle-default);
15047
- font-size: 1.25rem;
15048
- padding: 0 var(--spacing-1);
15049
- user-select: none;
15129
+ background-color: var(--chatphotogrid-color-overflow-background);
15130
+ color: var(--chatphotogrid-color-overflow-foreground);
15131
+ font-family: var(--text-body-2xl-regular-fontFamily);
15132
+ font-weight: var(--text-body-2xl-regular-fontWeight);
15133
+ font-size: var(--text-body-2xl-regular-fontSize);
15134
+ line-height: var(--text-body-2xl-regular-lineHeight);
15050
15135
  }
15051
15136
 
15052
- /* Individual digit box */
15053
- .muka-sms-otp-field__digit {
15054
- display: flex;
15055
- align-items: center;
15056
- justify-content: center;
15057
- text-align: center;
15058
- background-color: var(--input-field-color-default-background);
15059
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
15060
- color: var(--input-field-color-default-foreground);
15061
- transition: border-color 0.2s ease, background-color 0.2s ease;
15062
- box-sizing: border-box;
15063
- caret-color: var(--input-field-color-focus-border);
15064
- -moz-appearance: textfield;
15065
- appearance: textfield;
15066
- }
15137
+ /* ─── Layouts ──────────────────────────────────────────── */
15067
15138
 
15068
- /* Remove spinner buttons */
15069
- .muka-sms-otp-field__digit::-webkit-inner-spin-button,
15070
- .muka-sms-otp-field__digit::-webkit-outer-spin-button {
15071
- -webkit-appearance: none;
15072
- margin: 0;
15139
+ .muka-chat-photo-grid--1 {
15140
+ grid-template-columns: 1fr;
15073
15141
  }
15074
15142
 
15075
- /* Size variants */
15076
- .muka-sms-otp-field__digit--sm {
15077
- width: 36px;
15078
- height: var(--input-field-height-sm);
15079
- border-radius: var(--input-field-radius-sm);
15080
- font-family: var(--text-input-sm-fontFamily);
15081
- font-weight: var(--text-input-sm-fontWeight);
15082
- font-size: var(--text-input-sm-fontSize);
15083
- line-height: var(--text-input-sm-lineHeight);
15143
+ .muka-chat-photo-grid--landscape .muka-chat-photo-grid__tile {
15144
+ aspect-ratio: 4 / 3;
15084
15145
  }
15085
15146
 
15086
- .muka-sms-otp-field__digit--md {
15087
- width: 44px;
15088
- height: var(--input-field-height-default);
15089
- border-radius: var(--input-field-radius-md);
15090
- font-family: var(--text-input-md-fontFamily);
15091
- font-weight: var(--text-input-md-fontWeight);
15092
- font-size: var(--text-input-md-fontSize);
15093
- line-height: var(--text-input-md-lineHeight);
15147
+ .muka-chat-photo-grid--portrait .muka-chat-photo-grid__tile {
15148
+ aspect-ratio: 3 / 4;
15094
15149
  }
15095
15150
 
15096
- .muka-sms-otp-field__digit--lg {
15097
- width: 52px;
15098
- height: var(--input-field-height-lg);
15099
- border-radius: var(--input-field-radius-lg);
15100
- font-family: var(--text-input-lg-fontFamily);
15101
- font-weight: var(--text-input-lg-fontWeight);
15102
- font-size: var(--text-input-lg-fontSize);
15103
- line-height: var(--text-input-lg-lineHeight);
15151
+ .muka-chat-photo-grid--2 {
15152
+ grid-template-columns: repeat(2, 1fr);
15104
15153
  }
15105
15154
 
15106
- /* Inset shadow (matches Input component) */
15107
- .muka-sms-otp-field__digit::after {
15108
- content: '';
15109
- position: absolute;
15110
- inset: 0;
15111
- border-radius: inherit;
15112
- box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
15113
- pointer-events: none;
15155
+ .muka-chat-photo-grid--3 {
15156
+ grid-template-columns: repeat(3, 1fr);
15114
15157
  }
15115
15158
 
15116
- /* Focus state */
15117
- .muka-sms-otp-field__digit--focused:not(.muka-sms-otp-field__digit--disabled) {
15118
- border-width: var(--border-width-bold);
15119
- border-color: var(--input-field-color-focus-border);
15120
- background-color: var(--input-field-color-focus-background);
15121
- outline: none;
15159
+ .muka-chat-photo-grid--4 {
15160
+ grid-template-columns: repeat(2, 1fr);
15122
15161
  }
15123
15162
 
15124
- /* Also handle native :focus for keyboard navigation */
15125
- .muka-sms-otp-field__digit:focus {
15126
- outline: none;
15163
+ /* 5 photos: a 2-up row above a 3-up row, on a shared 6-column track */
15164
+ .muka-chat-photo-grid--5 {
15165
+ grid-template-columns: repeat(6, 1fr);
15127
15166
  }
15128
15167
 
15129
- /* Error state */
15130
- .muka-sms-otp-field__digit--error:not(.muka-sms-otp-field__digit--disabled) {
15131
- border-width: var(--border-width-bold);
15132
- border-color: var(--input-field-color-error-border);
15133
- background-color: var(--input-field-color-error-background);
15168
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(-n + 2) {
15169
+ grid-column: span 3;
15134
15170
  }
15135
15171
 
15136
- /* Disabled state */
15137
- .muka-sms-otp-field__digit--disabled {
15138
- background-color: var(--input-field-color-disabled-background);
15139
- border-color: var(--input-field-color-disabled-border);
15140
- color: var(--input-field-color-disabled-foreground);
15141
- cursor: not-allowed;
15172
+ .muka-chat-photo-grid--5 .muka-chat-photo-grid__tile:nth-child(n + 3) {
15173
+ grid-column: span 2;
15142
15174
  }
15143
15175
 
15144
- /* Filled state — slightly bolder text */
15145
- .muka-sms-otp-field__digit--filled {
15146
- color: var(--input-field-color-default-foreground);
15176
+ .muka-chat-photo-grid--6,
15177
+ .muka-chat-photo-grid--overflow {
15178
+ grid-template-columns: repeat(3, 1fr);
15147
15179
  }
15148
15180
 
15149
- /* Helper text */
15150
- .muka-sms-otp-field__helper {
15151
- font-family: var(--text-label-sm-regular-fontFamily);
15152
- font-weight: var(--text-label-sm-regular-fontWeight);
15153
- font-size: var(--text-label-sm-regular-fontSize);
15154
- line-height: var(--text-label-sm-regular-lineHeight);
15155
- color: var(--color-text-subtle-default);
15156
- margin: 0;
15157
- }
15181
+ /* ─── Print ────────────────────────────────────────────── */
15158
15182
 
15159
- /* Error message */
15160
- .muka-sms-otp-field__error {
15161
- font-family: var(--text-label-sm-regular-fontFamily);
15162
- font-weight: var(--text-label-sm-regular-fontWeight);
15163
- font-size: var(--text-label-sm-regular-fontSize);
15164
- line-height: var(--text-label-sm-regular-lineHeight);
15165
- color: var(--color-state-error-foreground);
15166
- margin: 0;
15183
+ @media print {
15184
+ .muka-chat-photo-grid {
15185
+ break-inside: avoid;
15186
+ }
15187
+
15188
+ .muka-chat-photo-grid__image {
15189
+ print-color-adjust: exact;
15190
+ -webkit-print-color-adjust: exact;
15191
+ }
15167
15192
  }
15168
15193