@revikornmann/muka-ui 0.17.0 → 0.19.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 (182) hide show
  1. package/README.md +81 -60
  2. package/cli/bin/muka-ui.js +12 -5
  3. package/cli/commands/brand.js +33 -14
  4. package/cli/commands/init.js +21 -17
  5. package/cli/commands/install-skill.js +84 -26
  6. package/cli/templates/AGENTS.md +128 -0
  7. package/cli/templates/CLAUDE.md +8 -88
  8. package/cli/templates/muka-ui-guidelines.md +50 -14
  9. package/dist/cjs/components/ActionSheet/ActionSheet.js +1 -1
  10. package/dist/cjs/components/Breadcrumb/Breadcrumb.css +11 -3
  11. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +19 -1
  12. package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -1
  13. package/dist/cjs/components/Combobox/Combobox.css +116 -132
  14. package/dist/cjs/components/Combobox/Combobox.js +175 -52
  15. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  16. package/dist/cjs/components/Combobox/index.js.map +1 -1
  17. package/dist/cjs/components/ContextSelect/ContextSelect.css +117 -0
  18. package/dist/cjs/components/ContextSelect/ContextSelect.js +49 -0
  19. package/dist/cjs/components/ContextSelect/ContextSelect.js.map +1 -0
  20. package/dist/cjs/components/ContextSelect/index.js +11 -0
  21. package/dist/cjs/components/ContextSelect/index.js.map +1 -0
  22. package/dist/cjs/components/DropdownSelect/DropdownSelect.css +225 -0
  23. package/dist/cjs/components/DropdownSelect/DropdownSelect.js +106 -0
  24. package/dist/cjs/components/DropdownSelect/DropdownSelect.js.map +1 -0
  25. package/dist/cjs/components/DropdownSelect/index.js +6 -0
  26. package/dist/cjs/components/DropdownSelect/index.js.map +1 -0
  27. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js +11 -0
  28. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  29. package/dist/cjs/components/Icon/custom/ArrowReturnIcon.js +11 -0
  30. package/dist/cjs/components/Icon/custom/ArrowReturnIcon.js.map +1 -0
  31. package/dist/cjs/components/Icon/iconRegistry.js +11 -0
  32. package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
  33. package/dist/cjs/components/Input/Input.css +45 -8
  34. package/dist/cjs/components/Input/Input.js +14 -3
  35. package/dist/cjs/components/Input/Input.js.map +1 -1
  36. package/dist/cjs/components/Menu/Menu.css +213 -17
  37. package/dist/cjs/components/Menu/Menu.js +429 -39
  38. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  39. package/dist/cjs/components/Menu/index.js +5 -1
  40. package/dist/cjs/components/Menu/index.js.map +1 -1
  41. package/dist/cjs/components/ProgressTracker/ProgressTracker.css +273 -22
  42. package/dist/cjs/components/ProgressTracker/ProgressTracker.js +109 -9
  43. package/dist/cjs/components/ProgressTracker/ProgressTracker.js.map +1 -1
  44. package/dist/cjs/components/Scrollbar/Scrollbar.css +124 -0
  45. package/dist/cjs/components/Scrollbar/Scrollbar.js +118 -0
  46. package/dist/cjs/components/Scrollbar/Scrollbar.js.map +1 -0
  47. package/dist/cjs/components/Scrollbar/index.js +11 -0
  48. package/dist/cjs/components/Scrollbar/index.js.map +1 -0
  49. package/dist/cjs/components/index.js +13 -16
  50. package/dist/cjs/components/index.js.map +1 -1
  51. package/dist/esm/components/ActionSheet/ActionSheet.js +1 -1
  52. package/dist/esm/components/Breadcrumb/Breadcrumb.css +11 -3
  53. package/dist/esm/components/Breadcrumb/Breadcrumb.js +19 -1
  54. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  55. package/dist/esm/components/Combobox/Combobox.css +116 -132
  56. package/dist/esm/components/Combobox/Combobox.js +177 -54
  57. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  58. package/dist/esm/components/Combobox/index.js +1 -1
  59. package/dist/esm/components/Combobox/index.js.map +1 -1
  60. package/dist/esm/components/ContextSelect/ContextSelect.css +117 -0
  61. package/dist/esm/components/ContextSelect/ContextSelect.js +45 -0
  62. package/dist/esm/components/ContextSelect/ContextSelect.js.map +1 -0
  63. package/dist/esm/components/ContextSelect/index.js +3 -0
  64. package/dist/esm/components/ContextSelect/index.js.map +1 -0
  65. package/dist/esm/components/DropdownSelect/DropdownSelect.css +225 -0
  66. package/dist/esm/components/DropdownSelect/DropdownSelect.js +102 -0
  67. package/dist/esm/components/DropdownSelect/DropdownSelect.js.map +1 -0
  68. package/dist/esm/components/DropdownSelect/index.js +2 -0
  69. package/dist/esm/components/DropdownSelect/index.js.map +1 -0
  70. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js +7 -0
  71. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  72. package/dist/esm/components/Icon/custom/ArrowReturnIcon.js +7 -0
  73. package/dist/esm/components/Icon/custom/ArrowReturnIcon.js.map +1 -0
  74. package/dist/esm/components/Icon/iconRegistry.js +11 -0
  75. package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
  76. package/dist/esm/components/Input/Input.css +45 -8
  77. package/dist/esm/components/Input/Input.js +14 -3
  78. package/dist/esm/components/Input/Input.js.map +1 -1
  79. package/dist/esm/components/Menu/Menu.css +213 -17
  80. package/dist/esm/components/Menu/Menu.js +428 -40
  81. package/dist/esm/components/Menu/Menu.js.map +1 -1
  82. package/dist/esm/components/Menu/index.js +1 -1
  83. package/dist/esm/components/Menu/index.js.map +1 -1
  84. package/dist/esm/components/ProgressTracker/ProgressTracker.css +273 -22
  85. package/dist/esm/components/ProgressTracker/ProgressTracker.js +110 -10
  86. package/dist/esm/components/ProgressTracker/ProgressTracker.js.map +1 -1
  87. package/dist/esm/components/Scrollbar/Scrollbar.css +124 -0
  88. package/dist/esm/components/Scrollbar/Scrollbar.js +114 -0
  89. package/dist/esm/components/Scrollbar/Scrollbar.js.map +1 -0
  90. package/dist/esm/components/Scrollbar/index.js +3 -0
  91. package/dist/esm/components/Scrollbar/index.js.map +1 -0
  92. package/dist/esm/components/index.js +4 -2
  93. package/dist/esm/components/index.js.map +1 -1
  94. package/dist/styles/components/Breadcrumb.css +11 -3
  95. package/dist/styles/components/Combobox.css +116 -132
  96. package/dist/styles/components/ContextSelect.css +117 -0
  97. package/dist/styles/components/DropdownSelect.css +225 -0
  98. package/dist/styles/components/Input.css +45 -8
  99. package/dist/styles/components/Menu.css +213 -17
  100. package/dist/styles/components/ProgressTracker.css +273 -22
  101. package/dist/styles/components/Scrollbar.css +124 -0
  102. package/dist/styles/components/Typography.css +89 -0
  103. package/dist/styles/index.css +1526 -480
  104. package/dist/styles/muka-dark.css +1526 -480
  105. package/dist/styles/muka-light.css +1526 -480
  106. package/dist/styles/tokens-bouwplan-dark.css +9 -6
  107. package/dist/styles/tokens-bouwplan-light.css +9 -6
  108. package/dist/styles/tokens-fscl-dark.css +29 -26
  109. package/dist/styles/tokens-fscl-light.css +29 -26
  110. package/dist/styles/tokens-grip-dark.css +8 -5
  111. package/dist/styles/tokens-grip-light.css +8 -5
  112. package/dist/styles/tokens-muka-dark.css +8 -5
  113. package/dist/styles/tokens-muka-light.css +8 -5
  114. package/dist/styles/tokens-wireframe-dark.css +53 -50
  115. package/dist/styles/tokens-wireframe-light.css +53 -50
  116. package/dist/styles/wireframe-dark.css +1571 -525
  117. package/dist/styles/wireframe-light.css +1571 -525
  118. package/dist/types/components/ActionSheet/ActionSheet.d.ts +1 -1
  119. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +27 -3
  120. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  121. package/dist/types/components/Combobox/Combobox.d.ts +38 -38
  122. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  123. package/dist/types/components/Combobox/index.d.ts +1 -1
  124. package/dist/types/components/Combobox/index.d.ts.map +1 -1
  125. package/dist/types/components/ContextSelect/ContextSelect.d.ts +62 -0
  126. package/dist/types/components/ContextSelect/ContextSelect.d.ts.map +1 -0
  127. package/dist/types/components/ContextSelect/index.d.ts +3 -0
  128. package/dist/types/components/ContextSelect/index.d.ts.map +1 -0
  129. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  130. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts +71 -0
  131. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts.map +1 -0
  132. package/dist/types/components/DropdownSelect/index.d.ts +2 -0
  133. package/dist/types/components/DropdownSelect/index.d.ts.map +1 -0
  134. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts +9 -0
  135. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts.map +1 -0
  136. package/dist/types/components/Icon/custom/ArrowReturnIcon.d.ts +9 -0
  137. package/dist/types/components/Icon/custom/ArrowReturnIcon.d.ts.map +1 -0
  138. package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
  139. package/dist/types/components/Input/Input.d.ts +5 -0
  140. package/dist/types/components/Input/Input.d.ts.map +1 -1
  141. package/dist/types/components/Menu/Menu.d.ts +99 -29
  142. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  143. package/dist/types/components/Menu/index.d.ts +2 -2
  144. package/dist/types/components/Menu/index.d.ts.map +1 -1
  145. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts +29 -8
  146. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts.map +1 -1
  147. package/dist/types/components/Scrollbar/Scrollbar.d.ts +19 -0
  148. package/dist/types/components/Scrollbar/Scrollbar.d.ts.map +1 -0
  149. package/dist/types/components/Scrollbar/index.d.ts +3 -0
  150. package/dist/types/components/Scrollbar/index.d.ts.map +1 -0
  151. package/dist/types/components/index.d.ts +5 -4
  152. package/dist/types/components/index.d.ts.map +1 -1
  153. package/docs/consumers/README.md +116 -37
  154. package/docs/consumers/brand.md +261 -0
  155. package/docs/consumers/figma-console-mcp.md +116 -0
  156. package/docs/consumers/setup-instructions.md +98 -12
  157. package/docs/consumers/skills.md +79 -0
  158. package/package.json +4 -6
  159. package/scripts/postinstall-nudge.js +8 -4
  160. package/skills/add-brand/SKILL.md +204 -0
  161. package/skills/add-brand/reference.md +160 -0
  162. package/skills/figma-to-code/SKILL.md +127 -0
  163. package/skills/pull-from-figma/SKILL.md +123 -0
  164. package/skills/push-to-figma/SKILL.md +172 -0
  165. package/skills/setup-muka/SKILL.md +73 -13
  166. package/tokens/README.md +40 -18
  167. package/tokens/t2-alias/brand/bouwplan/fonts.json +1 -1
  168. package/tokens/t2-alias/brand/fscl/fonts.json +3 -3
  169. package/tokens/t2-alias/brand/wireframe/fonts.json +2 -2
  170. package/tokens/t4-components/menu.json +20 -5
  171. package/dist/cjs/components/ContextMenu/ContextMenu.js +0 -186
  172. package/dist/cjs/components/ContextMenu/ContextMenu.js.map +0 -1
  173. package/dist/cjs/components/ContextMenu/index.js +0 -17
  174. package/dist/cjs/components/ContextMenu/index.js.map +0 -1
  175. package/dist/esm/components/ContextMenu/ContextMenu.js +0 -145
  176. package/dist/esm/components/ContextMenu/ContextMenu.js.map +0 -1
  177. package/dist/esm/components/ContextMenu/index.js +0 -2
  178. package/dist/esm/components/ContextMenu/index.js.map +0 -1
  179. package/dist/types/components/ContextMenu/ContextMenu.d.ts +0 -188
  180. package/dist/types/components/ContextMenu/ContextMenu.d.ts.map +0 -1
  181. package/dist/types/components/ContextMenu/index.d.ts +0 -3
  182. package/dist/types/components/ContextMenu/index.d.ts.map +0 -1
