@revikornmann/muka-ui 0.2.4 → 0.4.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 (280) hide show
  1. package/README.md +1 -1
  2. package/build/manifest.json +16 -6
  3. package/cli/manifest.json +2 -2
  4. package/dist/cjs/components/AgentTaskList/AgentTaskList.js +1 -0
  5. package/dist/cjs/components/AgentTaskList/AgentTaskList.js.map +1 -1
  6. package/dist/cjs/components/Avatar/Avatar.js +1 -0
  7. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  8. package/dist/cjs/components/Badge/Badge.css +77 -28
  9. package/dist/cjs/components/Badge/Badge.js +2 -0
  10. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  11. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +1 -0
  12. package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -1
  13. package/dist/cjs/components/Button/Button.css +10 -4
  14. package/dist/cjs/components/Button/Button.js +1 -0
  15. package/dist/cjs/components/Button/Button.js.map +1 -1
  16. package/dist/cjs/components/Card/Card.js +1 -0
  17. package/dist/cjs/components/Card/Card.js.map +1 -1
  18. package/dist/cjs/components/ChatComposer/ChatComposer.js +1 -0
  19. package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
  20. package/dist/cjs/components/ChatMessageList/ChatMessageList.js +1 -0
  21. package/dist/cjs/components/ChatMessageList/ChatMessageList.js.map +1 -1
  22. package/dist/cjs/components/Checkbox/Checkbox.js +1 -0
  23. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  24. package/dist/cjs/components/CheckboxTile/CheckboxTile.js +1 -0
  25. package/dist/cjs/components/CheckboxTile/CheckboxTile.js.map +1 -1
  26. package/dist/cjs/components/Chip/Chip.css +155 -65
  27. package/dist/cjs/components/Chip/Chip.js +6 -5
  28. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  29. package/dist/cjs/components/Combobox/Combobox.js +1 -0
  30. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  31. package/dist/cjs/components/DataTable/DataTable.css +328 -25
  32. package/dist/cjs/components/DataTable/DataTable.js +185 -32
  33. package/dist/cjs/components/DataTable/DataTable.js.map +1 -1
  34. package/dist/cjs/components/DataTable/index.js.map +1 -1
  35. package/dist/cjs/components/DatePicker/DatePicker.js +1 -0
  36. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  37. package/dist/cjs/components/Dialog/Dialog.js +1 -0
  38. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  39. package/dist/cjs/components/DocumentViewer/DocumentCanvas.js +1 -0
  40. package/dist/cjs/components/DocumentViewer/DocumentCanvas.js.map +1 -1
  41. package/dist/cjs/components/DocumentViewer/DocumentThumbnails.js +1 -0
  42. package/dist/cjs/components/DocumentViewer/DocumentThumbnails.js.map +1 -1
  43. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js +1 -0
  44. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  45. package/dist/cjs/components/DocumentViewer/DocumentViewer.js +1 -0
  46. package/dist/cjs/components/DocumentViewer/DocumentViewer.js.map +1 -1
  47. package/dist/cjs/components/Drawer/Drawer.js +1 -0
  48. package/dist/cjs/components/Drawer/Drawer.js.map +1 -1
  49. package/dist/cjs/components/FileUpload/FileUpload.js +1 -0
  50. package/dist/cjs/components/FileUpload/FileUpload.js.map +1 -1
  51. package/dist/cjs/components/Input/Input.js +1 -0
  52. package/dist/cjs/components/Input/Input.js.map +1 -1
  53. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js +1 -0
  54. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  55. package/dist/cjs/components/ListItem/ListItem.js +1 -0
  56. package/dist/cjs/components/ListItem/ListItem.js.map +1 -1
  57. package/dist/cjs/components/Menu/Menu.js +1 -0
  58. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  59. package/dist/cjs/components/NavigationTransition/NavigationTransition.js +1 -0
  60. package/dist/cjs/components/NavigationTransition/NavigationTransition.js.map +1 -1
  61. package/dist/cjs/components/NumberInput/NumberInput.js +1 -0
  62. package/dist/cjs/components/NumberInput/NumberInput.js.map +1 -1
  63. package/dist/cjs/components/Pagination/Pagination.js +1 -0
  64. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  65. package/dist/cjs/components/ProfileBadge/ProfileBadge.js +2 -2
  66. package/dist/cjs/components/ProfileBadge/ProfileBadge.js.map +1 -1
  67. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +1 -0
  68. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  69. package/dist/cjs/components/Radio/Radio.js +1 -0
  70. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  71. package/dist/cjs/components/RadioTile/RadioTile.js +1 -0
  72. package/dist/cjs/components/RadioTile/RadioTile.js.map +1 -1
  73. package/dist/cjs/components/RangeSlider/RangeSlider.js +1 -0
  74. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  75. package/dist/cjs/components/SearchInput/SearchInput.js +1 -0
  76. package/dist/cjs/components/SearchInput/SearchInput.js.map +1 -1
  77. package/dist/cjs/components/SegmentGroup/SegmentGroup.js +1 -0
  78. package/dist/cjs/components/SegmentGroup/SegmentGroup.js.map +1 -1
  79. package/dist/cjs/components/Select/Select.js +1 -0
  80. package/dist/cjs/components/Select/Select.js.map +1 -1
  81. package/dist/cjs/components/SmsOtpField/SmsOtpField.js +1 -0
  82. package/dist/cjs/components/SmsOtpField/SmsOtpField.js.map +1 -1
  83. package/dist/cjs/components/SwipeActions/SwipeActions.js +1 -0
  84. package/dist/cjs/components/SwipeActions/SwipeActions.js.map +1 -1
  85. package/dist/cjs/components/Table/useTableSelection.js +1 -0
  86. package/dist/cjs/components/Table/useTableSelection.js.map +1 -1
  87. package/dist/cjs/components/Tabs/Tabs.js +1 -0
  88. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  89. package/dist/cjs/components/Textarea/Textarea.js +1 -0
  90. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  91. package/dist/cjs/components/Tile/Tile.js +1 -0
  92. package/dist/cjs/components/Tile/Tile.js.map +1 -1
  93. package/dist/cjs/components/Toast/Toast.js +1 -0
  94. package/dist/cjs/components/Toast/Toast.js.map +1 -1
  95. package/dist/cjs/components/Toggle/Toggle.js +1 -0
  96. package/dist/cjs/components/Toggle/Toggle.js.map +1 -1
  97. package/dist/cjs/components/index.js.map +1 -1
  98. package/dist/esm/components/AgentTaskList/AgentTaskList.js +1 -0
  99. package/dist/esm/components/AgentTaskList/AgentTaskList.js.map +1 -1
  100. package/dist/esm/components/Avatar/Avatar.js +1 -0
  101. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  102. package/dist/esm/components/Badge/Badge.css +77 -28
  103. package/dist/esm/components/Badge/Badge.js +2 -0
  104. package/dist/esm/components/Badge/Badge.js.map +1 -1
  105. package/dist/esm/components/Breadcrumb/Breadcrumb.js +1 -0
  106. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  107. package/dist/esm/components/Button/Button.css +10 -4
  108. package/dist/esm/components/Button/Button.js +1 -0
  109. package/dist/esm/components/Button/Button.js.map +1 -1
  110. package/dist/esm/components/Card/Card.js +1 -0
  111. package/dist/esm/components/Card/Card.js.map +1 -1
  112. package/dist/esm/components/ChatComposer/ChatComposer.js +1 -0
  113. package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
  114. package/dist/esm/components/ChatMessageList/ChatMessageList.js +1 -0
  115. package/dist/esm/components/ChatMessageList/ChatMessageList.js.map +1 -1
  116. package/dist/esm/components/Checkbox/Checkbox.js +1 -0
  117. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  118. package/dist/esm/components/CheckboxTile/CheckboxTile.js +1 -0
  119. package/dist/esm/components/CheckboxTile/CheckboxTile.js.map +1 -1
  120. package/dist/esm/components/Chip/Chip.css +155 -65
  121. package/dist/esm/components/Chip/Chip.js +6 -5
  122. package/dist/esm/components/Chip/Chip.js.map +1 -1
  123. package/dist/esm/components/Combobox/Combobox.js +1 -0
  124. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  125. package/dist/esm/components/DataTable/DataTable.css +328 -25
  126. package/dist/esm/components/DataTable/DataTable.js +185 -32
  127. package/dist/esm/components/DataTable/DataTable.js.map +1 -1
  128. package/dist/esm/components/DataTable/index.js.map +1 -1
  129. package/dist/esm/components/DatePicker/DatePicker.js +1 -0
  130. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  131. package/dist/esm/components/Dialog/Dialog.js +1 -0
  132. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  133. package/dist/esm/components/DocumentViewer/DocumentCanvas.js +1 -0
  134. package/dist/esm/components/DocumentViewer/DocumentCanvas.js.map +1 -1
  135. package/dist/esm/components/DocumentViewer/DocumentThumbnails.js +1 -0
  136. package/dist/esm/components/DocumentViewer/DocumentThumbnails.js.map +1 -1
  137. package/dist/esm/components/DocumentViewer/DocumentToolbar.js +1 -0
  138. package/dist/esm/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  139. package/dist/esm/components/DocumentViewer/DocumentViewer.js +1 -0
  140. package/dist/esm/components/DocumentViewer/DocumentViewer.js.map +1 -1
  141. package/dist/esm/components/Drawer/Drawer.js +1 -0
  142. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  143. package/dist/esm/components/FileUpload/FileUpload.js +1 -0
  144. package/dist/esm/components/FileUpload/FileUpload.js.map +1 -1
  145. package/dist/esm/components/Input/Input.js +1 -0
  146. package/dist/esm/components/Input/Input.js.map +1 -1
  147. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js +1 -0
  148. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  149. package/dist/esm/components/ListItem/ListItem.js +1 -0
  150. package/dist/esm/components/ListItem/ListItem.js.map +1 -1
  151. package/dist/esm/components/Menu/Menu.js +1 -0
  152. package/dist/esm/components/Menu/Menu.js.map +1 -1
  153. package/dist/esm/components/NavigationTransition/NavigationTransition.js +1 -0
  154. package/dist/esm/components/NavigationTransition/NavigationTransition.js.map +1 -1
  155. package/dist/esm/components/NumberInput/NumberInput.js +1 -0
  156. package/dist/esm/components/NumberInput/NumberInput.js.map +1 -1
  157. package/dist/esm/components/Pagination/Pagination.js +1 -0
  158. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  159. package/dist/esm/components/ProfileBadge/ProfileBadge.js +2 -2
  160. package/dist/esm/components/ProfileBadge/ProfileBadge.js.map +1 -1
  161. package/dist/esm/components/PullToRefresh/PullToRefresh.js +1 -0
  162. package/dist/esm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  163. package/dist/esm/components/Radio/Radio.js +1 -0
  164. package/dist/esm/components/Radio/Radio.js.map +1 -1
  165. package/dist/esm/components/RadioTile/RadioTile.js +1 -0
  166. package/dist/esm/components/RadioTile/RadioTile.js.map +1 -1
  167. package/dist/esm/components/RangeSlider/RangeSlider.js +1 -0
  168. package/dist/esm/components/RangeSlider/RangeSlider.js.map +1 -1
  169. package/dist/esm/components/SearchInput/SearchInput.js +1 -0
  170. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  171. package/dist/esm/components/SegmentGroup/SegmentGroup.js +1 -0
  172. package/dist/esm/components/SegmentGroup/SegmentGroup.js.map +1 -1
  173. package/dist/esm/components/Select/Select.js +1 -0
  174. package/dist/esm/components/Select/Select.js.map +1 -1
  175. package/dist/esm/components/SmsOtpField/SmsOtpField.js +1 -0
  176. package/dist/esm/components/SmsOtpField/SmsOtpField.js.map +1 -1
  177. package/dist/esm/components/SwipeActions/SwipeActions.js +1 -0
  178. package/dist/esm/components/SwipeActions/SwipeActions.js.map +1 -1
  179. package/dist/esm/components/Table/useTableSelection.js +1 -0
  180. package/dist/esm/components/Table/useTableSelection.js.map +1 -1
  181. package/dist/esm/components/Tabs/Tabs.js +1 -0
  182. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  183. package/dist/esm/components/Textarea/Textarea.js +1 -0
  184. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  185. package/dist/esm/components/Tile/Tile.js +1 -0
  186. package/dist/esm/components/Tile/Tile.js.map +1 -1
  187. package/dist/esm/components/Toast/Toast.js +1 -0
  188. package/dist/esm/components/Toast/Toast.js.map +1 -1
  189. package/dist/esm/components/Toggle/Toggle.js +1 -0
  190. package/dist/esm/components/Toggle/Toggle.js.map +1 -1
  191. package/dist/esm/components/index.js.map +1 -1
  192. package/dist/styles/components/Badge.css +77 -28
  193. package/dist/styles/components/Button.css +10 -4
  194. package/dist/styles/components/Chip.css +155 -65
  195. package/dist/styles/components/DataTable.css +328 -25
  196. package/dist/styles/index.css +740 -202
  197. package/dist/styles/muka-dark.css +740 -202
  198. package/dist/styles/muka-light.css +740 -202
  199. package/dist/styles/{tokens-bouwflow-dark.css → tokens-bouwplan-dark.css} +93 -3
  200. package/dist/styles/{tokens-bouwflow-light.css → tokens-bouwplan-light.css} +93 -3
  201. package/dist/styles/tokens-fscl-dark.css +93 -3
  202. package/dist/styles/tokens-fscl-light.css +93 -3
  203. package/dist/styles/tokens-grip-dark.css +93 -3
  204. package/dist/styles/tokens-grip-light.css +93 -3
  205. package/dist/styles/tokens-muka-dark.css +93 -3
  206. package/dist/styles/tokens-muka-light.css +93 -3
  207. package/dist/styles/tokens-wireframe-dark.css +93 -3
  208. package/dist/styles/tokens-wireframe-light.css +150 -60
  209. package/dist/styles/wireframe-dark.css +740 -202
  210. package/dist/styles/wireframe-light.css +797 -259
  211. package/dist/types/components/AgentTaskList/AgentTaskList.d.ts.map +1 -1
  212. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  213. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  214. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  215. package/dist/types/components/Button/Button.d.ts.map +1 -1
  216. package/dist/types/components/Card/Card.d.ts.map +1 -1
  217. package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
  218. package/dist/types/components/ChatMessageList/ChatMessageList.d.ts.map +1 -1
  219. package/dist/types/components/Checkbox/Checkbox.d.ts +4 -0
  220. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  221. package/dist/types/components/CheckboxTile/CheckboxTile.d.ts.map +1 -1
  222. package/dist/types/components/Chip/Chip.d.ts +2 -5
  223. package/dist/types/components/Chip/Chip.d.ts.map +1 -1
  224. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  225. package/dist/types/components/DataTable/DataTable.d.ts +93 -4
  226. package/dist/types/components/DataTable/DataTable.d.ts.map +1 -1
  227. package/dist/types/components/DataTable/index.d.ts +1 -1
  228. package/dist/types/components/DataTable/index.d.ts.map +1 -1
  229. package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -1
  230. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  231. package/dist/types/components/DocumentViewer/DocumentCanvas.d.ts.map +1 -1
  232. package/dist/types/components/DocumentViewer/DocumentThumbnails.d.ts.map +1 -1
  233. package/dist/types/components/DocumentViewer/DocumentToolbar.d.ts.map +1 -1
  234. package/dist/types/components/DocumentViewer/DocumentViewer.d.ts.map +1 -1
  235. package/dist/types/components/Drawer/Drawer.d.ts.map +1 -1
  236. package/dist/types/components/FileUpload/FileUpload.d.ts.map +1 -1
  237. package/dist/types/components/Input/Input.d.ts.map +1 -1
  238. package/dist/types/components/LicensePlateInput/LicensePlateInput.d.ts.map +1 -1
  239. package/dist/types/components/ListItem/ListItem.d.ts.map +1 -1
  240. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  241. package/dist/types/components/NavigationTransition/NavigationTransition.d.ts.map +1 -1
  242. package/dist/types/components/NumberInput/NumberInput.d.ts.map +1 -1
  243. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  244. package/dist/types/components/ProfileBadge/ProfileBadge.d.ts +8 -0
  245. package/dist/types/components/ProfileBadge/ProfileBadge.d.ts.map +1 -1
  246. package/dist/types/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  247. package/dist/types/components/Radio/Radio.d.ts.map +1 -1
  248. package/dist/types/components/RadioTile/RadioTile.d.ts.map +1 -1
  249. package/dist/types/components/RangeSlider/RangeSlider.d.ts.map +1 -1
  250. package/dist/types/components/SearchInput/SearchInput.d.ts.map +1 -1
  251. package/dist/types/components/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  252. package/dist/types/components/Select/Select.d.ts.map +1 -1
  253. package/dist/types/components/SmsOtpField/SmsOtpField.d.ts.map +1 -1
  254. package/dist/types/components/SwipeActions/SwipeActions.d.ts.map +1 -1
  255. package/dist/types/components/Table/useTableSelection.d.ts.map +1 -1
  256. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  257. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -1
  258. package/dist/types/components/Tile/Tile.d.ts.map +1 -1
  259. package/dist/types/components/Toast/Toast.d.ts.map +1 -1
  260. package/dist/types/components/Toggle/Toggle.d.ts.map +1 -1
  261. package/dist/types/components/index.d.ts +1 -1
  262. package/dist/types/components/index.d.ts.map +1 -1
  263. package/docs/consumers/setup-instructions.md +3 -3
  264. package/package.json +3 -1
  265. package/skills/setup-muka/SKILL.md +1 -1
  266. package/tokens/t2-alias/base.json +90 -0
  267. package/tokens/t2-alias/brand/{bouwflow → bouwplan}/dark.json +35 -5
  268. package/tokens/t2-alias/brand/{bouwflow → bouwplan}/light.json +35 -5
  269. package/tokens/t2-alias/brand/fscl/dark.json +35 -5
  270. package/tokens/t2-alias/brand/fscl/light.json +28 -4
  271. package/tokens/t2-alias/brand/grip/dark.json +90 -0
  272. package/tokens/t2-alias/brand/grip/light.json +90 -0
  273. package/tokens/t2-alias/brand/muka/dark.json +90 -0
  274. package/tokens/t2-alias/brand/muka/light.json +90 -0
  275. package/tokens/t2-alias/brand/wireframe/dark.json +90 -0
  276. package/tokens/t2-alias/brand/wireframe/light.json +82 -10
  277. package/tokens/t4-components/badge.json +44 -0
  278. package/tokens/t4-components/chip.json +214 -4
  279. package/tokens/t4-components/datatable.json +104 -0
  280. /package/tokens/t2-alias/brand/{bouwflow → bouwplan}/fonts.json +0 -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;
