@revikornmann/muka-ui 0.2.4 → 0.3.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 (275) hide show
  1. package/build/manifest.json +10 -0
  2. package/dist/cjs/components/AgentTaskList/AgentTaskList.js +1 -0
  3. package/dist/cjs/components/AgentTaskList/AgentTaskList.js.map +1 -1
  4. package/dist/cjs/components/Avatar/Avatar.js +1 -0
  5. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  6. package/dist/cjs/components/Badge/Badge.css +77 -28
  7. package/dist/cjs/components/Badge/Badge.js +2 -0
  8. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  9. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +1 -0
  10. package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -1
  11. package/dist/cjs/components/Button/Button.css +10 -4
  12. package/dist/cjs/components/Button/Button.js +1 -0
  13. package/dist/cjs/components/Button/Button.js.map +1 -1
  14. package/dist/cjs/components/Card/Card.js +1 -0
  15. package/dist/cjs/components/Card/Card.js.map +1 -1
  16. package/dist/cjs/components/ChatComposer/ChatComposer.js +1 -0
  17. package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
  18. package/dist/cjs/components/ChatMessageList/ChatMessageList.js +1 -0
  19. package/dist/cjs/components/ChatMessageList/ChatMessageList.js.map +1 -1
  20. package/dist/cjs/components/Checkbox/Checkbox.js +1 -0
  21. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  22. package/dist/cjs/components/CheckboxTile/CheckboxTile.js +1 -0
  23. package/dist/cjs/components/CheckboxTile/CheckboxTile.js.map +1 -1
  24. package/dist/cjs/components/Chip/Chip.css +155 -65
  25. package/dist/cjs/components/Chip/Chip.js +6 -5
  26. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  27. package/dist/cjs/components/Combobox/Combobox.js +1 -0
  28. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  29. package/dist/cjs/components/DataTable/DataTable.css +328 -25
  30. package/dist/cjs/components/DataTable/DataTable.js +185 -32
  31. package/dist/cjs/components/DataTable/DataTable.js.map +1 -1
  32. package/dist/cjs/components/DataTable/index.js.map +1 -1
  33. package/dist/cjs/components/DatePicker/DatePicker.js +1 -0
  34. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  35. package/dist/cjs/components/Dialog/Dialog.js +1 -0
  36. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  37. package/dist/cjs/components/DocumentViewer/DocumentCanvas.js +1 -0
  38. package/dist/cjs/components/DocumentViewer/DocumentCanvas.js.map +1 -1
  39. package/dist/cjs/components/DocumentViewer/DocumentThumbnails.js +1 -0
  40. package/dist/cjs/components/DocumentViewer/DocumentThumbnails.js.map +1 -1
  41. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js +1 -0
  42. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  43. package/dist/cjs/components/DocumentViewer/DocumentViewer.js +1 -0
  44. package/dist/cjs/components/DocumentViewer/DocumentViewer.js.map +1 -1
  45. package/dist/cjs/components/Drawer/Drawer.js +1 -0
  46. package/dist/cjs/components/Drawer/Drawer.js.map +1 -1
  47. package/dist/cjs/components/FileUpload/FileUpload.js +1 -0
  48. package/dist/cjs/components/FileUpload/FileUpload.js.map +1 -1
  49. package/dist/cjs/components/Input/Input.js +1 -0
  50. package/dist/cjs/components/Input/Input.js.map +1 -1
  51. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js +1 -0
  52. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  53. package/dist/cjs/components/ListItem/ListItem.js +1 -0
  54. package/dist/cjs/components/ListItem/ListItem.js.map +1 -1
  55. package/dist/cjs/components/Menu/Menu.js +1 -0
  56. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  57. package/dist/cjs/components/NavigationTransition/NavigationTransition.js +1 -0
  58. package/dist/cjs/components/NavigationTransition/NavigationTransition.js.map +1 -1
  59. package/dist/cjs/components/NumberInput/NumberInput.js +1 -0
  60. package/dist/cjs/components/NumberInput/NumberInput.js.map +1 -1
  61. package/dist/cjs/components/Pagination/Pagination.js +1 -0
  62. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  63. package/dist/cjs/components/ProfileBadge/ProfileBadge.js +2 -2
  64. package/dist/cjs/components/ProfileBadge/ProfileBadge.js.map +1 -1
  65. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +1 -0
  66. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  67. package/dist/cjs/components/Radio/Radio.js +1 -0
  68. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  69. package/dist/cjs/components/RadioTile/RadioTile.js +1 -0
  70. package/dist/cjs/components/RadioTile/RadioTile.js.map +1 -1
  71. package/dist/cjs/components/RangeSlider/RangeSlider.js +1 -0
  72. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  73. package/dist/cjs/components/SearchInput/SearchInput.js +1 -0
  74. package/dist/cjs/components/SearchInput/SearchInput.js.map +1 -1
  75. package/dist/cjs/components/SegmentGroup/SegmentGroup.js +1 -0
  76. package/dist/cjs/components/SegmentGroup/SegmentGroup.js.map +1 -1
  77. package/dist/cjs/components/Select/Select.js +1 -0
  78. package/dist/cjs/components/Select/Select.js.map +1 -1
  79. package/dist/cjs/components/SmsOtpField/SmsOtpField.js +1 -0
  80. package/dist/cjs/components/SmsOtpField/SmsOtpField.js.map +1 -1
  81. package/dist/cjs/components/SwipeActions/SwipeActions.js +1 -0
  82. package/dist/cjs/components/SwipeActions/SwipeActions.js.map +1 -1
  83. package/dist/cjs/components/Table/useTableSelection.js +1 -0
  84. package/dist/cjs/components/Table/useTableSelection.js.map +1 -1
  85. package/dist/cjs/components/Tabs/Tabs.js +1 -0
  86. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  87. package/dist/cjs/components/Textarea/Textarea.js +1 -0
  88. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  89. package/dist/cjs/components/Tile/Tile.js +1 -0
  90. package/dist/cjs/components/Tile/Tile.js.map +1 -1
  91. package/dist/cjs/components/Toast/Toast.js +1 -0
  92. package/dist/cjs/components/Toast/Toast.js.map +1 -1
  93. package/dist/cjs/components/Toggle/Toggle.js +1 -0
  94. package/dist/cjs/components/Toggle/Toggle.js.map +1 -1
  95. package/dist/cjs/components/index.js.map +1 -1
  96. package/dist/esm/components/AgentTaskList/AgentTaskList.js +1 -0
  97. package/dist/esm/components/AgentTaskList/AgentTaskList.js.map +1 -1
  98. package/dist/esm/components/Avatar/Avatar.js +1 -0
  99. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  100. package/dist/esm/components/Badge/Badge.css +77 -28
  101. package/dist/esm/components/Badge/Badge.js +2 -0
  102. package/dist/esm/components/Badge/Badge.js.map +1 -1
  103. package/dist/esm/components/Breadcrumb/Breadcrumb.js +1 -0
  104. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  105. package/dist/esm/components/Button/Button.css +10 -4
  106. package/dist/esm/components/Button/Button.js +1 -0
  107. package/dist/esm/components/Button/Button.js.map +1 -1
  108. package/dist/esm/components/Card/Card.js +1 -0
  109. package/dist/esm/components/Card/Card.js.map +1 -1
  110. package/dist/esm/components/ChatComposer/ChatComposer.js +1 -0
  111. package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
  112. package/dist/esm/components/ChatMessageList/ChatMessageList.js +1 -0
  113. package/dist/esm/components/ChatMessageList/ChatMessageList.js.map +1 -1
  114. package/dist/esm/components/Checkbox/Checkbox.js +1 -0
  115. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  116. package/dist/esm/components/CheckboxTile/CheckboxTile.js +1 -0
  117. package/dist/esm/components/CheckboxTile/CheckboxTile.js.map +1 -1
  118. package/dist/esm/components/Chip/Chip.css +155 -65
  119. package/dist/esm/components/Chip/Chip.js +6 -5
  120. package/dist/esm/components/Chip/Chip.js.map +1 -1
  121. package/dist/esm/components/Combobox/Combobox.js +1 -0
  122. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  123. package/dist/esm/components/DataTable/DataTable.css +328 -25
  124. package/dist/esm/components/DataTable/DataTable.js +185 -32
  125. package/dist/esm/components/DataTable/DataTable.js.map +1 -1
  126. package/dist/esm/components/DataTable/index.js.map +1 -1
  127. package/dist/esm/components/DatePicker/DatePicker.js +1 -0
  128. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  129. package/dist/esm/components/Dialog/Dialog.js +1 -0
  130. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  131. package/dist/esm/components/DocumentViewer/DocumentCanvas.js +1 -0
  132. package/dist/esm/components/DocumentViewer/DocumentCanvas.js.map +1 -1
  133. package/dist/esm/components/DocumentViewer/DocumentThumbnails.js +1 -0
  134. package/dist/esm/components/DocumentViewer/DocumentThumbnails.js.map +1 -1
  135. package/dist/esm/components/DocumentViewer/DocumentToolbar.js +1 -0
  136. package/dist/esm/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  137. package/dist/esm/components/DocumentViewer/DocumentViewer.js +1 -0
  138. package/dist/esm/components/DocumentViewer/DocumentViewer.js.map +1 -1
  139. package/dist/esm/components/Drawer/Drawer.js +1 -0
  140. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  141. package/dist/esm/components/FileUpload/FileUpload.js +1 -0
  142. package/dist/esm/components/FileUpload/FileUpload.js.map +1 -1
  143. package/dist/esm/components/Input/Input.js +1 -0
  144. package/dist/esm/components/Input/Input.js.map +1 -1
  145. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js +1 -0
  146. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  147. package/dist/esm/components/ListItem/ListItem.js +1 -0
  148. package/dist/esm/components/ListItem/ListItem.js.map +1 -1
  149. package/dist/esm/components/Menu/Menu.js +1 -0
  150. package/dist/esm/components/Menu/Menu.js.map +1 -1
  151. package/dist/esm/components/NavigationTransition/NavigationTransition.js +1 -0
  152. package/dist/esm/components/NavigationTransition/NavigationTransition.js.map +1 -1
  153. package/dist/esm/components/NumberInput/NumberInput.js +1 -0
  154. package/dist/esm/components/NumberInput/NumberInput.js.map +1 -1
  155. package/dist/esm/components/Pagination/Pagination.js +1 -0
  156. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  157. package/dist/esm/components/ProfileBadge/ProfileBadge.js +2 -2
  158. package/dist/esm/components/ProfileBadge/ProfileBadge.js.map +1 -1
  159. package/dist/esm/components/PullToRefresh/PullToRefresh.js +1 -0
  160. package/dist/esm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  161. package/dist/esm/components/Radio/Radio.js +1 -0
  162. package/dist/esm/components/Radio/Radio.js.map +1 -1
  163. package/dist/esm/components/RadioTile/RadioTile.js +1 -0
  164. package/dist/esm/components/RadioTile/RadioTile.js.map +1 -1
  165. package/dist/esm/components/RangeSlider/RangeSlider.js +1 -0
  166. package/dist/esm/components/RangeSlider/RangeSlider.js.map +1 -1
  167. package/dist/esm/components/SearchInput/SearchInput.js +1 -0
  168. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  169. package/dist/esm/components/SegmentGroup/SegmentGroup.js +1 -0
  170. package/dist/esm/components/SegmentGroup/SegmentGroup.js.map +1 -1
  171. package/dist/esm/components/Select/Select.js +1 -0
  172. package/dist/esm/components/Select/Select.js.map +1 -1
  173. package/dist/esm/components/SmsOtpField/SmsOtpField.js +1 -0
  174. package/dist/esm/components/SmsOtpField/SmsOtpField.js.map +1 -1
  175. package/dist/esm/components/SwipeActions/SwipeActions.js +1 -0
  176. package/dist/esm/components/SwipeActions/SwipeActions.js.map +1 -1
  177. package/dist/esm/components/Table/useTableSelection.js +1 -0
  178. package/dist/esm/components/Table/useTableSelection.js.map +1 -1
  179. package/dist/esm/components/Tabs/Tabs.js +1 -0
  180. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  181. package/dist/esm/components/Textarea/Textarea.js +1 -0
  182. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  183. package/dist/esm/components/Tile/Tile.js +1 -0
  184. package/dist/esm/components/Tile/Tile.js.map +1 -1
  185. package/dist/esm/components/Toast/Toast.js +1 -0
  186. package/dist/esm/components/Toast/Toast.js.map +1 -1
  187. package/dist/esm/components/Toggle/Toggle.js +1 -0
  188. package/dist/esm/components/Toggle/Toggle.js.map +1 -1
  189. package/dist/esm/components/index.js.map +1 -1
  190. package/dist/styles/components/Badge.css +77 -28
  191. package/dist/styles/components/Button.css +10 -4
  192. package/dist/styles/components/Chip.css +155 -65
  193. package/dist/styles/components/DataTable.css +328 -25
  194. package/dist/styles/index.css +1182 -644
  195. package/dist/styles/muka-dark.css +1182 -644
  196. package/dist/styles/muka-light.css +1182 -644
  197. package/dist/styles/tokens-bouwflow-dark.css +93 -3
  198. package/dist/styles/tokens-bouwflow-light.css +93 -3
  199. package/dist/styles/tokens-fscl-dark.css +93 -3
  200. package/dist/styles/tokens-fscl-light.css +93 -3
  201. package/dist/styles/tokens-grip-dark.css +93 -3
  202. package/dist/styles/tokens-grip-light.css +93 -3
  203. package/dist/styles/tokens-muka-dark.css +93 -3
  204. package/dist/styles/tokens-muka-light.css +93 -3
  205. package/dist/styles/tokens-wireframe-dark.css +93 -3
  206. package/dist/styles/tokens-wireframe-light.css +150 -60
  207. package/dist/styles/wireframe-dark.css +1182 -644
  208. package/dist/styles/wireframe-light.css +1201 -663
  209. package/dist/types/components/AgentTaskList/AgentTaskList.d.ts.map +1 -1
  210. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  211. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  212. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  213. package/dist/types/components/Button/Button.d.ts.map +1 -1
  214. package/dist/types/components/Card/Card.d.ts.map +1 -1
  215. package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
  216. package/dist/types/components/ChatMessageList/ChatMessageList.d.ts.map +1 -1
  217. package/dist/types/components/Checkbox/Checkbox.d.ts +4 -0
  218. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  219. package/dist/types/components/CheckboxTile/CheckboxTile.d.ts.map +1 -1
  220. package/dist/types/components/Chip/Chip.d.ts +2 -5
  221. package/dist/types/components/Chip/Chip.d.ts.map +1 -1
  222. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  223. package/dist/types/components/DataTable/DataTable.d.ts +93 -4
  224. package/dist/types/components/DataTable/DataTable.d.ts.map +1 -1
  225. package/dist/types/components/DataTable/index.d.ts +1 -1
  226. package/dist/types/components/DataTable/index.d.ts.map +1 -1
  227. package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -1
  228. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  229. package/dist/types/components/DocumentViewer/DocumentCanvas.d.ts.map +1 -1
  230. package/dist/types/components/DocumentViewer/DocumentThumbnails.d.ts.map +1 -1
  231. package/dist/types/components/DocumentViewer/DocumentToolbar.d.ts.map +1 -1
  232. package/dist/types/components/DocumentViewer/DocumentViewer.d.ts.map +1 -1
  233. package/dist/types/components/Drawer/Drawer.d.ts.map +1 -1
  234. package/dist/types/components/FileUpload/FileUpload.d.ts.map +1 -1
  235. package/dist/types/components/Input/Input.d.ts.map +1 -1
  236. package/dist/types/components/LicensePlateInput/LicensePlateInput.d.ts.map +1 -1
  237. package/dist/types/components/ListItem/ListItem.d.ts.map +1 -1
  238. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  239. package/dist/types/components/NavigationTransition/NavigationTransition.d.ts.map +1 -1
  240. package/dist/types/components/NumberInput/NumberInput.d.ts.map +1 -1
  241. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  242. package/dist/types/components/ProfileBadge/ProfileBadge.d.ts +8 -0
  243. package/dist/types/components/ProfileBadge/ProfileBadge.d.ts.map +1 -1
  244. package/dist/types/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  245. package/dist/types/components/Radio/Radio.d.ts.map +1 -1
  246. package/dist/types/components/RadioTile/RadioTile.d.ts.map +1 -1
  247. package/dist/types/components/RangeSlider/RangeSlider.d.ts.map +1 -1
  248. package/dist/types/components/SearchInput/SearchInput.d.ts.map +1 -1
  249. package/dist/types/components/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  250. package/dist/types/components/Select/Select.d.ts.map +1 -1
  251. package/dist/types/components/SmsOtpField/SmsOtpField.d.ts.map +1 -1
  252. package/dist/types/components/SwipeActions/SwipeActions.d.ts.map +1 -1
  253. package/dist/types/components/Table/useTableSelection.d.ts.map +1 -1
  254. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  255. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -1
  256. package/dist/types/components/Tile/Tile.d.ts.map +1 -1
  257. package/dist/types/components/Toast/Toast.d.ts.map +1 -1
  258. package/dist/types/components/Toggle/Toggle.d.ts.map +1 -1
  259. package/dist/types/components/index.d.ts +1 -1
  260. package/dist/types/components/index.d.ts.map +1 -1
  261. package/package.json +3 -1
  262. package/tokens/t2-alias/base.json +90 -0
  263. package/tokens/t2-alias/brand/bouwflow/dark.json +35 -5
  264. package/tokens/t2-alias/brand/bouwflow/light.json +35 -5
  265. package/tokens/t2-alias/brand/fscl/dark.json +35 -5
  266. package/tokens/t2-alias/brand/fscl/light.json +28 -4
  267. package/tokens/t2-alias/brand/grip/dark.json +90 -0
  268. package/tokens/t2-alias/brand/grip/light.json +90 -0
  269. package/tokens/t2-alias/brand/muka/dark.json +90 -0
  270. package/tokens/t2-alias/brand/muka/light.json +90 -0
  271. package/tokens/t2-alias/brand/wireframe/dark.json +90 -0
  272. package/tokens/t2-alias/brand/wireframe/light.json +82 -10
  273. package/tokens/t4-components/badge.json +44 -0
  274. package/tokens/t4-components/chip.json +214 -4
  275. package/tokens/t4-components/datatable.json +104 -0
