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