@@ -5443,53 +5533,6 @@ body {
5443
5533
  }
5444
5534
 
5445
5535
 
5446
- /* PullToRefresh */
5447
- /* PullToRefresh Component Styles */
5448
-
5449
- .muka-pull-to-refresh {
5450
- position: relative;
5451
- display: flex;
5452
- flex-direction: column;
5453
- width: 100%;
5454
- height: 100%;
5455
- overflow: hidden;
5456
- }
5457
-
5458
- .muka-pull-to-refresh__indicator {
5459
- position: absolute;
5460
- top: 0;
5461
- left: 0;
5462
- right: 0;
5463
- display: flex;
5464
- align-items: flex-end;
5465
- justify-content: center;
5466
- padding-bottom: var(--spacing-2);
5467
- color: var(--color-text-subtle-default);
5468
- overflow: hidden;
5469
- pointer-events: none;
5470
- z-index: 1;
5471
- }
5472
-
5473
- .muka-pull-to-refresh__chevron {
5474
- display: inline-flex;
5475
- align-items: center;
5476
- justify-content: center;
5477
- transition: transform 0.16s ease;
5478
- }
5479
-
5480
- .muka-pull-to-refresh__scroller {
5481
- flex: 1 1 auto;
5482
- min-height: 0;
5483
- width: 100%;
5484
- overflow-x: clip;
5485
- overflow-y: auto;
5486
- -webkit-overflow-scrolling: touch;
5487
- overscroll-behavior-y: contain;
5488
- touch-action: pan-y;
5489
- will-change: transform;
5490
- }
5491
-
5492
-
5493
5536
  /* Progress */
