@revikornmann/muka-ui 0.18.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 (118) 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/Combobox/Combobox.css +116 -132
  10. package/dist/cjs/components/Combobox/Combobox.js +175 -52
  11. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  12. package/dist/cjs/components/Combobox/index.js.map +1 -1
  13. package/dist/cjs/components/DropdownSelect/DropdownSelect.css +225 -0
  14. package/dist/cjs/components/DropdownSelect/DropdownSelect.js +106 -0
  15. package/dist/cjs/components/DropdownSelect/DropdownSelect.js.map +1 -0
  16. package/dist/cjs/components/DropdownSelect/index.js +6 -0
  17. package/dist/cjs/components/DropdownSelect/index.js.map +1 -0
  18. package/dist/cjs/components/Icon/custom/ArrowReturnIcon.js +11 -0
  19. package/dist/cjs/components/Icon/custom/ArrowReturnIcon.js.map +1 -0
  20. package/dist/cjs/components/Icon/iconRegistry.js +5 -0
  21. package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
  22. package/dist/cjs/components/Input/Input.css +45 -8
  23. package/dist/cjs/components/Input/Input.js +14 -3
  24. package/dist/cjs/components/Input/Input.js.map +1 -1
  25. package/dist/cjs/components/Menu/Menu.css +123 -37
  26. package/dist/cjs/components/Menu/Menu.js +283 -25
  27. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  28. package/dist/cjs/components/ProgressTracker/ProgressTracker.css +273 -22
  29. package/dist/cjs/components/ProgressTracker/ProgressTracker.js +109 -9
  30. package/dist/cjs/components/ProgressTracker/ProgressTracker.js.map +1 -1
  31. package/dist/cjs/components/Scrollbar/Scrollbar.css +7 -6
  32. package/dist/cjs/components/index.js +5 -3
  33. package/dist/cjs/components/index.js.map +1 -1
  34. package/dist/esm/components/Combobox/Combobox.css +116 -132
  35. package/dist/esm/components/Combobox/Combobox.js +177 -54
  36. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  37. package/dist/esm/components/Combobox/index.js +1 -1
  38. package/dist/esm/components/Combobox/index.js.map +1 -1
  39. package/dist/esm/components/DropdownSelect/DropdownSelect.css +225 -0
  40. package/dist/esm/components/DropdownSelect/DropdownSelect.js +102 -0
  41. package/dist/esm/components/DropdownSelect/DropdownSelect.js.map +1 -0
  42. package/dist/esm/components/DropdownSelect/index.js +2 -0
  43. package/dist/esm/components/DropdownSelect/index.js.map +1 -0
  44. package/dist/esm/components/Icon/custom/ArrowReturnIcon.js +7 -0
  45. package/dist/esm/components/Icon/custom/ArrowReturnIcon.js.map +1 -0
  46. package/dist/esm/components/Icon/iconRegistry.js +5 -0
  47. package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
  48. package/dist/esm/components/Input/Input.css +45 -8
  49. package/dist/esm/components/Input/Input.js +14 -3
  50. package/dist/esm/components/Input/Input.js.map +1 -1
  51. package/dist/esm/components/Menu/Menu.css +123 -37
  52. package/dist/esm/components/Menu/Menu.js +284 -26
  53. package/dist/esm/components/Menu/Menu.js.map +1 -1
  54. package/dist/esm/components/ProgressTracker/ProgressTracker.css +273 -22
  55. package/dist/esm/components/ProgressTracker/ProgressTracker.js +110 -10
  56. package/dist/esm/components/ProgressTracker/ProgressTracker.js.map +1 -1
  57. package/dist/esm/components/Scrollbar/Scrollbar.css +7 -6
  58. package/dist/esm/components/index.js +1 -0
  59. package/dist/esm/components/index.js.map +1 -1
  60. package/dist/styles/components/Combobox.css +116 -132
  61. package/dist/styles/components/DropdownSelect.css +225 -0
  62. package/dist/styles/components/Input.css +45 -8
  63. package/dist/styles/components/Menu.css +123 -37
  64. package/dist/styles/components/ProgressTracker.css +273 -22
  65. package/dist/styles/components/Scrollbar.css +7 -6
  66. package/dist/styles/components/Typography.css +89 -0
  67. package/dist/styles/index.css +1285 -605
  68. package/dist/styles/muka-dark.css +1285 -605
  69. package/dist/styles/muka-light.css +1285 -605
  70. package/dist/styles/tokens-bouwplan-dark.css +5 -4
  71. package/dist/styles/tokens-bouwplan-light.css +5 -4
  72. package/dist/styles/tokens-fscl-dark.css +25 -24
  73. package/dist/styles/tokens-fscl-light.css +25 -24
  74. package/dist/styles/tokens-grip-dark.css +4 -3
  75. package/dist/styles/tokens-grip-light.css +4 -3
  76. package/dist/styles/tokens-muka-dark.css +4 -3
  77. package/dist/styles/tokens-muka-light.css +4 -3
  78. package/dist/styles/tokens-wireframe-dark.css +49 -48
  79. package/dist/styles/tokens-wireframe-light.css +49 -48
  80. package/dist/styles/wireframe-dark.css +1330 -650
  81. package/dist/styles/wireframe-light.css +1330 -650
  82. package/dist/types/components/Combobox/Combobox.d.ts +38 -38
  83. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  84. package/dist/types/components/Combobox/index.d.ts +1 -1
  85. package/dist/types/components/Combobox/index.d.ts.map +1 -1
  86. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts +71 -0
  87. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts.map +1 -0
  88. package/dist/types/components/DropdownSelect/index.d.ts +2 -0
  89. package/dist/types/components/DropdownSelect/index.d.ts.map +1 -0
  90. package/dist/types/components/Icon/custom/ArrowReturnIcon.d.ts +9 -0
  91. package/dist/types/components/Icon/custom/ArrowReturnIcon.d.ts.map +1 -0
  92. package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
  93. package/dist/types/components/Input/Input.d.ts +5 -0
  94. package/dist/types/components/Input/Input.d.ts.map +1 -1
  95. package/dist/types/components/Menu/Menu.d.ts +42 -2
  96. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  97. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts +29 -8
  98. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts.map +1 -1
  99. package/dist/types/components/index.d.ts +1 -0
  100. package/dist/types/components/index.d.ts.map +1 -1
  101. package/docs/consumers/README.md +116 -37
  102. package/docs/consumers/brand.md +261 -0
  103. package/docs/consumers/figma-console-mcp.md +116 -0
  104. package/docs/consumers/setup-instructions.md +98 -12
  105. package/docs/consumers/skills.md +79 -0
  106. package/package.json +4 -6
  107. package/scripts/postinstall-nudge.js +8 -4
  108. package/skills/add-brand/SKILL.md +204 -0
  109. package/skills/add-brand/reference.md +160 -0
  110. package/skills/figma-to-code/SKILL.md +127 -0
  111. package/skills/pull-from-figma/SKILL.md +123 -0
  112. package/skills/push-to-figma/SKILL.md +172 -0
  113. package/skills/setup-muka/SKILL.md +73 -13
  114. package/tokens/README.md +39 -17
  115. package/tokens/t2-alias/brand/bouwplan/fonts.json +1 -1
  116. package/tokens/t2-alias/brand/fscl/fonts.json +3 -3
  117. package/tokens/t2-alias/brand/wireframe/fonts.json +2 -2
  118. package/tokens/t4-components/menu.json +8 -3
@@ -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,12 +1889,12 @@ 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
1899
  --menu-content-scroll-height: 20.625rem;
1900
1900
  --menu-item-color-default-background: transparent;