@@ -1303,7 +1303,7 @@ body {
1303
1303
  --alias-color-conversation-agent-surface-raised: #fefbe9;
1304
1304
  --alias-color-conversation-agent-border: #fbe577;
1305
1305
  --alias-color-conversation-meta: #202020;
1306
- --alias-font-plain-family: Helvetica;
1306
+ --alias-font-plain-family: Roboto;
1307
1307
  --alias-font-plain-weight-regular: 400;
1308
1308
  --alias-font-plain-weight-medium: 500;
1309
1309
  --alias-font-plain-weight-semibold: 600;
@@ -1312,7 +1312,7 @@ body {
1312
1312
  --alias-font-mono-weight-regular: 400;
1313
1313
  --alias-font-mono-weight-bold: 700;
1314
1314
  --alias-font-script-family: Times New Roman;
1315
- --alias-font-brand-family: Helvetica;
1315
+ --alias-font-brand-family: Roboto;
1316
1316
  --alias-font-brand-weight-regular: 400;
1317
1317
  --alias-font-brand-weight-medium: 500;
1318
1318
  --alias-font-brand-weight-semibold: 600;
@@ -1351,197 +1351,197 @@ body {
1351
1351
  --border-radius-full: 999rem;
1352
1352
  --border-width-regular: 0.0625rem;
1353
1353
  --border-width-bold: 0.125rem;
1354
- --text-heading-xl-fontFamily: Helvetica;
1354
+ --text-heading-xl-fontFamily: Roboto;
1355
1355
  --text-heading-xl-fontWeight: 600;
1356
1356
  --text-heading-xl-fontSize: 2.5rem;
1357
1357
  --text-heading-xl-lineHeight: 3rem;
1358
1358
  --text-heading-xl-letterSpacing: 0;
1359
- --text-heading-lg-fontFamily: Helvetica;
1359
+ --text-heading-lg-fontFamily: Roboto;
1360
1360
  --text-heading-lg-fontWeight: 600;
1361
1361
  --text-heading-lg-fontSize: 2rem;
1362
1362
  --text-heading-lg-lineHeight: 2.5rem;
1363
1363
  --text-heading-lg-letterSpacing: 0;
1364
- --text-heading-md-fontFamily: Helvetica;
1364
+ --text-heading-md-fontFamily: Roboto;
1365
1365
  --text-heading-md-fontWeight: 600;
1366
1366
  --text-heading-md-fontSize: 1.5rem;
1367
1367
  --text-heading-md-lineHeight: 2rem;
1368
1368
  --text-heading-md-letterSpacing: 0;
1369
- --text-heading-sm-fontFamily: Helvetica;
1369
+ --text-heading-sm-fontFamily: Roboto;
1370
1370
  --text-heading-sm-fontWeight: 600;
1371
1371
  --text-heading-sm-fontSize: 1.25rem;
1372
1372
  --text-heading-sm-lineHeight: 1.5rem;
1373
1373
  --text-heading-sm-letterSpacing: 0;
1374
- --text-heading-xs-fontFamily: Helvetica;
1374
+ --text-heading-xs-fontFamily: Roboto;
1375
1375
  --text-heading-xs-fontWeight: 500;
1376
1376
  --text-heading-xs-fontSize: 1.125rem;
1377
1377
  --text-heading-xs-lineHeight: 1.25rem;
1378
1378
  --text-heading-xs-letterSpacing: 0;
1379
- --text-heading-overline-fontFamily: Helvetica;
1379
+ --text-heading-overline-fontFamily: Roboto;
1380
1380
  --text-heading-overline-fontWeight: 600;
1381
1381
  --text-heading-overline-fontSize: 1rem;
1382
1382
  --text-heading-overline-lineHeight: 1rem;
1383
1383
  --text-heading-overline-letterSpacing: 0.025em;
1384
1384
  --text-heading-overline-textCase: uppercase;
1385
- --text-label-xs-regular-fontFamily: Helvetica;
1385
+ --text-label-xs-regular-fontFamily: Roboto;
1386
1386
  --text-label-xs-regular-fontWeight: 400;
1387
1387
  --text-label-xs-regular-fontSize: 0.75rem;
1388
1388
  --text-label-xs-regular-lineHeight: 0.75rem;
1389
- --text-label-xs-semibold-fontFamily: Helvetica;
1389
+ --text-label-xs-semibold-fontFamily: Roboto;
1390
1390
  --text-label-xs-semibold-fontWeight: 600;
1391
1391
  --text-label-xs-semibold-fontSize: 0.75rem;
1392
1392
  --text-label-xs-semibold-lineHeight: 0.75rem;
1393
- --text-label-xs-bold-fontFamily: Helvetica;
1393
+ --text-label-xs-bold-fontFamily: Roboto;
1394
1394
  --text-label-xs-bold-fontWeight: 700;
1395
1395
  --text-label-xs-bold-fontSize: 0.75rem;
1396
1396
  --text-label-xs-bold-lineHeight: 0.75rem;
1397
- --text-label-sm-regular-fontFamily: Helvetica;
1397
+ --text-label-sm-regular-fontFamily: Roboto;
1398
1398
  --text-label-sm-regular-fontWeight: 400;
1399
1399
  --text-label-sm-regular-fontSize: 0.875rem;
1400
1400
  --text-label-sm-regular-lineHeight: 0.875rem;
1401
- --text-label-sm-semibold-fontFamily: Helvetica;
1401
+ --text-label-sm-semibold-fontFamily: Roboto;
1402
1402
  --text-label-sm-semibold-fontWeight: 600;
1403
1403
  --text-label-sm-semibold-fontSize: 0.875rem;
1404
1404
  --text-label-sm-semibold-lineHeight: 0.875rem;
1405
- --text-label-sm-bold-fontFamily: Helvetica;
1405
+ --text-label-sm-bold-fontFamily: Roboto;
1406
1406
  --text-label-sm-bold-fontWeight: 700;
1407
1407
  --text-label-sm-bold-fontSize: 0.875rem;
1408
1408
  --text-label-sm-bold-lineHeight: 0.875rem;
1409
- --text-label-md-regular-fontFamily: Helvetica;
1409
+ --text-label-md-regular-fontFamily: Roboto;
1410
1410
  --text-label-md-regular-fontWeight: 400;
1411
1411
  --text-label-md-regular-fontSize: 1rem;
1412
1412
  --text-label-md-regular-lineHeight: 1rem;
1413
- --text-label-md-semibold-fontFamily: Helvetica;
1413
+ --text-label-md-semibold-fontFamily: Roboto;
1414
1414
  --text-label-md-semibold-fontWeight: 600;
1415
1415
  --text-label-md-semibold-fontSize: 1rem;
1416
1416
  --text-label-md-semibold-lineHeight: 1rem;
1417
- --text-label-md-bold-fontFamily: Helvetica;
1417
+ --text-label-md-bold-fontFamily: Roboto;
1418
1418
  --text-label-md-bold-fontWeight: 700;
1419
1419
  --text-label-md-bold-fontSize: 1rem;
1420
1420
  --text-label-md-bold-lineHeight: 1rem;
1421
- --text-label-lg-regular-fontFamily: Helvetica;
1421
+ --text-label-lg-regular-fontFamily: Roboto;
1422
1422
  --text-label-lg-regular-fontWeight: 400;
1423
1423
  --text-label-lg-regular-fontSize: 1.125rem;
1424
1424
  --text-label-lg-regular-lineHeight: 1.125rem;
1425
- --text-label-lg-semibold-fontFamily: Helvetica;
1425
+ --text-label-lg-semibold-fontFamily: Roboto;
1426
1426
  --text-label-lg-semibold-fontWeight: 600;
1427
1427
  --text-label-lg-semibold-fontSize: 1.125rem;
1428
1428
  --text-label-lg-semibold-lineHeight: 1.125rem;
1429
- --text-label-lg-bold-fontFamily: Helvetica;
1429
+ --text-label-lg-bold-fontFamily: Roboto;
1430
1430
  --text-label-lg-bold-fontWeight: 700;
1431
1431
  --text-label-lg-bold-fontSize: 1.125rem;
1432
1432
  --text-label-lg-bold-lineHeight: 1.125rem;
1433
- --text-label-xl-regular-fontFamily: Helvetica;
1433
+ --text-label-xl-regular-fontFamily: Roboto;
1434
1434
  --text-label-xl-regular-fontWeight: 400;
1435
1435
  --text-label-xl-regular-fontSize: 1.25rem;
1436
1436
  --text-label-xl-regular-lineHeight: 1.25rem;
1437
- --text-label-xl-semibold-fontFamily: Helvetica;
1437
+ --text-label-xl-semibold-fontFamily: Roboto;
1438
1438
  --text-label-xl-semibold-fontWeight: 600;
1439
1439
  --text-label-xl-semibold-fontSize: 1.25rem;
1440
1440
  --text-label-xl-semibold-lineHeight: 1.25rem;
1441
- --text-label-xl-bold-fontFamily: Helvetica;
1441
+ --text-label-xl-bold-fontFamily: Roboto;
1442
1442
  --text-label-xl-bold-fontWeight: 700;
1443
1443
  --text-label-xl-bold-fontSize: 1.25rem;
1444
1444
  --text-label-xl-bold-lineHeight: 1.25rem;
1445
- --text-label-2xl-regular-fontFamily: Helvetica;
1445
+ --text-label-2xl-regular-fontFamily: Roboto;
1446
1446
  --text-label-2xl-regular-fontWeight: 400;
1447
1447
  --text-label-2xl-regular-fontSize: 1.5rem;
1448
1448
  --text-label-2xl-regular-lineHeight: 1.5rem;
1449
- --text-label-2xl-semibold-fontFamily: Helvetica;
1449
+ --text-label-2xl-semibold-fontFamily: Roboto;
1450
1450
  --text-label-2xl-semibold-fontWeight: 600;
1451
1451
  --text-label-2xl-semibold-fontSize: 1.5rem;
1452
1452
  --text-label-2xl-semibold-lineHeight: 1.5rem;
1453
- --text-label-2xl-bold-fontFamily: Helvetica;
1453
+ --text-label-2xl-bold-fontFamily: Roboto;
1454
1454
  --text-label-2xl-bold-fontWeight: 700;
1455
1455
  --text-label-2xl-bold-fontSize: 1.5rem;
1456
1456
  --text-label-2xl-bold-lineHeight: 1.5rem;
1457
- --text-subheading-xl-fontFamily: Helvetica;
1457
+ --text-subheading-xl-fontFamily: Roboto;
1458
1458
  --text-subheading-xl-fontSize: 2rem;
1459
1459
  --text-subheading-xl-lineHeight: 2.5rem;
1460
1460
  --text-subheading-xl-paragraphSpacing: 1rem;
1461
1461
  --text-subheading-xl-fontWeight: 400;
1462
- --text-subheading-lg-fontFamily: Helvetica;
1462
+ --text-subheading-lg-fontFamily: Roboto;
1463
1463
  --text-subheading-lg-fontWeight: 400;
1464
1464
  --text-subheading-lg-fontSize: 1.25rem;
1465
1465
  --text-subheading-lg-lineHeight: 1.5rem;
1466
1466
  --text-subheading-lg-paragraphSpacing: 0.75rem;
1467
- --text-subheading-md-fontFamily: Helvetica;
1467
+ --text-subheading-md-fontFamily: Roboto;
1468
1468
  --text-subheading-md-fontWeight: 400;
1469
1469
  --text-subheading-md-fontSize: 1.125rem;
1470
1470
  --text-subheading-md-lineHeight: 1.25rem;
1471
1471
  --text-subheading-md-paragraphSpacing: 0.5rem;
1472
- --text-subheading-sm-fontFamily: Helvetica;
1472
+ --text-subheading-sm-fontFamily: Roboto;
1473
1473
  --text-subheading-sm-fontWeight: 400;
1474
1474
  --text-subheading-sm-fontSize: 1rem;
1475
1475
  --text-subheading-sm-lineHeight: 1.125rem;
1476
- --text-body-xs-regular-fontFamily: Helvetica;
1476
+ --text-body-xs-regular-fontFamily: Roboto;
1477
1477
  --text-body-xs-regular-fontWeight: 400;
1478
1478
  --text-body-xs-regular-fontSize: 0.75rem;
1479
1479
  --text-body-xs-regular-lineHeight: 1.125rem;
1480
1480
  --text-body-xs-regular-paragraphSpacing: 0.5rem;
1481
- --text-body-xs-bold-fontFamily: Helvetica;
1481
+ --text-body-xs-bold-fontFamily: Roboto;
1482
1482
  --text-body-xs-bold-fontWeight: 700;
1483
1483
  --text-body-xs-bold-fontSize: 0.75rem;
1484
1484
  --text-body-xs-bold-lineHeight: 1.125rem;
1485
1485
  --text-body-xs-bold-paragraphSpacing: 0.5rem;
1486
- --text-body-sm-regular-fontFamily: Helvetica;
1486
+ --text-body-sm-regular-fontFamily: Roboto;
1487
1487
  --text-body-sm-regular-fontWeight: 400;
1488
1488
  --text-body-sm-regular-fontSize: 0.875rem;
1489
1489
  --text-body-sm-regular-lineHeight: 1.25rem;
1490
1490
  --text-body-sm-regular-paragraphSpacing: 0.25rem;
1491
- --text-body-sm-bold-fontFamily: Helvetica;
1491
+ --text-body-sm-bold-fontFamily: Roboto;
1492
1492
  --text-body-sm-bold-fontWeight: 700;
1493
1493
  --text-body-sm-bold-fontSize: 0.875rem;
1494
1494
  --text-body-sm-bold-lineHeight: 1.25rem;
1495
1495
  --text-body-sm-bold-paragraphSpacing: 0.25rem;
1496
- --text-body-base-regular-fontFamily: Helvetica;
1496
+ --text-body-base-regular-fontFamily: Roboto;
1497
1497
  --text-body-base-regular-fontWeight: 400;
1498
1498
  --text-body-base-regular-fontSize: 1rem;
1499
1499
  --text-body-base-regular-lineHeight: 1.5rem;
1500
1500
  --text-body-base-regular-paragraphSpacing: 0.5rem;
1501
- --text-body-base-bold-fontFamily: Helvetica;
1501
+ --text-body-base-bold-fontFamily: Roboto;
1502
1502
  --text-body-base-bold-fontWeight: 700;
1503
1503
  --text-body-base-bold-fontSize: 1rem;
1504
1504
  --text-body-base-bold-lineHeight: 1.5rem;
1505
1505
  --text-body-base-bold-paragraphSpacing: 0.5rem;
1506
- --text-body-lg-regular-fontFamily: Helvetica;
1506
+ --text-body-lg-regular-fontFamily: Roboto;
1507
1507
  --text-body-lg-regular-fontWeight: 400;
1508
1508
  --text-body-lg-regular-fontSize: 1.125rem;
1509
1509
  --text-body-lg-regular-lineHeight: 2rem;
1510
1510
  --text-body-lg-regular-paragraphSpacing: 0.75rem;
1511
- --text-body-lg-bold-fontFamily: Helvetica;
1511
+ --text-body-lg-bold-fontFamily: Roboto;
1512
1512
  --text-body-lg-bold-fontWeight: 700;
1513
1513
  --text-body-lg-bold-fontSize: 1.125rem;
1514
1514
  --text-body-lg-bold-lineHeight: 2rem;
1515
1515
  --text-body-lg-bold-paragraphSpacing: 0.75rem;
1516
- --text-body-xl-regular-fontFamily: Helvetica;
1516
+ --text-body-xl-regular-fontFamily: Roboto;
1517
1517
  --text-body-xl-regular-fontWeight: 400;
1518
1518
  --text-body-xl-regular-fontSize: 1.25rem;
1519
1519
  --text-body-xl-regular-lineHeight: 2.5rem;
1520
1520
  --text-body-xl-regular-paragraphSpacing: 1rem;
1521
- --text-body-xl-bold-fontFamily: Helvetica;
1521
+ --text-body-xl-bold-fontFamily: Roboto;
1522
1522
  --text-body-xl-bold-fontWeight: 700;
1523
1523
  --text-body-xl-bold-fontSize: 1.25rem;
1524
1524
  --text-body-xl-bold-lineHeight: 2.5rem;
1525
1525
  --text-body-xl-bold-paragraphSpacing: 1rem;
1526
- --text-body-2xl-regular-fontFamily: Helvetica;
1526
+ --text-body-2xl-regular-fontFamily: Roboto;
1527
1527
  --text-body-2xl-regular-fontWeight: 400;
1528
1528
  --text-body-2xl-regular-fontSize: 1.5rem;
1529
1529
  --text-body-2xl-regular-lineHeight: 3rem;
1530
1530
  --text-body-2xl-regular-paragraphSpacing: 1rem;
1531
- --text-body-2xl-bold-fontFamily: Helvetica;
1531
+ --text-body-2xl-bold-fontFamily: Roboto;
1532
1532
  --text-body-2xl-bold-fontWeight: 700;
1533
1533
  --text-body-2xl-bold-fontSize: 1.5rem;
1534
1534
  --text-body-2xl-bold-lineHeight: 3rem;
1535
1535
  --text-body-2xl-bold-paragraphSpacing: 1rem;
1536
- --text-input-sm-fontFamily: Helvetica;
1536
+ --text-input-sm-fontFamily: Roboto;
1537
1537
  --text-input-sm-fontWeight: 400;
1538
1538
  --text-input-sm-fontSize: 0.875rem;
1539
1539
  --text-input-sm-lineHeight: 0.875rem;
1540
- --text-input-md-fontFamily: Helvetica;
1540
+ --text-input-md-fontFamily: Roboto;
1541
1541
  --text-input-md-fontWeight: 400;
1542
1542
  --text-input-md-fontSize: 1rem;
1543
1543
  --text-input-md-lineHeight: 1rem;
1544
- --text-input-lg-fontFamily: Helvetica;
1544
+ --text-input-lg-fontFamily: Roboto;
1545
1545
  --text-input-lg-fontWeight: 400;
1546
1546
  --text-input-lg-fontSize: 1.125rem;
1547
1547
  --text-input-lg-lineHeight: 1.125rem;
@@ -1889,22 +1889,24 @@ body {
1889
1889
  --dialog-drag-handle-radius: 999rem;
1890
1890
  --dialog-padding-x: 1rem;
1891
1891
  --menu-content-color-background: #fcfcfc;
1892
- --menu-content-color-border: #e8e8e8;
1892
+ --menu-content-color-border: #bbbbbb;
1893
1893
  --menu-content-border-radius: 0px;
1894
1894
  --menu-content-border-width: 0.0625rem;
1895
1895
  --menu-content-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.090), 0 8px 16px 0 rgba(0, 0, 0, 0.090);
1896
1896
  --menu-content-padding: 0.25rem;
1897
- --menu-content-min-width: 12rem;
1897
+ --menu-content-min-width: 280px;
1898
1898
  --menu-content-max-height: 20rem;
1899
+ --menu-content-scroll-height: 20.625rem;
1899
1900
  --menu-item-color-default-background: transparent;
1900
1901
  --menu-item-color-default-foreground: #202020;
1901
1902
  --menu-item-color-default-icon: #838383;
1902
- --menu-item-color-hover-background: rgba(0, 0, 0, 0.024);
1903
+ --menu-item-color-hover-background: #e8e8e8;
1903
1904
  --menu-item-color-hover-foreground: #202020;
1904
1905
  --menu-item-color-hover-icon: #202020;
1905
- --menu-item-color-focus-background: #5eb0ef;
1906
+ --menu-item-color-focus-background: #e8e8e8;
1906
1907
  --menu-item-color-focus-foreground: #202020;
1907
1908
  --menu-item-color-focus-icon: #202020;
1909
+ --menu-item-color-selected-background: #e0e0e0;
1908
1910
  --menu-item-color-disabled-background: transparent;
1909
1911
  --menu-item-color-disabled-foreground: #bbbbbb;
1910
1912
  --menu-item-color-disabled-icon: #bbbbbb;
@@ -1915,7 +1917,8 @@ body {
1915
1917
  --menu-item-color-destructive-hover-icon: #cd2b31;
1916
1918
  --menu-item-border-radius: 0px;
1917
1919
  --menu-item-padding-x: 0.75rem;
1918
- --menu-item-padding-y: 0.5rem;
1920
+ --menu-item-padding-right: 2.25rem;
1921
+ --menu-item-padding-y: 0.75rem;
1919
1922
  --menu-item-gap: 0.5rem;
1920
1923
  --menu-item-height: 2.5rem;
1921
1924
  --menu-separator-color: #e8e8e8;
@@ -2526,6 +2529,98 @@ body {
2526
2529
  }
2527
2530
 
2528
2531
 
2532
+ /* Typography */
2533
+ .muka-typography-catalog {
2534
+ display: flex;
2535
+ flex-direction: column;
2536
+ gap: 2.5rem;
2537
+ max-width: 52rem;
2538
+ color: var(--color-text-default-default);
2539
+ }
2540
+
2541
+ .muka-typography-catalog__intro {
2542
+ display: flex;
2543
+ flex-direction: column;
2544
+ gap: 0.75rem;
2545
+ }
2546
+
2547
+ .muka-typography-catalog__heading {
2548
+ margin: 0;
2549
+ font-family: var(--text-heading-md-fontFamily);
2550
+ font-weight: var(--text-heading-md-fontWeight);
2551
+ font-size: var(--text-heading-md-fontSize);
2552
+ line-height: var(--text-heading-md-lineHeight);
2553
+ }
2554
+
2555
+ .muka-typography-catalog__lede {
2556
+ margin: 0;
2557
+ font-family: var(--text-body-base-regular-fontFamily);
2558
+ font-weight: var(--text-body-base-regular-fontWeight);
2559
+ font-size: var(--text-body-base-regular-fontSize);
2560
+ line-height: var(--text-body-base-regular-lineHeight);
2561
+ color: var(--color-text-subtle-default);
2562
+ }
2563
+
2564
+ .muka-typography-catalog__lede code {
2565
+ font-family: var(--alias-font-mono-family, ui-monospace, monospace);
2566
+ font-size: 0.875em;
2567
+ }
2568
+
2569
+ .muka-typography-section {
2570
+ display: flex;
2571
+ flex-direction: column;
2572
+ gap: 1rem;
2573
+ }
2574
+
2575
+ .muka-typography-section__header {
2576
+ display: flex;
2577
+ flex-direction: column;
2578
+ gap: 0.35rem;
2579
+ padding-bottom: 0.75rem;
2580
+ border-bottom: 1px solid var(--color-border-default);
2581
+ }
2582
+
2583
+ .muka-typography-section__title {
2584
+ margin: 0;
2585
+ font-family: var(--text-heading-sm-fontFamily);
2586
+ font-weight: var(--text-heading-sm-fontWeight);
2587
+ font-size: var(--text-heading-sm-fontSize);
2588
+ line-height: var(--text-heading-sm-lineHeight);
2589
+ }
2590
+
2591
+ .muka-typography-section__description {
2592
+ margin: 0;
2593
+ font-family: var(--text-body-sm-regular-fontFamily);
2594
+ font-weight: var(--text-body-sm-regular-fontWeight);
2595
+ font-size: var(--text-body-sm-regular-fontSize);
2596
+ line-height: var(--text-body-sm-regular-lineHeight);
2597
+ color: var(--color-text-subtle-default);
2598
+ }
2599
+
2600
+ .muka-typography-section__list {
2601
+ display: flex;
2602
+ flex-direction: column;
2603
+ gap: 1rem;
2604
+ }
2605
+
2606
+ .muka-typography-specimen {
2607
+ display: flex;
2608
+ flex-direction: column;
2609
+ gap: 0.35rem;
2610
+ }
2611
+
2612
+ .muka-typography-specimen__token {
2613
+ font-family: var(--alias-font-mono-family, ui-monospace, monospace);
2614
+ font-size: 0.75rem;
2615
+ line-height: 1;
2616
+ color: var(--color-text-subtle-default);
2617
+ }
2618
+
2619
+ .muka-typography-specimen__sample {
2620
+ margin: 0;
2621
+ }
2622
+
2623
+
2529
2624
  /* TypingIndicator */
2530
2625
  /* TypingIndicator Component Styles */
2531
2626
 
@@ -4545,84 +4640,6 @@ body {
4545
4640
  }
4546
4641
 
4547
4642
 
4548
- /* Spinner */
4549
- /* Spinner Component Styles */
4550
-
4551
- .muka-spinner {
4552
- display: inline-flex;
4553
- align-items: center;
4554
- justify-content: center;
4555
- color: var(--color-text-default-default);
4556
- line-height: 0;
4557
- }
4558
-
4559
- .muka-spinner--subtle {
4560
- color: var(--color-text-subtle-default);
4561
- }
4562
-
4563
- .muka-spinner--inverse {
4564
- color: var(--color-text-inverse-default);
4565
- }
4566
-
4567
- .muka-spinner__circle {
4568
- display: inline-block;
4569
- border-radius: 50%;
4570
- border-style: solid;
4571
- border-color: currentColor;
4572
- border-right-color: transparent;
4573
- animation: muka-spinner-rotate 0.7s linear infinite;
4574
- box-sizing: border-box;
4575
- }
4576
-
4577
- /* ─── Sizes ───────────────────────────────────────────── */
4578
-
4579
- .muka-spinner--sm .muka-spinner__circle {
4580
- width: 16px;
4581
- height: 16px;
4582
- border-width: 2px;
4583
- }
4584
-
4585
- .muka-spinner--md .muka-spinner__circle {
4586
- width: 20px;
4587
- height: 20px;
4588
- border-width: 2px;
4589
- }
4590
-
4591
- .muka-spinner--lg .muka-spinner__circle {
4592
- width: 24px;
4593
- height: 24px;
4594
- border-width: 3px;
4595
- }
4596
-
4597
- /* ─── Visually-hidden label ───────────────────────────── */
4598
-
4599
- .muka-spinner__sr-label {
4600
- position: absolute;
4601
- width: 1px;
4602
- height: 1px;
4603
- padding: 0;
4604
- margin: -1px;
4605
- overflow: hidden;
4606
- clip: rect(0, 0, 0, 0);
4607
- white-space: nowrap;
4608
- border: 0;
4609
- }
4610
-
4611
- /* ─── Reduced motion ──────────────────────────────────── */
4612
-
4613
- @keyframes muka-spinner-rotate {
4614
- to {
4615
- transform: rotate(360deg);
4616
- }
4617
- }
4618
-
4619
- @media (prefers-reduced-motion: reduce) {
4620
- .muka-spinner__circle {
4621
- animation-duration: 2.5s;
4622
- }
4623
- }
4624
-
4625
-
4626
4643
  /* SpecList */
4627
4644
  /* SpecList Component Styles */
4628
4645
 
@@ -4708,49 +4725,58 @@ body {
4708
4725
  }
4709
4726
 
4710
4727
 
4711
- /* SmsOtpField */
4712
- /* SmsOtpField Component Styles - Using Muka Design Tokens */
4728
+ /* Spinner */
4729
+ /* Spinner Component Styles */
4713
4730
 
4714
- /* Wrapper */
4715
- .muka-sms-otp-field {
4731
+ .muka-spinner {
4716
4732
  display: inline-flex;
4717
- flex-direction: column;
4718
- gap: var(--spacing-2);
4733
+ align-items: center;
4734
+ justify-content: center;
4735
+ color: var(--color-text-default-default);
4736
+ line-height: 0;
4719
4737
  }
4720
4738
 
4721
- /* Label */
4722
- .muka-sms-otp-field__label {
4723
- color: var(--color-text-default-default);
4724
- cursor: pointer;
4739
+ .muka-spinner--subtle {
4740
+ color: var(--color-text-subtle-default);
4725
4741
  }
4726
4742
 
4727
- .muka-sms-otp-field__label--sm {
4728
- font-family: var(--text-label-sm-semibold-fontFamily);
4729
- font-weight: var(--text-label-sm-semibold-fontWeight);
4730
- font-size: var(--text-label-sm-semibold-fontSize);
4731
- line-height: var(--text-label-sm-semibold-lineHeight);
4743
+ .muka-spinner--inverse {
4744
+ color: var(--color-text-inverse-default);
4732
4745
  }
4733
4746
 
4734
- .muka-sms-otp-field__label--md {
4735
- font-family: var(--text-label-md-semibold-fontFamily);
4736
- font-weight: var(--text-label-md-semibold-fontWeight);
4737
- font-size: var(--text-label-md-semibold-fontSize);
4738
- line-height: var(--text-label-md-semibold-lineHeight);
4747
+ .muka-spinner__circle {
4748
+ display: inline-block;
4749
+ border-radius: 50%;
4750
+ border-style: solid;
4751
+ border-color: currentColor;
4752
+ border-right-color: transparent;
4753
+ animation: muka-spinner-rotate 0.7s linear infinite;
4754
+ box-sizing: border-box;
4739
4755
  }
4740
4756
 
4741
- .muka-sms-otp-field__label--lg {
4742
- font-family: var(--text-label-lg-semibold-fontFamily);
4743
- font-weight: var(--text-label-lg-semibold-fontWeight);
4744
- font-size: var(--text-label-lg-semibold-fontSize);
4745
- line-height: var(--text-label-lg-semibold-lineHeight);
4757
+ /* ─── Sizes ───────────────────────────────────────────── */
4758
+
4759
+ .muka-spinner--sm .muka-spinner__circle {
4760
+ width: 16px;
4761
+ height: 16px;
4762
+ border-width: 2px;
4746
4763
  }
4747
4764
 
4748
- .muka-sms-otp-field__required {
4749
- color: var(--color-state-error-foreground);
4765
+ .muka-spinner--md .muka-spinner__circle {
4766
+ width: 20px;
4767
+ height: 20px;
4768
+ border-width: 2px;
4750
4769
  }
4751
4770
 
4752
- /* Hidden input for browser autofill */
4753
- .muka-sms-otp-field__hidden-input {
4771
+ .muka-spinner--lg .muka-spinner__circle {
4772
+ width: 24px;
4773
+ height: 24px;
4774
+ border-width: 3px;
4775
+ }
4776
+
4777
+ /* ─── Visually-hidden label ───────────────────────────── */
4778
+
4779
+ .muka-spinner__sr-label {
4754
4780
  position: absolute;
4755
4781
  width: 1px;
4756
4782
  height: 1px;
@@ -4760,143 +4786,20 @@ body {
4760
4786
  clip: rect(0, 0, 0, 0);
4761
4787
  white-space: nowrap;
4762
4788
  border: 0;
4763
- opacity: 0;
4764
- pointer-events: none;
4765
4789
  }
4766
4790
 
4767
- /* Digits container */
4768
- .muka-sms-otp-field__digits {
4769
- display: flex;
4770
- align-items: center;
4771
- gap: var(--spacing-2);
4772
- }
4791
+ /* ─── Reduced motion ──────────────────────────────────── */
4773
4792
 
4774
- /* Separator */
4775
- .muka-sms-otp-field__separator {
4776
- display: inline-flex;
4777
- align-items: center;
4778
- justify-content: center;
4779
- color: var(--color-text-subtle-default);
4780
- font-size: 1.25rem;
4781
- padding: 0 var(--spacing-1);
4782
- user-select: none;
4793
+ @keyframes muka-spinner-rotate {
4794
+ to {
4795
+ transform: rotate(360deg);
4796
+ }
4783
4797
  }
4784
4798
 
4785
- /* Individual digit box */
4786
- .muka-sms-otp-field__digit {
4787
- display: flex;
4788
- align-items: center;
4789
- justify-content: center;
4790
- text-align: center;
4791
- background-color: var(--input-field-color-default-background);
4792
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
4793
- color: var(--input-field-color-default-foreground);
4794
- transition: border-color 0.2s ease, background-color 0.2s ease;
4795
- box-sizing: border-box;
4796
- caret-color: var(--input-field-color-focus-border);
4797
- -moz-appearance: textfield;
4798
- appearance: textfield;
4799
- }
4800
-
4801
- /* Remove spinner buttons */
4802
- .muka-sms-otp-field__digit::-webkit-inner-spin-button,
4803
- .muka-sms-otp-field__digit::-webkit-outer-spin-button {
4804
- -webkit-appearance: none;
4805
- margin: 0;
4806
- }
4807
-
4808
- /* Size variants */
4809
- .muka-sms-otp-field__digit--sm {
4810
- width: 36px;
4811
- height: var(--input-field-height-sm);
4812
- border-radius: var(--input-field-radius-sm);
4813
- font-family: var(--text-input-sm-fontFamily);
4814
- font-weight: var(--text-input-sm-fontWeight);
4815
- font-size: var(--text-input-sm-fontSize);
4816
- line-height: var(--text-input-sm-lineHeight);
4817
- }
4818
-
4819
- .muka-sms-otp-field__digit--md {
4820
- width: 44px;
4821
- height: var(--input-field-height-default);
4822
- border-radius: var(--input-field-radius-md);
4823
- font-family: var(--text-input-md-fontFamily);
4824
- font-weight: var(--text-input-md-fontWeight);
4825
- font-size: var(--text-input-md-fontSize);
4826
- line-height: var(--text-input-md-lineHeight);
4827
- }
4828
-
4829
- .muka-sms-otp-field__digit--lg {
4830
- width: 52px;
4831
- height: var(--input-field-height-lg);
4832
- border-radius: var(--input-field-radius-lg);
4833
- font-family: var(--text-input-lg-fontFamily);
4834
- font-weight: var(--text-input-lg-fontWeight);
4835
- font-size: var(--text-input-lg-fontSize);
4836
- line-height: var(--text-input-lg-lineHeight);
4837
- }
4838
-
4839
- /* Inset shadow (matches Input component) */
4840
- .muka-sms-otp-field__digit::after {
4841
- content: '';
4842
- position: absolute;
4843
- inset: 0;
4844
- border-radius: inherit;
4845
- box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
4846
- pointer-events: none;
4847
- }
4848
-
4849
- /* Focus state */
4850
- .muka-sms-otp-field__digit--focused:not(.muka-sms-otp-field__digit--disabled) {
4851
- border-width: var(--border-width-bold);
4852
- border-color: var(--input-field-color-focus-border);
4853
- background-color: var(--input-field-color-focus-background);
4854
- outline: none;
4855
- }
4856
-
4857
- /* Also handle native :focus for keyboard navigation */
4858
- .muka-sms-otp-field__digit:focus {
4859
- outline: none;
4860
- }
4861
-
4862
- /* Error state */
4863
- .muka-sms-otp-field__digit--error:not(.muka-sms-otp-field__digit--disabled) {
4864
- border-width: var(--border-width-bold);
4865
- border-color: var(--input-field-color-error-border);
4866
- background-color: var(--input-field-color-error-background);
4867
- }
4868
-
4869
- /* Disabled state */
4870
- .muka-sms-otp-field__digit--disabled {
4871
- background-color: var(--input-field-color-disabled-background);
4872
- border-color: var(--input-field-color-disabled-border);
4873
- color: var(--input-field-color-disabled-foreground);
4874
- cursor: not-allowed;
4875
- }
4876
-
4877
- /* Filled state — slightly bolder text */
4878
- .muka-sms-otp-field__digit--filled {
4879
- color: var(--input-field-color-default-foreground);
4880
- }
4881
-
4882
- /* Helper text */
4883
- .muka-sms-otp-field__helper {
4884
- font-family: var(--text-label-sm-regular-fontFamily);
4885
- font-weight: var(--text-label-sm-regular-fontWeight);
4886
- font-size: var(--text-label-sm-regular-fontSize);
4887
- line-height: var(--text-label-sm-regular-lineHeight);
4888
- color: var(--color-text-subtle-default);
4889
- margin: 0;
4890
- }
4891
-
4892
- /* Error message */
4893
- .muka-sms-otp-field__error {
4894
- font-family: var(--text-label-sm-regular-fontFamily);
4895
- font-weight: var(--text-label-sm-regular-fontWeight);
4896
- font-size: var(--text-label-sm-regular-fontSize);
4897
- line-height: var(--text-label-sm-regular-lineHeight);
4898
- color: var(--color-state-error-foreground);
4899
- margin: 0;
4799
+ @media (prefers-reduced-motion: reduce) {
4800
+ .muka-spinner__circle {
4801
+ animation-duration: 2.5s;
4802
+ }
4900
4803
  }
4901
4804
 
4902
4805
 
@@ -5629,6 +5532,133 @@ body {
5629
5532
  }
5630
5533
 
5631
5534
 
5535
+ /* Scrollbar */
5536
+ /* Scrollbar — Figma menu scrollbar (32px rail, chevrons, grip thumb) */
5537
+
5538
+ .muka-scrollbar {
5539
+ display: flex;
5540
+ flex-shrink: 0;
5541
+ border-left: var(--border-width-regular) solid var(--color-border-default);
5542
+ background-color: var(--color-surface-level3);
5543
+ user-select: none;
5544
+ }
5545
+
5546
+ .muka-scrollbar--vertical {
5547
+ flex-direction: column;
5548
+ width: var(--size-2xl, 32px);
5549
+ align-self: stretch;
5550
+ }
5551
+
5552
+ .muka-scrollbar--horizontal {
5553
+ flex-direction: row;
5554
+ height: var(--size-2xl, 32px);
5555
+ width: 100%;
5556
+ border-left: none;
5557
+ border-top: var(--border-width-regular) solid var(--color-border-default);
5558
+ }
5559
+
5560
+ .muka-scrollbar__button {
5561
+ display: flex;
5562
+ align-items: center;
5563
+ justify-content: center;
5564
+ flex-shrink: 0;
5565
+ width: 100%;
5566
+ height: var(--size-2xl, 32px);
5567
+ padding: 0;
5568
+ border: none;
5569
+ background-color: var(--button-color-tertiary-background-default, var(--color-surface-level3));
5570
+ color: var(--color-text-default-default);
5571
+ cursor: pointer;
5572
+ }
5573
+
5574
+ .muka-scrollbar--horizontal .muka-scrollbar__button {
5575
+ width: var(--size-2xl, 32px);
5576
+ height: 100%;
5577
+ }
5578
+
5579
+ .muka-scrollbar__button:hover {
5580
+ background-color: var(--color-surface-hover);
5581
+ }
5582
+
5583
+ .muka-scrollbar__divider {
5584
+ flex-shrink: 0;
5585
+ width: 100%;
5586
+ height: 1px;
5587
+ background-color: var(--color-border-default);
5588
+ }
5589
+
5590
+ .muka-scrollbar--horizontal .muka-scrollbar__divider {
5591
+ width: 1px;
5592
+ height: 100%;
5593
+ }
5594
+
5595
+ .muka-scrollbar__track {
5596
+ position: relative;
5597
+ display: flex;
5598
+ flex-direction: column;
5599
+ flex: 1 1 auto;
5600
+ min-height: 0;
5601
+ width: 100%;
5602
+ }
5603
+
5604
+ .muka-scrollbar--horizontal .muka-scrollbar__track {
5605
+ flex-direction: row;
5606
+ min-width: 0;
5607
+ height: 100%;
5608
+ }
5609
+
5610
+ .muka-scrollbar__thumb {
5611
+ position: absolute;
5612
+ left: 0;
5613
+ top: 0;
5614
+ z-index: 1;
5615
+ display: flex;
5616
+ align-items: center;
5617
+ justify-content: center;
5618
+ width: 100%;
5619
+ /* Figma: scrollbar thumb fill = surface/level3 */
5620
+ background-color: var(--color-surface-level3);
5621
+ cursor: grab;
5622
+ touch-action: none;
5623
+ }
5624
+
5625
+ .muka-scrollbar--horizontal .muka-scrollbar__thumb {
5626
+ left: 0;
5627
+ top: 0;
5628
+ width: auto;
5629
+ height: 100%;
5630
+ margin-left: 0;
5631
+ margin-top: 0;
5632
+ }
5633
+
5634
+ .muka-scrollbar__thumb:active {
5635
+ cursor: grabbing;
5636
+ }
5637
+
5638
+ .muka-scrollbar__grip {
5639
+ display: flex;
5640
+ flex-direction: column;
5641
+ gap: 2px;
5642
+ width: 14px;
5643
+ }
5644
+
5645
+ .muka-scrollbar__grip::before,
5646
+ .muka-scrollbar__grip::after {
5647
+ content: '';
5648
+ display: block;
5649
+ width: 100%;
5650
+ height: 2px;
5651
+ border-radius: var(--border-radius-md);
5652
+ background-color: var(--color-text-subtle-default);
5653
+ }
5654
+
5655
+ .muka-scrollbar__spacer {
5656
+ flex: 1 1 auto;
5657
+ min-height: 0;
5658
+ background-color: var(--color-surface-level2);
5659
+ }
5660
+
5661
+
5632
5662
  /* RecordingBar */
5633
5663
  /* RecordingBar Component Styles */
5634
5664
 
@@ -6235,19 +6265,22 @@ body {
6235
6265
  /* ─── Root ──────────────────────────────────────────────── */
6236
6266
  .muka-progress-tracker {
6237
6267
  width: 100%;
6268
+ }
6269
+
6270
+ .muka-progress-tracker--horizontal {
6238
6271
  padding-bottom: var(--spacing-7);
6239
6272
  }
6240
6273
 
6241
6274
  /* ─── Track (layered container) ─────────────────────────── */
6242
- .muka-progress-tracker__track {
6275
+ .muka-progress-tracker--horizontal .muka-progress-tracker__track {
6243
6276
  position: relative;
6244
6277
  /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
6245
6278
  padding-top: 14px;
6246
6279
  padding-bottom: 14px;
6247
6280
  }
6248
6281
 
6249
- /* ─── Steps layer (on top) ──────────────────────────────── */
6250
- .muka-progress-tracker__steps {
6282
+ /* ─── Steps layer (on top) — horizontal ─────────────────── */
6283
+ .muka-progress-tracker--horizontal .muka-progress-tracker__steps {
6251
6284
  position: absolute;
6252
6285
  inset: 0;
6253
6286
  display: flex;
@@ -6256,13 +6289,16 @@ body {
6256
6289
  z-index: 2;
6257
6290
  }
6258
6291
 
6259
- /* ─── Individual step ───────────────────────────────────── */
6260
- .muka-progress-tracker__step {
6292
+ /* ─── Individual step — horizontal ──────────────────────── */
6293
+ .muka-progress-tracker--horizontal .muka-progress-tracker__step {
6261
6294
  display: flex;
6262
6295
  flex-direction: column;
6263
6296
  align-items: center;
6264
- gap: 7px;
6265
6297
  position: relative;
6298
+ /* Labels are absolutely positioned so the step stays 32px and
6299
+ circle centers line up with the connector padding. */
6300
+ width: 32px;
6301
+ flex: 0 0 32px;
6266
6302
  }
6267
6303
 
6268
6304
  /* ─── Step indicator (circle) ───────────────────────────── */
@@ -6275,20 +6311,24 @@ body {
6275
6311
  justify-content: center;
6276
6312
  flex-shrink: 0;
6277
6313
  position: relative;
6314
+ z-index: 1;
6278
6315
  }
6279
6316
 
6280
6317
  /* Past: dark accent contrast circle with white checkmark */
6281
6318
  .muka-progress-tracker__indicator--past {
6282
6319
  background-color: var(--alias-color-accent-contrast);
6283
6320
  color: var(--color-text-default-inverse);
6321
+ }
6322
+
6323
+ .muka-progress-tracker--horizontal .muka-progress-tracker__indicator--past {
6284
6324
  cursor: pointer;
6285
6325
  }
6286
6326
 
6287
- .muka-progress-tracker__indicator--past:hover {
6327
+ .muka-progress-tracker--horizontal .muka-progress-tracker__indicator--past:hover {
6288
6328
  background-color: var(--alias-color-accent-pressed);
6289
6329
  }
6290
6330
 
6291
- .muka-progress-tracker__indicator--past:focus-visible {
6331
+ .muka-progress-tracker--horizontal .muka-progress-tracker__indicator--past:focus-visible {
6292
6332
  outline: 2px solid var(--color-border-focus);
6293
6333
  outline-offset: 2px;
6294
6334
  }
@@ -6315,6 +6355,18 @@ body {
6315
6355
  user-select: none;
6316
6356
  }
6317
6357
 
6358
+ .muka-progress-tracker--horizontal .muka-progress-tracker__indicator--upcoming .muka-progress-tracker__number {
6359
+ font-family: var(--text-label-md-bold-fontFamily);
6360
+ font-weight: var(--text-label-md-bold-fontWeight);
6361
+ }
6362
+
6363
+ .muka-progress-tracker--vertical .muka-progress-tracker__indicator--upcoming .muka-progress-tracker__number {
6364
+ font-family: var(--text-label-md-semibold-fontFamily);
6365
+ font-weight: var(--text-label-md-semibold-fontWeight);
6366
+ font-size: var(--text-label-md-semibold-fontSize);
6367
+ line-height: var(--text-label-md-semibold-lineHeight);
6368
+ }
6369
+
6318
6370
  /* ─── Checkmark icon ────────────────────────────────────── */
6319
6371
  .muka-progress-tracker__check-icon {
6320
6372
  width: 20px;
@@ -6327,8 +6379,12 @@ body {
6327
6379
  color: var(--color-text-default-inverse);
6328
6380
  }
6329
6381
 
6330
- /* ─── Step label ────────────────────────────────────────── */
6331
- .muka-progress-tracker__label {
6382
+ /* ─── Step label — horizontal ───────────────────────────── */
6383
+ .muka-progress-tracker--horizontal .muka-progress-tracker__label {
6384
+ position: absolute;
6385
+ top: 39px;
6386
+ left: 50%;
6387
+ transform: translateX(-50%);
6332
6388
  font-family: var(--text-label-sm-regular-fontFamily);
6333
6389
  font-weight: var(--text-label-sm-regular-fontWeight);
6334
6390
  font-size: var(--text-label-sm-regular-fontSize);
@@ -6341,14 +6397,14 @@ body {
6341
6397
  text-overflow: ellipsis;
6342
6398
  }
6343
6399
 
6344
- /* Current step label is bold */
6345
- .muka-progress-tracker__label--current {
6400
+ /* Current step label is bold (horizontal only) */
6401
+ .muka-progress-tracker--horizontal .muka-progress-tracker__label--current {
6346
6402
  font-family: var(--text-label-sm-bold-fontFamily);
6347
6403
  font-weight: var(--text-label-sm-bold-fontWeight);
6348
6404
  }
6349
6405
 
6350
- /* ─── Connectors layer (behind indicators) ──────────────── */
6351
- .muka-progress-tracker__connectors {
6406
+ /* ─── Connectors layer (behind indicators) — horizontal ─── */
6407
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connectors {
6352
6408
  display: flex;
6353
6409
  align-items: center;
6354
6410
  /* Horizontal padding = indicator radius (32/2 = 16px) so lines meet circle centers */
@@ -6358,20 +6414,31 @@ body {
6358
6414
  z-index: 1;
6359
6415
  }
6360
6416
 
6361
- /* ─── Individual connector line ─────────────────────────── */
6362
- .muka-progress-tracker__connector {
6417
+ /* Rounder, bar, rounder in a row. Chromium treats a negative gap as invalid,
6418
+ so the overlap is margins: the bar runs 2px under each circle. */
6419
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector {
6420
+ display: flex;
6421
+ flex-direction: row;
6422
+ align-items: center;
6363
6423
  flex: 1 0 0;
6364
6424
  height: 4px;
6365
6425
  min-width: 1px;
6426
+ position: relative;
6427
+ overflow: visible;
6428
+ background: none;
6429
+ }
6430
+
6431
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector-line {
6432
+ flex: 1 1 auto;
6433
+ height: 4px;
6434
+ min-width: 1px;
6366
6435
  }
6367
6436
 
6368
- /* Past: solid dark line */
6369
- .muka-progress-tracker__connector--past {
6437
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector--past .muka-progress-tracker__connector-line {
6370
6438
  background-color: var(--alias-color-accent-contrast);
6371
6439
  }
6372
6440
 
6373
- /* Current: gradient from past (dark) toward current step */
6374
- .muka-progress-tracker__connector--current {
6441
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector--current .muka-progress-tracker__connector-line {
6375
6442
  background: linear-gradient(
6376
6443
  to right,
6377
6444
  var(--alias-color-accent-contrast) 0%,
@@ -6379,8 +6446,7 @@ body {
6379
6446
  );
6380
6447
  }
6381
6448
 
6382
- /* Current-right: gradient fading from current step into upcoming */
6383
- .muka-progress-tracker__connector--current-right {
6449
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector--current-right .muka-progress-tracker__connector-line {
6384
6450
  background: linear-gradient(
6385
6451
  to right,
6386
6452
  var(--alias-color-accent-default) 0%,
@@ -6389,40 +6455,255 @@ body {
6389
6455
  );
6390
6456
  }
6391
6457
 
6458
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector--upcoming .muka-progress-tracker__connector-line {
6459
+ background-color: var(--color-surface-sunken);
6460
+ }
6461
+
6462
+ /* Past: solid dark line (vertical; horizontal uses the inner line) */
6463
+ .muka-progress-tracker__connector--past {
6464
+ background-color: var(--alias-color-accent-contrast);
6465
+ }
6466
+
6392
6467
  /* Upcoming: solid gray line */
6393
6468
  .muka-progress-tracker__connector--upcoming {
6394
6469
  background-color: var(--color-surface-sunken);
6395
6470
  }
6396
6471
 
6472
+ /* ═══════════════════════════════════════════════════════════
6473
+ Vertical orientation
6474
+ ═══════════════════════════════════════════════════════════ */
6397
6475
 
6398
- /* ProgressAccordeon */
6399
- /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
6400
-
6401
- /* ─── Root ──────────────────────────────────────────────── */
6402
- .muka-progress-accordeon {
6403
- container-type: inline-size;
6476
+ .muka-progress-tracker--vertical .muka-progress-tracker__track {
6404
6477
  display: flex;
6405
6478
  flex-direction: column;
6406
6479
  align-items: stretch;
6480
+ gap: var(--spacing-6);
6407
6481
  width: 100%;
6408
- /* Top padding provides the vertical rhythm between stacked steps */
6409
- padding-top: var(--spacing-8);
6410
6482
  }
6411
6483
 
6412
- /* Per-state gap: content-bearing steps are tighter, header-only steps looser */
6413
- .muka-progress-accordeon--current,
6414
- .muka-progress-accordeon--past.muka-progress-accordeon--expanded {
6415
- gap: var(--spacing-6);
6484
+ .muka-progress-tracker--vertical .muka-progress-tracker__step {
6485
+ display: flex;
6486
+ flex-direction: row;
6487
+ align-items: flex-start;
6488
+ gap: var(--spacing-3);
6489
+ padding-right: var(--spacing-1);
6490
+ position: relative;
6491
+ width: 100%;
6492
+ min-height: 32px;
6416
6493
  }
6417
6494
 
6418
- .muka-progress-accordeon--upcoming,
6419
- .muka-progress-accordeon--past.muka-progress-accordeon--collapsed {
6420
- gap: var(--spacing-8);
6495
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive {
6496
+ cursor: pointer;
6421
6497
  }
6422
6498
 
6423
- /* Past steps group header + slot. The header↔content gap lives inside the
6424
- collapsing slot (as padding-top) so it collapses with the content, so the
6425
- body gap itself is 0. */
6499
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:focus-visible {
6500
+ outline: 2px solid var(--color-border-focus);
6501
+ outline-offset: 4px;
6502
+ border-radius: 20px;
6503
+ }
6504
+
6505
+ /* Indicator column: circle only; connector is absolutely positioned on the step */
6506
+ .muka-progress-tracker--vertical .muka-progress-tracker__indicator-col {
6507
+ display: flex;
6508
+ flex-direction: column;
6509
+ align-items: center;
6510
+ flex-shrink: 0;
6511
+ position: relative;
6512
+ width: 32px;
6513
+ z-index: 1;
6514
+ }
6515
+
6516
+ /* Vertical connector: from mid-indicator through gap to next mid-indicator */
6517
+ .muka-progress-tracker--vertical .muka-progress-tracker__connector {
6518
+ position: absolute;
6519
+ left: 14px; /* (32px indicator - 4px line) / 2 */
6520
+ top: 16px;
6521
+ /* Through track gap (spacing-6) into the next indicator's top half */
6522
+ bottom: calc(-1 * var(--spacing-6) - 16px);
6523
+ width: 4px;
6524
+ z-index: 0;
6525
+ overflow: visible;
6526
+ }
6527
+
6528
+ /* Divider rounders: circle bleeds into the connector (Figma Divider Rounder) */
6529
+ .muka-progress-tracker__rounder {
6530
+ position: absolute;
6531
+ display: block;
6532
+ pointer-events: none;
6533
+ overflow: visible;
6534
+ }
6535
+
6536
+ .muka-progress-tracker__rounder--past {
6537
+ color: var(--alias-color-accent-contrast);
6538
+ }
6539
+
6540
+ .muka-progress-tracker__rounder--current {
6541
+ color: var(--alias-color-accent-default);
6542
+ }
6543
+
6544
+ .muka-progress-tracker__rounder--upcoming {
6545
+ color: var(--color-surface-sunken);
6546
+ }
6547
+
6548
+ .muka-progress-tracker--horizontal .muka-progress-tracker__rounder {
6549
+ position: relative;
6550
+ z-index: 1;
6551
+ flex-shrink: 0;
6552
+ top: auto;
6553
+ right: auto;
6554
+ bottom: auto;
6555
+ left: auto;
6556
+ transform: none;
6557
+ }
6558
+
6559
+ .muka-progress-tracker--horizontal .muka-progress-tracker__rounder--start {
6560
+ margin-left: 14px;
6561
+ /* Rounder overhangs the circle by 3px; -5px tucks the bar 2px under the circle. */
6562
+ margin-right: -5px;
6563
+ }
6564
+
6565
+ .muka-progress-tracker--horizontal .muka-progress-tracker__rounder--end {
6566
+ margin-left: -5px;
6567
+ margin-right: 14px;
6568
+ }
6569
+
6570
+ .muka-progress-tracker--vertical .muka-progress-tracker__rounder--start {
6571
+ left: 50%;
6572
+ top: 14px;
6573
+ transform: translateX(-50%);
6574
+ }
6575
+
6576
+ .muka-progress-tracker--vertical .muka-progress-tracker__rounder--end {
6577
+ left: 50%;
6578
+ bottom: 14px;
6579
+ transform: translateX(-50%);
6580
+ }
6581
+
6582
+ .muka-progress-tracker--vertical .muka-progress-tracker__connector--current {
6583
+ background: linear-gradient(
6584
+ to bottom,
6585
+ var(--alias-color-accent-contrast) 0%,
6586
+ var(--alias-color-accent-default) 100%
6587
+ );
6588
+ }
6589
+
6590
+ .muka-progress-tracker--vertical .muka-progress-tracker__connector--current-right {
6591
+ background: linear-gradient(
6592
+ to bottom,
6593
+ var(--alias-color-accent-default) 0%,
6594
+ var(--alias-color-accent-default) 15%,
6595
+ var(--color-surface-sunken) 50%
6596
+ );
6597
+ }
6598
+
6599
+ /* Vertical label: body/base/regular, wraps, not bold for current */
6600
+ .muka-progress-tracker--vertical .muka-progress-tracker__label {
6601
+ font-family: var(--text-body-base-regular-fontFamily);
6602
+ font-weight: var(--text-body-base-regular-fontWeight);
6603
+ font-size: var(--text-body-base-regular-fontSize);
6604
+ line-height: var(--text-body-base-regular-lineHeight);
6605
+ color: var(--color-text-default-default);
6606
+ text-align: left;
6607
+ flex: 1 0 0;
6608
+ min-width: 0;
6609
+ padding-top: var(--spacing-1);
6610
+ padding-bottom: var(--spacing-1);
6611
+ word-break: break-word;
6612
+ }
6613
+
6614
+ /* Current label stays regular weight in vertical layout */
6615
+ .muka-progress-tracker--vertical .muka-progress-tracker__label--current {
6616
+ font-family: var(--text-body-base-regular-fontFamily);
6617
+ font-weight: var(--text-body-base-regular-fontWeight);
6618
+ }
6619
+
6620
+ /* Ensure step content paints above hover/selected backgrounds */
6621
+ .muka-progress-tracker--vertical .muka-progress-tracker__indicator-col,
6622
+ .muka-progress-tracker--vertical .muka-progress-tracker__label {
6623
+ position: relative;
6624
+ z-index: 1;
6625
+ }
6626
+
6627
+ /* ─── Hover halo (vertical interactive only) ────────────── */
6628
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:hover::before,
6629
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:active::before,
6630
+ .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']::before {
6631
+ content: '';
6632
+ position: absolute;
6633
+ background-color: var(--color-surface-level1);
6634
+ pointer-events: none;
6635
+ z-index: 0;
6636
+ }
6637
+
6638
+ /* Hover: 40px circle behind indicator only */
6639
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:hover::before {
6640
+ left: -4px;
6641
+ top: -4px;
6642
+ width: 40px;
6643
+ height: 40px;
6644
+ border-radius: 20px;
6645
+ }
6646
+
6647
+ /* Selected / :active: pill behind full step row — wins over hover */
6648
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive:active::before,
6649
+ .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']::before {
6650
+ left: -4px;
6651
+ right: -8px;
6652
+ top: -4px;
6653
+ bottom: -4px;
6654
+ width: auto;
6655
+ height: auto;
6656
+ border-radius: 20px;
6657
+ }
6658
+
6659
+ /* Selected steps without interactive class still show the pill */
6660
+ .muka-progress-tracker--vertical .muka-progress-tracker__step[data-selected='true']:not(.muka-progress-tracker__step--interactive)::before {
6661
+ content: '';
6662
+ position: absolute;
6663
+ left: -4px;
6664
+ right: -8px;
6665
+ top: -4px;
6666
+ bottom: -4px;
6667
+ background-color: var(--color-surface-level1);
6668
+ border-radius: 20px;
6669
+ pointer-events: none;
6670
+ z-index: 0;
6671
+ }
6672
+
6673
+ /* Connector stays behind indicators (indicator-col is z-index 1) */
6674
+ .muka-progress-tracker--vertical .muka-progress-tracker__connector {
6675
+ z-index: 0;
6676
+ }
6677
+
6678
+
6679
+ /* ProgressAccordeon */
6680
+ /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
6681
+
6682
+ /* ─── Root ──────────────────────────────────────────────── */
6683
+ .muka-progress-accordeon {
6684
+ container-type: inline-size;
6685
+ display: flex;
6686
+ flex-direction: column;
6687
+ align-items: stretch;
6688
+ width: 100%;
6689
+ /* Top padding provides the vertical rhythm between stacked steps */
6690
+ padding-top: var(--spacing-8);
6691
+ }
6692
+
6693
+ /* Per-state gap: content-bearing steps are tighter, header-only steps looser */
6694
+ .muka-progress-accordeon--current,
6695
+ .muka-progress-accordeon--past.muka-progress-accordeon--expanded {
6696
+ gap: var(--spacing-6);
6697
+ }
6698
+
6699
+ .muka-progress-accordeon--upcoming,
6700
+ .muka-progress-accordeon--past.muka-progress-accordeon--collapsed {
6701
+ gap: var(--spacing-8);
6702
+ }
6703
+
6704
+ /* Past steps group header + slot. The header↔content gap lives inside the
6705
+ collapsing slot (as padding-top) so it collapses with the content, so the
6706
+ body gap itself is 0. */
6426
6707
  .muka-progress-accordeon__body {
6427
6708
  display: flex;
6428
6709
  flex-direction: column;
@@ -7427,14 +7708,16 @@ body {
7427
7708
  /* ─── Content Container ──────────────────────────────────────────────────── */
7428
7709
 
7429
7710
  .muka-menu__content {
7711
+ display: flex;
7712
+ flex-direction: column;
7430
7713
  min-width: var(--menu-content-min-width);
7431
7714
  max-height: var(--menu-content-max-height);
7432
- overflow-y: auto;
7715
+ overflow: hidden;
7433
7716
  background-color: var(--menu-content-color-background);
7434
7717
  border: var(--menu-content-border-width) solid var(--menu-content-color-border);
7435
7718
  border-radius: var(--menu-content-border-radius);
7436
7719
  box-shadow: var(--menu-content-shadow);
7437
- padding: var(--menu-content-padding);
7720
+ padding: 0;
7438
7721
  z-index: 50;
7439
7722
 
7440
7723
  /* Animation */
@@ -7442,6 +7725,132 @@ body {
7442
7725
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
7443
7726
  }
7444
7727
 
7728
+ .muka-menu__body {
7729
+ display: flex;
7730
+ flex: 1 1 auto;
7731
+ min-height: 0;
7732
+ align-items: stretch;
7733
+ width: 100%;
7734
+ }
7735
+
7736
+ .muka-menu__viewport {
7737
+ flex: 1 1 auto;
7738
+ min-width: 0;
7739
+ min-height: 0;
7740
+ overflow-y: auto;
7741
+ padding: var(--menu-content-padding);
7742
+ }
7743
+
7744
+ .muka-menu__content--scrollbar .muka-menu__viewport {
7745
+ /* Custom scrollbar owns the chrome; hide native track */
7746
+ scrollbar-width: none;
7747
+ }
7748
+
7749
+ .muka-menu__content--scrollbar .muka-menu__viewport::-webkit-scrollbar {
7750
+ display: none;
7751
+ }
7752
+
7753
+ /* ─── Search header ──────────────────────────────────────────────────────── */
7754
+
7755
+ .muka-menu__search {
7756
+ display: flex;
7757
+ align-items: center;
7758
+ flex-shrink: 0;
7759
+ /* Figma dropdown filter header: 48px, 8px inset, 32px icon slots. */
7760
+ height: var(--input-field-height-lg, 3rem);
7761
+ padding: 0 var(--spacing-2);
7762
+ border-bottom: var(--border-width-regular) solid var(--color-border-default);
7763
+ }
7764
+
7765
+ .muka-menu__search--sm {
7766
+ height: calc(var(--size-xl, 1.5rem) + var(--spacing-2) * 2);
7767
+ }
7768
+
7769
+ .muka-menu__search-icon,
7770
+ .muka-menu__search-clear {
7771
+ display: flex;
7772
+ align-items: center;
7773
+ justify-content: center;
7774
+ flex-shrink: 0;
7775
+ width: var(--size-2xl, 2rem);
7776
+ height: var(--size-2xl, 2rem);
7777
+ color: var(--color-text-subtle-default);
7778
+ }
7779
+
7780
+ .muka-menu__search-icon .muka-icon,
7781
+ .muka-menu__search-clear .muka-icon,
7782
+ .muka-menu__search-clear:hover,
7783
+ .muka-menu__search-clear:hover .muka-icon {
7784
+ color: var(--color-text-subtle-default);
7785
+ }
7786
+
7787
+ .muka-menu__search--sm .muka-menu__search-icon,
7788
+ .muka-menu__search--sm .muka-menu__search-clear {
7789
+ width: var(--size-xl, 1.5rem);
7790
+ height: var(--size-xl, 1.5rem);
7791
+ }
7792
+
7793
+ .muka-menu__search-input {
7794
+ flex: 1 1 auto;
7795
+ min-width: 0;
7796
+ border: none;
7797
+ outline: none;
7798
+ background: transparent;
7799
+ padding: 0 var(--spacing-1);
7800
+ font-family: var(--text-input-md-fontFamily);
7801
+ font-size: var(--text-input-md-fontSize);
7802
+ font-weight: var(--text-input-md-fontWeight);
7803
+ line-height: var(--text-input-md-lineHeight);
7804
+ color: var(--color-text-default-default);
7805
+ }
7806
+
7807
+ .muka-menu__search--sm .muka-menu__search-input {
7808
+ font-family: var(--text-input-sm-fontFamily);
7809
+ font-size: var(--text-input-sm-fontSize);
7810
+ font-weight: var(--text-input-sm-fontWeight);
7811
+ line-height: var(--text-input-sm-lineHeight);
7812
+ }
7813
+
7814
+ .muka-menu__search-input::placeholder {
7815
+ color: var(--color-text-subtle-default);
7816
+ }
7817
+
7818
+ .muka-menu__search-input::-webkit-search-cancel-button,
7819
+ .muka-menu__search-input::-webkit-search-decoration {
7820
+ -webkit-appearance: none;
7821
+ appearance: none;
7822
+ }
7823
+
7824
+ .muka-menu__empty {
7825
+ display: flex;
7826
+ align-items: center;
7827
+ min-height: var(--menu-item-height);
7828
+ padding: var(--menu-item-padding-y) var(--menu-item-padding-x);
7829
+ color: var(--color-text-subtle-default);
7830
+ font-family: var(--text-input-md-fontFamily);
7831
+ font-size: var(--text-input-md-fontSize);
7832
+ font-weight: var(--text-input-md-fontWeight);
7833
+ line-height: var(--text-input-md-lineHeight);
7834
+ pointer-events: none;
7835
+ user-select: none;
7836
+ }
7837
+
7838
+ .muka-menu__search-clear {
7839
+ padding: 0;
7840
+ border: none;
7841
+ background: transparent;
7842
+ cursor: pointer;
7843
+ }
7844
+
7845
+ .muka-menu__match {
7846
+ font-weight: var(--font-weight-bold, 700);
7847
+ }
7848
+
7849
+ .muka-menu__content--scrollbar {
7850
+ height: var(--menu-content-scroll-height, 20.625rem);
7851
+ max-height: var(--menu-content-scroll-height, 20.625rem);
7852
+ }
7853
+
7445
7854
  .muka-menu__content[data-state='open'] {
7446
7855
  animation-name: muka-menu-fade-in;
7447
7856
  }
@@ -7469,22 +7878,26 @@ body {
7469
7878
  /* ─── Menu Item ──────────────────────────────────────────────────────────── */
7470
7879
 
7471
7880
  .muka-menu__item {
7881
+ position: relative;
7472
7882
  display: flex;
7473
7883
  align-items: center;
7474
7884
  gap: var(--menu-item-gap);
7475
7885
  min-height: var(--menu-item-height);
7476
- padding: var(--menu-item-padding-y) var(--menu-item-padding-x);
7886
+ /* Right gutter always reserved for floating trailers (enter / check). */
7887
+ padding: var(--menu-item-padding-y) var(--menu-item-padding-right) var(--menu-item-padding-y)
7888
+ var(--menu-item-padding-x);
7477
7889
  border-radius: var(--menu-item-border-radius);
7478
7890
  cursor: pointer;
7479
7891
  user-select: none;
7480
7892
  outline: none;
7481
- font-family: var(--text-label-md-regular-font-family);
7482
- font-size: var(--text-label-md-regular-font-size);
7483
- font-weight: var(--text-label-md-regular-font-weight);
7484
- line-height: var(--text-label-md-regular-line-height);
7893
+ font-family: var(--text-label-md-regular-fontFamily);
7894
+ font-size: var(--text-label-md-regular-fontSize);
7895
+ font-weight: var(--text-label-md-regular-fontWeight);
7896
+ line-height: var(--text-label-md-regular-lineHeight);
7485
7897
  color: var(--menu-item-color-default-foreground);
7486
7898
  background-color: var(--menu-item-color-default-background);
7487
7899
  transition: background-color 100ms ease, color 100ms ease;
7900
+ white-space: nowrap;
7488
7901
  }
7489
7902
 
7490
7903
  .muka-menu__item:hover,
@@ -7550,25 +7963,55 @@ body {
7550
7963
  }
7551
7964
 
7552
7965
  .muka-menu__item-label {
7553
- flex: 1;
7966
+ flex: 1 1 auto;
7554
7967
  min-width: 0;
7968
+ white-space: nowrap;
7969
+ }
7970
+
7971
+ /* Shortcut trailers replace icons and sit with an 8px right inset. */
7972
+ .muka-menu__item--has-shortcut {
7973
+ padding-right: var(--spacing-2);
7555
7974
  }
7556
7975
 
7557
7976
  .muka-menu__item-shortcut {
7558
7977
  flex-shrink: 0;
7559
7978
  margin-left: auto;
7560
7979
  padding-left: var(--menu-item-gap);
7561
- font-size: var(--text-label-sm-regular-font-size);
7562
- color: var(--menu-shortcut-color);
7563
- opacity: 0.7;
7980
+ font-family: var(--text-label-sm-regular-fontFamily);
7981
+ font-size: var(--text-label-sm-regular-fontSize);
7982
+ font-weight: var(--text-label-sm-regular-fontWeight);
7983
+ line-height: var(--text-label-sm-regular-lineHeight);
7984
+ color: var(--color-text-muted-default);
7985
+ white-space: nowrap;
7986
+ }
7987
+
7988
+ .muka-menu__item-hint {
7989
+ /* Figma: trailer sits with 8px margin top / right / bottom; 24px glyph centered inside. */
7990
+ position: absolute;
7991
+ top: var(--spacing-2);
7992
+ right: var(--spacing-2);
7993
+ bottom: var(--spacing-2);
7994
+ display: none;
7995
+ align-items: center;
7996
+ justify-content: center;
7997
+ width: var(--icon-size-default, 1.5rem);
7998
+ color: var(--color-text-muted-default);
7999
+ pointer-events: none;
8000
+ }
8001
+
8002
+ .muka-menu__item--hint-enter[data-highlighted] .muka-menu__item-hint {
8003
+ display: flex;
7564
8004
  }
7565
8005
 
7566
8006
  .muka-menu__item-chevron {
8007
+ position: absolute;
8008
+ top: var(--spacing-2);
8009
+ right: var(--spacing-2);
8010
+ bottom: var(--spacing-2);
7567
8011
  display: flex;
7568
8012
  align-items: center;
7569
8013
  justify-content: center;
7570
- flex-shrink: 0;
7571
- margin-left: auto;
8014
+ width: var(--icon-size-default, 1.5rem);
7572
8015
  color: var(--menu-shortcut-color);
7573
8016
  }
7574
8017
 
@@ -7589,6 +8032,40 @@ body {
7589
8032
  padding-left: var(--menu-item-padding-x);
7590
8033
  }
7591
8034
 
8035
+ .muka-menu__item--checkbox-trailing,
8036
+ .muka-menu__item--radio-check {
8037
+ /* Same reserved right gutter as default items — trailing indicator floats. */
8038
+ padding-right: var(--menu-item-padding-right);
8039
+ }
8040
+
8041
+ .muka-menu__item--radio-check[data-state='checked'] {
8042
+ background-color: var(--menu-item-color-selected-background);
8043
+ }
8044
+
8045
+ .muka-menu__item-indicator--trailing {
8046
+ /* Match enter-hint trailer: 8px inset, 24px box (override leading indicator size). */
8047
+ position: absolute;
8048
+ top: var(--spacing-2);
8049
+ right: var(--spacing-2);
8050
+ bottom: var(--spacing-2);
8051
+ display: flex;
8052
+ align-items: center;
8053
+ justify-content: center;
8054
+ width: var(--icon-size-default, 1.5rem);
8055
+ height: auto;
8056
+ max-height: none;
8057
+ transform: none;
8058
+ color: var(--color-text-subtle-default);
8059
+ }
8060
+
8061
+ .muka-menu__item-indicator--trailing > [data-state] {
8062
+ display: flex;
8063
+ align-items: center;
8064
+ justify-content: center;
8065
+ width: 100%;
8066
+ height: 100%;
8067
+ }
8068
+
7592
8069
  .muka-menu__radio-dot {
7593
8070
  width: 8px;
7594
8071
  height: 8px;
@@ -7612,10 +8089,10 @@ body {
7612
8089
 
7613
8090
  .muka-menu__group-label {
7614
8091
  padding: var(--menu-group-label-padding-y) var(--menu-group-label-padding-x);
7615
- font-family: var(--text-label-sm-semibold-font-family);
7616
- font-size: var(--text-label-sm-semibold-font-size);
7617
- font-weight: var(--text-label-sm-semibold-font-weight);
7618
- line-height: var(--text-label-sm-semibold-line-height);
8092
+ font-family: var(--text-label-sm-semibold-fontFamily);
8093
+ font-size: var(--text-label-sm-semibold-fontSize);
8094
+ font-weight: var(--text-label-sm-semibold-fontWeight);
8095
+ line-height: var(--text-label-sm-semibold-lineHeight);
7619
8096
  color: var(--menu-group-label-color);
7620
8097
  text-transform: uppercase;
7621
8098
  letter-spacing: 0.05em;
@@ -8298,27 +8775,58 @@ li.muka-listitem {
8298
8775
  color: var(--input-field-color-disabled-foreground);
8299
8776
  }
8300
8777
 
8301
- /* Icons */
8778
+ /* Icons — Figma inputfield content: sm 16px, md 20px, lg 24px. */
8302
8779
  .muka-input__icon {
8303
8780
  display: inline-flex;
8304
8781
  align-items: center;
8782
+ justify-content: center;
8305
8783
  flex-shrink: 0;
8306
8784
  color: var(--color-text-subtle-default);
8307
- width: var(--icon-size-default);
8308
- height: var(--icon-size-default);
8785
+ width: var(--icon-size-sm);
8786
+ height: var(--icon-size-sm);
8309
8787
  }
8310
8788
 
8311
8789
  .muka-input__field--sm .muka-input__icon {
8312
- width: var(--icon-size-sm);
8313
- height: var(--icon-size-sm);
8790
+ width: var(--icon-size-xs);
8791
+ height: var(--icon-size-xs);
8314
8792
  }
8315
8793
 
8316
8794
  .muka-input__field--lg .muka-input__icon {
8317
- width: var(--icon-size-lg);
8318
- height: var(--icon-size-lg);
8795
+ width: var(--icon-size-default);
8796
+ height: var(--icon-size-default);
8797
+ }
8798
+
8799
+ .muka-input__clear {
8800
+ display: inline-flex;
8801
+ align-items: center;
8802
+ justify-content: center;
8803
+ flex-shrink: 0;
8804
+ width: var(--size-2xl, 2rem);
8805
+ height: var(--size-2xl, 2rem);
8806
+ padding: 0;
8807
+ border: none;
8808
+ background: transparent;
8809
+ color: var(--color-text-subtle-default);
8810
+ cursor: pointer;
8811
+ }
8812
+
8813
+ .muka-input__field--sm .muka-input__clear {
8814
+ width: var(--size-xl, 1.5rem);
8815
+ height: var(--size-xl, 1.5rem);
8816
+ }
8817
+
8818
+ /* Icon sets its own color; pin the glyph to text subtle, including hover. */
8819
+ .muka-input__icon .muka-icon,
8820
+ .muka-input__clear .muka-icon,
8821
+ .muka-input__clear:hover,
8822
+ .muka-input__clear:hover .muka-icon {
8823
+ color: var(--color-text-subtle-default);
8319
8824
  }
8320
8825
 
8321
- .muka-input__field--disabled .muka-input__icon {
8826
+ .muka-input__field--disabled .muka-input__icon,
8827
+ .muka-input__field--disabled .muka-input__icon .muka-icon,
8828
+ .muka-input__field--disabled .muka-input__clear,
8829
+ .muka-input__field--disabled .muka-input__clear .muka-icon {
8322
8830
  color: var(--input-field-color-disabled-foreground);
8323
8831
  }
8324
8832
 
@@ -8327,6 +8835,12 @@ li.muka-listitem {
8327
8835
  height: 100%;
8328
8836
  }
8329
8837
 
8838
+ .muka-input__native::-webkit-search-cancel-button,
8839
+ .muka-input__native::-webkit-search-decoration {
8840
+ -webkit-appearance: none;
8841
+ appearance: none;
8842
+ }
8843
+
8330
8844
  /* Helper text */
8331
8845
  .muka-input__helper {
8332
8846
  font-family: var(--text-label-sm-regular-fontFamily);
@@ -8938,53 +9452,281 @@ li.muka-listitem {
8938
9452
  line-height: var(--text-body-sm-regular-lineHeight);
8939
9453
  }
8940
9454
 
8941
- .muka-emptystate--md .muka-emptystate__description {
8942
- font-family: var(--text-body-base-regular-fontFamily);
8943
- font-weight: var(--text-body-base-regular-fontWeight);
8944
- font-size: var(--text-body-base-regular-fontSize);
8945
- line-height: var(--text-body-base-regular-lineHeight);
9455
+ .muka-emptystate--md .muka-emptystate__description {
9456
+ font-family: var(--text-body-base-regular-fontFamily);
9457
+ font-weight: var(--text-body-base-regular-fontWeight);
9458
+ font-size: var(--text-body-base-regular-fontSize);
9459
+ line-height: var(--text-body-base-regular-lineHeight);
9460
+ }
9461
+
9462
+ .muka-emptystate--lg .muka-emptystate__description {
9463
+ font-family: var(--text-body-lg-regular-fontFamily);
9464
+ font-weight: var(--text-body-lg-regular-fontWeight);
9465
+ font-size: var(--text-body-lg-regular-fontSize);
9466
+ line-height: var(--text-body-lg-regular-lineHeight);
9467
+ }
9468
+
9469
+ /* Actions */
9470
+ .muka-emptystate__actions {
9471
+ display: flex;
9472
+ gap: var(--emptystate-actions-gap);
9473
+ margin-top: var(--emptystate-actions-marginTop);
9474
+ flex-wrap: wrap;
9475
+ justify-content: center;
9476
+ }
9477
+
9478
+ .muka-emptystate--left .muka-emptystate__actions {
9479
+ justify-content: flex-start;
9480
+ }
9481
+
9482
+
9483
+ /* EmojiPicker */
9484
+ /* EmojiPicker Component Styles */
9485
+
9486
+ .muka-emoji-picker {
9487
+ display: grid;
9488
+ grid-template-columns: repeat(8, 1fr);
9489
+ gap: var(--spacing-1);
9490
+ padding: var(--spacing-2);
9491
+ max-height: 12rem;
9492
+ overflow-y: auto;
9493
+ background: var(--color-surface-level2);
9494
+ border: var(--border-width-regular, 1px) solid var(--color-border-default);
9495
+ border-radius: var(--radius-lg);
9496
+ box-shadow: var(--menu-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.12));
9497
+ }
9498
+
9499
+ .muka-emoji-picker__glyph {
9500
+ font-size: 1.25rem;
9501
+ line-height: 1;
9502
+ }
9503
+
9504
+
9505
+ /* DropdownSelect */
9506
+ /* DropdownSelect — Figma Dropdown Menu form field (Menu + chips) */
9507
+
9508
+ .muka-dropdown-select {
9509
+ display: inline-flex;
9510
+ flex-direction: column;
9511
+ gap: var(--spacing-2);
9512
+ min-width: 200px;
9513
+ }
9514
+
9515
+ .muka-dropdown-select--full-width {
9516
+ width: 100%;
9517
+ }
9518
+
9519
+ .muka-dropdown-select__label {
9520
+ color: var(--color-text-default-default);
9521
+ cursor: pointer;
9522
+ }
9523
+
9524
+ .muka-dropdown-select__label--sm {
9525
+ font-family: var(--text-label-sm-semibold-fontFamily);
9526
+ font-weight: var(--text-label-sm-semibold-fontWeight);
9527
+ font-size: var(--text-label-sm-semibold-fontSize);
9528
+ line-height: var(--text-label-sm-semibold-lineHeight);
9529
+ }
9530
+
9531
+ .muka-dropdown-select__label--md {
9532
+ font-family: var(--text-label-md-semibold-fontFamily);
9533
+ font-weight: var(--text-label-md-semibold-fontWeight);
9534
+ font-size: var(--text-label-md-semibold-fontSize);
9535
+ line-height: var(--text-label-md-semibold-lineHeight);
9536
+ }
9537
+
9538
+ .muka-dropdown-select__label--lg {
9539
+ font-family: var(--text-label-lg-semibold-fontFamily);
9540
+ font-weight: var(--text-label-lg-semibold-fontWeight);
9541
+ font-size: var(--text-label-lg-semibold-fontSize);
9542
+ line-height: var(--text-label-lg-semibold-lineHeight);
9543
+ }
9544
+
9545
+ .muka-dropdown-select__required {
9546
+ color: var(--color-state-error-foreground);
9547
+ }
9548
+
9549
+ .muka-dropdown-select__field {
9550
+ display: flex;
9551
+ align-items: center;
9552
+ gap: var(--spacing-1);
9553
+ width: 100%;
9554
+ position: relative;
9555
+ box-sizing: border-box;
9556
+ background-color: var(--input-field-color-default-background);
9557
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
9558
+ border-radius: var(--input-field-radius-lg);
9559
+ padding: var(--spacing-2);
9560
+ padding-right: calc(var(--spacing-2) + var(--size-2xl, 2rem));
9561
+ text-align: left;
9562
+ cursor: pointer;
9563
+ color: var(--color-text-default-default);
9564
+ transition: border-color 0.12s ease, background-color 0.12s ease;
9565
+ -webkit-tap-highlight-color: transparent;
9566
+ }
9567
+
9568
+ .muka-dropdown-select__field::after {
9569
+ content: '';
9570
+ position: absolute;
9571
+ inset: 0;
9572
+ border-radius: inherit;
9573
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
9574
+ pointer-events: none;
9575
+ }
9576
+
9577
+ .muka-dropdown-select__field--sm {
9578
+ min-height: var(--input-field-height-sm);
9579
+ border-radius: var(--input-field-radius-sm);
9580
+ padding-right: calc(var(--spacing-2) + var(--size-xl, 1.5rem));
9581
+ }
9582
+
9583
+ .muka-dropdown-select__field--md {
9584
+ min-height: var(--input-field-height-default);
9585
+ border-radius: var(--input-field-radius-md);
9586
+ }
9587
+
9588
+ .muka-dropdown-select__field--lg {
9589
+ min-height: var(--input-field-height-lg);
9590
+ border-radius: var(--input-field-radius-lg);
9591
+ }
9592
+
9593
+ .muka-dropdown-select__field--focused:not(.muka-dropdown-select__field--disabled) {
9594
+ border-width: var(--border-width-bold);
9595
+ border-color: var(--input-field-color-focus-border);
9596
+ background-color: var(--input-field-color-focus-background);
9597
+ padding: calc(var(--spacing-2) - 1px);
9598
+ padding-right: calc(var(--spacing-2) + var(--size-2xl, 2rem) - 1px);
9599
+ }
9600
+
9601
+ .muka-dropdown-select__field--sm.muka-dropdown-select__field--focused:not(.muka-dropdown-select__field--disabled) {
9602
+ padding-right: calc(var(--spacing-2) + var(--size-xl, 1.5rem) - 1px);
9603
+ }
9604
+
9605
+ .muka-dropdown-select__field--error:not(.muka-dropdown-select__field--disabled) {
9606
+ border-color: var(--color-state-error-border, var(--color-state-error-foreground));
9607
+ }
9608
+
9609
+ .muka-dropdown-select__field--disabled {
9610
+ opacity: 0.5;
9611
+ cursor: not-allowed;
9612
+ }
9613
+
9614
+ .muka-dropdown-select__content {
9615
+ position: relative;
9616
+ z-index: 1;
9617
+ display: flex;
9618
+ flex: 1 1 auto;
9619
+ min-width: 0;
9620
+ align-items: center;
9621
+ /* Let empty-field / value clicks reach the full-field MenuTrigger underneath. */
9622
+ pointer-events: none;
9623
+ }
9624
+
9625
+ .muka-dropdown-select__placeholder {
9626
+ color: var(--color-text-subtle-default);
9627
+ font-family: var(--text-label-md-regular-fontFamily);
9628
+ font-size: var(--text-label-md-regular-fontSize);
9629
+ font-weight: var(--text-label-md-regular-fontWeight);
9630
+ line-height: var(--text-label-md-regular-lineHeight);
9631
+ padding-inline: var(--spacing-1);
9632
+ }
9633
+
9634
+ .muka-dropdown-select__value {
9635
+ font-family: var(--text-label-md-regular-fontFamily);
9636
+ font-size: var(--text-label-md-regular-fontSize);
9637
+ font-weight: var(--text-label-md-regular-fontWeight);
9638
+ line-height: var(--text-label-md-regular-lineHeight);
9639
+ padding-inline: var(--spacing-1);
9640
+ white-space: nowrap;
9641
+ overflow: hidden;
9642
+ text-overflow: ellipsis;
9643
+ }
9644
+
9645
+ .muka-dropdown-select__chips {
9646
+ display: flex;
9647
+ flex: 1 1 auto;
9648
+ flex-wrap: wrap;
9649
+ gap: var(--spacing-2);
9650
+ align-items: flex-start;
9651
+ min-width: 0;
9652
+ /* Chip remove controls must remain clickable above the field hit target. */
9653
+ pointer-events: auto;
9654
+ }
9655
+
9656
+ .muka-dropdown-select__field--multiline {
9657
+ align-items: flex-start;
9658
+ min-height: 7rem;
9659
+ }
9660
+
9661
+ .muka-dropdown-select__menu-button {
9662
+ position: absolute;
9663
+ inset: 0;
9664
+ z-index: 0;
9665
+ display: inline-flex;
9666
+ align-items: center;
9667
+ justify-content: flex-end;
9668
+ width: auto;
9669
+ height: auto;
9670
+ padding: 0;
9671
+ padding-right: var(--spacing-2);
9672
+ border: none;
9673
+ border-radius: inherit;
9674
+ background: transparent;
9675
+ color: var(--color-text-subtle-default);
9676
+ cursor: pointer;
9677
+ }
9678
+
9679
+ .muka-dropdown-select__field--multiline .muka-dropdown-select__menu-button {
9680
+ align-items: flex-start;
9681
+ padding-top: calc(var(--spacing-2) + 8px);
8946
9682
  }
8947
9683
 
8948
- .muka-emptystate--lg .muka-emptystate__description {
8949
- font-family: var(--text-body-lg-regular-fontFamily);
8950
- font-weight: var(--text-body-lg-regular-fontWeight);
8951
- font-size: var(--text-body-lg-regular-fontSize);
8952
- line-height: var(--text-body-lg-regular-lineHeight);
9684
+ .muka-dropdown-select__chevron {
9685
+ display: inline-flex;
9686
+ align-items: center;
9687
+ justify-content: center;
9688
+ width: var(--size-2xl, 2rem);
9689
+ height: var(--size-2xl, 2rem);
9690
+ pointer-events: none;
9691
+ color: var(--color-text-subtle-default);
8953
9692
  }
8954
9693
 
8955
- /* Actions */
8956
- .muka-emptystate__actions {
8957
- display: flex;
8958
- gap: var(--emptystate-actions-gap);
8959
- margin-top: var(--emptystate-actions-marginTop);
8960
- flex-wrap: wrap;
8961
- justify-content: center;
9694
+ .muka-dropdown-select__chevron .muka-icon,
9695
+ .muka-dropdown-select__menu-button:hover .muka-dropdown-select__chevron,
9696
+ .muka-dropdown-select__menu-button:hover .muka-icon {
9697
+ color: var(--color-text-subtle-default);
8962
9698
  }
8963
9699
 
8964
- .muka-emptystate--left .muka-emptystate__actions {
8965
- justify-content: flex-start;
9700
+ .muka-dropdown-select__field--sm .muka-dropdown-select__chevron {
9701
+ width: var(--size-xl, 1.5rem);
9702
+ height: var(--size-xl, 1.5rem);
8966
9703
  }
8967
9704
 
9705
+ .muka-dropdown-select__menu-button:focus-visible {
9706
+ outline: 2px solid var(--color-border-focus, var(--color-action-default));
9707
+ outline-offset: 2px;
9708
+ }
8968
9709
 
8969
- /* EmojiPicker */
8970
- /* EmojiPicker Component Styles */
9710
+ .muka-dropdown-select__helper {
9711
+ margin: 0;
9712
+ color: var(--color-text-subtle-default);
9713
+ font-family: var(--text-label-sm-regular-fontFamily);
9714
+ font-size: var(--text-label-sm-regular-fontSize);
9715
+ font-weight: var(--text-label-sm-regular-fontWeight);
9716
+ line-height: var(--text-label-sm-regular-lineHeight);
9717
+ }
8971
9718
 
8972
- .muka-emoji-picker {
8973
- display: grid;
8974
- grid-template-columns: repeat(8, 1fr);
8975
- gap: var(--spacing-1);
8976
- padding: var(--spacing-2);
8977
- max-height: 12rem;
8978
- overflow-y: auto;
8979
- background: var(--color-surface-level2);
8980
- border: var(--border-width-regular, 1px) solid var(--color-border-default);
8981
- border-radius: var(--radius-lg);
8982
- box-shadow: var(--menu-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.12));
9719
+ .muka-dropdown-select__error {
9720
+ margin: 0;
9721
+ color: var(--color-state-error-foreground);
9722
+ font-family: var(--text-label-sm-regular-fontFamily);
9723
+ font-size: var(--text-label-sm-regular-fontSize);
9724
+ font-weight: var(--text-label-sm-regular-fontWeight);
9725
+ line-height: var(--text-label-sm-regular-lineHeight);
8983
9726
  }
8984
9727
 
8985
- .muka-emoji-picker__glyph {
8986
- font-size: 1.25rem;
8987
- line-height: 1;
9728
+ .muka-dropdown-select__menu {
9729
+ /* Uses Menu min-width (280px); grows with long labels; left-aligned to the field. */
8988
9730
  }
8989
9731
 
8990
9732
 
@@ -10310,6 +11052,126 @@ li.muka-listitem {
10310
11052
  }
10311
11053
 
10312
11054
 
11055
+ /* ContextSelect */
11056
+ /* ContextSelect — split label (navigate) + chevron menu button (switch)
11057
+ *
11058
+ * Figma (5623:8651 / 5631:9344):
11059
+ * - Root: gap spacing/1 (4px) between label group and chevron
11060
+ * - Label group: gap spacing/2 (8px) icon↔label, pl spacing/2 (8px)
11061
+ * - Icons: 16px (icon.size.xs)
11062
+ */
11063
+
11064
+ .muka-context-select {
11065
+ display: inline-flex;
11066
+ position: relative;
11067
+ align-items: flex-start;
11068
+ gap: var(--spacing-1, 4px);
11069
+ }
11070
+
11071
+ .muka-context-select__label-group {
11072
+ display: inline-flex;
11073
+ align-items: center;
11074
+ gap: var(--spacing-2, 8px);
11075
+ height: var(--size-2xl, 32px);
11076
+ padding-left: var(--spacing-2, 8px);
11077
+ padding-right: 0;
11078
+ border-radius: var(--border-radius-lg);
11079
+ color: var(--color-text-default-default);
11080
+ text-decoration: none;
11081
+ border: none;
11082
+ background: transparent;
11083
+ font: inherit;
11084
+ cursor: default;
11085
+ }
11086
+
11087
+ .muka-context-select__label-group--link,
11088
+ .muka-context-select__label-group--button {
11089
+ cursor: pointer;
11090
+ }
11091
+
11092
+ .muka-context-select__label-group--link:hover .muka-context-select__label,
11093
+ .muka-context-select__label-group--button:hover .muka-context-select__label,
11094
+ .muka-context-select__label-group--link:focus-visible .muka-context-select__label,
11095
+ .muka-context-select__label-group--button:focus-visible .muka-context-select__label {
11096
+ text-decoration: underline;
11097
+ text-underline-offset: 2px;
11098
+ }
11099
+
11100
+ .muka-context-select__label-group--link:focus-visible,
11101
+ .muka-context-select__label-group--button:focus-visible {
11102
+ outline: 2px solid var(--color-border-focus);
11103
+ outline-offset: 2px;
11104
+ }
11105
+
11106
+ .muka-context-select__label-group--button:disabled,
11107
+ .muka-context-select__label-group--link[aria-disabled='true'] {
11108
+ cursor: not-allowed;
11109
+ opacity: 0.5;
11110
+ pointer-events: none;
11111
+ }
11112
+
11113
+ .muka-context-select__icon {
11114
+ display: inline-flex;
11115
+ flex-shrink: 0;
11116
+ align-items: center;
11117
+ justify-content: center;
11118
+ width: var(--icon-size-xs, 16px);
11119
+ height: var(--icon-size-xs, 16px);
11120
+ color: var(--color-text-default-default);
11121
+ }
11122
+
11123
+ .muka-context-select__icon .muka-icon {
11124
+ width: var(--icon-size-xs, 16px);
11125
+ height: var(--icon-size-xs, 16px);
11126
+ }
11127
+
11128
+ .muka-context-select__label {
11129
+ font-family: var(--text-label-sm-regular-font-family);
11130
+ font-size: var(--text-label-sm-regular-font-size);
11131
+ font-weight: var(--text-label-sm-regular-font-weight);
11132
+ line-height: var(--text-label-sm-regular-line-height);
11133
+ white-space: nowrap;
11134
+ }
11135
+
11136
+ .muka-context-select__menu-button {
11137
+ position: relative;
11138
+ display: inline-flex;
11139
+ flex-shrink: 0;
11140
+ align-items: center;
11141
+ justify-content: center;
11142
+ width: var(--size-2xl, 32px);
11143
+ height: var(--size-2xl, 32px);
11144
+ margin: 0;
11145
+ padding: 0;
11146
+ border: none;
11147
+ border-radius: var(--border-radius-lg);
11148
+ background: transparent;
11149
+ color: var(--color-text-default-default);
11150
+ cursor: pointer;
11151
+ }
11152
+
11153
+ .muka-context-select__menu-button:hover,
11154
+ .muka-context-select__menu-button:focus-visible,
11155
+ .muka-context-select__menu-button[data-state='open'],
11156
+ .muka-context-select--expanded .muka-context-select__menu-button {
11157
+ border: var(--border-width-regular) solid var(--color-border-default);
11158
+ }
11159
+
11160
+ .muka-context-select__menu-button:focus-visible {
11161
+ outline: 2px solid var(--color-border-focus);
11162
+ outline-offset: 2px;
11163
+ }
11164
+
11165
+ .muka-context-select__menu-button:disabled {
11166
+ cursor: not-allowed;
11167
+ opacity: 0.5;
11168
+ }
11169
+
11170
+ .muka-context-select__content {
11171
+ min-width: 17.5rem;
11172
+ }
11173
+
11174
+
10313
11175
  /* Container */
10314
11176
  /* Container Component - Layout tokens (container.max-width, container.gap) */
10315
11177
 
@@ -10362,191 +11224,175 @@ li.muka-listitem {
10362
11224
 
10363
11225
 
10364
11226
  /* Combobox */
10365
- /* Combobox Component Styles */
11227
+ /* Combobox — Figma Input Combobox (free-input chips + suggestion Menu) */
10366
11228
 
10367
- /* ─── Trigger group (positioning context for the trailing controls) ── */
11229
+ .muka-combobox {
11230
+ display: inline-flex;
11231
+ flex-direction: column;
11232
+ gap: var(--spacing-2);
11233
+ min-width: 200px;
11234
+ }
10368
11235
 
10369
- /*
10370
- * The clear control is a sibling of the trigger, not a child (a <button> may
10371
- * not contain interactive content), so it is overlaid on the trigger's trailing
10372
- * padding. The trigger reserves that space with padding-right below.
10373
- */
10374
- .muka-combobox__trigger-group {
10375
- position: relative;
10376
- display: block;
11236
+ .muka-combobox--full-width {
10377
11237
  width: 100%;
10378
11238
  }
10379
11239
 
10380
- /* ─── Trigger (looks like an Input field, behaves like a button) ── */
11240
+ .muka-combobox__label {
11241
+ color: var(--color-text-default-default);
11242
+ cursor: pointer;
11243
+ }
10381
11244
 
10382
- .muka-combobox {
10383
- display: inline-flex;
11245
+ .muka-combobox__label--sm {
11246
+ font-family: var(--text-label-sm-semibold-fontFamily);
11247
+ font-weight: var(--text-label-sm-semibold-fontWeight);
11248
+ font-size: var(--text-label-sm-semibold-fontSize);
11249
+ line-height: var(--text-label-sm-semibold-lineHeight);
11250
+ }
11251
+
11252
+ .muka-combobox__label--md {
11253
+ font-family: var(--text-label-md-semibold-fontFamily);
11254
+ font-weight: var(--text-label-md-semibold-fontWeight);
11255
+ font-size: var(--text-label-md-semibold-fontSize);
11256
+ line-height: var(--text-label-md-semibold-lineHeight);
11257
+ }
11258
+
11259
+ .muka-combobox__label--lg {
11260
+ font-family: var(--text-label-lg-semibold-fontFamily);
11261
+ font-weight: var(--text-label-lg-semibold-fontWeight);
11262
+ font-size: var(--text-label-lg-semibold-fontSize);
11263
+ line-height: var(--text-label-lg-semibold-lineHeight);
11264
+ }
11265
+
11266
+ .muka-combobox__field {
11267
+ display: flex;
10384
11268
  align-items: center;
10385
- gap: var(--spacing-2);
10386
11269
  width: 100%;
10387
- padding: 0 var(--muka-combobox-trailing-space) 0 var(--input-field-padding-x);
11270
+ position: relative;
11271
+ isolation: isolate;
11272
+ box-sizing: border-box;
10388
11273
  background-color: var(--input-field-color-default-background);
10389
11274
  border: var(--border-width-regular) solid var(--input-field-color-default-border);
10390
- color: var(--color-text-default-default);
10391
- text-align: left;
10392
- cursor: pointer;
10393
- font-family: var(--text-body-md-regular-fontFamily);
10394
- font-weight: var(--text-body-md-regular-fontWeight);
10395
- font-size: var(--text-body-md-regular-fontSize);
10396
- line-height: var(--text-body-md-regular-lineHeight);
10397
- -webkit-tap-highlight-color: transparent;
10398
- transition: border-color 0.12s ease;
10399
-
10400
- /* Room for the chevron overlaid on the trailing edge. */
10401
- --muka-combobox-trailing-space: calc(
10402
- var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2)
10403
- );
11275
+ border-radius: var(--input-field-radius-lg);
11276
+ padding: var(--spacing-2);
11277
+ cursor: text;
11278
+ transition: border-color 0.12s ease, background-color 0.12s ease;
10404
11279
  }
10405
11280
 
10406
- /* …and for the clear button next to it, when one is rendered. */
10407
- .muka-combobox--clearable {
10408
- --muka-combobox-trailing-space: calc(
10409
- var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2) +
10410
- var(--icon-size-xs) + var(--spacing-1) * 2 + var(--spacing-2)
10411
- );
11281
+ .muka-combobox__field::after {
11282
+ content: '';
11283
+ position: absolute;
11284
+ inset: 0;
11285
+ border-radius: inherit;
11286
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
11287
+ pointer-events: none;
10412
11288
  }
10413
11289
 
10414
- .muka-combobox--sm {
11290
+ .muka-combobox__field--sm {
10415
11291
  min-height: var(--input-field-height-sm);
10416
11292
  border-radius: var(--input-field-radius-sm);
10417
11293
  }
10418
11294
 
10419
- .muka-combobox--md {
11295
+ .muka-combobox__field--md {
10420
11296
  min-height: var(--input-field-height-default);
10421
11297
  border-radius: var(--input-field-radius-md);
10422
11298
  }
10423
11299
 
10424
- .muka-combobox--lg {
11300
+ .muka-combobox__field--lg {
10425
11301
  min-height: var(--input-field-height-lg);
10426
11302
  border-radius: var(--input-field-radius-lg);
10427
11303
  }
10428
11304
 
10429
- .muka-combobox:hover:not(:disabled) {
10430
- border-color: var(--input-field-color-hover-border, var(--input-field-color-default-border));
11305
+ .muka-combobox__field--focused:not(.muka-combobox__field--disabled) {
11306
+ border-width: var(--border-width-bold);
11307
+ border-color: var(--input-field-color-focus-border);
11308
+ background-color: var(--input-field-color-focus-background);
11309
+ padding: calc(var(--spacing-2) - 1px);
10431
11310
  }
10432
11311
 
10433
- .muka-combobox:focus-visible {
10434
- outline: none;
10435
- border-color: var(--input-field-color-focus-border, var(--color-action-default));
11312
+ .muka-combobox__field--error:not(.muka-combobox__field--disabled) {
11313
+ border-color: var(--color-state-error-border, var(--color-state-error-foreground));
10436
11314
  }
10437
11315
 
10438
- .muka-combobox--disabled,
10439
- .muka-combobox:disabled {
11316
+ .muka-combobox__field--disabled {
10440
11317
  opacity: 0.5;
10441
11318
  cursor: not-allowed;
10442
11319
  }
10443
11320
 
10444
- .muka-combobox--placeholder .muka-combobox__label {
10445
- color: var(--color-text-subtle-default);
10446
- }
10447
-
10448
- .muka-combobox__leading {
10449
- display: inline-flex;
10450
- align-items: center;
10451
- justify-content: center;
10452
- flex-shrink: 0;
10453
- color: var(--color-text-subtle-default);
10454
- }
10455
-
10456
- .muka-combobox__label {
10457
- flex: 1 1 auto;
10458
- min-width: 0;
10459
- white-space: nowrap;
10460
- overflow: hidden;
10461
- text-overflow: ellipsis;
11321
+ .muka-combobox__field--multiline {
11322
+ align-items: flex-start;
11323
+ min-height: 7rem;
10462
11324
  }
10463
11325
 
10464
- /* ─── Trailing controls (clear + chevron) ─────────────── */
10465
-
10466
- .muka-combobox__actions {
10467
- position: absolute;
10468
- top: 0;
10469
- right: var(--input-field-padding-x);
10470
- height: 100%;
11326
+ .muka-combobox__chips {
10471
11327
  display: flex;
10472
- align-items: center;
11328
+ flex: 1 1 auto;
11329
+ flex-wrap: wrap;
10473
11330
  gap: var(--spacing-2);
10474
- /*
10475
- * The strip sits on top of the trigger, so it must not swallow taps meant to
10476
- * open the picker. Only the clear button takes pointer events back.
10477
- */
10478
- pointer-events: none;
10479
- }
10480
-
10481
- .muka-combobox__clear,
10482
- .muka-combobox__chevron {
10483
- display: inline-flex;
10484
11331
  align-items: center;
10485
- justify-content: center;
10486
- flex-shrink: 0;
10487
- color: var(--color-text-subtle-default);
10488
- }
10489
-
10490
- .muka-combobox__clear {
10491
- pointer-events: auto;
10492
- cursor: pointer;
10493
- padding: var(--spacing-1);
10494
- border: none;
10495
- background: none;
10496
- border-radius: var(--radius-sm);
10497
- -webkit-tap-highlight-color: transparent;
10498
- }
10499
-
10500
- .muka-combobox__clear:hover {
10501
- color: var(--color-text-default-default);
10502
- background-color: var(--color-surface-level1);
11332
+ min-width: 0;
11333
+ width: 100%;
11334
+ position: relative;
11335
+ z-index: 1;
10503
11336
  }
10504
11337
 
10505
- .muka-combobox__clear:focus-visible {
10506
- outline: 2px solid var(--color-border-focus);
10507
- outline-offset: 2px;
10508
- color: var(--color-text-default-default);
11338
+ .muka-combobox__input {
11339
+ flex: 1 1 5rem;
11340
+ min-width: 5rem;
11341
+ min-height: 2rem;
11342
+ margin: 0;
11343
+ padding: 0 var(--spacing-1);
11344
+ border: none;
11345
+ outline: none;
11346
+ background: transparent;
11347
+ color: var(--input-field-color-default-foreground);
11348
+ caret-color: var(--input-field-color-default-foreground);
11349
+ font-family: var(--text-label-md-regular-fontFamily);
11350
+ font-size: var(--text-label-md-regular-fontSize);
11351
+ font-weight: var(--text-label-md-regular-fontWeight);
11352
+ line-height: var(--text-label-md-regular-lineHeight);
10509
11353
  }
10510
11354
 
10511
- .muka-combobox--disabled ~ .muka-combobox__actions,
10512
- .muka-combobox:disabled ~ .muka-combobox__actions {
10513
- opacity: 0.5;
11355
+ .muka-combobox__input::placeholder {
11356
+ color: var(--color-text-subtle-default);
10514
11357
  }
10515
11358
 
10516
- /* ─── Picker sheet body ───────────────────────────────── */
10517
-
10518
- .muka-combobox__picker {
10519
- display: flex;
10520
- flex-direction: column;
10521
- gap: var(--spacing-3);
10522
- padding: 0 var(--spacing-4) var(--spacing-4);
10523
- min-height: 0;
10524
- max-height: 80vh;
11359
+ .muka-combobox__helper {
11360
+ margin: 0;
11361
+ color: var(--color-text-subtle-default);
11362
+ font-family: var(--text-label-sm-regular-fontFamily);
11363
+ font-size: var(--text-label-sm-regular-fontSize);
11364
+ font-weight: var(--text-label-sm-regular-fontWeight);
11365
+ line-height: var(--text-label-sm-regular-lineHeight);
10525
11366
  }
10526
11367
 
10527
- .muka-combobox__title {
11368
+ .muka-combobox__error {
10528
11369
  margin: 0;
10529
- padding: var(--spacing-2) 0;
10530
- color: var(--color-text-default-default);
10531
- font-family: var(--text-heading-sm-fontFamily);
10532
- font-weight: var(--text-heading-sm-fontWeight);
10533
- font-size: var(--text-heading-sm-fontSize);
10534
- line-height: var(--text-heading-sm-lineHeight);
11370
+ color: var(--color-state-error-foreground);
11371
+ font-family: var(--text-label-sm-regular-fontFamily);
11372
+ font-size: var(--text-label-sm-regular-fontSize);
11373
+ font-weight: var(--text-label-sm-regular-fontWeight);
11374
+ line-height: var(--text-label-sm-regular-lineHeight);
10535
11375
  }
10536
11376
 
10537
- .muka-combobox__search {
10538
- position: sticky;
10539
- top: 0;
10540
- z-index: 1;
10541
- padding-bottom: var(--spacing-2);
10542
- background-color: var(--color-surface-level3);
11377
+ .muka-combobox__menu-anchor {
11378
+ position: absolute;
11379
+ inset: 0;
11380
+ z-index: 0;
11381
+ width: 100%;
11382
+ height: 100%;
11383
+ margin: 0;
11384
+ padding: 0;
11385
+ border: none;
11386
+ background: transparent;
11387
+ pointer-events: none;
11388
+ opacity: 0;
10543
11389
  }
10544
11390
 
10545
- .muka-combobox__list {
10546
- flex: 1 1 auto;
10547
- min-height: 0;
10548
- overflow-y: auto;
10549
- -webkit-overflow-scrolling: touch;
11391
+ .muka-combobox__menu {
11392
+ /* Prefer Menu token min-width (280px); may exceed the field when left-aligned. */
11393
+ min-width: var(--menu-content-min-width);
11394
+ width: max-content;
11395
+ max-width: min(100vw - 2rem, 24rem);
10550
11396
  }
10551
11397
 
10552
11398
 
@@ -12440,9 +13286,17 @@ button.muka-chat-photo-grid__tile:focus-visible {
12440
13286
  user-select: none;
12441
13287
  }
12442
13288
 
12443
- /* Ellipsis */
12444
- .muka-breadcrumb__ellipsis {
12445
- color: var(--color-text-subtle-default);
13289
+ .muka-breadcrumb__item--context {
13290
+ gap: 0;
13291
+ }
13292
+
13293
+ .muka-breadcrumb__list:has(.muka-breadcrumb__item--context) {
13294
+ gap: 0;
13295
+ }
13296
+
13297
+ .muka-breadcrumb__item--context .muka-breadcrumb__separator {
13298
+ margin: 0;
13299
+ padding-inline: var(--spacing-1, 4px);
12446
13300
  }
12447
13301
 
12448
13302
  /* Size variants */
@@ -14087,3 +14941,195 @@ button.muka-chat-photo-grid__tile:focus-visible {
14087
14941
  border-bottom: none;
14088
14942
  }
14089
14943
 
14944
+
14945
+ /* SmsOtpField */
14946
+ /* SmsOtpField Component Styles - Using Muka Design Tokens */
14947
+
14948
+ /* Wrapper */
14949
+ .muka-sms-otp-field {
14950
+ display: inline-flex;
14951
+ flex-direction: column;
14952
+ gap: var(--spacing-2);
14953
+ }
14954
+
14955
+ /* Label */
14956
+ .muka-sms-otp-field__label {
14957
+ color: var(--color-text-default-default);
14958
+ cursor: pointer;
14959
+ }
14960
+
14961
+ .muka-sms-otp-field__label--sm {
14962
+ font-family: var(--text-label-sm-semibold-fontFamily);
14963
+ font-weight: var(--text-label-sm-semibold-fontWeight);
14964
+ font-size: var(--text-label-sm-semibold-fontSize);
14965
+ line-height: var(--text-label-sm-semibold-lineHeight);
14966
+ }
14967
+
14968
+ .muka-sms-otp-field__label--md {
14969
+ font-family: var(--text-label-md-semibold-fontFamily);
14970
+ font-weight: var(--text-label-md-semibold-fontWeight);
14971
+ font-size: var(--text-label-md-semibold-fontSize);
14972
+ line-height: var(--text-label-md-semibold-lineHeight);
14973
+ }
14974
+
14975
+ .muka-sms-otp-field__label--lg {
14976
+ font-family: var(--text-label-lg-semibold-fontFamily);
14977
+ font-weight: var(--text-label-lg-semibold-fontWeight);
14978
+ font-size: var(--text-label-lg-semibold-fontSize);
14979
+ line-height: var(--text-label-lg-semibold-lineHeight);
14980
+ }
14981
+
14982
+ .muka-sms-otp-field__required {
14983
+ color: var(--color-state-error-foreground);
14984
+ }
14985
+
14986
+ /* Hidden input for browser autofill */
14987
+ .muka-sms-otp-field__hidden-input {
14988
+ position: absolute;
14989
+ width: 1px;
14990
+ height: 1px;
14991
+ padding: 0;
14992
+ margin: -1px;
14993
+ overflow: hidden;
14994
+ clip: rect(0, 0, 0, 0);
14995
+ white-space: nowrap;
14996
+ border: 0;
14997
+ opacity: 0;
14998
+ pointer-events: none;
14999
+ }
15000
+
15001
+ /* Digits container */
15002
+ .muka-sms-otp-field__digits {
15003
+ display: flex;
15004
+ align-items: center;
15005
+ gap: var(--spacing-2);
15006
+ }
15007
+
15008
+ /* Separator */
15009
+ .muka-sms-otp-field__separator {
15010
+ display: inline-flex;
15011
+ align-items: center;
15012
+ justify-content: center;
15013
+ color: var(--color-text-subtle-default);
15014
+ font-size: 1.25rem;
15015
+ padding: 0 var(--spacing-1);
15016
+ user-select: none;
15017
+ }
15018
+
15019
+ /* Individual digit box */
15020
+ .muka-sms-otp-field__digit {
15021
+ display: flex;
15022
+ align-items: center;
15023
+ justify-content: center;
15024
+ text-align: center;
15025
+ background-color: var(--input-field-color-default-background);
15026
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
15027
+ color: var(--input-field-color-default-foreground);
15028
+ transition: border-color 0.2s ease, background-color 0.2s ease;
15029
+ box-sizing: border-box;
15030
+ caret-color: var(--input-field-color-focus-border);
15031
+ -moz-appearance: textfield;
15032
+ appearance: textfield;
15033
+ }
15034
+
15035
+ /* Remove spinner buttons */
15036
+ .muka-sms-otp-field__digit::-webkit-inner-spin-button,
15037
+ .muka-sms-otp-field__digit::-webkit-outer-spin-button {
15038
+ -webkit-appearance: none;
15039
+ margin: 0;
15040
+ }
15041
+
15042
+ /* Size variants */
15043
+ .muka-sms-otp-field__digit--sm {
15044
+ width: 36px;
15045
+ height: var(--input-field-height-sm);
15046
+ border-radius: var(--input-field-radius-sm);
15047
+ font-family: var(--text-input-sm-fontFamily);
15048
+ font-weight: var(--text-input-sm-fontWeight);
15049
+ font-size: var(--text-input-sm-fontSize);
15050
+ line-height: var(--text-input-sm-lineHeight);
15051
+ }
15052
+
15053
+ .muka-sms-otp-field__digit--md {
15054
+ width: 44px;
15055
+ height: var(--input-field-height-default);
15056
+ border-radius: var(--input-field-radius-md);
15057
+ font-family: var(--text-input-md-fontFamily);
15058
+ font-weight: var(--text-input-md-fontWeight);
15059
+ font-size: var(--text-input-md-fontSize);
15060
+ line-height: var(--text-input-md-lineHeight);
15061
+ }
15062
+
15063
+ .muka-sms-otp-field__digit--lg {
15064
+ width: 52px;
15065
+ height: var(--input-field-height-lg);
15066
+ border-radius: var(--input-field-radius-lg);
15067
+ font-family: var(--text-input-lg-fontFamily);
15068
+ font-weight: var(--text-input-lg-fontWeight);
15069
+ font-size: var(--text-input-lg-fontSize);
15070
+ line-height: var(--text-input-lg-lineHeight);
15071
+ }
15072
+
15073
+ /* Inset shadow (matches Input component) */
15074
+ .muka-sms-otp-field__digit::after {
15075
+ content: '';
15076
+ position: absolute;
15077
+ inset: 0;
15078
+ border-radius: inherit;
15079
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
15080
+ pointer-events: none;
15081
+ }
15082
+
15083
+ /* Focus state */
15084
+ .muka-sms-otp-field__digit--focused:not(.muka-sms-otp-field__digit--disabled) {
15085
+ border-width: var(--border-width-bold);
15086
+ border-color: var(--input-field-color-focus-border);
15087
+ background-color: var(--input-field-color-focus-background);
15088
+ outline: none;
15089
+ }
15090
+
15091
+ /* Also handle native :focus for keyboard navigation */
15092
+ .muka-sms-otp-field__digit:focus {
15093
+ outline: none;
15094
+ }
15095
+
15096
+ /* Error state */
15097
+ .muka-sms-otp-field__digit--error:not(.muka-sms-otp-field__digit--disabled) {
15098
+ border-width: var(--border-width-bold);
15099
+ border-color: var(--input-field-color-error-border);
15100
+ background-color: var(--input-field-color-error-background);
15101
+ }
15102
+
15103
+ /* Disabled state */
15104
+ .muka-sms-otp-field__digit--disabled {
15105
+ background-color: var(--input-field-color-disabled-background);
15106
+ border-color: var(--input-field-color-disabled-border);
15107
+ color: var(--input-field-color-disabled-foreground);
15108
+ cursor: not-allowed;
15109
+ }
15110
+
15111
+ /* Filled state — slightly bolder text */
15112
+ .muka-sms-otp-field__digit--filled {
15113
+ color: var(--input-field-color-default-foreground);
15114
+ }
15115
+
15116
+ /* Helper text */
15117
+ .muka-sms-otp-field__helper {
15118
+ font-family: var(--text-label-sm-regular-fontFamily);
15119
+ font-weight: var(--text-label-sm-regular-fontWeight);
15120
+ font-size: var(--text-label-sm-regular-fontSize);
15121
+ line-height: var(--text-label-sm-regular-lineHeight);
15122
+ color: var(--color-text-subtle-default);
15123
+ margin: 0;
15124
+ }
15125
+
15126
+ /* Error message */
15127
+ .muka-sms-otp-field__error {
15128
+ font-family: var(--text-label-sm-regular-fontFamily);
15129
+ font-weight: var(--text-label-sm-regular-fontWeight);
15130
+ font-size: var(--text-label-sm-regular-fontSize);
15131
+ line-height: var(--text-label-sm-regular-lineHeight);
15132
+ color: var(--color-state-error-foreground);
15133
+ margin: 0;
15134
+ }
15135
+