5494
5537
  /* Progress Component Styles - Using Muka Design Tokens */
5495
5538
 
@@ -5662,6 +5705,53 @@ body {
5662
5705
  }
5663
5706
 
5664
5707
 
5708
+ /* PullToRefresh */
5709
+ /* PullToRefresh Component Styles */
5710
+
5711
+ .muka-pull-to-refresh {
5712
+ position: relative;
5713
+ display: flex;
5714
+ flex-direction: column;
5715
+ width: 100%;
5716
+ height: 100%;
5717
+ overflow: hidden;
5718
+ }
5719
+
5720
+ .muka-pull-to-refresh__indicator {
5721
+ position: absolute;
5722
+ top: 0;
5723
+ left: 0;
5724
+ right: 0;
5725
+ display: flex;
5726
+ align-items: flex-end;
5727
+ justify-content: center;
5728
+ padding-bottom: var(--spacing-2);
5729
+ color: var(--color-text-subtle-default);
5730
+ overflow: hidden;
5731
+ pointer-events: none;
5732
+ z-index: 1;
5733
+ }
5734
+
5735
+ .muka-pull-to-refresh__chevron {
5736
+ display: inline-flex;
5737
+ align-items: center;
5738
+ justify-content: center;
5739
+ transition: transform 0.16s ease;
5740
+ }
5741
+
5742
+ .muka-pull-to-refresh__scroller {
5743
+ flex: 1 1 auto;
5744
+ min-height: 0;
5745
+ width: 100%;
5746
+ overflow-x: clip;
5747
+ overflow-y: auto;
5748
+ -webkit-overflow-scrolling: touch;
5749
+ overscroll-behavior-y: contain;
5750
+ touch-action: pan-y;
5751
+ will-change: transform;
5752
+ }
5753
+
5754
+
5665
5755
  /* ProfileBadge */
5666
5756
  /* ProfileBadge Component Styles - Using Muka Design Tokens */
5667
5757
 
@@ -6060,6 +6150,36 @@ body {
6060
6150
  }
6061
6151
 
6062
6152
 
6153
+ /* NumberInput */
6154
+ /* NumberInput — reuses Input field styles (../Input/Input.css). */
6155
+ /* Only the prefix/suffix affixes are NumberInput-specific. */
6156
+
6157
+ .muka-numberinput__addon {
6158
+ display: inline-flex;
6159
+ align-items: center;
6160
+ flex: none;
6161
+ color: var(--color-text-subtle-default);
6162
+ font-family: var(--text-input-md-fontFamily);
6163
+ font-size: var(--text-input-md-fontSize);
6164
+ line-height: var(--text-input-md-lineHeight);
6165
+ user-select: none;
6166
+ pointer-events: none;
6167
+ white-space: nowrap;
6168
+ }
6169
+
6170
+ /* Hide the native number spinners — affixes/step API replace them. */
6171
+ .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
6172
+ .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
6173
+ -webkit-appearance: none;
6174
+ margin: 0;
6175
+ }
6176
+
6177
+ .muka-numberinput__field .muka-input__native {
6178
+ -moz-appearance: textfield;
6179
+ appearance: textfield;
6180
+ }
6181
+
6182
+
6063
6183
  /* NavigationTransition */
6064
6184
  /* NavigationTransition Component Styles */
6065
6185
 
@@ -6371,36 +6491,6 @@ body {
6371
6491
  }
6372
6492
 
6373
6493
 
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
6494
  /* ListItem */
6405
6495
  /* ListItem Component Styles - Using Muka Design Tokens */
6406
6496
 
@@ -8568,16 +8658,31 @@ li.muka-listitem {
8568
8658
  }
8569
8659
 
8570
8660
  .muka-data-table {
8661
+ /* Density-driven cell padding (overridden per size below). */
8662
+ --dt-pad-x: var(--datatable-cell-padding-x-md);
8663
+ --dt-pad-y: var(--datatable-cell-padding-y-md);
8664
+
8571
8665
  width: 100%;
8572
8666
  border-collapse: collapse;
8573
8667
  border-spacing: 0;
8574
- table-layout: fixed;
8575
- background-color: var(--color-surface-level3);
8576
- color: var(--color-text-default-default);
8668
+ /* auto layout so per-column min/max widths are honored and unsized columns flex */
8669
+ table-layout: auto;
8670
+ background-color: var(--datatable-row-background);
8671
+ color: var(--datatable-row-foreground);
8672
+ }
8673
+
8674
+ .muka-data-table--size-sm {
8675
+ --dt-pad-x: var(--datatable-cell-padding-x-sm);
8676
+ --dt-pad-y: var(--datatable-cell-padding-y-sm);
8677
+ }
8678
+
8679
+ .muka-data-table--size-lg {
8680
+ --dt-pad-x: var(--datatable-cell-padding-x-lg);
8681
+ --dt-pad-y: var(--datatable-cell-padding-y-lg);
8577
8682
  }