@@ -1917,7 +1917,8 @@ body {
1917
1917
  --menu-item-color-destructive-hover-icon: #cd2b31;
1918
1918
  --menu-item-border-radius: 0px;
1919
1919
  --menu-item-padding-x: 0.75rem;
1920
- --menu-item-padding-y: 0.5rem;
1920
+ --menu-item-padding-right: 2.25rem;
1921
+ --menu-item-padding-y: 0.75rem;
1921
1922
  --menu-item-gap: 0.5rem;
1922
1923
  --menu-item-height: 2.5rem;
1923
1924
  --menu-separator-color: #e8e8e8;
@@ -2528,6 +2529,98 @@ body {
2528
2529
  }
2529
2530
 
2530
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
+
2531
2624
  /* TypingIndicator */
2532
2625
  /* TypingIndicator Component Styles */
2533
2626
 
@@ -4547,84 +4640,6 @@ body {
4547
4640
  }
4548
4641
 
4549
4642
 
4550
- /* Spinner */
4551
- /* Spinner Component Styles */
4552
-
4553
- .muka-spinner {
4554
- display: inline-flex;
4555
- align-items: center;
4556
- justify-content: center;
4557
- color: var(--color-text-default-default);
4558
- line-height: 0;
4559
- }
4560
-
4561
- .muka-spinner--subtle {
4562
- color: var(--color-text-subtle-default);
4563
- }
4564
-
4565
- .muka-spinner--inverse {
4566
- color: var(--color-text-inverse-default);
4567
- }
4568
-
4569
- .muka-spinner__circle {
4570
- display: inline-block;
4571
- border-radius: 50%;
4572
- border-style: solid;
4573
- border-color: currentColor;
4574
- border-right-color: transparent;
4575
- animation: muka-spinner-rotate 0.7s linear infinite;
4576
- box-sizing: border-box;
4577
- }
4578
-
4579
- /* ─── Sizes ───────────────────────────────────────────── */
4580
-
4581
- .muka-spinner--sm .muka-spinner__circle {
4582
- width: 16px;
4583
- height: 16px;
4584
- border-width: 2px;
4585
- }
4586
-
4587
- .muka-spinner--md .muka-spinner__circle {
4588
- width: 20px;
4589
- height: 20px;
4590
- border-width: 2px;
4591
- }
4592
-
4593
- .muka-spinner--lg .muka-spinner__circle {
4594
- width: 24px;
4595
- height: 24px;
4596
- border-width: 3px;
4597
- }
4598
-
4599
- /* ─── Visually-hidden label ───────────────────────────── */
4600
-
4601
- .muka-spinner__sr-label {
4602
- position: absolute;
4603
- width: 1px;
4604
- height: 1px;
4605
- padding: 0;
4606
- margin: -1px;
4607
- overflow: hidden;
4608
- clip: rect(0, 0, 0, 0);
4609
- white-space: nowrap;
4610
- border: 0;
4611
- }
4612
-
4613
- /* ─── Reduced motion ──────────────────────────────────── */
4614
-
4615
- @keyframes muka-spinner-rotate {
4616
- to {
4617
- transform: rotate(360deg);
4618
- }
4619
- }
4620
-
4621
- @media (prefers-reduced-motion: reduce) {
4622
- .muka-spinner__circle {
4623
- animation-duration: 2.5s;
4624
- }
4625
- }
4626
-
4627
-
4628
4643
  /* SpecList */
4629
4644
  /* SpecList Component Styles */
4630
4645
 
@@ -4710,49 +4725,58 @@ body {
4710
4725
  }
4711
4726
 
4712
4727
 
4713
- /* SmsOtpField */
4714
- /* SmsOtpField Component Styles - Using Muka Design Tokens */
4728
+ /* Spinner */
4729
+ /* Spinner Component Styles */
4715
4730
 
4716
- /* Wrapper */
4717
- .muka-sms-otp-field {
4731
+ .muka-spinner {
4718
4732
  display: inline-flex;
4719
- flex-direction: column;
4720
- gap: var(--spacing-2);
4733
+ align-items: center;
4734
+ justify-content: center;
4735
+ color: var(--color-text-default-default);
4736
+ line-height: 0;
4721
4737
  }
4722
4738
 
4723
- /* Label */
4724
- .muka-sms-otp-field__label {
4725
- color: var(--color-text-default-default);
4726
- cursor: pointer;
4739
+ .muka-spinner--subtle {
4740
+ color: var(--color-text-subtle-default);
4727
4741
  }
4728
4742
 
4729
- .muka-sms-otp-field__label--sm {
4730
- font-family: var(--text-label-sm-semibold-fontFamily);
4731
- font-weight: var(--text-label-sm-semibold-fontWeight);
4732
- font-size: var(--text-label-sm-semibold-fontSize);
4733
- line-height: var(--text-label-sm-semibold-lineHeight);
4743
+ .muka-spinner--inverse {
4744
+ color: var(--color-text-inverse-default);
4734
4745
  }
4735
4746
 
4736
- .muka-sms-otp-field__label--md {
4737
- font-family: var(--text-label-md-semibold-fontFamily);
4738
- font-weight: var(--text-label-md-semibold-fontWeight);
4739
- font-size: var(--text-label-md-semibold-fontSize);
4740
- 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;
4741
4755
  }
4742
4756
 
4743
- .muka-sms-otp-field__label--lg {
4744
- font-family: var(--text-label-lg-semibold-fontFamily);
4745
- font-weight: var(--text-label-lg-semibold-fontWeight);
4746
- font-size: var(--text-label-lg-semibold-fontSize);
4747
- 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;
4748
4763
  }
4749
4764
 
4750
- .muka-sms-otp-field__required {
4751
- color: var(--color-state-error-foreground);
4765
+ .muka-spinner--md .muka-spinner__circle {
4766
+ width: 20px;
4767
+ height: 20px;
4768
+ border-width: 2px;
4752
4769
  }
4753
4770
 
4754
- /* Hidden input for browser autofill */
4755
- .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 {
4756
4780
  position: absolute;
4757
4781
  width: 1px;
4758
4782
  height: 1px;
@@ -4762,143 +4786,20 @@ body {
4762
4786
  clip: rect(0, 0, 0, 0);
4763
4787
  white-space: nowrap;
4764
4788
  border: 0;
4765
- opacity: 0;
4766
- pointer-events: none;
4767
4789
  }
4768
4790
 
4769
- /* Digits container */
4770
- .muka-sms-otp-field__digits {
4771
- display: flex;
4772
- align-items: center;
4773
- gap: var(--spacing-2);
4774
- }
4791
+ /* ─── Reduced motion ──────────────────────────────────── */
4775
4792
 
4776
- /* Separator */
4777
- .muka-sms-otp-field__separator {
4778
- display: inline-flex;
4779
- align-items: center;
4780
- justify-content: center;
4781
- color: var(--color-text-subtle-default);
4782
- font-size: 1.25rem;
4783
- padding: 0 var(--spacing-1);
4784
- user-select: none;
4793
+ @keyframes muka-spinner-rotate {
4794
+ to {
4795
+ transform: rotate(360deg);
4796
+ }
4785
4797
  }
4786
4798
 
4787
- /* Individual digit box */
4788
- .muka-sms-otp-field__digit {
4789
- display: flex;
4790
- align-items: center;
4791
- justify-content: center;
4792
- text-align: center;
4793
- background-color: var(--input-field-color-default-background);
4794
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
4795
- color: var(--input-field-color-default-foreground);
4796
- transition: border-color 0.2s ease, background-color 0.2s ease;
4797
- box-sizing: border-box;
4798
- caret-color: var(--input-field-color-focus-border);
4799
- -moz-appearance: textfield;
4800
- appearance: textfield;
4801
- }
4802
-
4803
- /* Remove spinner buttons */
4804
- .muka-sms-otp-field__digit::-webkit-inner-spin-button,
4805
- .muka-sms-otp-field__digit::-webkit-outer-spin-button {
4806
- -webkit-appearance: none;
4807
- margin: 0;
4808
- }
4809
-
4810
- /* Size variants */
4811
- .muka-sms-otp-field__digit--sm {
4812
- width: 36px;
4813
- height: var(--input-field-height-sm);
4814
- border-radius: var(--input-field-radius-sm);
4815
- font-family: var(--text-input-sm-fontFamily);
4816
- font-weight: var(--text-input-sm-fontWeight);
4817
- font-size: var(--text-input-sm-fontSize);
4818
- line-height: var(--text-input-sm-lineHeight);
4819
- }
4820
-
4821
- .muka-sms-otp-field__digit--md {
4822
- width: 44px;
4823
- height: var(--input-field-height-default);
4824
- border-radius: var(--input-field-radius-md);
4825
- font-family: var(--text-input-md-fontFamily);
4826
- font-weight: var(--text-input-md-fontWeight);
4827
- font-size: var(--text-input-md-fontSize);
4828
- line-height: var(--text-input-md-lineHeight);
4829
- }
4830
-
4831
- .muka-sms-otp-field__digit--lg {
4832
- width: 52px;
4833
- height: var(--input-field-height-lg);
4834
- border-radius: var(--input-field-radius-lg);
4835
- font-family: var(--text-input-lg-fontFamily);
4836
- font-weight: var(--text-input-lg-fontWeight);
4837
- font-size: var(--text-input-lg-fontSize);
4838
- line-height: var(--text-input-lg-lineHeight);
4839
- }
4840
-
4841
- /* Inset shadow (matches Input component) */
4842
- .muka-sms-otp-field__digit::after {
4843
- content: '';
4844
- position: absolute;
4845
- inset: 0;
4846
- border-radius: inherit;
4847
- box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
4848
- pointer-events: none;
4849
- }
4850
-
4851
- /* Focus state */
4852
- .muka-sms-otp-field__digit--focused:not(.muka-sms-otp-field__digit--disabled) {
4853
- border-width: var(--border-width-bold);
4854
- border-color: var(--input-field-color-focus-border);
4855
- background-color: var(--input-field-color-focus-background);
4856
- outline: none;
4857
- }
4858
-
4859
- /* Also handle native :focus for keyboard navigation */
4860
- .muka-sms-otp-field__digit:focus {
4861
- outline: none;
4862
- }
4863
-
4864
- /* Error state */
4865
- .muka-sms-otp-field__digit--error:not(.muka-sms-otp-field__digit--disabled) {
4866
- border-width: var(--border-width-bold);
4867
- border-color: var(--input-field-color-error-border);
4868
- background-color: var(--input-field-color-error-background);
4869
- }
4870
-
4871
- /* Disabled state */
4872
- .muka-sms-otp-field__digit--disabled {
4873
- background-color: var(--input-field-color-disabled-background);
4874
- border-color: var(--input-field-color-disabled-border);
4875
- color: var(--input-field-color-disabled-foreground);
4876
- cursor: not-allowed;
4877
- }
4878
-
4879
- /* Filled state — slightly bolder text */
4880
- .muka-sms-otp-field__digit--filled {
4881
- color: var(--input-field-color-default-foreground);
4882
- }
4883
-
4884
- /* Helper text */
4885
- .muka-sms-otp-field__helper {
4886
- font-family: var(--text-label-sm-regular-fontFamily);
4887
- font-weight: var(--text-label-sm-regular-fontWeight);
4888
- font-size: var(--text-label-sm-regular-fontSize);
4889
- line-height: var(--text-label-sm-regular-lineHeight);
4890
- color: var(--color-text-subtle-default);
4891
- margin: 0;
4892
- }
4893
-
4894
- /* Error message */
4895
- .muka-sms-otp-field__error {
4896
- font-family: var(--text-label-sm-regular-fontFamily);
4897
- font-weight: var(--text-label-sm-regular-fontWeight);
4898
- font-size: var(--text-label-sm-regular-fontSize);
4899
- line-height: var(--text-label-sm-regular-lineHeight);
4900
- color: var(--color-state-error-foreground);
4901
- margin: 0;
4799
+ @media (prefers-reduced-motion: reduce) {
4800
+ .muka-spinner__circle {
4801
+ animation-duration: 2.5s;
4802
+ }
4902
4803
  }
4903
4804
 
4904
4805
 
@@ -5708,25 +5609,26 @@ body {
5708
5609
 
5709
5610
  .muka-scrollbar__thumb {
5710
5611
  position: absolute;
5711
- left: 50%;
5612
+ left: 0;
5712
5613
  top: 0;
5713
5614
  z-index: 1;
5714
5615
  display: flex;
5715
5616
  align-items: center;
5716
5617
  justify-content: center;
5717
- width: 14px;
5718
- margin-left: -7px;
5618
+ width: 100%;
5619
+ /* Figma: scrollbar thumb fill = surface/level3 */
5620
+ background-color: var(--color-surface-level3);
5719
5621
  cursor: grab;
5720
5622
  touch-action: none;
5721
5623
  }
5722
5624
 
5723
5625
  .muka-scrollbar--horizontal .muka-scrollbar__thumb {
5724
5626
  left: 0;
5725
- top: 50%;
5627
+ top: 0;
5726
5628
  width: auto;
5727
- height: 14px;
5629
+ height: 100%;
5728
5630
  margin-left: 0;
5729
- margin-top: -7px;
5631
+ margin-top: 0;
5730
5632
  }
5731
5633
 
5732
5634
  .muka-scrollbar__thumb:active {
@@ -6363,19 +6265,22 @@ body {
6363
6265
  /* ─── Root ──────────────────────────────────────────────── */
6364
6266
  .muka-progress-tracker {
6365
6267
  width: 100%;
6268
+ }
6269
+
6270
+ .muka-progress-tracker--horizontal {
6366
6271
  padding-bottom: var(--spacing-7);
6367
6272
  }
6368
6273
 
6369
6274
  /* ─── Track (layered container) ─────────────────────────── */
6370
- .muka-progress-tracker__track {
6275
+ .muka-progress-tracker--horizontal .muka-progress-tracker__track {
6371
6276
  position: relative;
6372
6277
  /* Vertical padding = (indicator size - connector height) / 2 = (32 - 4) / 2 = 14px */
6373
6278
  padding-top: 14px;
6374
6279
  padding-bottom: 14px;
6375
6280
  }
6376
6281
 
6377
- /* ─── Steps layer (on top) ──────────────────────────────── */
6378
- .muka-progress-tracker__steps {
6282
+ /* ─── Steps layer (on top) — horizontal ─────────────────── */
6283
+ .muka-progress-tracker--horizontal .muka-progress-tracker__steps {
6379
6284
  position: absolute;
6380
6285
  inset: 0;
6381
6286
  display: flex;
@@ -6384,13 +6289,16 @@ body {
6384
6289
  z-index: 2;
6385
6290
  }
6386
6291
 
6387
- /* ─── Individual step ───────────────────────────────────── */
6388
- .muka-progress-tracker__step {
6292
+ /* ─── Individual step — horizontal ──────────────────────── */
6293
+ .muka-progress-tracker--horizontal .muka-progress-tracker__step {
6389
6294
  display: flex;
6390
6295
  flex-direction: column;
6391
6296
  align-items: center;
6392
- gap: 7px;
6393
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;
6394
6302
  }
6395
6303
 
6396
6304
  /* ─── Step indicator (circle) ───────────────────────────── */
@@ -6403,20 +6311,24 @@ body {
6403
6311
  justify-content: center;
6404
6312
  flex-shrink: 0;
6405
6313
  position: relative;
6314
+ z-index: 1;
6406
6315
  }
6407
6316
 
6408
6317
  /* Past: dark accent contrast circle with white checkmark */
6409
6318
  .muka-progress-tracker__indicator--past {
6410
6319
  background-color: var(--alias-color-accent-contrast);
6411
6320
  color: var(--color-text-default-inverse);
6321
+ }
6322
+
6323
+ .muka-progress-tracker--horizontal .muka-progress-tracker__indicator--past {
6412
6324
  cursor: pointer;
6413
6325
  }
6414
6326
 
6415
- .muka-progress-tracker__indicator--past:hover {
6327
+ .muka-progress-tracker--horizontal .muka-progress-tracker__indicator--past:hover {
6416
6328
  background-color: var(--alias-color-accent-pressed);
6417
6329
  }
6418
6330
 
6419
- .muka-progress-tracker__indicator--past:focus-visible {
6331
+ .muka-progress-tracker--horizontal .muka-progress-tracker__indicator--past:focus-visible {
6420
6332
  outline: 2px solid var(--color-border-focus);
6421
6333
  outline-offset: 2px;
6422
6334
  }
@@ -6443,6 +6355,18 @@ body {
6443
6355
  user-select: none;
6444
6356
  }
6445
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
+
6446
6370
  /* ─── Checkmark icon ────────────────────────────────────── */
6447
6371
  .muka-progress-tracker__check-icon {
6448
6372
  width: 20px;
@@ -6455,8 +6379,12 @@ body {
6455
6379
  color: var(--color-text-default-inverse);
6456
6380
  }
6457
6381
 
6458
- /* ─── Step label ────────────────────────────────────────── */
6459
- .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%);
6460
6388
  font-family: var(--text-label-sm-regular-fontFamily);
6461
6389
  font-weight: var(--text-label-sm-regular-fontWeight);
6462
6390
  font-size: var(--text-label-sm-regular-fontSize);
@@ -6469,14 +6397,14 @@ body {
6469
6397
  text-overflow: ellipsis;
6470
6398
  }
6471
6399
 
6472
- /* Current step label is bold */
6473
- .muka-progress-tracker__label--current {
6400
+ /* Current step label is bold (horizontal only) */
6401
+ .muka-progress-tracker--horizontal .muka-progress-tracker__label--current {
6474
6402
  font-family: var(--text-label-sm-bold-fontFamily);
6475
6403
  font-weight: var(--text-label-sm-bold-fontWeight);
6476
6404
  }
6477
6405
 
6478
- /* ─── Connectors layer (behind indicators) ──────────────── */
6479
- .muka-progress-tracker__connectors {
6406
+ /* ─── Connectors layer (behind indicators) — horizontal ─── */
6407
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connectors {
6480
6408
  display: flex;
6481
6409
  align-items: center;
6482
6410
  /* Horizontal padding = indicator radius (32/2 = 16px) so lines meet circle centers */
@@ -6486,20 +6414,31 @@ body {
6486
6414
  z-index: 1;
6487
6415
  }
6488
6416
 
6489
- /* ─── Individual connector line ─────────────────────────── */
6490
- .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;
6491
6423
  flex: 1 0 0;
6492
6424
  height: 4px;
6493
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;
6494
6435
  }
6495
6436
 
6496
- /* Past: solid dark line */
6497
- .muka-progress-tracker__connector--past {
6437
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector--past .muka-progress-tracker__connector-line {
6498
6438
  background-color: var(--alias-color-accent-contrast);
6499
6439
  }
6500
6440
 
6501
- /* Current: gradient from past (dark) toward current step */
6502
- .muka-progress-tracker__connector--current {
6441
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector--current .muka-progress-tracker__connector-line {
6503
6442
  background: linear-gradient(
6504
6443
  to right,
6505
6444
  var(--alias-color-accent-contrast) 0%,
@@ -6507,8 +6446,7 @@ body {
6507
6446
  );
6508
6447
  }
6509
6448
 
6510
- /* Current-right: gradient fading from current step into upcoming */
6511
- .muka-progress-tracker__connector--current-right {
6449
+ .muka-progress-tracker--horizontal .muka-progress-tracker__connector--current-right .muka-progress-tracker__connector-line {
6512
6450
  background: linear-gradient(
6513
6451
  to right,
6514
6452
  var(--alias-color-accent-default) 0%,
@@ -6517,128 +6455,343 @@ body {
6517
6455
  );
6518
6456
  }
6519
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
+
6520
6467
  /* Upcoming: solid gray line */
6521
6468
  .muka-progress-tracker__connector--upcoming {
6522
6469
  background-color: var(--color-surface-sunken);
6523
6470
  }
6524
6471
 
6472
+ /* ═══════════════════════════════════════════════════════════
6473
+ Vertical orientation
6474
+ ═══════════════════════════════════════════════════════════ */
6525
6475
 
6526
- /* ProgressAccordeon */
6527
- /* ProgressAccordeon Component Styles — Using Muka Design Tokens */
6528
-
6529
- /* ─── Root ──────────────────────────────────────────────── */
6530
- .muka-progress-accordeon {
6531
- container-type: inline-size;
6476
+ .muka-progress-tracker--vertical .muka-progress-tracker__track {
6532
6477
  display: flex;
6533
6478
  flex-direction: column;
6534
6479
  align-items: stretch;
6480
+ gap: var(--spacing-6);
6535
6481
  width: 100%;
6536
- /* Top padding provides the vertical rhythm between stacked steps */
6537
- padding-top: var(--spacing-8);
6538
6482
  }
6539
6483
 
6540
- /* Per-state gap: content-bearing steps are tighter, header-only steps looser */
6541
- .muka-progress-accordeon--current,
6542
- .muka-progress-accordeon--past.muka-progress-accordeon--expanded {
6543
- 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;
6544
6493
  }
6545
6494
 
6546
- .muka-progress-accordeon--upcoming,
6547
- .muka-progress-accordeon--past.muka-progress-accordeon--collapsed {
6548
- gap: var(--spacing-8);
6495
+ .muka-progress-tracker--vertical .muka-progress-tracker__step--interactive {
6496
+ cursor: pointer;
6549
6497
  }
6550
6498
 
6551
- /* Past steps group header + slot. The header↔content gap lives inside the
6552
- collapsing slot (as padding-top) so it collapses with the content, so the
6553
- body gap itself is 0. */
6554
- .muka-progress-accordeon__body {
6555
- display: flex;
6556
- flex-direction: column;
6557
- gap: 0;
6558
- width: 100%;
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;
6559
6503
  }
6560
6504
 
6561
- /* ─── Header ─────────────────────────────────────────────── */
6562
- .muka-progress-accordeon__header {
6505
+ /* Indicator column: circle only; connector is absolutely positioned on the step */
6506
+ .muka-progress-tracker--vertical .muka-progress-tracker__indicator-col {
6563
6507
  display: flex;
6564
6508
  flex-direction: column;
6565
- gap: var(--spacing-3);
6566
- width: 100%;
6509
+ align-items: center;
6510
+ flex-shrink: 0;
6511
+ position: relative;
6512
+ width: 32px;
6513
+ z-index: 1;
6567
6514
  }
6568
6515
 
6569
- .muka-progress-accordeon__header-row {
6570
- display: flex;
6571
- align-items: flex-start;
6572
- gap: var(--spacing-3);
6573
- width: 100%;
6574
- min-height: 40px;
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;
6575
6526
  }
6576
6527
 
6577
- .muka-progress-accordeon__heading-group {
6578
- display: flex;
6579
- flex: 1 0 0;
6580
- min-width: 0;
6581
- align-items: flex-start;
6582
- gap: var(--spacing-4);
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;
6583
6534
  }
6584
6535
 
6585
- /* Past steps carry 40px controls; nudge the heading to vertically centre it */
6586
- .muka-progress-accordeon--past .muka-progress-accordeon__heading-group {
6587
- padding-top: var(--spacing-1);
6536
+ .muka-progress-tracker__rounder--past {
6537
+ color: var(--alias-color-accent-contrast);
6588
6538
  }
6589
6539
 
6590
- .muka-progress-accordeon__controls {
6591
- display: flex;
6592
- flex-shrink: 0;
6593
- align-items: center;
6594
- gap: var(--spacing-3);
6540
+ .muka-progress-tracker__rounder--current {
6541
+ color: var(--alias-color-accent-default);
6595
6542
  }
6596
6543
 
6597
- /* ─── Step indicator (circle) ───────────────────────────── */
6598
- .muka-progress-accordeon__indicator {
6599
- width: 32px;
6600
- height: 32px;
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;
6601
6551
  flex-shrink: 0;
6602
- border-radius: var(--border-radius-full);
6603
- display: flex;
6604
- align-items: center;
6605
- justify-content: center;
6552
+ top: auto;
6553
+ right: auto;
6554
+ bottom: auto;
6555
+ left: auto;
6556
+ transform: none;
6606
6557
  }
6607
6558
 
6608
- /* Past: dark accent-contrast circle with inverse checkmark */
6609
- .muka-progress-accordeon__indicator--past {
6610
- background-color: var(--alias-color-accent-contrast);
6611
- color: var(--color-text-default-inverse);
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;
6612
6563
  }
6613
6564
 
6614
- /* Current: accent circle with inverse bold number */
6615
- .muka-progress-accordeon__indicator--current {
6616
- background-color: var(--alias-color-accent-default);
6617
- color: var(--color-text-default-inverse);
6565
+ .muka-progress-tracker--horizontal .muka-progress-tracker__rounder--end {
6566
+ margin-left: -5px;
6567
+ margin-right: 14px;
6618
6568
  }
6619
6569
 
6620
- /* Upcoming: sunken/muted circle with default-color number */
6621
- .muka-progress-accordeon__indicator--upcoming {
6622
- background-color: var(--color-surface-sunken);
6623
- color: var(--color-text-default-default);
6570
+ .muka-progress-tracker--vertical .muka-progress-tracker__rounder--start {
6571
+ left: 50%;
6572
+ top: 14px;
6573
+ transform: translateX(-50%);
6624
6574
  }
6625
6575
 
6626
- .muka-progress-accordeon__check-icon {
6627
- width: 20px;
6628
- height: 20px;
6629
- color: var(--color-text-default-inverse);
6576
+ .muka-progress-tracker--vertical .muka-progress-tracker__rounder--end {
6577
+ left: 50%;
6578
+ bottom: 14px;
6579
+ transform: translateX(-50%);
6630
6580
  }
6631
6581
 
6632
- .muka-progress-accordeon__number {
6633
- font-family: var(--text-label-md-bold-fontFamily);
6634
- font-weight: var(--text-label-md-bold-fontWeight);
6635
- font-size: var(--text-label-md-bold-fontSize);
6636
- line-height: var(--text-label-md-bold-lineHeight);
6637
- text-align: center;
6638
- user-select: none;
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
+ );
6639
6588
  }
6640
6589
 
6641
- /* Upcoming number is semibold (not bold) per Figma */
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. */
6707
+ .muka-progress-accordeon__body {
6708
+ display: flex;
6709
+ flex-direction: column;
6710
+ gap: 0;
6711
+ width: 100%;
6712
+ }
6713
+
6714
+ /* ─── Header ─────────────────────────────────────────────── */
6715
+ .muka-progress-accordeon__header {
6716
+ display: flex;
6717
+ flex-direction: column;
6718
+ gap: var(--spacing-3);
6719
+ width: 100%;
6720
+ }
6721
+
6722
+ .muka-progress-accordeon__header-row {
6723
+ display: flex;
6724
+ align-items: flex-start;
6725
+ gap: var(--spacing-3);
6726
+ width: 100%;
6727
+ min-height: 40px;
6728
+ }
6729
+
6730
+ .muka-progress-accordeon__heading-group {
6731
+ display: flex;
6732
+ flex: 1 0 0;
6733
+ min-width: 0;
6734
+ align-items: flex-start;
6735
+ gap: var(--spacing-4);
6736
+ }
6737
+
6738
+ /* Past steps carry 40px controls; nudge the heading to vertically centre it */
6739
+ .muka-progress-accordeon--past .muka-progress-accordeon__heading-group {
6740
+ padding-top: var(--spacing-1);
6741
+ }
6742
+
6743
+ .muka-progress-accordeon__controls {
6744
+ display: flex;
6745
+ flex-shrink: 0;
6746
+ align-items: center;
6747
+ gap: var(--spacing-3);
6748
+ }
6749
+
6750
+ /* ─── Step indicator (circle) ───────────────────────────── */
6751
+ .muka-progress-accordeon__indicator {
6752
+ width: 32px;
6753
+ height: 32px;
6754
+ flex-shrink: 0;
6755
+ border-radius: var(--border-radius-full);
6756
+ display: flex;
6757
+ align-items: center;
6758
+ justify-content: center;
6759
+ }
6760
+
6761
+ /* Past: dark accent-contrast circle with inverse checkmark */
6762
+ .muka-progress-accordeon__indicator--past {
6763
+ background-color: var(--alias-color-accent-contrast);
6764
+ color: var(--color-text-default-inverse);
6765
+ }
6766
+
6767
+ /* Current: accent circle with inverse bold number */
6768
+ .muka-progress-accordeon__indicator--current {
6769
+ background-color: var(--alias-color-accent-default);
6770
+ color: var(--color-text-default-inverse);
6771
+ }
6772
+
6773
+ /* Upcoming: sunken/muted circle with default-color number */
6774
+ .muka-progress-accordeon__indicator--upcoming {
6775
+ background-color: var(--color-surface-sunken);
6776
+ color: var(--color-text-default-default);
6777
+ }
6778
+
6779
+ .muka-progress-accordeon__check-icon {
6780
+ width: 20px;
6781
+ height: 20px;
6782
+ color: var(--color-text-default-inverse);
6783
+ }
6784
+
6785
+ .muka-progress-accordeon__number {
6786
+ font-family: var(--text-label-md-bold-fontFamily);
6787
+ font-weight: var(--text-label-md-bold-fontWeight);
6788
+ font-size: var(--text-label-md-bold-fontSize);
6789
+ line-height: var(--text-label-md-bold-lineHeight);
6790
+ text-align: center;
6791
+ user-select: none;
6792
+ }
6793
+
6794
+ /* Upcoming number is semibold (not bold) per Figma */
6642
6795
  .muka-progress-accordeon__indicator--upcoming .muka-progress-accordeon__number {
6643
6796
  font-family: var(--text-label-md-semibold-fontFamily);
6644
6797
  font-weight: var(--text-label-md-semibold-fontWeight);
@@ -7602,32 +7755,62 @@ body {
7602
7755
  .muka-menu__search {
7603
7756
  display: flex;
7604
7757
  align-items: center;
7605
- gap: var(--spacing-2);
7606
7758
  flex-shrink: 0;
7607
- height: var(--size-3xl, 48px);
7608
- padding: 0 var(--spacing-4);
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);
7609
7762
  border-bottom: var(--border-width-regular) solid var(--color-border-default);
7610
7763
  }
7611
7764
 
7612
- .muka-menu__search-icon {
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 {
7613
7771
  display: flex;
7772
+ align-items: center;
7773
+ justify-content: center;
7614
7774
  flex-shrink: 0;
7775
+ width: var(--size-2xl, 2rem);
7776
+ height: var(--size-2xl, 2rem);
7615
7777
  color: var(--color-text-subtle-default);
7616
7778
  }
7617
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
+
7618
7793
  .muka-menu__search-input {
7619
7794
  flex: 1 1 auto;
7620
7795
  min-width: 0;
7621
7796
  border: none;
7622
7797
  outline: none;
7623
7798
  background: transparent;
7624
- font-family: var(--text-label-md-regular-font-family);
7625
- font-size: var(--text-label-md-regular-font-size);
7626
- font-weight: var(--text-label-md-regular-font-weight);
7627
- line-height: var(--text-label-md-regular-line-height);
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);
7628
7804
  color: var(--color-text-default-default);
7629
7805
  }
7630
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
+
7631
7814
  .muka-menu__search-input::placeholder {
7632
7815
  color: var(--color-text-subtle-default);
7633
7816
  }
@@ -7638,22 +7821,27 @@ body {
7638
7821
  appearance: none;
7639
7822
  }
7640
7823
 
7641
- .muka-menu__search-clear {
7824
+ .muka-menu__empty {
7642
7825
  display: flex;
7643
7826
  align-items: center;
7644
- justify-content: center;
7645
- flex-shrink: 0;
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 {
7646
7839
  padding: 0;
7647
7840
  border: none;
7648
7841
  background: transparent;
7649
- color: var(--color-text-subtle-default);
7650
7842
  cursor: pointer;
7651
7843
  }
7652
7844
 
7653
- .muka-menu__search-clear:hover {
7654
- color: var(--color-text-default-default);
7655
- }
7656
-
7657
7845
  .muka-menu__match {
7658
7846
  font-weight: var(--font-weight-bold, 700);
7659
7847
  }
@@ -7690,22 +7878,26 @@ body {
7690
7878
  /* ─── Menu Item ──────────────────────────────────────────────────────────── */
7691
7879
 
7692
7880
  .muka-menu__item {
7881
+ position: relative;
7693
7882
  display: flex;
7694
7883
  align-items: center;
7695
7884
  gap: var(--menu-item-gap);
7696
7885
  min-height: var(--menu-item-height);
7697
- 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);
7698
7889
  border-radius: var(--menu-item-border-radius);
7699
7890
  cursor: pointer;
7700
7891
  user-select: none;
7701
7892
  outline: none;
7702
- font-family: var(--text-label-md-regular-font-family);
7703
- font-size: var(--text-label-md-regular-font-size);
7704
- font-weight: var(--text-label-md-regular-font-weight);
7705
- 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);
7706
7897
  color: var(--menu-item-color-default-foreground);
7707
7898
  background-color: var(--menu-item-color-default-background);
7708
7899
  transition: background-color 100ms ease, color 100ms ease;
7900
+ white-space: nowrap;
7709
7901
  }
7710
7902
 
7711
7903
  .muka-menu__item:hover,
@@ -7771,25 +7963,55 @@ body {
7771
7963
  }
7772
7964
 
7773
7965
  .muka-menu__item-label {
7774
- flex: 1;
7966
+ flex: 1 1 auto;
7775
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);
7776
7974
  }
7777
7975
 
7778
7976
  .muka-menu__item-shortcut {
7779
7977
  flex-shrink: 0;
7780
7978
  margin-left: auto;
7781
7979
  padding-left: var(--menu-item-gap);
7782
- font-size: var(--text-label-sm-regular-font-size);
7783
- color: var(--menu-shortcut-color);
7784
- 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;
7785
8004
  }
7786
8005
 
7787
8006
  .muka-menu__item-chevron {
8007
+ position: absolute;
8008
+ top: var(--spacing-2);
8009
+ right: var(--spacing-2);
8010
+ bottom: var(--spacing-2);
7788
8011
  display: flex;
7789
8012
  align-items: center;
7790
8013
  justify-content: center;
7791
- flex-shrink: 0;
7792
- margin-left: auto;
8014
+ width: var(--icon-size-default, 1.5rem);
7793
8015
  color: var(--menu-shortcut-color);
7794
8016
  }
7795
8017
 
@@ -7810,9 +8032,10 @@ body {
7810
8032
  padding-left: var(--menu-item-padding-x);
7811
8033
  }
7812
8034
 
8035
+ .muka-menu__item--checkbox-trailing,
7813
8036
  .muka-menu__item--radio-check {
7814
- position: relative;
7815
- padding-right: calc(var(--menu-item-padding-x) + var(--menu-checkbox-indicator-size) + var(--menu-item-gap));
8037
+ /* Same reserved right gutter as default items — trailing indicator floats. */
8038
+ padding-right: var(--menu-item-padding-right);
7816
8039
  }
7817
8040
 
7818
8041
  .muka-menu__item--radio-check[data-state='checked'] {
@@ -7820,11 +8043,27 @@ body {
7820
8043
  }
7821
8044
 
7822
8045
  .muka-menu__item-indicator--trailing {
8046
+ /* Match enter-hint trailer: 8px inset, 24px box (override leading indicator size). */
7823
8047
  position: absolute;
7824
- right: var(--menu-item-padding-x);
7825
- top: 50%;
7826
- transform: translateY(-50%);
7827
- color: var(--menu-checkbox-indicator-color);
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%;
7828
8067
  }
7829
8068
 
7830
8069
  .muka-menu__radio-dot {
@@ -7850,10 +8089,10 @@ body {
7850
8089
 
7851
8090
  .muka-menu__group-label {
7852
8091
  padding: var(--menu-group-label-padding-y) var(--menu-group-label-padding-x);
7853
- font-family: var(--text-label-sm-semibold-font-family);
7854
- font-size: var(--text-label-sm-semibold-font-size);
7855
- font-weight: var(--text-label-sm-semibold-font-weight);
7856
- 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);
7857
8096
  color: var(--menu-group-label-color);
7858
8097
  text-transform: uppercase;
7859
8098
  letter-spacing: 0.05em;
@@ -8536,27 +8775,58 @@ li.muka-listitem {
8536
8775
  color: var(--input-field-color-disabled-foreground);
8537
8776
  }
8538
8777
 
8539
- /* Icons */
8778
+ /* Icons — Figma inputfield content: sm 16px, md 20px, lg 24px. */
8540
8779
  .muka-input__icon {
8541
8780
  display: inline-flex;
8542
8781
  align-items: center;
8782
+ justify-content: center;
8543
8783
  flex-shrink: 0;
8544
8784
  color: var(--color-text-subtle-default);
8545
- width: var(--icon-size-default);
8546
- height: var(--icon-size-default);
8785
+ width: var(--icon-size-sm);
8786
+ height: var(--icon-size-sm);
8547
8787
  }
8548
8788
 
8549
8789
  .muka-input__field--sm .muka-input__icon {
8550
- width: var(--icon-size-sm);
8551
- height: var(--icon-size-sm);
8790
+ width: var(--icon-size-xs);
8791
+ height: var(--icon-size-xs);
8552
8792
  }
8553
8793
 
8554
8794
  .muka-input__field--lg .muka-input__icon {
8555
- width: var(--icon-size-lg);
8556
- height: var(--icon-size-lg);
8795
+ width: var(--icon-size-default);
8796
+ height: var(--icon-size-default);
8557
8797
  }
8558
8798
 
8559
- .muka-input__field--disabled .muka-input__icon {
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);
8824
+ }
8825
+
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 {
8560
8830
  color: var(--input-field-color-disabled-foreground);
8561
8831
  }
8562
8832
 
@@ -8565,6 +8835,12 @@ li.muka-listitem {
8565
8835
  height: 100%;
8566
8836
  }
8567
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
+
8568
8844
  /* Helper text */
8569
8845
  .muka-input__helper {
8570
8846
  font-family: var(--text-label-sm-regular-fontFamily);
@@ -9115,114 +9391,342 @@ li.muka-listitem {
9115
9391
  height: var(--emptystate-icon-size-md);
9116
9392
  }
9117
9393
 
9118
- .muka-emptystate--lg .muka-emptystate__visual {
9119
- width: var(--emptystate-icon-size-lg);
9120
- height: var(--emptystate-icon-size-lg);
9394
+ .muka-emptystate--lg .muka-emptystate__visual {
9395
+ width: var(--emptystate-icon-size-lg);
9396
+ height: var(--emptystate-icon-size-lg);
9397
+ }
9398
+
9399
+ .muka-emptystate__visual svg {
9400
+ width: 100%;
9401
+ height: 100%;
9402
+ }
9403
+
9404
+ .muka-emptystate__visual img {
9405
+ width: 100%;
9406
+ height: 100%;
9407
+ object-fit: contain;
9408
+ }
9409
+
9410
+ /* Content */
9411
+ .muka-emptystate__content {
9412
+ display: flex;
9413
+ flex-direction: column;
9414
+ gap: var(--spacing-2);
9415
+ }
9416
+
9417
+ .muka-emptystate--left .muka-emptystate__content {
9418
+ align-items: flex-start;
9419
+ }
9420
+
9421
+ /* Title */
9422
+ .muka-emptystate__title {
9423
+ color: var(--emptystate-title-color);
9424
+ margin: 0;
9425
+ font-family: var(--text-heading-h4-fontFamily);
9426
+ font-weight: var(--text-heading-h4-fontWeight);
9427
+ font-size: var(--text-heading-h4-fontSize);
9428
+ line-height: var(--text-heading-h4-lineHeight);
9429
+ }
9430
+
9431
+ .muka-emptystate--sm .muka-emptystate__title {
9432
+ font-family: var(--text-label-lg-semibold-fontFamily);
9433
+ font-weight: var(--text-label-lg-semibold-fontWeight);
9434
+ font-size: var(--text-label-lg-semibold-fontSize);
9435
+ line-height: var(--text-label-lg-semibold-lineHeight);
9436
+ }
9437
+
9438
+ .muka-emptystate--lg .muka-emptystate__title {
9439
+ font-family: var(--text-heading-h3-fontFamily);
9440
+ font-weight: var(--text-heading-h3-fontWeight);
9441
+ font-size: var(--text-heading-h3-fontSize);
9442
+ line-height: var(--text-heading-h3-lineHeight);
9443
+ }
9444
+
9445
+ /* Description */
9446
+ .muka-emptystate__description {
9447
+ color: var(--emptystate-description-color);
9448
+ margin: 0;
9449
+ font-family: var(--text-body-sm-regular-fontFamily);
9450
+ font-weight: var(--text-body-sm-regular-fontWeight);
9451
+ font-size: var(--text-body-sm-regular-fontSize);
9452
+ line-height: var(--text-body-sm-regular-lineHeight);
9453
+ }
9454
+
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);
9121
9603
  }
9122
9604
 
9123
- .muka-emptystate__visual svg {
9124
- width: 100%;
9125
- height: 100%;
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));
9126
9607
  }
9127
9608
 
9128
- .muka-emptystate__visual img {
9129
- width: 100%;
9130
- height: 100%;
9131
- object-fit: contain;
9609
+ .muka-dropdown-select__field--disabled {
9610
+ opacity: 0.5;
9611
+ cursor: not-allowed;
9132
9612
  }
9133
9613
 
9134
- /* Content */
9135
- .muka-emptystate__content {
9614
+ .muka-dropdown-select__content {
9615
+ position: relative;
9616
+ z-index: 1;
9136
9617
  display: flex;
9137
- flex-direction: column;
9138
- gap: var(--spacing-2);
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;
9139
9623
  }
9140
9624
 
9141
- .muka-emptystate--left .muka-emptystate__content {
9142
- align-items: flex-start;
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);
9143
9632
  }
9144
9633
 
9145
- /* Title */
9146
- .muka-emptystate__title {
9147
- color: var(--emptystate-title-color);
9148
- margin: 0;
9149
- font-family: var(--text-heading-h4-fontFamily);
9150
- font-weight: var(--text-heading-h4-fontWeight);
9151
- font-size: var(--text-heading-h4-fontSize);
9152
- line-height: var(--text-heading-h4-lineHeight);
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;
9153
9643
  }
9154
9644
 
9155
- .muka-emptystate--sm .muka-emptystate__title {
9156
- font-family: var(--text-label-lg-semibold-fontFamily);
9157
- font-weight: var(--text-label-lg-semibold-fontWeight);
9158
- font-size: var(--text-label-lg-semibold-fontSize);
9159
- line-height: var(--text-label-lg-semibold-lineHeight);
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;
9160
9654
  }
9161
9655
 
9162
- .muka-emptystate--lg .muka-emptystate__title {
9163
- font-family: var(--text-heading-h3-fontFamily);
9164
- font-weight: var(--text-heading-h3-fontWeight);
9165
- font-size: var(--text-heading-h3-fontSize);
9166
- line-height: var(--text-heading-h3-lineHeight);
9656
+ .muka-dropdown-select__field--multiline {
9657
+ align-items: flex-start;
9658
+ min-height: 7rem;
9167
9659
  }
9168
9660
 
9169
- /* Description */
9170
- .muka-emptystate__description {
9171
- color: var(--emptystate-description-color);
9172
- margin: 0;
9173
- font-family: var(--text-body-sm-regular-fontFamily);
9174
- font-weight: var(--text-body-sm-regular-fontWeight);
9175
- font-size: var(--text-body-sm-regular-fontSize);
9176
- line-height: var(--text-body-sm-regular-lineHeight);
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;
9177
9677
  }
9178
9678
 
9179
- .muka-emptystate--md .muka-emptystate__description {
9180
- font-family: var(--text-body-base-regular-fontFamily);
9181
- font-weight: var(--text-body-base-regular-fontWeight);
9182
- font-size: var(--text-body-base-regular-fontSize);
9183
- line-height: var(--text-body-base-regular-lineHeight);
9679
+ .muka-dropdown-select__field--multiline .muka-dropdown-select__menu-button {
9680
+ align-items: flex-start;
9681
+ padding-top: calc(var(--spacing-2) + 8px);
9184
9682
  }
9185
9683
 
9186
- .muka-emptystate--lg .muka-emptystate__description {
9187
- font-family: var(--text-body-lg-regular-fontFamily);
9188
- font-weight: var(--text-body-lg-regular-fontWeight);
9189
- font-size: var(--text-body-lg-regular-fontSize);
9190
- 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);
9191
9692
  }
9192
9693
 
9193
- /* Actions */
9194
- .muka-emptystate__actions {
9195
- display: flex;
9196
- gap: var(--emptystate-actions-gap);
9197
- margin-top: var(--emptystate-actions-marginTop);
9198
- flex-wrap: wrap;
9199
- 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);
9200
9698
  }
9201
9699
 
9202
- .muka-emptystate--left .muka-emptystate__actions {
9203
- 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);
9204
9703
  }
9205
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
+ }
9206
9709
 
9207
- /* EmojiPicker */
9208
- /* 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
+ }
9209
9718
 
9210
- .muka-emoji-picker {
9211
- display: grid;
9212
- grid-template-columns: repeat(8, 1fr);
9213
- gap: var(--spacing-1);
9214
- padding: var(--spacing-2);
9215
- max-height: 12rem;
9216
- overflow-y: auto;
9217
- background: var(--color-surface-level2);
9218
- border: var(--border-width-regular, 1px) solid var(--color-border-default);
9219
- border-radius: var(--radius-lg);
9220
- 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);
9221
9726
  }
9222
9727
 
9223
- .muka-emoji-picker__glyph {
9224
- font-size: 1.25rem;
9225
- line-height: 1;
9728
+ .muka-dropdown-select__menu {
9729
+ /* Uses Menu min-width (280px); grows with long labels; left-aligned to the field. */
9226
9730
  }
9227
9731
 
9228
9732
 
@@ -10720,191 +11224,175 @@ li.muka-listitem {
10720
11224
 
10721
11225
 
10722
11226
  /* Combobox */
10723
- /* Combobox Component Styles */
11227
+ /* Combobox — Figma Input Combobox (free-input chips + suggestion Menu) */
10724
11228
 
10725
- /* ─── 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
+ }
10726
11235
 
10727
- /*
10728
- * The clear control is a sibling of the trigger, not a child (a <button> may
10729
- * not contain interactive content), so it is overlaid on the trigger's trailing
10730
- * padding. The trigger reserves that space with padding-right below.
10731
- */
10732
- .muka-combobox__trigger-group {
10733
- position: relative;
10734
- display: block;
11236
+ .muka-combobox--full-width {
10735
11237
  width: 100%;
10736
11238
  }
10737
11239
 
10738
- /* ─── 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
+ }
10739
11244
 
10740
- .muka-combobox {
10741
- 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;
10742
11268
  align-items: center;
10743
- gap: var(--spacing-2);
10744
11269
  width: 100%;
10745
- padding: 0 var(--muka-combobox-trailing-space) 0 var(--input-field-padding-x);
11270
+ position: relative;
11271
+ isolation: isolate;
11272
+ box-sizing: border-box;
10746
11273
  background-color: var(--input-field-color-default-background);
10747
11274
  border: var(--border-width-regular) solid var(--input-field-color-default-border);
10748
- color: var(--color-text-default-default);
10749
- text-align: left;
10750
- cursor: pointer;
10751
- font-family: var(--text-body-md-regular-fontFamily);
10752
- font-weight: var(--text-body-md-regular-fontWeight);
10753
- font-size: var(--text-body-md-regular-fontSize);
10754
- line-height: var(--text-body-md-regular-lineHeight);
10755
- -webkit-tap-highlight-color: transparent;
10756
- transition: border-color 0.12s ease;
10757
-
10758
- /* Room for the chevron overlaid on the trailing edge. */
10759
- --muka-combobox-trailing-space: calc(
10760
- var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2)
10761
- );
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;
10762
11279
  }
10763
11280
 
10764
- /* …and for the clear button next to it, when one is rendered. */
10765
- .muka-combobox--clearable {
10766
- --muka-combobox-trailing-space: calc(
10767
- var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2) +
10768
- var(--icon-size-xs) + var(--spacing-1) * 2 + var(--spacing-2)
10769
- );
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;
10770
11288
  }
10771
11289
 
10772
- .muka-combobox--sm {
11290
+ .muka-combobox__field--sm {
10773
11291
  min-height: var(--input-field-height-sm);
10774
11292
  border-radius: var(--input-field-radius-sm);
10775
11293
  }
10776
11294
 
10777
- .muka-combobox--md {
11295
+ .muka-combobox__field--md {
10778
11296
  min-height: var(--input-field-height-default);
10779
11297
  border-radius: var(--input-field-radius-md);
10780
11298
  }
10781
11299
 
10782
- .muka-combobox--lg {
11300
+ .muka-combobox__field--lg {
10783
11301
  min-height: var(--input-field-height-lg);
10784
11302
  border-radius: var(--input-field-radius-lg);
10785
11303
  }
10786
11304
 
10787
- .muka-combobox:hover:not(:disabled) {
10788
- 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);
10789
11310
  }
10790
11311
 
10791
- .muka-combobox:focus-visible {
10792
- outline: none;
10793
- 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));
10794
11314
  }
10795
11315
 
10796
- .muka-combobox--disabled,
10797
- .muka-combobox:disabled {
11316
+ .muka-combobox__field--disabled {
10798
11317
  opacity: 0.5;
10799
11318
  cursor: not-allowed;
10800
11319
  }
10801
11320
 
10802
- .muka-combobox--placeholder .muka-combobox__label {
10803
- color: var(--color-text-subtle-default);
10804
- }
10805
-
10806
- .muka-combobox__leading {
10807
- display: inline-flex;
10808
- align-items: center;
10809
- justify-content: center;
10810
- flex-shrink: 0;
10811
- color: var(--color-text-subtle-default);
10812
- }
10813
-
10814
- .muka-combobox__label {
10815
- flex: 1 1 auto;
10816
- min-width: 0;
10817
- white-space: nowrap;
10818
- overflow: hidden;
10819
- text-overflow: ellipsis;
11321
+ .muka-combobox__field--multiline {
11322
+ align-items: flex-start;
11323
+ min-height: 7rem;
10820
11324
  }
10821
11325
 
10822
- /* ─── Trailing controls (clear + chevron) ─────────────── */
10823
-
10824
- .muka-combobox__actions {
10825
- position: absolute;
10826
- top: 0;
10827
- right: var(--input-field-padding-x);
10828
- height: 100%;
11326
+ .muka-combobox__chips {
10829
11327
  display: flex;
10830
- align-items: center;
11328
+ flex: 1 1 auto;
11329
+ flex-wrap: wrap;
10831
11330
  gap: var(--spacing-2);
10832
- /*
10833
- * The strip sits on top of the trigger, so it must not swallow taps meant to
10834
- * open the picker. Only the clear button takes pointer events back.
10835
- */
10836
- pointer-events: none;
10837
- }
10838
-
10839
- .muka-combobox__clear,
10840
- .muka-combobox__chevron {
10841
- display: inline-flex;
10842
- align-items: center;
10843
- justify-content: center;
10844
- flex-shrink: 0;
10845
- color: var(--color-text-subtle-default);
10846
- }
10847
-
10848
- .muka-combobox__clear {
10849
- pointer-events: auto;
10850
- cursor: pointer;
10851
- padding: var(--spacing-1);
10852
- border: none;
10853
- background: none;
10854
- border-radius: var(--radius-sm);
10855
- -webkit-tap-highlight-color: transparent;
10856
- }
10857
-
10858
- .muka-combobox__clear:hover {
10859
- color: var(--color-text-default-default);
10860
- background-color: var(--color-surface-level1);
11331
+ align-items: center;
11332
+ min-width: 0;
11333
+ width: 100%;
11334
+ position: relative;
11335
+ z-index: 1;
10861
11336
  }
10862
11337
 
10863
- .muka-combobox__clear:focus-visible {
10864
- outline: 2px solid var(--color-border-focus);
10865
- outline-offset: 2px;
10866
- 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);
10867
11353
  }
10868
11354
 
10869
- .muka-combobox--disabled ~ .muka-combobox__actions,
10870
- .muka-combobox:disabled ~ .muka-combobox__actions {
10871
- opacity: 0.5;
11355
+ .muka-combobox__input::placeholder {
11356
+ color: var(--color-text-subtle-default);
10872
11357
  }
10873
11358
 
10874
- /* ─── Picker sheet body ───────────────────────────────── */
10875
-
10876
- .muka-combobox__picker {
10877
- display: flex;
10878
- flex-direction: column;
10879
- gap: var(--spacing-3);
10880
- padding: 0 var(--spacing-4) var(--spacing-4);
10881
- min-height: 0;
10882
- 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);
10883
11366
  }
10884
11367
 
10885
- .muka-combobox__title {
11368
+ .muka-combobox__error {
10886
11369
  margin: 0;
10887
- padding: var(--spacing-2) 0;
10888
- color: var(--color-text-default-default);
10889
- font-family: var(--text-heading-sm-fontFamily);
10890
- font-weight: var(--text-heading-sm-fontWeight);
10891
- font-size: var(--text-heading-sm-fontSize);
10892
- 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);
10893
11375
  }
10894
11376
 
10895
- .muka-combobox__search {
10896
- position: sticky;
10897
- top: 0;
10898
- z-index: 1;
10899
- padding-bottom: var(--spacing-2);
10900
- 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;
10901
11389
  }
10902
11390
 
10903
- .muka-combobox__list {
10904
- flex: 1 1 auto;
10905
- min-height: 0;
10906
- overflow-y: auto;
10907
- -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);
10908
11396
  }
10909
11397
 
10910
11398
 
@@ -14453,3 +14941,195 @@ button.muka-chat-photo-grid__tile:focus-visible {
14453
14941
  border-bottom: none;
14454
14942
  }
14455
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
+