@@ -1129,18 +1129,38 @@ body {
1129
1129
  --alias-color-state-success-contrast: #c4f5e1;
1130
1130
  --alias-color-state-success-default: #58d5ba;
1131
1131
  --alias-color-state-success-muted: #092c2b;
1132
+ --alias-color-state-success-surface-level0: #0f1b1b;
1133
+ --alias-color-state-success-surface-level1: #092c2b;
1134
+ --alias-color-state-success-surface-level2: #003a38;
1135
+ --alias-color-state-success-surface-level3: #004744;
1132
1136
  --alias-color-state-warning-contrast: #ffca16;
1133
1137
  --alias-color-state-warning-default: #ffc53d;
1134
1138
  --alias-color-state-warning-muted: #302008;
1139
+ --alias-color-state-warning-surface-level0: #1d180f;
1140
+ --alias-color-state-warning-surface-level1: #302008;
1141
+ --alias-color-state-warning-surface-level2: #3f2700;
1142
+ --alias-color-state-warning-surface-level3: #4d3000;
1135
1143
  --alias-color-state-error-contrast: #fea6a6;
1136
1144
  --alias-color-state-error-default: #e54d4e;
1137
1145
  --alias-color-state-error-muted: #3d181e;
1146
+ --alias-color-state-error-surface-level0: #2c1419;
1147
+ --alias-color-state-error-surface-level1: #3d181e;
1148
+ --alias-color-state-error-surface-level2: #4a1a22;
1149
+ --alias-color-state-error-surface-level3: #571c26;
1138
1150
  --alias-color-state-info-contrast: #70b8ff;
1139
1151
  --alias-color-state-info-default: #0090ff;
1140
1152
  --alias-color-state-info-muted: #0d2847;
1153
+ --alias-color-state-info-surface-level0: #111927;
1154
+ --alias-color-state-info-surface-level1: #0d2847;
1155
+ --alias-color-state-info-surface-level2: #003362;
1156
+ --alias-color-state-info-surface-level3: #004074;
1141
1157
  --alias-color-state-neutral-contrast: #b5b5c7;
1142
1158
  --alias-color-state-neutral-default: #737387;
1143
1159
  --alias-color-state-neutral-muted: #232326;
1160
+ --alias-color-state-neutral-surface-level0: #1c1c1f;
1161
+ --alias-color-state-neutral-surface-level1: #232326;
1162
+ --alias-color-state-neutral-surface-level2: #2b2b30;
1163
+ --alias-color-state-neutral-surface-level3: #323238;
1144
1164
  --alias-font-plain-family: Funnel Sans;
1145
1165
  --alias-font-plain-weight-regular: 400;
1146
1166
  --alias-font-plain-weight-medium: 500;
@@ -1509,9 +1529,51 @@ body {
1509
1529
  --icon-size-sm: 1.25rem;
1510
1530
  --icon-size-default: 1.5rem;
1511
1531
  --icon-size-lg: 2rem;
1512
- --chip-size-height-sm: 2rem;
1513
- --chip-size-height-md: 2.5rem;
1514
- --chip-size-height-lg: 3rem;
1532
+ --chip-size-height-sm: 1.5rem;
1533
+ --chip-size-height-md: 2rem;
1534
+ --chip-size-height-lg: 2.5rem;
1535
+ --chip-gap-sm: 0.25rem;
1536
+ --chip-gap-md: 0.5rem;
1537
+ --chip-gap-lg: 0.5rem;
1538
+ --chip-padding-label-sm: 0.75rem;
1539
+ --chip-padding-label-md: 1rem;
1540
+ --chip-padding-label-lg: 1rem;
1541
+ --chip-padding-leading-sm: 0.5rem;
1542
+ --chip-padding-leading-md: 0.75rem;
1543
+ --chip-padding-leading-lg: 0.75rem;
1544
+ --chip-padding-trailing-sm: 2px;
1545
+ --chip-padding-trailing-md: 0.25rem;
1546
+ --chip-padding-trailing-lg: 0.25rem;
1547
+ --chip-dismiss-default-background-default: #232326;
1548
+ --chip-dismiss-default-background-hover: #2b2b30;
1549
+ --chip-dismiss-default-background-pressed: #323238;
1550
+ --chip-dismiss-default-foreground-default: #b5b5c7;
1551
+ --chip-dismiss-default-foreground-hover: #b5b5c7;
1552
+ --chip-dismiss-default-foreground-pressed: #b5b5c7;
1553
+ --chip-dismiss-success-background-default: #092c2b;
1554
+ --chip-dismiss-success-background-hover: #003a38;
1555
+ --chip-dismiss-success-background-pressed: #004744;
1556
+ --chip-dismiss-success-foreground-default: #c4f5e1;
1557
+ --chip-dismiss-success-foreground-hover: #c4f5e1;
1558
+ --chip-dismiss-success-foreground-pressed: #c4f5e1;
1559
+ --chip-dismiss-warning-background-default: #302008;
1560
+ --chip-dismiss-warning-background-hover: #3f2700;
1561
+ --chip-dismiss-warning-background-pressed: #4d3000;
1562
+ --chip-dismiss-warning-foreground-default: #ffca16;
1563
+ --chip-dismiss-warning-foreground-hover: #ffca16;
1564
+ --chip-dismiss-warning-foreground-pressed: #ffca16;
1565
+ --chip-dismiss-error-background-default: #3d181e;
1566
+ --chip-dismiss-error-background-hover: #4a1a22;
1567
+ --chip-dismiss-error-background-pressed: #571c26;
1568
+ --chip-dismiss-error-foreground-default: #fea6a6;
1569
+ --chip-dismiss-error-foreground-hover: #fea6a6;
1570
+ --chip-dismiss-error-foreground-pressed: #fea6a6;
1571
+ --chip-dismiss-info-background-default: #0d2847;
1572
+ --chip-dismiss-info-background-hover: #003362;
1573
+ --chip-dismiss-info-background-pressed: #004074;
1574
+ --chip-dismiss-info-foreground-default: #70b8ff;
1575
+ --chip-dismiss-info-foreground-hover: #70b8ff;
1576
+ --chip-dismiss-info-foreground-pressed: #70b8ff;
1515
1577
  --checkbox-size-sm: 1.25rem;
1516
1578
  --checkbox-size-default: 1.5rem;
1517
1579
  --checkbox-size-lg: 2rem;
@@ -1816,6 +1878,15 @@ body {
1816
1878
  --badge-size-dot-sm: 0.5rem;
1817
1879
  --badge-size-dot-md: 0.75rem;
1818
1880
  --badge-size-dot-lg: 1rem;
1881
+ --badge-gap-sm: 0.25rem;
1882
+ --badge-gap-md: 0.5rem;
1883
+ --badge-gap-lg: 0.5rem;
1884
+ --badge-padding-label-sm: 0.75rem;
1885
+ --badge-padding-label-md: 1rem;
1886
+ --badge-padding-label-lg: 1rem;
1887
+ --badge-padding-leading-sm: 0.5rem;
1888
+ --badge-padding-leading-md: 0.75rem;
1889
+ --badge-padding-leading-lg: 0.75rem;
1819
1890
  --table-cell-padding-x-sm: 0.5rem;
1820
1891
  --table-cell-padding-x-md: 0.75rem;
1821
1892
  --table-cell-padding-x-lg: 1rem;
@@ -1827,6 +1898,25 @@ body {
1827
1898
  --table-pagination-gap: 1rem;
1828
1899
  --table-pagination-background: #2b2b30;
1829
1900
  --table-pagination-border: #2b2b30;
1901
+ --datatable-header-background: #2b2b30;
1902
+ --datatable-header-foreground: #e6e6ea;
1903
+ --datatable-header-border: #2b2b30;
1904
+ --datatable-row-background: #161618;
1905
+ --datatable-row-foreground: #e6e6ea;
1906
+ --datatable-row-border: #2b2b30;
1907
+ --datatable-row-hover-background: #1c1c1f;
1908
+ --datatable-row-pressed-background: #161618;
1909
+ --datatable-row-selected-background: #0d2847;
1910
+ --datatable-cell-padding-x-sm: 0.5rem;
1911
+ --datatable-cell-padding-x-md: 0.75rem;
1912
+ --datatable-cell-padding-x-lg: 1rem;
1913
+ --datatable-cell-padding-y-sm: 0.5rem;
1914
+ --datatable-cell-padding-y-md: 0.75rem;
1915
+ --datatable-cell-padding-y-lg: 1rem;
1916
+ --datatable-cell-min-height: 2rem;
1917
+ --datatable-divider-color: #2b2b30;
1918
+ --datatable-selection-column-width: 3.5rem;
1919
+ --datatable-focus-ring: #9eb1ff;
1830
1920
  --datepicker-color-background: #161618;
1831
1921
  --datepicker-size-day-sm: 2.5rem;
1832
1922
  --datepicker-size-day-md: 3rem;
@@ -3408,6 +3498,114 @@ body {
3408
3498
  }
3409
3499
 
3410
3500
 
3501
+ /* SwipeActions */
3502
+ /* SwipeActions Component Styles */
3503
+
3504
+ .muka-swipe-actions {
3505
+ position: relative;
3506
+ overflow: hidden;
3507
+ touch-action: pan-y;
3508
+ -webkit-user-select: none;
3509
+ user-select: none;
3510
+ background-color: var(--color-surface-level3);
3511
+ }
3512
+
3513
+ .muka-swipe-actions--disabled {
3514
+ touch-action: auto;
3515
+ }
3516
+
3517
+ /* ─── Row that holds the actual content ────────────────── */
3518
+
3519
+ .muka-swipe-actions__row {
3520
+ position: relative;
3521
+ z-index: 1;
3522
+ background-color: inherit;
3523
+ will-change: transform;
3524
+ }
3525
+
3526
+ /* ─── Action panels — sit beneath the row ──────────────── */
3527
+
3528
+ .muka-swipe-actions__panel {
3529
+ position: absolute;
3530
+ top: 0;
3531
+ bottom: 0;
3532
+ display: flex;
3533
+ align-items: stretch;
3534
+ z-index: 0;
3535
+ }
3536
+
3537
+ .muka-swipe-actions__panel--left {
3538
+ left: 0;
3539
+ }
3540
+
3541
+ .muka-swipe-actions__panel--right {
3542
+ right: 0;
3543
+ }
3544
+
3545
+ /* ─── Single action button ─────────────────────────────── */
3546
+
3547
+ .muka-swipe-actions__button {
3548
+ display: flex;
3549
+ flex-direction: column;
3550
+ align-items: center;
3551
+ justify-content: center;
3552
+ gap: var(--spacing-1);
3553
+ border: none;
3554
+ cursor: pointer;
3555
+ padding: var(--spacing-2);
3556
+ background-color: var(--color-surface-level2);
3557
+ color: var(--color-text-default-default);
3558
+ font-family: var(--text-label-sm-semibold-fontFamily);
3559
+ font-weight: var(--text-label-sm-semibold-fontWeight);
3560
+ font-size: var(--text-label-sm-semibold-fontSize);
3561
+ line-height: var(--text-label-sm-semibold-lineHeight);
3562
+ -webkit-tap-highlight-color: transparent;
3563
+ transition: filter 0.12s ease;
3564
+ }
3565
+
3566
+ .muka-swipe-actions__button:hover {
3567
+ filter: brightness(0.95);
3568
+ }
3569
+
3570
+ .muka-swipe-actions__button:focus-visible {
3571
+ outline: 2px solid var(--color-action-default);
3572
+ outline-offset: -2px;
3573
+ }
3574
+
3575
+ .muka-swipe-actions__button-icon {
3576
+ display: inline-flex;
3577
+ align-items: center;
3578
+ justify-content: center;
3579
+ }
3580
+
3581
+ /* ─── Color variants ───────────────────────────────────── */
3582
+
3583
+ .muka-swipe-actions__button--neutral {
3584
+ background-color: var(--color-surface-level2);
3585
+ color: var(--color-text-default-default);
3586
+ }
3587
+
3588
+ .muka-swipe-actions__button--primary {
3589
+ background-color: var(--color-action-default);
3590
+ color: var(--color-text-inverse-default, #fff);
3591
+ }
3592
+
3593
+ .muka-swipe-actions__button--success {
3594
+ background-color: var(--color-state-success-default, var(--color-action-default));
3595
+ color: var(--color-text-inverse-default, #fff);
3596
+ }
3597
+
3598
+ .muka-swipe-actions__button--warning {
3599
+ background-color: var(--color-state-warning-default, var(--color-action-default));
3600
+ color: var(--color-text-default-default);
3601
+ }
3602
+
3603
+ .muka-swipe-actions__button--destructive {
3604
+ background-color: var(--color-state-error-default, #c0392b);
3605
+ color: var(--color-text-inverse-default, #fff);
3606
+ }
3607
+
3608
+
3411
3609
  /* Table */
3412
3610
  /* Table Component Styles - Using Muka Design Tokens */
3413
3611
 
@@ -3760,114 +3958,6 @@ body {
3760
3958
  }
3761
3959
 
3762
3960
 
3763
- /* SwipeActions */
3764
- /* SwipeActions Component Styles */
3765
-
3766
- .muka-swipe-actions {
3767
- position: relative;
3768
- overflow: hidden;
3769
- touch-action: pan-y;
3770
- -webkit-user-select: none;
3771
- user-select: none;
3772
- background-color: var(--color-surface-level3);
3773
- }
3774
-
3775
- .muka-swipe-actions--disabled {
3776
- touch-action: auto;
3777
- }
3778
-
3779
- /* ─── Row that holds the actual content ────────────────── */
3780
-
3781
- .muka-swipe-actions__row {
3782
- position: relative;
3783
- z-index: 1;
3784
- background-color: inherit;
3785
- will-change: transform;
3786
- }
3787
-
3788
- /* ─── Action panels — sit beneath the row ──────────────── */
3789
-
3790
- .muka-swipe-actions__panel {
3791
- position: absolute;
3792
- top: 0;
3793
- bottom: 0;
3794
- display: flex;
3795
- align-items: stretch;
3796
- z-index: 0;
3797
- }
3798
-
3799
- .muka-swipe-actions__panel--left {
3800
- left: 0;
3801
- }
3802
-
3803
- .muka-swipe-actions__panel--right {
3804
- right: 0;
3805
- }
3806
-
3807
- /* ─── Single action button ─────────────────────────────── */
3808
-
3809
- .muka-swipe-actions__button {
3810
- display: flex;
3811
- flex-direction: column;
3812
- align-items: center;
3813
- justify-content: center;
3814
- gap: var(--spacing-1);
3815
- border: none;
3816
- cursor: pointer;
3817
- padding: var(--spacing-2);
3818
- background-color: var(--color-surface-level2);
3819
- color: var(--color-text-default-default);
3820
- font-family: var(--text-label-sm-semibold-fontFamily);
3821
- font-weight: var(--text-label-sm-semibold-fontWeight);
3822
- font-size: var(--text-label-sm-semibold-fontSize);
3823
- line-height: var(--text-label-sm-semibold-lineHeight);
3824
- -webkit-tap-highlight-color: transparent;
3825
- transition: filter 0.12s ease;
3826
- }
3827
-
3828
- .muka-swipe-actions__button:hover {
3829
- filter: brightness(0.95);
3830
- }
3831
-
3832
- .muka-swipe-actions__button:focus-visible {
3833
- outline: 2px solid var(--color-action-default);
3834
- outline-offset: -2px;
3835
- }
3836
-
3837
- .muka-swipe-actions__button-icon {
3838
- display: inline-flex;
3839
- align-items: center;
3840
- justify-content: center;
3841
- }
3842
-
3843
- /* ─── Color variants ───────────────────────────────────── */
3844
-
3845
- .muka-swipe-actions__button--neutral {
3846
- background-color: var(--color-surface-level2);
3847
- color: var(--color-text-default-default);
3848
- }
3849
-
3850
- .muka-swipe-actions__button--primary {
3851
- background-color: var(--color-action-default);
3852
- color: var(--color-text-inverse-default, #fff);
3853
- }
3854
-
3855
- .muka-swipe-actions__button--success {
3856
- background-color: var(--color-state-success-default, var(--color-action-default));
3857
- color: var(--color-text-inverse-default, #fff);
3858
- }
3859
-
3860
- .muka-swipe-actions__button--warning {
3861
- background-color: var(--color-state-warning-default, var(--color-action-default));
3862
- color: var(--color-text-default-default);
3863
- }
3864
-
3865
- .muka-swipe-actions__button--destructive {
3866
- background-color: var(--color-state-error-default, #c0392b);
3867
- color: var(--color-text-inverse-default, #fff);
3868
- }
3869
-
3870
-
3871
3961
  /* Spinner */
3872
3962
  /* Spinner Component Styles */
3873
3963
 
@@ -4018,37 +4108,192 @@ body {
4018
4108
  }
4019
4109
 
4020
4110
 
4021
- /* SmsOtpField */
4022
- /* SmsOtpField Component Styles - Using Muka Design Tokens */
4111
+ /* Skeleton */
4112
+ /* Skeleton Component Styles */
4023
4113
 
4024
- /* Wrapper */
4025
- .muka-sms-otp-field {
4026
- display: inline-flex;
4027
- flex-direction: column;
4028
- gap: var(--spacing-2);
4114
+ .muka-skeleton {
4115
+ background-color: var(--color-surface-level1);
4116
+ display: block;
4029
4117
  }
4030
4118
 
4031
- /* Label */
4032
- .muka-sms-otp-field__label {
4033
- color: var(--color-text-default-default);
4034
- cursor: pointer;
4119
+ /* Variants */
4120
+ .muka-skeleton--text {
4121
+ height: 1em;
4122
+ border-radius: var(--radius-md);
4123
+ width: 100%;
4035
4124
  }
4036
4125
 
4037
- .muka-sms-otp-field__label--sm {
4038
- font-family: var(--text-label-sm-semibold-fontFamily);
4039
- font-weight: var(--text-label-sm-semibold-fontWeight);
4040
- font-size: var(--text-label-sm-semibold-fontSize);
4041
- line-height: var(--text-label-sm-semibold-lineHeight);
4126
+ .muka-skeleton--circular {
4127
+ width: 2.5rem;
4128
+ height: 2.5rem;
4129
+ border-radius: var(--radius-full);
4042
4130
  }
4043
4131
 
4044
- .muka-sms-otp-field__label--md {
4045
- font-family: var(--text-label-md-semibold-fontFamily);
4046
- font-weight: var(--text-label-md-semibold-fontWeight);
4047
- font-size: var(--text-label-md-semibold-fontSize);
4048
- line-height: var(--text-label-md-semibold-lineHeight);
4132
+ .muka-skeleton--rectangular {
4133
+ height: 7.5rem;
4134
+ border-radius: var(--radius-md);
4135
+ width: 100%;
4049
4136
  }
4050
4137
 
4051
- .muka-sms-otp-field__label--lg {
4138
+ /* Last line in multi-line text is shorter */
4139
+ .muka-skeleton--last-line {
4140
+ width: 80%;
4141
+ }
4142
+
4143
+ /* Lines container */
4144
+ .muka-skeleton__lines {
4145
+ display: flex;
4146
+ flex-direction: column;
4147
+ gap: var(--spacing-2);
4148
+ }
4149
+
4150
+ /* Shimmer animation */
4151
+ @keyframes muka-skeleton-shimmer {
4152
+ 0% {
4153
+ background-position: -200% 0;
4154
+ }
4155
+ 100% {
4156
+ background-position: 200% 0;
4157
+ }
4158
+ }
4159
+
4160
+ .muka-skeleton--shimmer {
4161
+ background: linear-gradient(
4162
+ 90deg,
4163
+ var(--color-surface-level1) 25%,
4164
+ var(--color-surface-level2) 50%,
4165
+ var(--color-surface-level1) 75%
4166
+ );
4167
+ background-size: 200% 100%;
4168
+ animation: muka-skeleton-shimmer 1.5s ease-in-out infinite;
4169
+ }
4170
+
4171
+ /* Pulse animation */
4172
+ @keyframes muka-skeleton-pulse {
4173
+ 0%, 100% {
4174
+ opacity: 1;
4175
+ }
4176
+ 50% {
4177
+ opacity: 0.4;
4178
+ }
4179
+ }
4180
+
4181
+ .muka-skeleton--pulse {
4182
+ animation: muka-skeleton-pulse 1.5s ease-in-out infinite;
4183
+ }
4184
+
4185
+
4186
+ /* Sheet */
4187
+ /* Sheet Component Styles */
4188
+
4189
+ /* ─── Backdrop ────────────────────────────────────────── */
4190
+
4191
+ .muka-sheet__overlay {
4192
+ position: fixed;
4193
+ inset: 0;
4194
+ background-color: var(--color-surface-backdrop);
4195
+ z-index: 50;
4196
+ }
4197
+
4198
+ /* ─── Surface ─────────────────────────────────────────── */
4199
+
4200
+ .muka-sheet {
4201
+ position: fixed;
4202
+ left: 0;
4203
+ right: 0;
4204
+ bottom: 0;
4205
+ z-index: 51;
4206
+
4207
+ display: flex;
4208
+ flex-direction: column;
4209
+
4210
+ max-height: 96dvh;
4211
+
4212
+ background-color: var(--color-surface-level3);
4213
+ border-top-left-radius: var(--radius-lg);
4214
+ border-top-right-radius: var(--radius-lg);
4215
+ box-shadow: var(--shadow-level5);
4216
+
4217
+ outline: none;
4218
+ }
4219
+
4220
+ /* Safe-area bottom inset for the iPhone home indicator. */
4221
+ .muka-sheet:not(.muka-sheet--no-safe-area) {
4222
+ padding-bottom: env(safe-area-inset-bottom);
4223
+ }
4224
+
4225
+ /* ─── Drag handle ─────────────────────────────────────── */
4226
+
4227
+ .muka-sheet__handle-container {
4228
+ display: flex;
4229
+ justify-content: center;
4230
+ flex-shrink: 0;
4231
+ padding: var(--spacing-3) 0;
4232
+ }
4233
+
4234
+ .muka-sheet__handle {
4235
+ width: var(--dialog-drag-handle-width);
4236
+ height: var(--dialog-drag-handle-height);
4237
+ background-color: var(--dialog-drag-handle-color);
4238
+ border-radius: var(--dialog-drag-handle-radius);
4239
+ }
4240
+
4241
+ /* ─── Body (scrollable) ───────────────────────────────── */
4242
+
4243
+ .muka-sheet__body {
4244
+ flex: 1 1 0%;
4245
+ min-height: 0;
4246
+ overflow-y: auto;
4247
+ -webkit-overflow-scrolling: touch;
4248
+ overscroll-behavior: contain;
4249
+ }
4250
+
4251
+ /* ─── Visually-hidden title (a11y) ────────────────────── */
4252
+
4253
+ .muka-sheet__sr-title {
4254
+ position: absolute;
4255
+ width: 1px;
4256
+ height: 1px;
4257
+ padding: 0;
4258
+ margin: -1px;
4259
+ overflow: hidden;
4260
+ clip: rect(0, 0, 0, 0);
4261
+ white-space: nowrap;
4262
+ border: 0;
4263
+ }
4264
+
4265
+
4266
+ /* SmsOtpField */
4267
+ /* SmsOtpField Component Styles - Using Muka Design Tokens */
4268
+
4269
+ /* Wrapper */
4270
+ .muka-sms-otp-field {
4271
+ display: inline-flex;
4272
+ flex-direction: column;
4273
+ gap: var(--spacing-2);
4274
+ }
4275
+
4276
+ /* Label */
4277
+ .muka-sms-otp-field__label {
4278
+ color: var(--color-text-default-default);
4279
+ cursor: pointer;
4280
+ }
4281
+
4282
+ .muka-sms-otp-field__label--sm {
4283
+ font-family: var(--text-label-sm-semibold-fontFamily);
4284
+ font-weight: var(--text-label-sm-semibold-fontWeight);
4285
+ font-size: var(--text-label-sm-semibold-fontSize);
4286
+ line-height: var(--text-label-sm-semibold-lineHeight);
4287
+ }
4288
+
4289
+ .muka-sms-otp-field__label--md {
4290
+ font-family: var(--text-label-md-semibold-fontFamily);
4291
+ font-weight: var(--text-label-md-semibold-fontWeight);
4292
+ font-size: var(--text-label-md-semibold-fontSize);
4293
+ line-height: var(--text-label-md-semibold-lineHeight);
4294
+ }
4295
+
4296
+ .muka-sms-otp-field__label--lg {
4052
4297
  font-family: var(--text-label-lg-semibold-fontFamily);
4053
4298
  font-weight: var(--text-label-lg-semibold-fontWeight);
4054
4299
  font-size: var(--text-label-lg-semibold-fontSize);
@@ -4164,204 +4409,49 @@ body {
4164
4409
  outline: none;
4165
4410
  }
4166
4411
 
4167
- /* Also handle native :focus for keyboard navigation */
4168
- .muka-sms-otp-field__digit:focus {
4169
- outline: none;
4170
- }
4171
-
4172
- /* Error state */
4173
- .muka-sms-otp-field__digit--error:not(.muka-sms-otp-field__digit--disabled) {
4174
- border-width: var(--border-width-bold);
4175
- border-color: var(--input-field-color-error-border);
4176
- background-color: var(--input-field-color-error-background);
4177
- }
4178
-
4179
- /* Disabled state */
4180
- .muka-sms-otp-field__digit--disabled {
4181
- background-color: var(--input-field-color-disabled-background);
4182
- border-color: var(--input-field-color-disabled-border);
4183
- color: var(--input-field-color-disabled-foreground);
4184
- cursor: not-allowed;
4185
- }
4186
-
4187
- /* Filled state — slightly bolder text */
4188
- .muka-sms-otp-field__digit--filled {
4189
- color: var(--input-field-color-default-foreground);
4190
- }
4191
-
4192
- /* Helper text */
4193
- .muka-sms-otp-field__helper {
4194
- font-family: var(--text-label-sm-regular-fontFamily);
4195
- font-weight: var(--text-label-sm-regular-fontWeight);
4196
- font-size: var(--text-label-sm-regular-fontSize);
4197
- line-height: var(--text-label-sm-regular-lineHeight);
4198
- color: var(--color-text-subtle-default);
4199
- margin: 0;
4200
- }
4201
-
4202
- /* Error message */
4203
- .muka-sms-otp-field__error {
4204
- font-family: var(--text-label-sm-regular-fontFamily);
4205
- font-weight: var(--text-label-sm-regular-fontWeight);
4206
- font-size: var(--text-label-sm-regular-fontSize);
4207
- line-height: var(--text-label-sm-regular-lineHeight);
4208
- color: var(--color-state-error-foreground);
4209
- margin: 0;
4210
- }
4211
-
4212
-
4213
- /* Skeleton */
4214
- /* Skeleton Component Styles */
4215
-
4216
- .muka-skeleton {
4217
- background-color: var(--color-surface-level1);
4218
- display: block;
4219
- }
4220
-
4221
- /* Variants */
4222
- .muka-skeleton--text {
4223
- height: 1em;
4224
- border-radius: var(--radius-md);
4225
- width: 100%;
4226
- }
4227
-
4228
- .muka-skeleton--circular {
4229
- width: 2.5rem;
4230
- height: 2.5rem;
4231
- border-radius: var(--radius-full);
4232
- }
4233
-
4234
- .muka-skeleton--rectangular {
4235
- height: 7.5rem;
4236
- border-radius: var(--radius-md);
4237
- width: 100%;
4238
- }
4239
-
4240
- /* Last line in multi-line text is shorter */
4241
- .muka-skeleton--last-line {
4242
- width: 80%;
4243
- }
4244
-
4245
- /* Lines container */
4246
- .muka-skeleton__lines {
4247
- display: flex;
4248
- flex-direction: column;
4249
- gap: var(--spacing-2);
4250
- }
4251
-
4252
- /* Shimmer animation */
4253
- @keyframes muka-skeleton-shimmer {
4254
- 0% {
4255
- background-position: -200% 0;
4256
- }
4257
- 100% {
4258
- background-position: 200% 0;
4259
- }
4260
- }
4261
-
4262
- .muka-skeleton--shimmer {
4263
- background: linear-gradient(
4264
- 90deg,
4265
- var(--color-surface-level1) 25%,
4266
- var(--color-surface-level2) 50%,
4267
- var(--color-surface-level1) 75%
4268
- );
4269
- background-size: 200% 100%;
4270
- animation: muka-skeleton-shimmer 1.5s ease-in-out infinite;
4271
- }
4272
-
4273
- /* Pulse animation */
4274
- @keyframes muka-skeleton-pulse {
4275
- 0%, 100% {
4276
- opacity: 1;
4277
- }
4278
- 50% {
4279
- opacity: 0.4;
4280
- }
4281
- }
4282
-
4283
- .muka-skeleton--pulse {
4284
- animation: muka-skeleton-pulse 1.5s ease-in-out infinite;
4285
- }
4286
-
4287
-
4288
- /* Sheet */
4289
- /* Sheet Component Styles */
4290
-
4291
- /* ─── Backdrop ────────────────────────────────────────── */
4292
-
4293
- .muka-sheet__overlay {
4294
- position: fixed;
4295
- inset: 0;
4296
- background-color: var(--color-surface-backdrop);
4297
- z-index: 50;
4298
- }
4299
-
4300
- /* ─── Surface ─────────────────────────────────────────── */
4301
-
4302
- .muka-sheet {
4303
- position: fixed;
4304
- left: 0;
4305
- right: 0;
4306
- bottom: 0;
4307
- z-index: 51;
4308
-
4309
- display: flex;
4310
- flex-direction: column;
4311
-
4312
- max-height: 96dvh;
4313
-
4314
- background-color: var(--color-surface-level3);
4315
- border-top-left-radius: var(--radius-lg);
4316
- border-top-right-radius: var(--radius-lg);
4317
- box-shadow: var(--shadow-level5);
4318
-
4319
- outline: none;
4320
- }
4321
-
4322
- /* Safe-area bottom inset for the iPhone home indicator. */
4323
- .muka-sheet:not(.muka-sheet--no-safe-area) {
4324
- padding-bottom: env(safe-area-inset-bottom);
4325
- }
4326
-
4327
- /* ─── Drag handle ─────────────────────────────────────── */
4328
-
4329
- .muka-sheet__handle-container {
4330
- display: flex;
4331
- justify-content: center;
4332
- flex-shrink: 0;
4333
- padding: var(--spacing-3) 0;
4412
+ /* Also handle native :focus for keyboard navigation */
4413
+ .muka-sms-otp-field__digit:focus {
4414
+ outline: none;
4334
4415
  }
4335
4416
 
4336
- .muka-sheet__handle {
4337
- width: var(--dialog-drag-handle-width);
4338
- height: var(--dialog-drag-handle-height);
4339
- background-color: var(--dialog-drag-handle-color);
4340
- border-radius: var(--dialog-drag-handle-radius);
4417
+ /* Error state */
4418
+ .muka-sms-otp-field__digit--error:not(.muka-sms-otp-field__digit--disabled) {
4419
+ border-width: var(--border-width-bold);
4420
+ border-color: var(--input-field-color-error-border);
4421
+ background-color: var(--input-field-color-error-background);
4341
4422
  }
4342
4423
 
4343
- /* ─── Body (scrollable) ───────────────────────────────── */
4424
+ /* Disabled state */
4425
+ .muka-sms-otp-field__digit--disabled {
4426
+ background-color: var(--input-field-color-disabled-background);
4427
+ border-color: var(--input-field-color-disabled-border);
4428
+ color: var(--input-field-color-disabled-foreground);
4429
+ cursor: not-allowed;
4430
+ }
4344
4431
 
4345
- .muka-sheet__body {
4346
- flex: 1 1 0%;
4347
- min-height: 0;
4348
- overflow-y: auto;
4349
- -webkit-overflow-scrolling: touch;
4350
- overscroll-behavior: contain;
4432
+ /* Filled state — slightly bolder text */
4433
+ .muka-sms-otp-field__digit--filled {
4434
+ color: var(--input-field-color-default-foreground);
4351
4435
  }
4352
4436
 
4353
- /* ─── Visually-hidden title (a11y) ────────────────────── */
4437
+ /* Helper text */
4438
+ .muka-sms-otp-field__helper {
4439
+ font-family: var(--text-label-sm-regular-fontFamily);
4440
+ font-weight: var(--text-label-sm-regular-fontWeight);
4441
+ font-size: var(--text-label-sm-regular-fontSize);
4442
+ line-height: var(--text-label-sm-regular-lineHeight);
4443
+ color: var(--color-text-subtle-default);
4444
+ margin: 0;
4445
+ }
4354
4446
 
4355
- .muka-sheet__sr-title {
4356
- position: absolute;
4357
- width: 1px;
4358
- height: 1px;
4359
- padding: 0;
4360
- margin: -1px;
4361
- overflow: hidden;
4362
- clip: rect(0, 0, 0, 0);
4363
- white-space: nowrap;
4364
- border: 0;
4447
+ /* Error message */
4448
+ .muka-sms-otp-field__error {
4449
+ font-family: var(--text-label-sm-regular-fontFamily);
4450
+ font-weight: var(--text-label-sm-regular-fontWeight);
4451
+ font-size: var(--text-label-sm-regular-fontSize);
4452
+ line-height: var(--text-label-sm-regular-lineHeight);
4453
+ color: var(--color-state-error-foreground);
4454
+ margin: 0;
4365
4455
  }
4366
4456
 
4367
4457
 
@@ -4770,175 +4860,6 @@ body {
4770
4860
  }
4771
4861
 
4772
4862
 
4773
- /* SearchInput */
4774
- /* SearchInput Component Styles */
4775
-
4776
- .muka-search-input {
4777
- display: flex;
4778
- align-items: center;
4779
- gap: var(--spacing-3);
4780
- width: 100%;
4781
- }
4782
-
4783
- /* ─── Field wrapper ───────────────────────────────────── */
4784
-
4785
- .muka-search-input__field {
4786
- flex: 1 1 auto;
4787
- display: flex;
4788
- align-items: center;
4789
- gap: var(--spacing-2);
4790
- background-color: var(--input-field-color-default-background);
4791
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
4792
- border-radius: var(--input-field-radius-md);
4793
- padding: 0 var(--input-field-padding-x);
4794
- transition: border-color 0.12s ease, background-color 0.12s ease;
4795
- }
4796
-
4797
- .muka-search-input--focused .muka-search-input__field {
4798
- border-color: var(--input-field-color-focus-border, var(--color-action-default));
4799
- }
4800
-
4801
- /* ─── Sizes ───────────────────────────────────────────── */
4802
-
4803
- .muka-search-input--sm .muka-search-input__field {
4804
- min-height: var(--input-field-height-sm);
4805
- border-radius: var(--input-field-radius-sm);
4806
- }
4807
-
4808
- .muka-search-input--md .muka-search-input__field {
4809
- min-height: var(--input-field-height-default);
4810
- }
4811
-
4812
- .muka-search-input--lg .muka-search-input__field {
4813
- min-height: var(--input-field-height-lg);
4814
- border-radius: var(--input-field-radius-lg);
4815
- }
4816
-
4817
- /* ─── Embedded variant (e.g. inside TopBar) ───────────── */
4818
-
4819
- .muka-search-input--embedded .muka-search-input__field {
4820
- background-color: var(--color-surface-level1);
4821
- border-color: transparent;
4822
- }
4823
-
4824
- .muka-search-input--embedded.muka-search-input--focused .muka-search-input__field {
4825
- border-color: transparent;
4826
- background-color: var(--color-surface-level2);
4827
- }
4828
-
4829
- /* ─── Disabled ────────────────────────────────────────── */
4830
-
4831
- .muka-search-input--disabled .muka-search-input__field {
4832
- opacity: 0.5;
4833
- pointer-events: none;
4834
- }
4835
-
4836
- /* ─── Leading icon ────────────────────────────────────── */
4837
-
4838
- .muka-search-input__leading {
4839
- display: inline-flex;
4840
- align-items: center;
4841
- justify-content: center;
4842
- flex-shrink: 0;
4843
- color: var(--color-text-subtle-default);
4844
- }
4845
-
4846
- /* ─── Input element ───────────────────────────────────── */
4847
-
4848
- .muka-search-input__input {
4849
- flex: 1 1 auto;
4850
- min-width: 0;
4851
- border: none;
4852
- background: transparent;
4853
- outline: none;
4854
- padding: 0;
4855
- color: var(--color-text-default-default);
4856
- font-family: var(--text-body-md-regular-fontFamily);
4857
- font-weight: var(--text-body-md-regular-fontWeight);
4858
- font-size: var(--text-body-md-regular-fontSize);
4859
- line-height: var(--text-body-md-regular-lineHeight);
4860
- appearance: none;
4861
- -webkit-appearance: none;
4862
- }
4863
-
4864
- .muka-search-input__input::placeholder {
4865
- color: var(--color-text-subtle-default);
4866
- }
4867
-
4868
- /* Hide the browser-supplied clear button (WebKit + Edge) */
4869
- .muka-search-input__input::-webkit-search-cancel-button,
4870
- .muka-search-input__input::-webkit-search-decoration {
4871
- -webkit-appearance: none;
4872
- appearance: none;
4873
- }
4874
-
4875
- .muka-search-input__input::-ms-clear {
4876
- display: none;
4877
- }
4878
-
4879
- /* ─── Trailing slot (loading spinner) ─────────────────── */
4880
-
4881
- .muka-search-input__trailing {
4882
- display: inline-flex;
4883
- align-items: center;
4884
- justify-content: center;
4885
- flex-shrink: 0;
4886
- }
4887
-
4888
- /* ─── Clear button ────────────────────────────────────── */
4889
-
4890
- .muka-search-input__clear {
4891
- display: inline-flex;
4892
- align-items: center;
4893
- justify-content: center;
4894
- width: 20px;
4895
- height: 20px;
4896
- border: none;
4897
- background: none;
4898
- padding: 0;
4899
- cursor: pointer;
4900
- color: var(--color-text-subtle-default);
4901
- flex-shrink: 0;
4902
- -webkit-tap-highlight-color: transparent;
4903
- }
4904
-
4905
- .muka-search-input__clear:hover {
4906
- color: var(--color-text-default-default);
4907
- }
4908
-
4909
- .muka-search-input__clear:focus-visible {
4910
- outline: 2px solid var(--color-action-default);
4911
- outline-offset: 2px;
4912
- border-radius: 50%;
4913
- }
4914
-
4915
- /* ─── Cancel button ───────────────────────────────────── */
4916
-
4917
- .muka-search-input__cancel {
4918
- flex-shrink: 0;
4919
- background: none;
4920
- border: none;
4921
- padding: var(--spacing-1) var(--spacing-2);
4922
- cursor: pointer;
4923
- color: var(--color-action-default);
4924
- font-family: var(--text-label-md-regular-fontFamily);
4925
- font-weight: var(--text-label-md-regular-fontWeight);
4926
- font-size: var(--text-label-md-regular-fontSize);
4927
- line-height: var(--text-label-md-regular-lineHeight);
4928
- -webkit-tap-highlight-color: transparent;
4929
- }
4930
-
4931
- .muka-search-input__cancel:hover {
4932
- color: var(--color-action-hover);
4933
- }
4934
-
4935
- .muka-search-input__cancel:focus-visible {
4936
- outline: 2px solid var(--color-action-default);
4937
- outline-offset: 2px;
4938
- border-radius: var(--radius-sm);
4939
- }
4940
-
4941
-
4942
4863
  /* RangeSlider */
4943
4864
  /* RangeSlider Component Styles - Using Muka Design Tokens */
4944
4865
 
@@ -6059,6 +5980,36 @@ body {
6059
5980
  }
6060
5981
 
6061
5982
 
5983
+ /* NumberInput */
5984
+ /* NumberInput — reuses Input field styles (../Input/Input.css). */
5985
+ /* Only the prefix/suffix affixes are NumberInput-specific. */
5986
+
5987
+ .muka-numberinput__addon {
5988
+ display: inline-flex;
5989
+ align-items: center;
5990
+ flex: none;
5991
+ color: var(--color-text-subtle-default);
5992
+ font-family: var(--text-input-md-fontFamily);
5993
+ font-size: var(--text-input-md-fontSize);
5994
+ line-height: var(--text-input-md-lineHeight);
5995
+ user-select: none;
5996
+ pointer-events: none;
5997
+ white-space: nowrap;
5998
+ }
5999
+
6000
+ /* Hide the native number spinners — affixes/step API replace them. */
6001
+ .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
6002
+ .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
6003
+ -webkit-appearance: none;
6004
+ margin: 0;
6005
+ }
6006
+
6007
+ .muka-numberinput__field .muka-input__native {
6008
+ -moz-appearance: textfield;
6009
+ appearance: textfield;
6010
+ }
6011
+
6012
+
6062
6013
  /* NavigationTransition */
6063
6014
  /* NavigationTransition Component Styles */
6064
6015
 
@@ -6370,36 +6321,6 @@ body {
6370
6321
  }
6371
6322
 
6372
6323
 
6373
- /* NumberInput */
6374
- /* NumberInput — reuses Input field styles (../Input/Input.css). */
6375
- /* Only the prefix/suffix affixes are NumberInput-specific. */
6376
-
6377
- .muka-numberinput__addon {
6378
- display: inline-flex;
6379
- align-items: center;
6380
- flex: none;
6381
- color: var(--color-text-subtle-default);
6382
- font-family: var(--text-input-md-fontFamily);
6383
- font-size: var(--text-input-md-fontSize);
6384
- line-height: var(--text-input-md-lineHeight);
6385
- user-select: none;
6386
- pointer-events: none;
6387
- white-space: nowrap;
6388
- }
6389
-
6390
- /* Hide the native number spinners — affixes/step API replace them. */
6391
- .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
6392
- .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
6393
- -webkit-appearance: none;
6394
- margin: 0;
6395
- }
6396
-
6397
- .muka-numberinput__field .muka-input__native {
6398
- -moz-appearance: textfield;
6399
- appearance: textfield;
6400
- }
6401
-
6402
-
6403
6324
  /* ListItem */
6404
6325
  /* ListItem Component Styles - Using Muka Design Tokens */
6405
6326
 
@@ -8567,16 +8488,31 @@ li.muka-listitem {
8567
8488
  }
8568
8489
 
8569
8490
  .muka-data-table {
8491
+ /* Density-driven cell padding (overridden per size below). */
8492
+ --dt-pad-x: var(--datatable-cell-padding-x-md);
8493
+ --dt-pad-y: var(--datatable-cell-padding-y-md);
8494
+
8570
8495
  width: 100%;
8571
8496
  border-collapse: collapse;
8572
8497
  border-spacing: 0;
8573
- table-layout: fixed;
8574
- background-color: var(--color-surface-level3);
8575
- color: var(--color-text-default-default);
8498
+ /* auto layout so per-column min/max widths are honored and unsized columns flex */
8499
+ table-layout: auto;
8500
+ background-color: var(--datatable-row-background);
8501
+ color: var(--datatable-row-foreground);
8502
+ }
8503
+
8504
+ .muka-data-table--size-sm {
8505
+ --dt-pad-x: var(--datatable-cell-padding-x-sm);
8506
+ --dt-pad-y: var(--datatable-cell-padding-y-sm);
8507
+ }
8508
+
8509
+ .muka-data-table--size-lg {
8510
+ --dt-pad-x: var(--datatable-cell-padding-x-lg);
8511
+ --dt-pad-y: var(--datatable-cell-padding-y-lg);
8576
8512
  }
8577
8513
 
8578
8514
  .muka-data-table__caption {
8579
- padding: var(--spacing-3) var(--spacing-6);
8515
+ padding: var(--dt-pad-y) var(--dt-pad-x);
8580
8516
  font-family: var(--text-body-base-bold-fontFamily);
8581
8517
  font-weight: var(--text-body-base-bold-fontWeight);
8582
8518
  font-size: var(--text-body-base-bold-fontSize);
@@ -8590,17 +8526,17 @@ li.muka-listitem {
8590
8526
  ======================================== */
8591
8527
 
8592
8528
  .muka-data-table__head {
8593
- border-bottom: var(--border-width-regular, 1px) solid var(--color-border-default);
8529
+ border-bottom: var(--border-width-regular, 1px) solid var(--datatable-header-border);
8594
8530
  }
8595
8531
 
8596
8532
  .muka-data-table__th {
8597
- background-color: var(--color-surface-level1);
8598
- padding: var(--spacing-2) var(--spacing-6);
8533
+ background-color: var(--datatable-header-background);
8534
+ padding: var(--datatable-cell-padding-y-sm) var(--dt-pad-x);
8599
8535
  font-family: var(--text-body-base-bold-fontFamily);
8600
8536
  font-weight: var(--text-body-base-bold-fontWeight);
8601
8537
  font-size: var(--text-body-base-bold-fontSize);
8602
8538
  line-height: var(--text-body-base-bold-lineHeight);
8603
- color: var(--color-text-default-default);
8539
+ color: var(--datatable-header-foreground);
8604
8540
  vertical-align: middle;
8605
8541
  text-align: left;
8606
8542
  }
@@ -8608,7 +8544,7 @@ li.muka-listitem {
8608
8544
  .muka-data-table__th-label {
8609
8545
  display: flex;
8610
8546
  align-items: center;
8611
- min-height: 2rem; /* 32px slot — matches Figma header cell height */
8547
+ min-height: var(--datatable-cell-min-height); /* 32px slot — matches Figma header cell height */
8612
8548
  }
8613
8549
 
8614
8550
  /* ========================================
@@ -8616,28 +8552,34 @@ li.muka-listitem {
8616
8552
  ======================================== */
8617
8553
 
8618
8554
  .muka-data-table__row {
8619
- border-bottom: var(--border-width-regular, 1px) solid var(--color-border-default);
8555
+ border-bottom: var(--border-width-regular, 1px) solid var(--datatable-row-border);
8620
8556
  transition: background-color 0.15s ease;
8621
8557
  }
8622
8558
 
8623
- .muka-data-table__row:not(.muka-data-table__row--empty):hover {
8624
- background-color: var(--color-surface-hover);
8559
+ .muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
8560
+ background-color: var(--datatable-row-hover-background);
8561
+ }
8562
+
8563
+ /* Selected rows keep their tint, including on hover. */
8564
+ .muka-data-table__row--selected,
8565
+ .muka-data-table__row--selected:hover {
8566
+ background-color: var(--datatable-row-selected-background);
8625
8567
  }
8626
8568
 
8627
8569
  .muka-data-table__td {
8628
- padding: var(--spacing-3) var(--spacing-6);
8570
+ padding: var(--dt-pad-y) var(--dt-pad-x);
8629
8571
  font-family: var(--text-body-base-regular-fontFamily);
8630
8572
  font-weight: var(--text-body-base-regular-fontWeight);
8631
8573
  font-size: var(--text-body-base-regular-fontSize);
8632
8574
  line-height: var(--text-body-base-regular-lineHeight);
8633
- color: var(--color-text-default-default);
8575
+ color: var(--datatable-row-foreground);
8634
8576
  vertical-align: middle;
8635
8577
  }
8636
8578
 
8637
8579
  .muka-data-table__cell-content {
8638
8580
  display: flex;
8639
8581
  align-items: center;
8640
- min-height: 2rem; /* 32px slot — matches Figma body cell height */
8582
+ min-height: var(--datatable-cell-min-height); /* 32px slot — matches Figma body cell height */
8641
8583
  word-break: break-word;
8642
8584
  }
8643
8585
 
@@ -8646,6 +8588,42 @@ li.muka-listitem {
8646
8588
  color: var(--color-text-subtle-default);
8647
8589
  }
8648
8590
 
8591
+ /* ========================================
8592
+ BADGES — always the small (sm) scale
8593
+ ======================================== */
8594
+
8595
+ /* Any Badge inside a DataTable renders at the small scale regardless of the
8596
+ `size` prop passed to it — status pills stay compact and consistent across
8597
+ every table density. Enforced here so callers can't accidentally scale them
8598
+ up. Overrides the `.muka-badge--md`/`--lg` size rules by carrying a higher
8599
+ specificity (2–3 classes vs. 1–2), independent of stylesheet import order. */
8600
+ .muka-data-table .muka-badge {
8601
+ height: var(--badge-size-height-sm);
8602
+ gap: var(--badge-gap-sm);
8603
+ padding: 0 var(--badge-padding-label-sm);
8604
+ font-family: var(--text-label-sm-regular-fontFamily);
8605
+ font-weight: var(--text-label-sm-regular-fontWeight);
8606
+ font-size: var(--text-label-sm-regular-fontSize);
8607
+ line-height: var(--text-label-sm-regular-lineHeight);
8608
+ }
8609
+
8610
+ /* Match the sm leading padding when a leading icon or dot is present. */
8611
+ .muka-data-table .muka-badge.muka-badge--has-icon,
8612
+ .muka-data-table .muka-badge.muka-badge--has-dot {
8613
+ padding-left: var(--badge-padding-leading-sm);
8614
+ }
8615
+
8616
+ /* Icon and dot slots follow the sm scale too. */
8617
+ .muka-data-table .muka-badge .muka-badge__icon {
8618
+ width: var(--icon-size-xs);
8619
+ height: var(--icon-size-xs);
8620
+ }
8621
+
8622
+ .muka-data-table .muka-badge .muka-badge__dot {
8623
+ width: var(--badge-size-dot-sm);
8624
+ height: var(--badge-size-dot-sm);
8625
+ }
8626
+
8649
8627
  /* ========================================
8650
8628
  ALIGNMENT
8651
8629
  ======================================== */
@@ -8678,7 +8656,7 @@ li.muka-listitem {
8678
8656
 
8679
8657
  .muka-data-table--column-dividers .muka-data-table__th:not(:last-child),
8680
8658
  .muka-data-table--column-dividers .muka-data-table__td:not(:last-child) {
8681
- border-right: var(--border-width-regular, 1px) solid var(--color-border-default);
8659
+ border-right: var(--border-width-regular, 1px) solid var(--datatable-divider-color);
8682
8660
  }
8683
8661
 
8684
8662
  /* ========================================
@@ -8690,7 +8668,7 @@ li.muka-listitem {
8690
8668
  align-items: center;
8691
8669
  gap: var(--spacing-1);
8692
8670
  width: 100%;
8693
- min-height: 2rem;
8671
+ min-height: var(--datatable-cell-min-height);
8694
8672
  padding: 0;
8695
8673
  margin: 0;
8696
8674
  border: 0;
@@ -8704,24 +8682,270 @@ li.muka-listitem {
8704
8682
  }
8705
8683
 
8706
8684
  .muka-data-table__sort-button:focus-visible {
8707
- outline: 2px solid var(--color-action-default);
8685
+ outline: 2px solid var(--datatable-focus-ring);
8708
8686
  outline-offset: 2px;
8709
8687
  }
8710
8688
 
8689
+ /* The chevron only renders on the active sort column, so it's always full-strength. */
8711
8690
  .muka-data-table__sort-icon {
8712
8691
  display: inline-flex;
8713
8692
  flex-shrink: 0;
8714
- opacity: 0.4;
8715
- transition: opacity 0.15s ease;
8716
8693
  }
8717
8694
 
8718
- .muka-data-table__sort-button:hover .muka-data-table__sort-icon {
8719
- opacity: 0.7;
8695
+ /* ========================================
8696
+ INTERACTIVE ROWS (clickable / link)
8697
+ ======================================== */
8698
+
8699
+ .muka-data-table__row--interactive {
8700
+ cursor: pointer;
8701
+ /* anchor for the stretched link overlay */
8702
+ position: relative;
8720
8703
  }
8721
8704
 
8722
- .muka-data-table__sort-icon--asc,
8723
- .muka-data-table__sort-icon--desc {
8724
- opacity: 1;
8705
+ .muka-data-table__row--interactive:focus-visible {
8706
+ outline: 2px solid var(--datatable-focus-ring);
8707
+ outline-offset: -2px;
8708
+ }
8709
+
8710
+ .muka-data-table__row--interactive:active {
8711
+ background-color: var(--datatable-row-pressed-background);
8712
+ }
8713
+
8714
+ /* Link rows: the first-cell anchor stretches to cover the whole row. */
8715
+ .muka-data-table__row-link {
8716
+ color: inherit;
8717
+ text-decoration: none;
8718
+ }
8719
+
8720
+ .muka-data-table__row-link::after {
8721
+ content: '';
8722
+ position: absolute;
8723
+ inset: 0;
8724
+ z-index: 0;
8725
+ }
8726
+
8727
+ .muka-data-table__row--link:hover {
8728
+ background-color: var(--datatable-row-hover-background);
8729
+ }
8730
+
8731
+ .muka-data-table__row--link .muka-data-table__row-link:focus-visible {
8732
+ outline: 2px solid var(--datatable-focus-ring);
8733
+ outline-offset: -2px;
8734
+ }
8735
+
8736
+ /* Disabled rows */
8737
+ .muka-data-table__row--disabled {
8738
+ cursor: default;
8739
+ color: var(--color-text-muted-default);
8740
+ }
8741
+
8742
+ .muka-data-table__row--disabled .muka-data-table__td {
8743
+ color: var(--color-text-muted-default);
8744
+ }
8745
+
8746
+ /* ========================================
8747
+ TRAILING ACTION COLUMN
8748
+ ======================================== */
8749
+
8750
+ /* Hug: the trailing action column shrinks to its content, so a text-label
8751
+ button ("View") gets exactly the width it needs and an icon-only button
8752
+ stays tight. `width: 1%` + `nowrap` is the classic auto-table hug. */
8753
+ .muka-data-table__col--action {
8754
+ width: 0;
8755
+ }
8756
+
8757
+ .muka-data-table__th--action,
8758
+ .muka-data-table__td--action {
8759
+ width: 1%;
8760
+ white-space: nowrap;
8761
+ padding-left: var(--spacing-2);
8762
+ padding-right: var(--spacing-2);
8763
+ text-align: right;
8764
+ /* Sit above the row link overlay so the action stays independently clickable. */
8765
+ position: relative;
8766
+ z-index: 1;
8767
+ }
8768
+
8769
+ .muka-data-table__action-content {
8770
+ justify-content: flex-end;
8771
+ }
8772
+
8773
+ /* Visually-hidden-friendly empty header slot keeps the row height consistent. */
8774
+ .muka-data-table__action-header:empty {
8775
+ min-height: var(--datatable-cell-min-height);
8776
+ }
8777
+
8778
+ /* ========================================
8779
+ SELECTION — leading checkbox column
8780
+ ======================================== */
8781
+
8782
+ .muka-data-table__col--select {
8783
+ width: var(--datatable-selection-column-width);
8784
+ }
8785
+
8786
+ .muka-data-table__th--select,
8787
+ .muka-data-table__td--select {
8788
+ width: var(--datatable-selection-column-width);
8789
+ padding-left: var(--spacing-4);
8790
+ padding-right: var(--spacing-2);
8791
+ /* Sit above the row link overlay so the checkbox stays independently clickable. */
8792
+ position: relative;
8793
+ z-index: 1;
8794
+ }
8795
+
8796
+ .muka-data-table__select-control {
8797
+ display: inline-flex;
8798
+ align-items: center;
8799
+ }
8800
+
8801
+ /* ========================================
8802
+ RESPONSIVE — two-column mobile layout
8803
+ ======================================== */
8804
+
8805
+ /* Desktop: the mobile-only stack cell/header/col are hidden. */
8806
+ .muka-data-table__th--mobile-stack,
8807
+ .muka-data-table__td--mobile-stack {
8808
+ display: none;
8809
+ }
8810
+
8811
+ /* Establish a container so the layout responds to the table's own width, not the
8812
+ viewport — a DataTable in a narrow panel collapses even on a wide screen. */
8813
+ .muka-data-table-wrapper--responsive {
8814
+ container-type: inline-size;
8815
+ }
8816
+
8817
+ /* Below --breakpoint-md (768px) of the wrapper's width. @container can't read
8818
+ custom properties, so the value is inlined as 767.98px. */
8819
+ @container (max-width: 767.98px) {
8820
+ /* Lift the table and body out of table layout. Without this the grid rows
8821
+ below get wrapped in anonymous table cells that shrink-wrap them to
8822
+ min-content, collapsing the flexible (1fr) stack track to 0. */
8823
+ .muka-data-table--responsive {
8824
+ display: block;
8825
+ }
8826
+
8827
+ .muka-data-table--responsive .muka-data-table__body {
8828
+ display: block;
8829
+ }
8830
+
8831
+ .muka-data-table--responsive .muka-data-table__head {
8832
+ display: none;
8833
+ }
8834
+
8835
+ .muka-data-table--responsive .muka-data-table__row {
8836
+ display: grid;
8837
+ grid-template-columns: 1fr auto auto;
8838
+ align-items: center;
8839
+ column-gap: var(--spacing-4);
8840
+ padding: var(--dt-pad-y) var(--dt-pad-x);
8841
+ }
8842
+
8843
+ /* Reset table cells; each visible mobile cell opts back in below. */
8844
+ .muka-data-table--responsive .muka-data-table__td {
8845
+ display: none;
8846
+ padding: 0;
8847
+ }
8848
+
8849
+ /* Pin every visible cell to the single grid row. The stack cell sits after the
8850
+ secondary cell in DOM order but targets an earlier column, so without this
8851
+ auto-placement spills it onto a second row (breaking vertical centering). */
8852
+ .muka-data-table--responsive .muka-data-table__td--select,
8853
+ .muka-data-table--responsive .muka-data-table__td--mobile-stack,
8854
+ .muka-data-table--responsive .muka-data-table__td--m-secondary,
8855
+ .muka-data-table--responsive .muka-data-table__td--action {
8856
+ grid-row: 1;
8857
+ }
8858
+
8859
+ .muka-data-table--responsive .muka-data-table__td--mobile-stack {
8860
+ display: block;
8861
+ grid-column: 1;
8862
+ min-width: 0;
8863
+ }
8864
+
8865
+ .muka-data-table--responsive .muka-data-table__td--m-secondary {
8866
+ display: block;
8867
+ grid-column: 2;
8868
+ }
8869
+
8870
+ .muka-data-table--responsive .muka-data-table__td--action {
8871
+ display: block;
8872
+ grid-column: 3;
8873
+ width: auto;
8874
+ }
8875
+
8876
+ /* Cell-content wrappers: drop the fixed row-height slot so rows stay compact. */
8877
+ .muka-data-table--responsive .muka-data-table__td .muka-data-table__cell-content {
8878
+ min-height: 0;
8879
+ }
8880
+
8881
+ .muka-data-table--responsive .muka-data-table__td--m-secondary .muka-data-table__cell-content {
8882
+ justify-content: flex-end;
8883
+ }
8884
+
8885
+ /* Stacked primary column: first field is the title, the rest are subtitle lines. */
8886
+ .muka-data-table__stack {
8887
+ display: flex;
8888
+ flex-direction: column;
8889
+ gap: var(--spacing-1);
8890
+ min-width: 0;
8891
+ }
8892
+
8893
+ /* A ProfileBadge in the collapsed card drops its avatar so the name sits
8894
+ flush-left and lines up with the other stacked primary/secondary text
8895
+ instead of being indented by the avatar. `display: none` also collapses the
8896
+ ProfileBadge's flex gap, so no placeholder whitespace is left behind. */
8897
+ .muka-data-table--responsive .muka-profile-badge__avatar {
8898
+ display: none;
8899
+ }
8900
+
8901
+ .muka-data-table__stack-title {
8902
+ font-family: var(--text-label-md-semibold-fontFamily);
8903
+ font-weight: var(--text-label-md-semibold-fontWeight);
8904
+ font-size: var(--text-label-md-semibold-fontSize);
8905
+ line-height: var(--text-label-md-semibold-lineHeight);
8906
+ color: var(--color-text-default-default);
8907
+ overflow: hidden;
8908
+ text-overflow: ellipsis;
8909
+ }
8910
+
8911
+ .muka-data-table__stack-line {
8912
+ font-family: var(--text-body-sm-regular-fontFamily);
8913
+ font-weight: var(--text-body-sm-regular-fontWeight);
8914
+ font-size: var(--text-body-sm-regular-fontSize);
8915
+ line-height: var(--text-body-sm-regular-lineHeight);
8916
+ color: var(--color-text-subtle-default);
8917
+ overflow: hidden;
8918
+ text-overflow: ellipsis;
8919
+ }
8920
+
8921
+ /* The stack title may itself be the stretched link. */
8922
+ .muka-data-table__stack-title .muka-data-table__row-link {
8923
+ color: inherit;
8924
+ text-decoration: none;
8925
+ }
8926
+
8927
+ /* Selection checkbox leads the mobile row: [checkbox | stack | secondary | action]. */
8928
+ .muka-data-table--responsive .muka-data-table__td--select {
8929
+ display: block;
8930
+ grid-column: 1;
8931
+ width: auto;
8932
+ }
8933
+
8934
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__row {
8935
+ grid-template-columns: auto 1fr auto auto;
8936
+ }
8937
+
8938
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__td--mobile-stack {
8939
+ grid-column: 2;
8940
+ }
8941
+
8942
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__td--m-secondary {
8943
+ grid-column: 3;
8944
+ }
8945
+
8946
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__td--action {
8947
+ grid-column: 4;
8948
+ }
8725
8949
  }
8726
8950
 
8727
8951
 
@@ -8957,7 +9181,6 @@ li.muka-listitem {
8957
9181
  .muka-chip {
8958
9182
  display: inline-flex;
8959
9183
  align-items: center;
8960
- gap: var(--spacing-2);
8961
9184
  border-radius: var(--border-radius-full);
8962
9185
  white-space: nowrap;
8963
9186
  user-select: none;
@@ -8965,44 +9188,89 @@ li.muka-listitem {
8965
9188
  box-sizing: border-box;
8966
9189
  }
8967
9190
 
8968
- /* Sizes */
9191
+ /*
9192
+ * Sizes — height, gap, type, and default (label-edge) horizontal padding.
9193
+ * Vertical centering is handled by the fixed height + align-items: center.
9194
+ * The side that carries an adornment (leading icon / dismiss button) gets a
9195
+ * tighter padding, applied via the --has-icon / --dismissible modifiers below.
9196
+ */
8969
9197
  .muka-chip--sm {
8970
9198
  height: var(--chip-size-height-sm);
8971
- padding: 0 var(--spacing-2);
8972
- font-family: var(--text-label-sm-semibold-fontFamily);
8973
- font-weight: var(--text-label-sm-semibold-fontWeight);
8974
- font-size: var(--text-label-sm-semibold-fontSize);
8975
- line-height: var(--text-label-sm-semibold-lineHeight);
9199
+ gap: var(--chip-gap-sm);
9200
+ padding: 0 var(--chip-padding-label-sm);
9201
+ font-family: var(--text-label-sm-regular-fontFamily);
9202
+ font-weight: var(--text-label-sm-regular-fontWeight);
9203
+ font-size: var(--text-label-sm-regular-fontSize);
9204
+ line-height: var(--text-label-sm-regular-lineHeight);
8976
9205
  }
8977
9206
 
8978
9207
  .muka-chip--md {
8979
9208
  height: var(--chip-size-height-md);
8980
- padding: 0 var(--spacing-3);
8981
- font-family: var(--text-label-md-semibold-fontFamily);
8982
- font-weight: var(--text-label-md-semibold-fontWeight);
8983
- font-size: var(--text-label-md-semibold-fontSize);
8984
- line-height: var(--text-label-md-semibold-lineHeight);
9209
+ gap: var(--chip-gap-md);
9210
+ padding: 0 var(--chip-padding-label-md);
9211
+ font-family: var(--text-label-md-regular-fontFamily);
9212
+ font-weight: var(--text-label-md-regular-fontWeight);
9213
+ font-size: var(--text-label-md-regular-fontSize);
9214
+ line-height: var(--text-label-md-regular-lineHeight);
8985
9215
  }
8986
9216
 
8987
9217
  .muka-chip--lg {
8988
9218
  height: var(--chip-size-height-lg);
8989
- padding: 0 var(--spacing-4);
8990
- font-family: var(--text-label-lg-semibold-fontFamily);
8991
- font-weight: var(--text-label-lg-semibold-fontWeight);
8992
- font-size: var(--text-label-lg-semibold-fontSize);
8993
- line-height: var(--text-label-lg-semibold-lineHeight);
9219
+ gap: var(--chip-gap-lg);
9220
+ padding: 0 var(--chip-padding-label-lg);
9221
+ font-family: var(--text-label-lg-regular-fontFamily);
9222
+ font-weight: var(--text-label-lg-regular-fontWeight);
9223
+ font-size: var(--text-label-lg-regular-fontSize);
9224
+ line-height: var(--text-label-lg-regular-lineHeight);
9225
+ }
9226
+
9227
+ /* Tighter leading padding when a leading icon is present */
9228
+ .muka-chip--sm.muka-chip--has-icon {
9229
+ padding-left: var(--chip-padding-leading-sm);
9230
+ }
9231
+ .muka-chip--md.muka-chip--has-icon {
9232
+ padding-left: var(--chip-padding-leading-md);
9233
+ }
9234
+ .muka-chip--lg.muka-chip--has-icon {
9235
+ padding-left: var(--chip-padding-leading-lg);
9236
+ }
9237
+
9238
+ /* Tighter trailing padding when the dismiss button is present */
9239
+ .muka-chip--sm.muka-chip--dismissible {
9240
+ padding-right: var(--chip-padding-trailing-sm);
9241
+ }
9242
+ .muka-chip--md.muka-chip--dismissible {
9243
+ padding-right: var(--chip-padding-trailing-md);
9244
+ }
9245
+ .muka-chip--lg.muka-chip--dismissible {
9246
+ padding-right: var(--chip-padding-trailing-lg);
8994
9247
  }
8995
9248
 
8996
- /* Icon slot */
9249
+ /* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 */
8997
9250
  .muka-chip__icon {
8998
9251
  display: inline-flex;
8999
9252
  align-items: center;
9000
9253
  justify-content: center;
9001
9254
  flex-shrink: 0;
9002
- width: 1em;
9003
- height: 1em;
9004
9255
  }
9005
9256
 
9257
+ .muka-chip--sm .muka-chip__icon {
9258
+ width: var(--icon-size-xs);
9259
+ height: var(--icon-size-xs);
9260
+ }
9261
+ .muka-chip--md .muka-chip__icon {
9262
+ width: var(--icon-size-sm);
9263
+ height: var(--icon-size-sm);
9264
+ }
9265
+ .muka-chip--lg .muka-chip__icon {
9266
+ width: var(--icon-size-default);
9267
+ height: var(--icon-size-default);
9268
+ }
9269
+
9270
+ /* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
9271
+ so callers don't have to size the icon to match each chip size. The
9272
+ .muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
9273
+ .muka-chip__icon .muka-icon,
9006
9274
  .muka-chip__icon svg {
9007
9275
  width: 100%;
9008
9276
  height: 100%;
@@ -9013,29 +9281,40 @@ li.muka-listitem {
9013
9281
  min-width: 0;
9014
9282
  overflow: hidden;
9015
9283
  text-overflow: ellipsis;
9284
+ /*
9285
+ * The chip sets a tight line-height (= font size) for compact sizing, but the label's
9286
+ * `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
9287
+ * label its own roomier line-height so descenders render; vertical centering is unaffected
9288
+ * because the chip height is fixed and content is centered via align-items: center.
9289
+ */
9290
+ line-height: normal;
9016
9291
  }
9017
9292
 
9018
- /* Remove button */
9293
+ /* Dismiss button — circular hit area. Figma circle sizes: sm 20, md 24, lg 32 */
9019
9294
  .muka-chip__remove {
9020
9295
  display: inline-flex;
9021
9296
  align-items: center;
9022
9297
  justify-content: center;
9023
9298
  flex-shrink: 0;
9024
- width: 1.25em;
9025
- height: 1.25em;
9026
9299
  padding: 0;
9027
9300
  margin: 0;
9028
9301
  border: none;
9029
9302
  border-radius: var(--border-radius-full);
9030
- background: transparent;
9031
- color: inherit;
9032
9303
  cursor: pointer;
9033
- opacity: 0.85;
9304
+ transition: background-color 0.15s ease, color 0.15s ease;
9034
9305
  }
9035
9306
 
9036
- .muka-chip__remove:hover {
9037
- opacity: 1;
9038
- background: rgba(0, 0, 0, 0.08);
9307
+ .muka-chip--sm .muka-chip__remove {
9308
+ width: var(--icon-size-sm);
9309
+ height: var(--icon-size-sm);
9310
+ }
9311
+ .muka-chip--md .muka-chip__remove {
9312
+ width: var(--icon-size-default);
9313
+ height: var(--icon-size-default);
9314
+ }
9315
+ .muka-chip--lg .muka-chip__remove {
9316
+ width: var(--icon-size-lg);
9317
+ height: var(--icon-size-lg);
9039
9318
  }
9040
9319
 
9041
9320
  .muka-chip__remove:focus-visible {
@@ -9043,70 +9322,105 @@ li.muka-listitem {
9043
9322
  outline-offset: 2px;
9044
9323
  }
9045
9324
 
9046
- .muka-chip__remove svg {
9047
- width: 100%;
9048
- height: 100%;
9325
+ /*
9326
+ * Dismiss button colors — state-tinted per chip variant, with default / hover /
9327
+ * pressed steps. Values come from T4 chip.dismiss.* tokens, which reference the
9328
+ * brand-specific alias state-surface ramp. The ✕ (.muka-icon) inherits `color`.
9329
+ */
9330
+ .muka-chip--default .muka-chip__remove {
9331
+ background-color: var(--chip-dismiss-default-background-default);
9332
+ color: var(--chip-dismiss-default-foreground-default);
9049
9333
  }
9050
-
9051
- /* Solid appearance – variants */
9052
- .muka-chip--solid.muka-chip--default {
9053
- background-color: var(--color-surface-level1);
9054
- color: var(--color-text-default-default);
9334
+ .muka-chip--default .muka-chip__remove:hover {
9335
+ background-color: var(--chip-dismiss-default-background-hover);
9336
+ color: var(--chip-dismiss-default-foreground-hover);
9337
+ }
9338
+ .muka-chip--default .muka-chip__remove:active {
9339
+ background-color: var(--chip-dismiss-default-background-pressed);
9340
+ color: var(--chip-dismiss-default-foreground-pressed);
9055
9341
  }
9056
9342
 
9057
- .muka-chip--solid.muka-chip--success {
9058
- background-color: var(--color-state-success-background);
9059
- color: var(--color-state-success-contrast);
9343
+ .muka-chip--success .muka-chip__remove {
9344
+ background-color: var(--chip-dismiss-success-background-default);
9345
+ color: var(--chip-dismiss-success-foreground-default);
9346
+ }
9347
+ .muka-chip--success .muka-chip__remove:hover {
9348
+ background-color: var(--chip-dismiss-success-background-hover);
9349
+ color: var(--chip-dismiss-success-foreground-hover);
9350
+ }
9351
+ .muka-chip--success .muka-chip__remove:active {
9352
+ background-color: var(--chip-dismiss-success-background-pressed);
9353
+ color: var(--chip-dismiss-success-foreground-pressed);
9060
9354
  }
9061
9355
 
9062
- .muka-chip--solid.muka-chip--warning {
9063
- background-color: var(--color-state-warning-background);
9064
- color: var(--color-state-warning-contrast);
9356
+ .muka-chip--warning .muka-chip__remove {
9357
+ background-color: var(--chip-dismiss-warning-background-default);
9358
+ color: var(--chip-dismiss-warning-foreground-default);
9359
+ }
9360
+ .muka-chip--warning .muka-chip__remove:hover {
9361
+ background-color: var(--chip-dismiss-warning-background-hover);
9362
+ color: var(--chip-dismiss-warning-foreground-hover);
9363
+ }
9364
+ .muka-chip--warning .muka-chip__remove:active {
9365
+ background-color: var(--chip-dismiss-warning-background-pressed);
9366
+ color: var(--chip-dismiss-warning-foreground-pressed);
9065
9367
  }
9066
9368
 
9067
- .muka-chip--solid.muka-chip--error {
9068
- background-color: var(--color-state-error-background);
9069
- color: var(--color-state-error-contrast);
9369
+ .muka-chip--error .muka-chip__remove {
9370
+ background-color: var(--chip-dismiss-error-background-default);
9371
+ color: var(--chip-dismiss-error-foreground-default);
9372
+ }
9373
+ .muka-chip--error .muka-chip__remove:hover {
9374
+ background-color: var(--chip-dismiss-error-background-hover);
9375
+ color: var(--chip-dismiss-error-foreground-hover);
9376
+ }
9377
+ .muka-chip--error .muka-chip__remove:active {
9378
+ background-color: var(--chip-dismiss-error-background-pressed);
9379
+ color: var(--chip-dismiss-error-foreground-pressed);
9070
9380
  }
9071
9381
 
9072
- .muka-chip--solid.muka-chip--info {
9073
- background-color: var(--color-state-info-background);
9074
- color: var(--color-state-info-contrast);
9382
+ .muka-chip--info .muka-chip__remove {
9383
+ background-color: var(--chip-dismiss-info-background-default);
9384
+ color: var(--chip-dismiss-info-foreground-default);
9385
+ }
9386
+ .muka-chip--info .muka-chip__remove:hover {
9387
+ background-color: var(--chip-dismiss-info-background-hover);
9388
+ color: var(--chip-dismiss-info-foreground-hover);
9389
+ }
9390
+ .muka-chip--info .muka-chip__remove:active {
9391
+ background-color: var(--chip-dismiss-info-background-pressed);
9392
+ color: var(--chip-dismiss-info-foreground-pressed);
9075
9393
  }
9076
9394
 
9077
- /* Outline appearance – light background, bordered */
9078
- .muka-chip--outline.muka-chip--default {
9079
- background-color: var(--color-surface-level0);
9395
+ /* Variants (solid fill) — icons inherit these foreground colors (see below) */
9396
+ .muka-chip--default {
9397
+ background-color: var(--color-surface-level1);
9080
9398
  color: var(--color-text-default-default);
9081
- border-color: var(--color-surface-level1);
9082
9399
  }
9083
9400
 
9084
- .muka-chip--outline.muka-chip--success {
9401
+ .muka-chip--success {
9085
9402
  background-color: var(--color-state-success-background);
9086
9403
  color: var(--color-state-success-contrast);
9087
- border-color: var(--color-state-success-contrast);
9088
- opacity: 0.95;
9089
9404
  }
9090
9405
 
9091
- .muka-chip--outline.muka-chip--warning {
9406
+ .muka-chip--warning {
9092
9407
  background-color: var(--color-state-warning-background);
9093
9408
  color: var(--color-state-warning-contrast);
9094
- border-color: var(--color-state-warning-contrast);
9095
- opacity: 0.95;
9096
9409
  }
9097
9410
 
9098
- .muka-chip--outline.muka-chip--error {
9411
+ .muka-chip--error {
9099
9412
  background-color: var(--color-state-error-background);
9100
9413
  color: var(--color-state-error-contrast);
9101
- border-color: var(--color-state-error-contrast);
9102
- opacity: 0.95;
9103
9414
  }
9104
9415
 
9105
- .muka-chip--outline.muka-chip--info {
9416
+ .muka-chip--info {
9106
9417
  background-color: var(--color-state-info-background);
9107
9418
  color: var(--color-state-info-contrast);
9108
- border-color: var(--color-state-info-contrast);
9109
- opacity: 0.95;
9419
+ }
9420
+
9421
+ /* Icons (leading + dismiss) inherit the chip's per-variant foreground color */
9422
+ .muka-chip .muka-icon {
9423
+ color: inherit;
9110
9424
  }
9111
9425
 
9112
9426
 
@@ -10035,8 +10349,11 @@ li.muka-listitem {
10035
10349
  box-shadow: var(--button-color-primary-shadow-hover);
10036
10350
  }
10037
10351
 
10352
+ /* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
10353
+ trigger (Radix Menu/Popover set this on the trigger). */
10038
10354
  .muka-button--primary:active:not(:disabled),
10039
- .muka-button--primary.muka-button--pressed:not(:disabled) {
10355
+ .muka-button--primary.muka-button--pressed:not(:disabled),
10356
+ .muka-button--primary[data-state="open"]:not(:disabled) {
10040
10357
  background-color: var(--button-color-primary-background-pressed);
10041
10358
  color: var(--button-color-primary-foreground-pressed);
10042
10359
  box-shadow: var(--button-color-primary-shadow-pressed);
@@ -10064,7 +10381,8 @@ li.muka-listitem {
10064
10381
  }
10065
10382
 
10066
10383
  .muka-button--secondary:active:not(:disabled),
10067
- .muka-button--secondary.muka-button--pressed:not(:disabled) {
10384
+ .muka-button--secondary.muka-button--pressed:not(:disabled),
10385
+ .muka-button--secondary[data-state="open"]:not(:disabled) {
10068
10386
  background-color: var(--button-color-secondary-background-pressed);
10069
10387
  color: var(--button-color-secondary-foreground-pressed);
10070
10388
  box-shadow: var(--button-color-secondary-shadow-pressed);
@@ -10092,7 +10410,8 @@ li.muka-listitem {
10092
10410
  }
10093
10411
 
10094
10412
  .muka-button--tertiary:active:not(:disabled),
10095
- .muka-button--tertiary.muka-button--pressed:not(:disabled) {
10413
+ .muka-button--tertiary.muka-button--pressed:not(:disabled),
10414
+ .muka-button--tertiary[data-state="open"]:not(:disabled) {
10096
10415
  background-color: var(--button-color-tertiary-background-pressed);
10097
10416
  color: var(--button-color-tertiary-foreground-pressed);
10098
10417
  border-color: var(--button-color-tertiary-border-pressed);
@@ -10120,7 +10439,8 @@ li.muka-listitem {
10120
10439
  }
10121
10440
 
10122
10441
  .muka-button--ghost:active:not(:disabled),
10123
- .muka-button--ghost.muka-button--pressed:not(:disabled) {
10442
+ .muka-button--ghost.muka-button--pressed:not(:disabled),
10443
+ .muka-button--ghost[data-state="open"]:not(:disabled) {
10124
10444
  background-color: var(--button-color-ghost-background-pressed);
10125
10445
  color: var(--button-color-ghost-foreground-pressed);
10126
10446
  border-color: var(--button-color-ghost-border-pressed);
@@ -10577,56 +10897,98 @@ li.muka-listitem {
10577
10897
  .muka-badge {
10578
10898
  display: inline-flex;
10579
10899
  align-items: center;
10580
- gap: var(--spacing-1);
10581
10900
  border-radius: var(--border-radius-full);
10582
10901
  white-space: nowrap;
10583
10902
  user-select: none;
10584
10903
  box-sizing: border-box;
10585
10904
  }
10586
10905
 
10587
- /* Sizes */
10906
+ /*
10907
+ * Sizes — height, gap, type, and default (label-edge) horizontal padding.
10908
+ * Mirrors Chip so the two components share sizing, fonts, and spacing.
10909
+ * Vertical centering is handled by the fixed height + align-items: center.
10910
+ * The leading side gets a tighter padding when an icon/dot is present, via the
10911
+ * --has-icon / --has-dot modifiers below.
10912
+ */
10588
10913
  .muka-badge--sm {
10589
10914
  height: var(--badge-size-height-sm);
10590
- padding: 0 var(--spacing-2);
10591
- font-family: var(--text-label-sm-semibold-fontFamily);
10592
- font-weight: var(--text-label-sm-semibold-fontWeight);
10593
- font-size: var(--text-label-sm-semibold-fontSize);
10594
- line-height: var(--text-label-sm-semibold-lineHeight);
10915
+ gap: var(--badge-gap-sm);
10916
+ padding: 0 var(--badge-padding-label-sm);
10917
+ font-family: var(--text-label-sm-regular-fontFamily);
10918
+ font-weight: var(--text-label-sm-regular-fontWeight);
10919
+ font-size: var(--text-label-sm-regular-fontSize);
10920
+ line-height: var(--text-label-sm-regular-lineHeight);
10595
10921
  }
10596
10922
 
10597
10923
  .muka-badge--md {
10598
10924
  height: var(--badge-size-height-md);
10599
- padding: 0 var(--spacing-2);
10600
- font-family: var(--text-label-sm-semibold-fontFamily);
10601
- font-weight: var(--text-label-sm-semibold-fontWeight);
10602
- font-size: var(--text-label-sm-semibold-fontSize);
10603
- line-height: var(--text-label-sm-semibold-lineHeight);
10925
+ gap: var(--badge-gap-md);
10926
+ padding: 0 var(--badge-padding-label-md);
10927
+ font-family: var(--text-label-md-regular-fontFamily);
10928
+ font-weight: var(--text-label-md-regular-fontWeight);
10929
+ font-size: var(--text-label-md-regular-fontSize);
10930
+ line-height: var(--text-label-md-regular-lineHeight);
10604
10931
  }
10605
10932
 
10606
10933
  .muka-badge--lg {
10607
10934
  height: var(--badge-size-height-lg);
10608
- padding: 0 var(--spacing-3);
10609
- font-family: var(--text-label-md-semibold-fontFamily);
10610
- font-weight: var(--text-label-md-semibold-fontWeight);
10611
- font-size: var(--text-label-md-semibold-fontSize);
10612
- line-height: var(--text-label-md-semibold-lineHeight);
10935
+ gap: var(--badge-gap-lg);
10936
+ padding: 0 var(--badge-padding-label-lg);
10937
+ font-family: var(--text-label-lg-regular-fontFamily);
10938
+ font-weight: var(--text-label-lg-regular-fontWeight);
10939
+ font-size: var(--text-label-lg-regular-fontSize);
10940
+ line-height: var(--text-label-lg-regular-lineHeight);
10941
+ }
10942
+
10943
+ /* Tighter leading padding when a leading icon or dot is present */
10944
+ .muka-badge--sm.muka-badge--has-icon,
10945
+ .muka-badge--sm.muka-badge--has-dot {
10946
+ padding-left: var(--badge-padding-leading-sm);
10947
+ }
10948
+ .muka-badge--md.muka-badge--has-icon,
10949
+ .muka-badge--md.muka-badge--has-dot {
10950
+ padding-left: var(--badge-padding-leading-md);
10951
+ }
10952
+ .muka-badge--lg.muka-badge--has-icon,
10953
+ .muka-badge--lg.muka-badge--has-dot {
10954
+ padding-left: var(--badge-padding-leading-lg);
10613
10955
  }
10614
10956
 
10615
- /* Icon slot */
10957
+ /* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
10616
10958
  .muka-badge__icon {
10617
10959
  display: inline-flex;
10618
10960
  align-items: center;
10619
10961
  justify-content: center;
10620
10962
  flex-shrink: 0;
10621
- width: 1em;
10622
- height: 1em;
10623
10963
  }
10624
10964
 
10965
+ .muka-badge--sm .muka-badge__icon {
10966
+ width: var(--icon-size-xs);
10967
+ height: var(--icon-size-xs);
10968
+ }
10969
+ .muka-badge--md .muka-badge__icon {
10970
+ width: var(--icon-size-sm);
10971
+ height: var(--icon-size-sm);
10972
+ }
10973
+ .muka-badge--lg .muka-badge__icon {
10974
+ width: var(--icon-size-default);
10975
+ height: var(--icon-size-default);
10976
+ }
10977
+
10978
+ /* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
10979
+ so callers don't have to size the icon to match each badge size. The
10980
+ .muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
10981
+ .muka-badge__icon .muka-icon,
10625
10982
  .muka-badge__icon svg {
10626
10983
  width: 100%;
10627
10984
  height: 100%;
10628
10985
  }
10629
10986
 
10987
+ /* Icons inherit the badge's per-variant foreground color */
10988
+ .muka-badge .muka-icon {
10989
+ color: inherit;
10990
+ }
10991
+
10630
10992
  /* Dot indicator */
10631
10993
  .muka-badge__dot {
10632
10994
  flex-shrink: 0;
@@ -10653,6 +11015,13 @@ li.muka-listitem {
10653
11015
  min-width: 0;
10654
11016
  overflow: hidden;
10655
11017
  text-overflow: ellipsis;
11018
+ /*
11019
+ * The badge sets a tight line-height for compact sizing, but the label's
11020
+ * `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
11021
+ * label its own roomier line-height so descenders render; vertical centering is unaffected
11022
+ * because the badge height is fixed and content is centered via align-items: center.
11023
+ */
11024
+ line-height: normal;
10656
11025
  }
10657
11026
 
10658
11027
  /* Neutral variant */
@@ -10668,41 +11037,41 @@ li.muka-listitem {
10668
11037
  /* Info variant */
10669
11038
  .muka-badge--info {
10670
11039
  background-color: var(--color-state-info-background);
10671
- color: var(--color-state-info-foreground);
11040
+ color: var(--color-state-info-contrast);
10672
11041
  }
10673
11042
 
10674
11043
  .muka-badge--info .muka-badge__dot {
10675
- background-color: var(--color-state-info-foreground);
11044
+ background-color: var(--color-state-info-default);
10676
11045
  }
10677
11046
 
10678
11047
  /* Success variant */
10679
11048
  .muka-badge--success {
10680
11049
  background-color: var(--color-state-success-background);
10681
- color: var(--color-state-success-foreground);
11050
+ color: var(--color-state-success-contrast);
10682
11051
  }
10683
11052
 
10684
11053
  .muka-badge--success .muka-badge__dot {
10685
- background-color: var(--color-state-success-foreground);
11054
+ background-color: var(--color-state-success-default);
10686
11055
  }
10687
11056
 
10688
11057
  /* Warning variant */
10689
11058
  .muka-badge--warning {
10690
11059
  background-color: var(--color-state-warning-background);
10691
- color: var(--color-state-warning-foreground);
11060
+ color: var(--color-state-warning-contrast);
10692
11061
  }
10693
11062
 
10694
11063
  .muka-badge--warning .muka-badge__dot {
10695
- background-color: var(--color-state-warning-foreground);
11064
+ background-color: var(--color-state-warning-default);
10696
11065
  }
10697
11066
 
10698
11067
  /* Error variant */
10699
11068
  .muka-badge--error {
10700
11069
  background-color: var(--color-state-error-background);
10701
- color: var(--color-state-error-foreground);
11070
+ color: var(--color-state-error-contrast);
10702
11071
  }
10703
11072
 
10704
11073
  .muka-badge--error .muka-badge__dot {
10705
- background-color: var(--color-state-error-foreground);
11074
+ background-color: var(--color-state-error-default);
10706
11075
  }
10707
11076
 
10708
11077
 
@@ -11688,3 +12057,172 @@ li.muka-listitem {
11688
12057
  border-bottom: none;
11689
12058
  }
11690
12059
 
12060
+
12061
+ /* SearchInput */
12062
+ /* SearchInput Component Styles */
12063
+
12064
+ .muka-search-input {
12065
+ display: flex;
12066
+ align-items: center;
12067
+ gap: var(--spacing-3);
12068
+ width: 100%;
12069
+ }
12070
+
12071
+ /* ─── Field wrapper ───────────────────────────────────── */
12072
+
12073
+ .muka-search-input__field {
12074
+ flex: 1 1 auto;
12075
+ display: flex;
12076
+ align-items: center;
12077
+ gap: var(--spacing-2);
12078
+ background-color: var(--input-field-color-default-background);
12079
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
12080
+ border-radius: var(--input-field-radius-md);
12081
+ padding: 0 var(--input-field-padding-x);
12082
+ transition: border-color 0.12s ease, background-color 0.12s ease;
12083
+ }
12084
+
12085
+ .muka-search-input--focused .muka-search-input__field {
12086
+ border-color: var(--input-field-color-focus-border, var(--color-action-default));
12087
+ }
12088
+
12089
+ /* ─── Sizes ───────────────────────────────────────────── */
12090
+
12091
+ .muka-search-input--sm .muka-search-input__field {
12092
+ min-height: var(--input-field-height-sm);
12093
+ border-radius: var(--input-field-radius-sm);
12094
+ }
12095
+
12096
+ .muka-search-input--md .muka-search-input__field {
12097
+ min-height: var(--input-field-height-default);
12098
+ }
12099
+
12100
+ .muka-search-input--lg .muka-search-input__field {
12101
+ min-height: var(--input-field-height-lg);
12102
+ border-radius: var(--input-field-radius-lg);
12103
+ }
12104
+
12105
+ /* ─── Embedded variant (e.g. inside TopBar) ───────────── */
12106
+
12107
+ .muka-search-input--embedded .muka-search-input__field {
12108
+ background-color: var(--color-surface-level1);
12109
+ border-color: transparent;
12110
+ }
12111
+
12112
+ .muka-search-input--embedded.muka-search-input--focused .muka-search-input__field {
12113
+ border-color: transparent;
12114
+ background-color: var(--color-surface-level2);
12115
+ }
12116
+
12117
+ /* ─── Disabled ────────────────────────────────────────── */
12118
+
12119
+ .muka-search-input--disabled .muka-search-input__field {
12120
+ opacity: 0.5;
12121
+ pointer-events: none;
12122
+ }
12123
+
12124
+ /* ─── Leading icon ────────────────────────────────────── */
12125
+
12126
+ .muka-search-input__leading {
12127
+ display: inline-flex;
12128
+ align-items: center;
12129
+ justify-content: center;
12130
+ flex-shrink: 0;
12131
+ color: var(--color-text-subtle-default);
12132
+ }
12133
+
12134
+ /* ─── Input element ───────────────────────────────────── */
12135
+
12136
+ .muka-search-input__input {
12137
+ flex: 1 1 auto;
12138
+ min-width: 0;
12139
+ border: none;
12140
+ background: transparent;
12141
+ outline: none;
12142
+ padding: 0;
12143
+ color: var(--color-text-default-default);
12144
+ font-family: var(--text-body-md-regular-fontFamily);
12145
+ font-weight: var(--text-body-md-regular-fontWeight);
12146
+ font-size: var(--text-body-md-regular-fontSize);
12147
+ line-height: var(--text-body-md-regular-lineHeight);
12148
+ appearance: none;
12149
+ -webkit-appearance: none;
12150
+ }
12151
+
12152
+ .muka-search-input__input::placeholder {
12153
+ color: var(--color-text-subtle-default);
12154
+ }
12155
+
12156
+ /* Hide the browser-supplied clear button (WebKit + Edge) */
12157
+ .muka-search-input__input::-webkit-search-cancel-button,
12158
+ .muka-search-input__input::-webkit-search-decoration {
12159
+ -webkit-appearance: none;
12160
+ appearance: none;
12161
+ }
12162
+
12163
+ .muka-search-input__input::-ms-clear {
12164
+ display: none;
12165
+ }
12166
+
12167
+ /* ─── Trailing slot (loading spinner) ─────────────────── */
12168
+
12169
+ .muka-search-input__trailing {
12170
+ display: inline-flex;
12171
+ align-items: center;
12172
+ justify-content: center;
12173
+ flex-shrink: 0;
12174
+ }
12175
+
12176
+ /* ─── Clear button ────────────────────────────────────── */
12177
+
12178
+ .muka-search-input__clear {
12179
+ display: inline-flex;
12180
+ align-items: center;
12181
+ justify-content: center;
12182
+ width: 20px;
12183
+ height: 20px;
12184
+ border: none;
12185
+ background: none;
12186
+ padding: 0;
12187
+ cursor: pointer;
12188
+ color: var(--color-text-subtle-default);
12189
+ flex-shrink: 0;
12190
+ -webkit-tap-highlight-color: transparent;
12191
+ }
12192
+
12193
+ .muka-search-input__clear:hover {
12194
+ color: var(--color-text-default-default);
12195
+ }
12196
+
12197
+ .muka-search-input__clear:focus-visible {
12198
+ outline: 2px solid var(--color-action-default);
12199
+ outline-offset: 2px;
12200
+ border-radius: 50%;
12201
+ }
12202
+
12203
+ /* ─── Cancel button ───────────────────────────────────── */
12204
+
12205
+ .muka-search-input__cancel {
12206
+ flex-shrink: 0;
12207
+ background: none;
12208
+ border: none;
12209
+ padding: var(--spacing-1) var(--spacing-2);
12210
+ cursor: pointer;
12211
+ color: var(--color-action-default);
12212
+ font-family: var(--text-label-md-regular-fontFamily);
12213
+ font-weight: var(--text-label-md-regular-fontWeight);
12214
+ font-size: var(--text-label-md-regular-fontSize);
12215
+ line-height: var(--text-label-md-regular-lineHeight);
12216
+ -webkit-tap-highlight-color: transparent;
12217
+ }
12218
+
12219
+ .muka-search-input__cancel:hover {
12220
+ color: var(--color-action-hover);
12221
+ }
12222
+
12223
+ .muka-search-input__cancel:focus-visible {
12224
+ outline: 2px solid var(--color-action-default);
12225
+ outline-offset: 2px;
12226
+ border-radius: var(--radius-sm);
12227
+ }
12228
+