8578
8683
 
8579
8684
  .muka-data-table__caption {
8580
- padding: var(--spacing-3) var(--spacing-6);
8685
+ padding: var(--dt-pad-y) var(--dt-pad-x);
8581
8686
  font-family: var(--text-body-base-bold-fontFamily);
8582
8687
  font-weight: var(--text-body-base-bold-fontWeight);
8583
8688
  font-size: var(--text-body-base-bold-fontSize);
@@ -8591,17 +8696,17 @@ li.muka-listitem {
8591
8696
  ======================================== */
8592
8697
 
8593
8698
  .muka-data-table__head {
8594
- border-bottom: var(--border-width-regular, 1px) solid var(--color-border-default);
8699
+ border-bottom: var(--border-width-regular, 1px) solid var(--datatable-header-border);
8595
8700
  }
8596
8701
 
8597
8702
  .muka-data-table__th {
8598
- background-color: var(--color-surface-level1);
8599
- padding: var(--spacing-2) var(--spacing-6);
8703
+ background-color: var(--datatable-header-background);
8704
+ padding: var(--datatable-cell-padding-y-sm) var(--dt-pad-x);
8600
8705
  font-family: var(--text-body-base-bold-fontFamily);
8601
8706
  font-weight: var(--text-body-base-bold-fontWeight);
8602
8707
  font-size: var(--text-body-base-bold-fontSize);
8603
8708
  line-height: var(--text-body-base-bold-lineHeight);
8604
- color: var(--color-text-default-default);
8709
+ color: var(--datatable-header-foreground);
8605
8710
  vertical-align: middle;
8606
8711
  text-align: left;
8607
8712
  }
@@ -8609,7 +8714,7 @@ li.muka-listitem {
8609
8714
  .muka-data-table__th-label {
8610
8715
  display: flex;
8611
8716
  align-items: center;
8612
- min-height: 2rem; /* 32px slot — matches Figma header cell height */
8717
+ min-height: var(--datatable-cell-min-height); /* 32px slot — matches Figma header cell height */
8613
8718
  }
8614
8719
 
8615
8720
  /* ========================================
@@ -8617,28 +8722,34 @@ li.muka-listitem {
8617
8722
  ======================================== */
8618
8723
 
8619
8724
  .muka-data-table__row {
8620
- border-bottom: var(--border-width-regular, 1px) solid var(--color-border-default);
8725
+ border-bottom: var(--border-width-regular, 1px) solid var(--datatable-row-border);
8621
8726
  transition: background-color 0.15s ease;
8622
8727
  }
8623
8728
 
8624
- .muka-data-table__row:not(.muka-data-table__row--empty):hover {
8625
- background-color: var(--color-surface-hover);
8729
+ .muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
8730
+ background-color: var(--datatable-row-hover-background);
8731
+ }
8732
+
8733
+ /* Selected rows keep their tint, including on hover. */
8734
+ .muka-data-table__row--selected,
8735
+ .muka-data-table__row--selected:hover {
8736
+ background-color: var(--datatable-row-selected-background);
8626
8737
  }
8627
8738
 
8628
8739
  .muka-data-table__td {
8629
- padding: var(--spacing-3) var(--spacing-6);
8740
+ padding: var(--dt-pad-y) var(--dt-pad-x);
8630
8741
  font-family: var(--text-body-base-regular-fontFamily);
8631
8742
  font-weight: var(--text-body-base-regular-fontWeight);
8632
8743
  font-size: var(--text-body-base-regular-fontSize);
8633
8744
  line-height: var(--text-body-base-regular-lineHeight);
8634
- color: var(--color-text-default-default);
8745
+ color: var(--datatable-row-foreground);
8635
8746
  vertical-align: middle;
8636
8747
  }
8637
8748
 
8638
8749
  .muka-data-table__cell-content {
8639
8750
  display: flex;
8640
8751
  align-items: center;
8641
- min-height: 2rem; /* 32px slot — matches Figma body cell height */
8752
+ min-height: var(--datatable-cell-min-height); /* 32px slot — matches Figma body cell height */
8642
8753
  word-break: break-word;
8643
8754
  }
8644
8755
 
@@ -8647,6 +8758,42 @@ li.muka-listitem {
8647
8758
  color: var(--color-text-subtle-default);
8648
8759
  }
8649
8760
 
8761
+ /* ========================================
8762
+ BADGES — always the small (sm) scale
8763
+ ======================================== */
8764
+
8765
+ /* Any Badge inside a DataTable renders at the small scale regardless of the
8766
+ `size` prop passed to it — status pills stay compact and consistent across
8767
+ every table density. Enforced here so callers can't accidentally scale them
8768
+ up. Overrides the `.muka-badge--md`/`--lg` size rules by carrying a higher
8769
+ specificity (2–3 classes vs. 1–2), independent of stylesheet import order. */
8770
+ .muka-data-table .muka-badge {
8771
+ height: var(--badge-size-height-sm);
8772
+ gap: var(--badge-gap-sm);
8773
+ padding: 0 var(--badge-padding-label-sm);
8774
+ font-family: var(--text-label-sm-regular-fontFamily);
8775
+ font-weight: var(--text-label-sm-regular-fontWeight);
8776
+ font-size: var(--text-label-sm-regular-fontSize);
8777
+ line-height: var(--text-label-sm-regular-lineHeight);
8778
+ }
8779
+
8780
+ /* Match the sm leading padding when a leading icon or dot is present. */
8781
+ .muka-data-table .muka-badge.muka-badge--has-icon,
8782
+ .muka-data-table .muka-badge.muka-badge--has-dot {
8783
+ padding-left: var(--badge-padding-leading-sm);
8784
+ }
8785
+
8786
+ /* Icon and dot slots follow the sm scale too. */
8787
+ .muka-data-table .muka-badge .muka-badge__icon {
8788
+ width: var(--icon-size-xs);
8789
+ height: var(--icon-size-xs);
8790
+ }
8791
+
8792
+ .muka-data-table .muka-badge .muka-badge__dot {
8793
+ width: var(--badge-size-dot-sm);
8794
+ height: var(--badge-size-dot-sm);
8795
+ }
8796
+
8650
8797
  /* ========================================
8651
8798
  ALIGNMENT
8652
8799
  ======================================== */
@@ -8679,7 +8826,7 @@ li.muka-listitem {
8679
8826
 
8680
8827
  .muka-data-table--column-dividers .muka-data-table__th:not(:last-child),
8681
8828
  .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);
8829
+ border-right: var(--border-width-regular, 1px) solid var(--datatable-divider-color);
8683
8830
  }
8684
8831
 
8685
8832
  /* ========================================
@@ -8691,7 +8838,7 @@ li.muka-listitem {
8691
8838
  align-items: center;
8692
8839
  gap: var(--spacing-1);
8693
8840
  width: 100%;
8694
- min-height: 2rem;
8841
+ min-height: var(--datatable-cell-min-height);
8695
8842
  padding: 0;
8696
8843
  margin: 0;
8697
8844
  border: 0;
@@ -8705,24 +8852,270 @@ li.muka-listitem {
8705
8852
  }
8706
8853
 
8707
8854
  .muka-data-table__sort-button:focus-visible {
8708
- outline: 2px solid var(--color-action-default);
8855
+ outline: 2px solid var(--datatable-focus-ring);
8709
8856
  outline-offset: 2px;
8710
8857
  }
8711
8858
 
8859
+ /* The chevron only renders on the active sort column, so it's always full-strength. */
8712
8860
  .muka-data-table__sort-icon {
8713
8861
  display: inline-flex;
8714
8862
  flex-shrink: 0;
8715
- opacity: 0.4;
8716
- transition: opacity 0.15s ease;
8717
8863
  }
8718
8864
 
8719
- .muka-data-table__sort-button:hover .muka-data-table__sort-icon {
8720
- opacity: 0.7;
8865
+ /* ========================================
8866
+ INTERACTIVE ROWS (clickable / link)
8867
+ ======================================== */
8868
+
8869
+ .muka-data-table__row--interactive {
8870
+ cursor: pointer;
8871
+ /* anchor for the stretched link overlay */
8872
+ position: relative;
8721
8873
  }
8722
8874
 
8723
- .muka-data-table__sort-icon--asc,
8724
- .muka-data-table__sort-icon--desc {
8725
- opacity: 1;
8875
+ .muka-data-table__row--interactive:focus-visible {
8876
+ outline: 2px solid var(--datatable-focus-ring);
8877
+ outline-offset: -2px;
8878
+ }
8879
+
8880
+ .muka-data-table__row--interactive:active {
8881
+ background-color: var(--datatable-row-pressed-background);
8882
+ }
8883
+
8884
+ /* Link rows: the first-cell anchor stretches to cover the whole row. */
8885
+ .muka-data-table__row-link {
8886
+ color: inherit;
8887
+ text-decoration: none;
8888
+ }
8889
+
8890
+ .muka-data-table__row-link::after {
8891
+ content: '';
8892
+ position: absolute;
8893
+ inset: 0;
8894
+ z-index: 0;
8895
+ }
8896
+
8897
+ .muka-data-table__row--link:hover {
8898
+ background-color: var(--datatable-row-hover-background);
8899
+ }
8900
+
8901
+ .muka-data-table__row--link .muka-data-table__row-link:focus-visible {
8902
+ outline: 2px solid var(--datatable-focus-ring);
8903
+ outline-offset: -2px;
8904
+ }
8905
+
8906
+ /* Disabled rows */
8907
+ .muka-data-table__row--disabled {
8908
+ cursor: default;
8909
+ color: var(--color-text-muted-default);
8910
+ }
8911
+
8912
+ .muka-data-table__row--disabled .muka-data-table__td {
8913
+ color: var(--color-text-muted-default);
8914
+ }
8915
+
8916
+ /* ========================================
8917
+ TRAILING ACTION COLUMN
8918
+ ======================================== */
8919
+
8920
+ /* Hug: the trailing action column shrinks to its content, so a text-label
8921
+ button ("View") gets exactly the width it needs and an icon-only button
8922
+ stays tight. `width: 1%` + `nowrap` is the classic auto-table hug. */
8923
+ .muka-data-table__col--action {
8924
+ width: 0;
8925
+ }
8926
+
8927
+ .muka-data-table__th--action,
8928
+ .muka-data-table__td--action {
8929
+ width: 1%;
8930
+ white-space: nowrap;
8931
+ padding-left: var(--spacing-2);
8932
+ padding-right: var(--spacing-2);
8933
+ text-align: right;
8934
+ /* Sit above the row link overlay so the action stays independently clickable. */
8935
+ position: relative;
8936
+ z-index: 1;
8937
+ }
8938
+
8939
+ .muka-data-table__action-content {
8940
+ justify-content: flex-end;
8941
+ }
8942
+
8943
+ /* Visually-hidden-friendly empty header slot keeps the row height consistent. */
8944
+ .muka-data-table__action-header:empty {
8945
+ min-height: var(--datatable-cell-min-height);
8946
+ }
8947
+
8948
+ /* ========================================
8949
+ SELECTION — leading checkbox column
8950
+ ======================================== */
8951
+
8952
+ .muka-data-table__col--select {
8953
+ width: var(--datatable-selection-column-width);
8954
+ }
8955
+
8956
+ .muka-data-table__th--select,
8957
+ .muka-data-table__td--select {
8958
+ width: var(--datatable-selection-column-width);
8959
+ padding-left: var(--spacing-4);
8960
+ padding-right: var(--spacing-2);
8961
+ /* Sit above the row link overlay so the checkbox stays independently clickable. */
8962
+ position: relative;
8963
+ z-index: 1;
8964
+ }
8965
+
8966
+ .muka-data-table__select-control {
8967
+ display: inline-flex;
8968
+ align-items: center;
8969
+ }
8970
+
8971
+ /* ========================================
8972
+ RESPONSIVE — two-column mobile layout
8973
+ ======================================== */
8974
+
8975
+ /* Desktop: the mobile-only stack cell/header/col are hidden. */
8976
+ .muka-data-table__th--mobile-stack,
8977
+ .muka-data-table__td--mobile-stack {
8978
+ display: none;
8979
+ }
8980
+
8981
+ /* Establish a container so the layout responds to the table's own width, not the
8982
+ viewport — a DataTable in a narrow panel collapses even on a wide screen. */
8983
+ .muka-data-table-wrapper--responsive {
8984
+ container-type: inline-size;
8985
+ }
8986
+
8987
+ /* Below --breakpoint-md (768px) of the wrapper's width. @container can't read
8988
+ custom properties, so the value is inlined as 767.98px. */
8989
+ @container (max-width: 767.98px) {
8990
+ /* Lift the table and body out of table layout. Without this the grid rows
8991
+ below get wrapped in anonymous table cells that shrink-wrap them to
8992
+ min-content, collapsing the flexible (1fr) stack track to 0. */
8993
+ .muka-data-table--responsive {
8994
+ display: block;
8995
+ }
8996
+
8997
+ .muka-data-table--responsive .muka-data-table__body {
8998
+ display: block;
8999
+ }
9000
+
9001
+ .muka-data-table--responsive .muka-data-table__head {
9002
+ display: none;
9003
+ }
9004
+
9005
+ .muka-data-table--responsive .muka-data-table__row {
9006
+ display: grid;
9007
+ grid-template-columns: 1fr auto auto;
9008
+ align-items: center;
9009
+ column-gap: var(--spacing-4);
9010
+ padding: var(--dt-pad-y) var(--dt-pad-x);
9011
+ }
9012
+
9013
+ /* Reset table cells; each visible mobile cell opts back in below. */
9014
+ .muka-data-table--responsive .muka-data-table__td {
9015
+ display: none;
9016
+ padding: 0;
9017
+ }
9018
+
9019
+ /* Pin every visible cell to the single grid row. The stack cell sits after the
9020
+ secondary cell in DOM order but targets an earlier column, so without this
9021
+ auto-placement spills it onto a second row (breaking vertical centering). */
9022
+ .muka-data-table--responsive .muka-data-table__td--select,
9023
+ .muka-data-table--responsive .muka-data-table__td--mobile-stack,
9024
+ .muka-data-table--responsive .muka-data-table__td--m-secondary,
9025
+ .muka-data-table--responsive .muka-data-table__td--action {
9026
+ grid-row: 1;
9027
+ }
9028
+
9029
+ .muka-data-table--responsive .muka-data-table__td--mobile-stack {
9030
+ display: block;
9031
+ grid-column: 1;
9032
+ min-width: 0;
9033
+ }
9034
+
9035
+ .muka-data-table--responsive .muka-data-table__td--m-secondary {
9036
+ display: block;
9037
+ grid-column: 2;
9038
+ }
9039
+
9040
+ .muka-data-table--responsive .muka-data-table__td--action {
9041
+ display: block;
9042
+ grid-column: 3;
9043
+ width: auto;
9044
+ }
9045
+
9046
+ /* Cell-content wrappers: drop the fixed row-height slot so rows stay compact. */
9047
+ .muka-data-table--responsive .muka-data-table__td .muka-data-table__cell-content {
9048
+ min-height: 0;
9049
+ }
9050
+
9051
+ .muka-data-table--responsive .muka-data-table__td--m-secondary .muka-data-table__cell-content {
9052
+ justify-content: flex-end;
9053
+ }
9054
+
9055
+ /* Stacked primary column: first field is the title, the rest are subtitle lines. */
9056
+ .muka-data-table__stack {
9057
+ display: flex;
9058
+ flex-direction: column;
9059
+ gap: var(--spacing-1);
9060
+ min-width: 0;
9061
+ }
9062
+
9063
+ /* A ProfileBadge in the collapsed card drops its avatar so the name sits
9064
+ flush-left and lines up with the other stacked primary/secondary text
9065
+ instead of being indented by the avatar. `display: none` also collapses the
9066
+ ProfileBadge's flex gap, so no placeholder whitespace is left behind. */
9067
+ .muka-data-table--responsive .muka-profile-badge__avatar {
9068
+ display: none;
9069
+ }
9070
+
9071
+ .muka-data-table__stack-title {
9072
+ font-family: var(--text-label-md-semibold-fontFamily);
9073
+ font-weight: var(--text-label-md-semibold-fontWeight);
9074
+ font-size: var(--text-label-md-semibold-fontSize);
9075
+ line-height: var(--text-label-md-semibold-lineHeight);
9076
+ color: var(--color-text-default-default);
9077
+ overflow: hidden;
9078
+ text-overflow: ellipsis;
9079
+ }
9080
+
9081
+ .muka-data-table__stack-line {
9082
+ font-family: var(--text-body-sm-regular-fontFamily);
9083
+ font-weight: var(--text-body-sm-regular-fontWeight);
9084
+ font-size: var(--text-body-sm-regular-fontSize);
9085
+ line-height: var(--text-body-sm-regular-lineHeight);
9086
+ color: var(--color-text-subtle-default);
9087
+ overflow: hidden;
9088
+ text-overflow: ellipsis;
9089
+ }
9090
+
9091
+ /* The stack title may itself be the stretched link. */
9092
+ .muka-data-table__stack-title .muka-data-table__row-link {
9093
+ color: inherit;
9094
+ text-decoration: none;
9095
+ }
9096
+
9097
+ /* Selection checkbox leads the mobile row: [checkbox | stack | secondary | action]. */
9098
+ .muka-data-table--responsive .muka-data-table__td--select {
9099
+ display: block;
9100
+ grid-column: 1;
9101
+ width: auto;
9102
+ }
9103
+
9104
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__row {
9105
+ grid-template-columns: auto 1fr auto auto;
9106
+ }
9107
+
9108
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__td--mobile-stack {
9109
+ grid-column: 2;
9110
+ }
9111
+
9112
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__td--m-secondary {
9113
+ grid-column: 3;
9114
+ }
9115
+
9116
+ .muka-data-table--responsive.muka-data-table--selectable .muka-data-table__td--action {
9117
+ grid-column: 4;
9118
+ }
8726
9119
  }
8727
9120
 
8728
9121
 
@@ -8958,7 +9351,6 @@ li.muka-listitem {
8958
9351
  .muka-chip {
8959
9352
  display: inline-flex;
8960
9353
  align-items: center;
8961
- gap: var(--spacing-2);
8962
9354
  border-radius: var(--border-radius-full);
8963
9355
  white-space: nowrap;
8964
9356
  user-select: none;
@@ -8966,44 +9358,89 @@ li.muka-listitem {
8966
9358
  box-sizing: border-box;
8967
9359
  }
8968
9360
 
8969
- /* Sizes */
9361
+ /*
9362
+ * Sizes — height, gap, type, and default (label-edge) horizontal padding.
9363
+ * Vertical centering is handled by the fixed height + align-items: center.
9364
+ * The side that carries an adornment (leading icon / dismiss button) gets a
9365
+ * tighter padding, applied via the --has-icon / --dismissible modifiers below.
9366
+ */
8970
9367
  .muka-chip--sm {
8971
9368
  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);
9369
+ gap: var(--chip-gap-sm);
9370
+ padding: 0 var(--chip-padding-label-sm);
9371
+ font-family: var(--text-label-sm-regular-fontFamily);
9372
+ font-weight: var(--text-label-sm-regular-fontWeight);
9373
+ font-size: var(--text-label-sm-regular-fontSize);
9374
+ line-height: var(--text-label-sm-regular-lineHeight);
8977
9375
  }
8978
9376
 
8979
9377
  .muka-chip--md {
8980
9378
  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);
9379
+ gap: var(--chip-gap-md);
9380
+ padding: 0 var(--chip-padding-label-md);
9381
+ font-family: var(--text-label-md-regular-fontFamily);
9382
+ font-weight: var(--text-label-md-regular-fontWeight);
9383
+ font-size: var(--text-label-md-regular-fontSize);
9384
+ line-height: var(--text-label-md-regular-lineHeight);
8986
9385
  }
8987
9386
 
8988
9387
  .muka-chip--lg {
8989
9388
  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);
9389
+ gap: var(--chip-gap-lg);
9390
+ padding: 0 var(--chip-padding-label-lg);
9391
+ font-family: var(--text-label-lg-regular-fontFamily);
9392
+ font-weight: var(--text-label-lg-regular-fontWeight);
9393
+ font-size: var(--text-label-lg-regular-fontSize);
9394
+ line-height: var(--text-label-lg-regular-lineHeight);
9395
+ }
9396
+
9397
+ /* Tighter leading padding when a leading icon is present */
9398
+ .muka-chip--sm.muka-chip--has-icon {
9399
+ padding-left: var(--chip-padding-leading-sm);
9400
+ }
9401
+ .muka-chip--md.muka-chip--has-icon {
9402
+ padding-left: var(--chip-padding-leading-md);
9403
+ }
9404
+ .muka-chip--lg.muka-chip--has-icon {
9405
+ padding-left: var(--chip-padding-leading-lg);
9406
+ }
9407
+
9408
+ /* Tighter trailing padding when the dismiss button is present */
9409
+ .muka-chip--sm.muka-chip--dismissible {
9410
+ padding-right: var(--chip-padding-trailing-sm);
9411
+ }
9412
+ .muka-chip--md.muka-chip--dismissible {
9413
+ padding-right: var(--chip-padding-trailing-md);
9414
+ }
9415
+ .muka-chip--lg.muka-chip--dismissible {
9416
+ padding-right: var(--chip-padding-trailing-lg);
8995
9417
  }
8996
9418
 
8997
- /* Icon slot */
9419
+ /* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 */
8998
9420
  .muka-chip__icon {
8999
9421
  display: inline-flex;
9000
9422
  align-items: center;
9001
9423
  justify-content: center;
9002
9424
  flex-shrink: 0;
9003
- width: 1em;
9004
- height: 1em;
9005
9425
  }
9006
9426
 
9427
+ .muka-chip--sm .muka-chip__icon {
9428
+ width: var(--icon-size-xs);
9429
+ height: var(--icon-size-xs);
9430
+ }
9431
+ .muka-chip--md .muka-chip__icon {
9432
+ width: var(--icon-size-sm);
9433
+ height: var(--icon-size-sm);
9434
+ }
9435
+ .muka-chip--lg .muka-chip__icon {
9436
+ width: var(--icon-size-default);
9437
+ height: var(--icon-size-default);
9438
+ }
9439
+
9440
+ /* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
9441
+ so callers don't have to size the icon to match each chip size. The
9442
+ .muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
9443
+ .muka-chip__icon .muka-icon,
9007
9444
  .muka-chip__icon svg {
9008
9445
  width: 100%;
9009
9446
  height: 100%;
@@ -9014,29 +9451,40 @@ li.muka-listitem {
9014
9451
  min-width: 0;
9015
9452
  overflow: hidden;
9016
9453
  text-overflow: ellipsis;
9454
+ /*
9455
+ * The chip sets a tight line-height (= font size) for compact sizing, but the label's
9456
+ * `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
9457
+ * label its own roomier line-height so descenders render; vertical centering is unaffected
9458
+ * because the chip height is fixed and content is centered via align-items: center.
9459
+ */
9460
+ line-height: normal;
9017
9461
  }
9018
9462
 
9019
- /* Remove button */
9463
+ /* Dismiss button — circular hit area. Figma circle sizes: sm 20, md 24, lg 32 */
9020
9464
  .muka-chip__remove {
9021
9465
  display: inline-flex;
9022
9466
  align-items: center;
9023
9467
  justify-content: center;
9024
9468
  flex-shrink: 0;
9025
- width: 1.25em;
9026
- height: 1.25em;
9027
9469
  padding: 0;
9028
9470
  margin: 0;
9029
9471
  border: none;
9030
9472
  border-radius: var(--border-radius-full);
9031
- background: transparent;
9032
- color: inherit;
9033
9473
  cursor: pointer;
9034
- opacity: 0.85;
9474
+ transition: background-color 0.15s ease, color 0.15s ease;
9035
9475
  }
9036
9476
 
9037
- .muka-chip__remove:hover {
9038
- opacity: 1;
9039
- background: rgba(0, 0, 0, 0.08);
9477
+ .muka-chip--sm .muka-chip__remove {
9478
+ width: var(--icon-size-sm);
9479
+ height: var(--icon-size-sm);
9480
+ }
9481
+ .muka-chip--md .muka-chip__remove {
9482
+ width: var(--icon-size-default);
9483
+ height: var(--icon-size-default);
9484
+ }
9485
+ .muka-chip--lg .muka-chip__remove {
9486
+ width: var(--icon-size-lg);
9487
+ height: var(--icon-size-lg);
9040
9488
  }
9041
9489
 
9042
9490
  .muka-chip__remove:focus-visible {
@@ -9044,70 +9492,105 @@ li.muka-listitem {
9044
9492
  outline-offset: 2px;
9045
9493
  }
9046
9494
 
9047
- .muka-chip__remove svg {
9048
- width: 100%;
9049
- height: 100%;
9495
+ /*
9496
+ * Dismiss button colors — state-tinted per chip variant, with default / hover /
9497
+ * pressed steps. Values come from T4 chip.dismiss.* tokens, which reference the
9498
+ * brand-specific alias state-surface ramp. The ✕ (.muka-icon) inherits `color`.
9499
+ */
9500
+ .muka-chip--default .muka-chip__remove {
9501
+ background-color: var(--chip-dismiss-default-background-default);
9502
+ color: var(--chip-dismiss-default-foreground-default);
9050
9503
  }
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);
9504
+ .muka-chip--default .muka-chip__remove:hover {
9505
+ background-color: var(--chip-dismiss-default-background-hover);
9506
+ color: var(--chip-dismiss-default-foreground-hover);
9507
+ }
9508
+ .muka-chip--default .muka-chip__remove:active {
9509
+ background-color: var(--chip-dismiss-default-background-pressed);
9510
+ color: var(--chip-dismiss-default-foreground-pressed);
9056
9511
  }
9057
9512
 
9058
- .muka-chip--solid.muka-chip--success {
9059
- background-color: var(--color-state-success-background);
9060
- color: var(--color-state-success-contrast);
9513
+ .muka-chip--success .muka-chip__remove {
9514
+ background-color: var(--chip-dismiss-success-background-default);
9515
+ color: var(--chip-dismiss-success-foreground-default);
9516
+ }
9517
+ .muka-chip--success .muka-chip__remove:hover {
9518
+ background-color: var(--chip-dismiss-success-background-hover);
9519
+ color: var(--chip-dismiss-success-foreground-hover);
9520
+ }
9521
+ .muka-chip--success .muka-chip__remove:active {
9522
+ background-color: var(--chip-dismiss-success-background-pressed);
9523
+ color: var(--chip-dismiss-success-foreground-pressed);
9061
9524
  }
9062
9525
 
9063
- .muka-chip--solid.muka-chip--warning {
9064
- background-color: var(--color-state-warning-background);
9065
- color: var(--color-state-warning-contrast);
9526
+ .muka-chip--warning .muka-chip__remove {
9527
+ background-color: var(--chip-dismiss-warning-background-default);
9528
+ color: var(--chip-dismiss-warning-foreground-default);
9529
+ }
9530
+ .muka-chip--warning .muka-chip__remove:hover {
9531
+ background-color: var(--chip-dismiss-warning-background-hover);
9532
+ color: var(--chip-dismiss-warning-foreground-hover);
9533
+ }
9534
+ .muka-chip--warning .muka-chip__remove:active {
9535
+ background-color: var(--chip-dismiss-warning-background-pressed);
9536
+ color: var(--chip-dismiss-warning-foreground-pressed);
9066
9537
  }
9067
9538
 
9068
- .muka-chip--solid.muka-chip--error {
9069
- background-color: var(--color-state-error-background);
9070
- color: var(--color-state-error-contrast);
9539
+ .muka-chip--error .muka-chip__remove {
9540
+ background-color: var(--chip-dismiss-error-background-default);
9541
+ color: var(--chip-dismiss-error-foreground-default);
9542
+ }
9543
+ .muka-chip--error .muka-chip__remove:hover {
9544
+ background-color: var(--chip-dismiss-error-background-hover);
9545
+ color: var(--chip-dismiss-error-foreground-hover);
9546
+ }
9547
+ .muka-chip--error .muka-chip__remove:active {
9548
+ background-color: var(--chip-dismiss-error-background-pressed);
9549
+ color: var(--chip-dismiss-error-foreground-pressed);
9071
9550
  }
9072
9551
 
9073
- .muka-chip--solid.muka-chip--info {
9074
- background-color: var(--color-state-info-background);
9075
- color: var(--color-state-info-contrast);
9552
+ .muka-chip--info .muka-chip__remove {
9553
+ background-color: var(--chip-dismiss-info-background-default);
9554
+ color: var(--chip-dismiss-info-foreground-default);
9555
+ }
9556
+ .muka-chip--info .muka-chip__remove:hover {
9557
+ background-color: var(--chip-dismiss-info-background-hover);
9558
+ color: var(--chip-dismiss-info-foreground-hover);
9559
+ }
9560
+ .muka-chip--info .muka-chip__remove:active {
9561
+ background-color: var(--chip-dismiss-info-background-pressed);
9562
+ color: var(--chip-dismiss-info-foreground-pressed);
9076
9563
  }
9077
9564
 
9078
- /* Outline appearance – light background, bordered */
9079
- .muka-chip--outline.muka-chip--default {
9080
- background-color: var(--color-surface-level0);
9565
+ /* Variants (solid fill) — icons inherit these foreground colors (see below) */
9566
+ .muka-chip--default {
9567
+ background-color: var(--color-surface-level1);
9081
9568
  color: var(--color-text-default-default);
9082
- border-color: var(--color-surface-level1);
9083
9569
  }
9084
9570
 
9085
- .muka-chip--outline.muka-chip--success {
9571
+ .muka-chip--success {
9086
9572
  background-color: var(--color-state-success-background);
9087
9573
  color: var(--color-state-success-contrast);
9088
- border-color: var(--color-state-success-contrast);
9089
- opacity: 0.95;
9090
9574
  }
9091
9575
 
9092
- .muka-chip--outline.muka-chip--warning {
9576
+ .muka-chip--warning {
9093
9577
  background-color: var(--color-state-warning-background);
9094
9578
  color: var(--color-state-warning-contrast);
9095
- border-color: var(--color-state-warning-contrast);
9096
- opacity: 0.95;
9097
9579
  }
9098
9580
 
9099
- .muka-chip--outline.muka-chip--error {
9581
+ .muka-chip--error {
9100
9582
  background-color: var(--color-state-error-background);
9101
9583
  color: var(--color-state-error-contrast);
9102
- border-color: var(--color-state-error-contrast);
9103
- opacity: 0.95;
9104
9584
  }
9105
9585
 
9106
- .muka-chip--outline.muka-chip--info {
9586
+ .muka-chip--info {
9107
9587
  background-color: var(--color-state-info-background);
9108
9588
  color: var(--color-state-info-contrast);
9109
- border-color: var(--color-state-info-contrast);
9110
- opacity: 0.95;
9589
+ }
9590
+
9591
+ /* Icons (leading + dismiss) inherit the chip's per-variant foreground color */
9592
+ .muka-chip .muka-icon {
9593
+ color: inherit;
9111
9594
  }
9112
9595
 
9113
9596
 
@@ -10036,8 +10519,11 @@ li.muka-listitem {
10036
10519
  box-shadow: var(--button-color-primary-shadow-hover);
10037
10520
  }
10038
10521
 
10522
+ /* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
10523
+ trigger (Radix Menu/Popover set this on the trigger). */
10039
10524
  .muka-button--primary:active:not(:disabled),
10040
- .muka-button--primary.muka-button--pressed:not(:disabled) {
10525
+ .muka-button--primary.muka-button--pressed:not(:disabled),
10526
+ .muka-button--primary[data-state="open"]:not(:disabled) {
10041
10527
  background-color: var(--button-color-primary-background-pressed);
10042
10528
  color: var(--button-color-primary-foreground-pressed);
10043
10529
  box-shadow: var(--button-color-primary-shadow-pressed);
@@ -10065,7 +10551,8 @@ li.muka-listitem {
10065
10551
  }
10066
10552
 
10067
10553
  .muka-button--secondary:active:not(:disabled),
10068
- .muka-button--secondary.muka-button--pressed:not(:disabled) {
10554
+ .muka-button--secondary.muka-button--pressed:not(:disabled),
10555
+ .muka-button--secondary[data-state="open"]:not(:disabled) {
10069
10556
  background-color: var(--button-color-secondary-background-pressed);
10070
10557
  color: var(--button-color-secondary-foreground-pressed);
10071
10558
  box-shadow: var(--button-color-secondary-shadow-pressed);
@@ -10093,7 +10580,8 @@ li.muka-listitem {
10093
10580
  }
10094
10581
 
10095
10582
  .muka-button--tertiary:active:not(:disabled),
10096
- .muka-button--tertiary.muka-button--pressed:not(:disabled) {
10583
+ .muka-button--tertiary.muka-button--pressed:not(:disabled),
10584
+ .muka-button--tertiary[data-state="open"]:not(:disabled) {
10097
10585
  background-color: var(--button-color-tertiary-background-pressed);
10098
10586
  color: var(--button-color-tertiary-foreground-pressed);
10099
10587
  border-color: var(--button-color-tertiary-border-pressed);
@@ -10121,7 +10609,8 @@ li.muka-listitem {
10121
10609
  }
10122
10610
 
10123
10611
  .muka-button--ghost:active:not(:disabled),
10124
- .muka-button--ghost.muka-button--pressed:not(:disabled) {
10612
+ .muka-button--ghost.muka-button--pressed:not(:disabled),
10613
+ .muka-button--ghost[data-state="open"]:not(:disabled) {
10125
10614
  background-color: var(--button-color-ghost-background-pressed);
10126
10615
  color: var(--button-color-ghost-foreground-pressed);
10127
10616
  border-color: var(--button-color-ghost-border-pressed);
@@ -10578,56 +11067,98 @@ li.muka-listitem {
10578
11067
  .muka-badge {
10579
11068
  display: inline-flex;
10580
11069
  align-items: center;
10581
- gap: var(--spacing-1);
10582
11070
  border-radius: var(--border-radius-full);
10583
11071
  white-space: nowrap;
10584
11072
  user-select: none;
10585
11073
  box-sizing: border-box;
10586
11074
  }
10587
11075
 
10588
- /* Sizes */
11076
+ /*
11077
+ * Sizes — height, gap, type, and default (label-edge) horizontal padding.
11078
+ * Mirrors Chip so the two components share sizing, fonts, and spacing.
11079
+ * Vertical centering is handled by the fixed height + align-items: center.
11080
+ * The leading side gets a tighter padding when an icon/dot is present, via the
11081
+ * --has-icon / --has-dot modifiers below.
11082
+ */
10589
11083
  .muka-badge--sm {
10590
11084
  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);
11085
+ gap: var(--badge-gap-sm);
11086
+ padding: 0 var(--badge-padding-label-sm);
11087
+ font-family: var(--text-label-sm-regular-fontFamily);
11088
+ font-weight: var(--text-label-sm-regular-fontWeight);
11089
+ font-size: var(--text-label-sm-regular-fontSize);
11090
+ line-height: var(--text-label-sm-regular-lineHeight);
10596
11091
  }
10597
11092
 
10598
11093
  .muka-badge--md {
10599
11094
  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);
11095
+ gap: var(--badge-gap-md);
11096
+ padding: 0 var(--badge-padding-label-md);
11097
+ font-family: var(--text-label-md-regular-fontFamily);
11098
+ font-weight: var(--text-label-md-regular-fontWeight);
11099
+ font-size: var(--text-label-md-regular-fontSize);
11100
+ line-height: var(--text-label-md-regular-lineHeight);
10605
11101
  }
10606
11102
 
10607
11103
  .muka-badge--lg {
10608
11104
  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);
11105
+ gap: var(--badge-gap-lg);
11106
+ padding: 0 var(--badge-padding-label-lg);
11107
+ font-family: var(--text-label-lg-regular-fontFamily);
11108
+ font-weight: var(--text-label-lg-regular-fontWeight);
11109
+ font-size: var(--text-label-lg-regular-fontSize);
11110
+ line-height: var(--text-label-lg-regular-lineHeight);
11111
+ }
11112
+
11113
+ /* Tighter leading padding when a leading icon or dot is present */
11114
+ .muka-badge--sm.muka-badge--has-icon,
11115
+ .muka-badge--sm.muka-badge--has-dot {
11116
+ padding-left: var(--badge-padding-leading-sm);
11117
+ }
11118
+ .muka-badge--md.muka-badge--has-icon,
11119
+ .muka-badge--md.muka-badge--has-dot {
11120
+ padding-left: var(--badge-padding-leading-md);
11121
+ }
11122
+ .muka-badge--lg.muka-badge--has-icon,
11123
+ .muka-badge--lg.muka-badge--has-dot {
11124
+ padding-left: var(--badge-padding-leading-lg);
10614
11125
  }
10615
11126
 
10616
- /* Icon slot */
11127
+ /* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
10617
11128
  .muka-badge__icon {
10618
11129
  display: inline-flex;
10619
11130
  align-items: center;
10620
11131
  justify-content: center;
10621
11132
  flex-shrink: 0;
10622
- width: 1em;
10623
- height: 1em;
10624
11133
  }
10625
11134
 
11135
+ .muka-badge--sm .muka-badge__icon {
11136
+ width: var(--icon-size-xs);
11137
+ height: var(--icon-size-xs);
11138
+ }
11139
+ .muka-badge--md .muka-badge__icon {
11140
+ width: var(--icon-size-sm);
11141
+ height: var(--icon-size-sm);
11142
+ }
11143
+ .muka-badge--lg .muka-badge__icon {
11144
+ width: var(--icon-size-default);
11145
+ height: var(--icon-size-default);
11146
+ }
11147
+
11148
+ /* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
11149
+ so callers don't have to size the icon to match each badge size. The
11150
+ .muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
11151
+ .muka-badge__icon .muka-icon,
10626
11152
  .muka-badge__icon svg {
10627
11153
  width: 100%;
10628
11154
  height: 100%;
10629
11155
  }
10630
11156
 
11157
+ /* Icons inherit the badge's per-variant foreground color */
11158
+ .muka-badge .muka-icon {
11159
+ color: inherit;
11160
+ }
11161
+
10631
11162
  /* Dot indicator */
10632
11163
  .muka-badge__dot {
10633
11164
  flex-shrink: 0;
@@ -10654,6 +11185,13 @@ li.muka-listitem {
10654
11185
  min-width: 0;
10655
11186
  overflow: hidden;
10656
11187
  text-overflow: ellipsis;
11188
+ /*
11189
+ * The badge sets a tight line-height for compact sizing, but the label's
11190
+ * `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
11191
+ * label its own roomier line-height so descenders render; vertical centering is unaffected
11192
+ * because the badge height is fixed and content is centered via align-items: center.
11193
+ */
11194
+ line-height: normal;
10657
11195
  }
10658
11196
 
10659
11197
  /* Neutral variant */
@@ -10669,41 +11207,41 @@ li.muka-listitem {
10669
11207
  /* Info variant */
10670
11208
  .muka-badge--info {
10671
11209
  background-color: var(--color-state-info-background);
10672
- color: var(--color-state-info-foreground);
11210
+ color: var(--color-state-info-contrast);
10673
11211
  }
10674
11212
 
10675
11213
  .muka-badge--info .muka-badge__dot {
10676
- background-color: var(--color-state-info-foreground);
11214
+ background-color: var(--color-state-info-default);
10677
11215
  }
10678
11216
 
10679
11217
  /* Success variant */
10680
11218
  .muka-badge--success {
10681
11219
  background-color: var(--color-state-success-background);
10682
- color: var(--color-state-success-foreground);
11220
+ color: var(--color-state-success-contrast);
10683
11221
  }
10684
11222
 
10685
11223
  .muka-badge--success .muka-badge__dot {
10686
- background-color: var(--color-state-success-foreground);
11224
+ background-color: var(--color-state-success-default);
10687
11225
  }
10688
11226
 
10689
11227
  /* Warning variant */
10690
11228
  .muka-badge--warning {
10691
11229
  background-color: var(--color-state-warning-background);
10692
- color: var(--color-state-warning-foreground);
11230
+ color: var(--color-state-warning-contrast);
10693
11231
  }
10694
11232
 
10695
11233
  .muka-badge--warning .muka-badge__dot {
10696
- background-color: var(--color-state-warning-foreground);
11234
+ background-color: var(--color-state-warning-default);
10697
11235
  }
10698
11236
 
10699
11237
  /* Error variant */
10700
11238
  .muka-badge--error {
10701
11239
  background-color: var(--color-state-error-background);
10702
- color: var(--color-state-error-foreground);
11240
+ color: var(--color-state-error-contrast);
10703
11241
  }
10704
11242
 
10705
11243
  .muka-badge--error .muka-badge__dot {
10706
- background-color: var(--color-state-error-foreground);
11244
+ background-color: var(--color-state-error-default);
10707
11245
  }
10708
11246
 
10709
11247