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