@revikornmann/muka-ui 0.2.3 → 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 (294) 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/BottomBar/BottomBar.css +9 -0
  10. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +1 -0
  11. package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -1
  12. package/dist/cjs/components/Button/Button.css +10 -4
  13. package/dist/cjs/components/Button/Button.js +1 -0
  14. package/dist/cjs/components/Button/Button.js.map +1 -1
  15. package/dist/cjs/components/Card/Card.js +1 -0
  16. package/dist/cjs/components/Card/Card.js.map +1 -1
  17. package/dist/cjs/components/ChatComposer/ChatComposer.js +1 -0
  18. package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
  19. package/dist/cjs/components/ChatMessageList/ChatMessageList.js +1 -0
  20. package/dist/cjs/components/ChatMessageList/ChatMessageList.js.map +1 -1
  21. package/dist/cjs/components/Checkbox/Checkbox.js +1 -0
  22. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  23. package/dist/cjs/components/CheckboxTile/CheckboxTile.js +1 -0
  24. package/dist/cjs/components/CheckboxTile/CheckboxTile.js.map +1 -1
  25. package/dist/cjs/components/Chip/Chip.css +155 -65
  26. package/dist/cjs/components/Chip/Chip.js +6 -5
  27. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  28. package/dist/cjs/components/Combobox/Combobox.js +1 -0
  29. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  30. package/dist/cjs/components/DataTable/DataTable.css +328 -25
  31. package/dist/cjs/components/DataTable/DataTable.js +185 -32
  32. package/dist/cjs/components/DataTable/DataTable.js.map +1 -1
  33. package/dist/cjs/components/DataTable/index.js.map +1 -1
  34. package/dist/cjs/components/DatePicker/DatePicker.js +1 -0
  35. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  36. package/dist/cjs/components/Dialog/Dialog.js +1 -0
  37. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  38. package/dist/cjs/components/DocumentViewer/DocumentCanvas.js +1 -0
  39. package/dist/cjs/components/DocumentViewer/DocumentCanvas.js.map +1 -1
  40. package/dist/cjs/components/DocumentViewer/DocumentThumbnails.js +1 -0
  41. package/dist/cjs/components/DocumentViewer/DocumentThumbnails.js.map +1 -1
  42. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js +1 -0
  43. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  44. package/dist/cjs/components/DocumentViewer/DocumentViewer.js +1 -0
  45. package/dist/cjs/components/DocumentViewer/DocumentViewer.js.map +1 -1
  46. package/dist/cjs/components/Drawer/Drawer.js +1 -0
  47. package/dist/cjs/components/Drawer/Drawer.js.map +1 -1
  48. package/dist/cjs/components/FileUpload/FileUpload.js +1 -0
  49. package/dist/cjs/components/FileUpload/FileUpload.js.map +1 -1
  50. package/dist/cjs/components/Input/Input.js +1 -0
  51. package/dist/cjs/components/Input/Input.js.map +1 -1
  52. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js +1 -0
  53. package/dist/cjs/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  54. package/dist/cjs/components/ListItem/ListItem.js +1 -0
  55. package/dist/cjs/components/ListItem/ListItem.js.map +1 -1
  56. package/dist/cjs/components/Menu/Menu.js +1 -0
  57. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  58. package/dist/cjs/components/NavigationTransition/NavigationTransition.js +1 -0
  59. package/dist/cjs/components/NavigationTransition/NavigationTransition.js.map +1 -1
  60. package/dist/cjs/components/NumberInput/NumberInput.js +1 -0
  61. package/dist/cjs/components/NumberInput/NumberInput.js.map +1 -1
  62. package/dist/cjs/components/Pagination/Pagination.js +1 -0
  63. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  64. package/dist/cjs/components/ProfileBadge/ProfileBadge.js +2 -2
  65. package/dist/cjs/components/ProfileBadge/ProfileBadge.js.map +1 -1
  66. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +1 -0
  67. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  68. package/dist/cjs/components/Radio/Radio.js +1 -0
  69. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  70. package/dist/cjs/components/RadioTile/RadioTile.js +1 -0
  71. package/dist/cjs/components/RadioTile/RadioTile.js.map +1 -1
  72. package/dist/cjs/components/RangeSlider/RangeSlider.js +1 -0
  73. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  74. package/dist/cjs/components/SearchInput/SearchInput.js +1 -0
  75. package/dist/cjs/components/SearchInput/SearchInput.js.map +1 -1
  76. package/dist/cjs/components/SegmentGroup/SegmentGroup.js +1 -0
  77. package/dist/cjs/components/SegmentGroup/SegmentGroup.js.map +1 -1
  78. package/dist/cjs/components/Select/Select.js +1 -0
  79. package/dist/cjs/components/Select/Select.js.map +1 -1
  80. package/dist/cjs/components/SmsOtpField/SmsOtpField.js +1 -0
  81. package/dist/cjs/components/SmsOtpField/SmsOtpField.js.map +1 -1
  82. package/dist/cjs/components/SwipeActions/SwipeActions.js +1 -0
  83. package/dist/cjs/components/SwipeActions/SwipeActions.js.map +1 -1
  84. package/dist/cjs/components/Table/useTableSelection.js +1 -0
  85. package/dist/cjs/components/Table/useTableSelection.js.map +1 -1
  86. package/dist/cjs/components/Tabs/Tabs.js +1 -0
  87. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  88. package/dist/cjs/components/Textarea/Textarea.js +1 -0
  89. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  90. package/dist/cjs/components/Tile/Tile.js +1 -0
  91. package/dist/cjs/components/Tile/Tile.js.map +1 -1
  92. package/dist/cjs/components/Toast/Toast.js +1 -0
  93. package/dist/cjs/components/Toast/Toast.js.map +1 -1
  94. package/dist/cjs/components/Toggle/Toggle.js +1 -0
  95. package/dist/cjs/components/Toggle/Toggle.js.map +1 -1
  96. package/dist/cjs/components/TopBar/TopBar.css +46 -19
  97. package/dist/cjs/components/TopBar/TopBar.js +1 -1
  98. package/dist/cjs/components/TopBar/TopBar.js.map +1 -1
  99. package/dist/cjs/components/View/View.css +11 -0
  100. package/dist/cjs/components/View/View.js +1 -1
  101. package/dist/cjs/components/View/View.js.map +1 -1
  102. package/dist/cjs/components/index.js.map +1 -1
  103. package/dist/esm/components/AgentTaskList/AgentTaskList.js +1 -0
  104. package/dist/esm/components/AgentTaskList/AgentTaskList.js.map +1 -1
  105. package/dist/esm/components/Avatar/Avatar.js +1 -0
  106. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  107. package/dist/esm/components/Badge/Badge.css +77 -28
  108. package/dist/esm/components/Badge/Badge.js +2 -0
  109. package/dist/esm/components/Badge/Badge.js.map +1 -1
  110. package/dist/esm/components/BottomBar/BottomBar.css +9 -0
  111. package/dist/esm/components/Breadcrumb/Breadcrumb.js +1 -0
  112. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  113. package/dist/esm/components/Button/Button.css +10 -4
  114. package/dist/esm/components/Button/Button.js +1 -0
  115. package/dist/esm/components/Button/Button.js.map +1 -1
  116. package/dist/esm/components/Card/Card.js +1 -0
  117. package/dist/esm/components/Card/Card.js.map +1 -1
  118. package/dist/esm/components/ChatComposer/ChatComposer.js +1 -0
  119. package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
  120. package/dist/esm/components/ChatMessageList/ChatMessageList.js +1 -0
  121. package/dist/esm/components/ChatMessageList/ChatMessageList.js.map +1 -1
  122. package/dist/esm/components/Checkbox/Checkbox.js +1 -0
  123. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  124. package/dist/esm/components/CheckboxTile/CheckboxTile.js +1 -0
  125. package/dist/esm/components/CheckboxTile/CheckboxTile.js.map +1 -1
  126. package/dist/esm/components/Chip/Chip.css +155 -65
  127. package/dist/esm/components/Chip/Chip.js +6 -5
  128. package/dist/esm/components/Chip/Chip.js.map +1 -1
  129. package/dist/esm/components/Combobox/Combobox.js +1 -0
  130. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  131. package/dist/esm/components/DataTable/DataTable.css +328 -25
  132. package/dist/esm/components/DataTable/DataTable.js +185 -32
  133. package/dist/esm/components/DataTable/DataTable.js.map +1 -1
  134. package/dist/esm/components/DataTable/index.js.map +1 -1
  135. package/dist/esm/components/DatePicker/DatePicker.js +1 -0
  136. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  137. package/dist/esm/components/Dialog/Dialog.js +1 -0
  138. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  139. package/dist/esm/components/DocumentViewer/DocumentCanvas.js +1 -0
  140. package/dist/esm/components/DocumentViewer/DocumentCanvas.js.map +1 -1
  141. package/dist/esm/components/DocumentViewer/DocumentThumbnails.js +1 -0
  142. package/dist/esm/components/DocumentViewer/DocumentThumbnails.js.map +1 -1
  143. package/dist/esm/components/DocumentViewer/DocumentToolbar.js +1 -0
  144. package/dist/esm/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  145. package/dist/esm/components/DocumentViewer/DocumentViewer.js +1 -0
  146. package/dist/esm/components/DocumentViewer/DocumentViewer.js.map +1 -1
  147. package/dist/esm/components/Drawer/Drawer.js +1 -0
  148. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  149. package/dist/esm/components/FileUpload/FileUpload.js +1 -0
  150. package/dist/esm/components/FileUpload/FileUpload.js.map +1 -1
  151. package/dist/esm/components/Input/Input.js +1 -0
  152. package/dist/esm/components/Input/Input.js.map +1 -1
  153. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js +1 -0
  154. package/dist/esm/components/LicensePlateInput/LicensePlateInput.js.map +1 -1
  155. package/dist/esm/components/ListItem/ListItem.js +1 -0
  156. package/dist/esm/components/ListItem/ListItem.js.map +1 -1
  157. package/dist/esm/components/Menu/Menu.js +1 -0
  158. package/dist/esm/components/Menu/Menu.js.map +1 -1
  159. package/dist/esm/components/NavigationTransition/NavigationTransition.js +1 -0
  160. package/dist/esm/components/NavigationTransition/NavigationTransition.js.map +1 -1
  161. package/dist/esm/components/NumberInput/NumberInput.js +1 -0
  162. package/dist/esm/components/NumberInput/NumberInput.js.map +1 -1
  163. package/dist/esm/components/Pagination/Pagination.js +1 -0
  164. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  165. package/dist/esm/components/ProfileBadge/ProfileBadge.js +2 -2
  166. package/dist/esm/components/ProfileBadge/ProfileBadge.js.map +1 -1
  167. package/dist/esm/components/PullToRefresh/PullToRefresh.js +1 -0
  168. package/dist/esm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  169. package/dist/esm/components/Radio/Radio.js +1 -0
  170. package/dist/esm/components/Radio/Radio.js.map +1 -1
  171. package/dist/esm/components/RadioTile/RadioTile.js +1 -0
  172. package/dist/esm/components/RadioTile/RadioTile.js.map +1 -1
  173. package/dist/esm/components/RangeSlider/RangeSlider.js +1 -0
  174. package/dist/esm/components/RangeSlider/RangeSlider.js.map +1 -1
  175. package/dist/esm/components/SearchInput/SearchInput.js +1 -0
  176. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  177. package/dist/esm/components/SegmentGroup/SegmentGroup.js +1 -0
  178. package/dist/esm/components/SegmentGroup/SegmentGroup.js.map +1 -1
  179. package/dist/esm/components/Select/Select.js +1 -0
  180. package/dist/esm/components/Select/Select.js.map +1 -1
  181. package/dist/esm/components/SmsOtpField/SmsOtpField.js +1 -0
  182. package/dist/esm/components/SmsOtpField/SmsOtpField.js.map +1 -1
  183. package/dist/esm/components/SwipeActions/SwipeActions.js +1 -0
  184. package/dist/esm/components/SwipeActions/SwipeActions.js.map +1 -1
  185. package/dist/esm/components/Table/useTableSelection.js +1 -0
  186. package/dist/esm/components/Table/useTableSelection.js.map +1 -1
  187. package/dist/esm/components/Tabs/Tabs.js +1 -0
  188. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  189. package/dist/esm/components/Textarea/Textarea.js +1 -0
  190. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  191. package/dist/esm/components/Tile/Tile.js +1 -0
  192. package/dist/esm/components/Tile/Tile.js.map +1 -1
  193. package/dist/esm/components/Toast/Toast.js +1 -0
  194. package/dist/esm/components/Toast/Toast.js.map +1 -1
  195. package/dist/esm/components/Toggle/Toggle.js +1 -0
  196. package/dist/esm/components/Toggle/Toggle.js.map +1 -1
  197. package/dist/esm/components/TopBar/TopBar.css +46 -19
  198. package/dist/esm/components/TopBar/TopBar.js +1 -1
  199. package/dist/esm/components/TopBar/TopBar.js.map +1 -1
  200. package/dist/esm/components/View/View.css +11 -0
  201. package/dist/esm/components/View/View.js +1 -1
  202. package/dist/esm/components/View/View.js.map +1 -1
  203. package/dist/esm/components/index.js.map +1 -1
  204. package/dist/styles/components/Badge.css +77 -28
  205. package/dist/styles/components/BottomBar.css +9 -0
  206. package/dist/styles/components/Button.css +10 -4
  207. package/dist/styles/components/Chip.css +155 -65
  208. package/dist/styles/components/DataTable.css +328 -25
  209. package/dist/styles/components/View.css +11 -0
  210. package/dist/styles/index.css +1416 -858
  211. package/dist/styles/muka-dark.css +1416 -858
  212. package/dist/styles/muka-light.css +1416 -858
  213. package/dist/styles/tokens-bouwflow-dark.css +93 -3
  214. package/dist/styles/tokens-bouwflow-light.css +93 -3
  215. package/dist/styles/tokens-fscl-dark.css +93 -3
  216. package/dist/styles/tokens-fscl-light.css +93 -3
  217. package/dist/styles/tokens-grip-dark.css +93 -3
  218. package/dist/styles/tokens-grip-light.css +93 -3
  219. package/dist/styles/tokens-muka-dark.css +93 -3
  220. package/dist/styles/tokens-muka-light.css +93 -3
  221. package/dist/styles/tokens-wireframe-dark.css +93 -3
  222. package/dist/styles/tokens-wireframe-light.css +150 -60
  223. package/dist/styles/wireframe-dark.css +1416 -858
  224. package/dist/styles/wireframe-light.css +1470 -912
  225. package/dist/types/components/AgentTaskList/AgentTaskList.d.ts.map +1 -1
  226. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  227. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  228. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  229. package/dist/types/components/Button/Button.d.ts.map +1 -1
  230. package/dist/types/components/Card/Card.d.ts.map +1 -1
  231. package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
  232. package/dist/types/components/ChatMessageList/ChatMessageList.d.ts.map +1 -1
  233. package/dist/types/components/Checkbox/Checkbox.d.ts +4 -0
  234. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  235. package/dist/types/components/CheckboxTile/CheckboxTile.d.ts.map +1 -1
  236. package/dist/types/components/Chip/Chip.d.ts +2 -5
  237. package/dist/types/components/Chip/Chip.d.ts.map +1 -1
  238. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  239. package/dist/types/components/DataTable/DataTable.d.ts +93 -4
  240. package/dist/types/components/DataTable/DataTable.d.ts.map +1 -1
  241. package/dist/types/components/DataTable/index.d.ts +1 -1
  242. package/dist/types/components/DataTable/index.d.ts.map +1 -1
  243. package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -1
  244. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  245. package/dist/types/components/DocumentViewer/DocumentCanvas.d.ts.map +1 -1
  246. package/dist/types/components/DocumentViewer/DocumentThumbnails.d.ts.map +1 -1
  247. package/dist/types/components/DocumentViewer/DocumentToolbar.d.ts.map +1 -1
  248. package/dist/types/components/DocumentViewer/DocumentViewer.d.ts.map +1 -1
  249. package/dist/types/components/Drawer/Drawer.d.ts.map +1 -1
  250. package/dist/types/components/FileUpload/FileUpload.d.ts.map +1 -1
  251. package/dist/types/components/Input/Input.d.ts.map +1 -1
  252. package/dist/types/components/LicensePlateInput/LicensePlateInput.d.ts.map +1 -1
  253. package/dist/types/components/ListItem/ListItem.d.ts.map +1 -1
  254. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  255. package/dist/types/components/NavigationTransition/NavigationTransition.d.ts.map +1 -1
  256. package/dist/types/components/NumberInput/NumberInput.d.ts.map +1 -1
  257. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  258. package/dist/types/components/ProfileBadge/ProfileBadge.d.ts +8 -0
  259. package/dist/types/components/ProfileBadge/ProfileBadge.d.ts.map +1 -1
  260. package/dist/types/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  261. package/dist/types/components/Radio/Radio.d.ts.map +1 -1
  262. package/dist/types/components/RadioTile/RadioTile.d.ts.map +1 -1
  263. package/dist/types/components/RangeSlider/RangeSlider.d.ts.map +1 -1
  264. package/dist/types/components/SearchInput/SearchInput.d.ts.map +1 -1
  265. package/dist/types/components/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  266. package/dist/types/components/Select/Select.d.ts.map +1 -1
  267. package/dist/types/components/SmsOtpField/SmsOtpField.d.ts.map +1 -1
  268. package/dist/types/components/SwipeActions/SwipeActions.d.ts.map +1 -1
  269. package/dist/types/components/Table/useTableSelection.d.ts.map +1 -1
  270. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  271. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -1
  272. package/dist/types/components/Tile/Tile.d.ts.map +1 -1
  273. package/dist/types/components/Toast/Toast.d.ts.map +1 -1
  274. package/dist/types/components/Toggle/Toggle.d.ts.map +1 -1
  275. package/dist/types/components/TopBar/TopBar.d.ts.map +1 -1
  276. package/dist/types/components/index.d.ts +1 -1
  277. package/dist/types/components/index.d.ts.map +1 -1
  278. package/docs/consumers/setup-instructions.md +11 -0
  279. package/package.json +3 -1
  280. package/skills/setup-muka/SKILL.md +9 -1
  281. package/tokens/t2-alias/base.json +90 -0
  282. package/tokens/t2-alias/brand/bouwflow/dark.json +35 -5
  283. package/tokens/t2-alias/brand/bouwflow/light.json +35 -5
  284. package/tokens/t2-alias/brand/fscl/dark.json +35 -5
  285. package/tokens/t2-alias/brand/fscl/light.json +28 -4
  286. package/tokens/t2-alias/brand/grip/dark.json +90 -0
  287. package/tokens/t2-alias/brand/grip/light.json +90 -0
  288. package/tokens/t2-alias/brand/muka/dark.json +90 -0
  289. package/tokens/t2-alias/brand/muka/light.json +90 -0
  290. package/tokens/t2-alias/brand/wireframe/dark.json +90 -0
  291. package/tokens/t2-alias/brand/wireframe/light.json +82 -10
  292. package/tokens/t4-components/badge.json +44 -0
  293. package/tokens/t4-components/chip.json +214 -4
  294. 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;
@@ -2049,6 +2139,12 @@ body {
2049
2139
  overflow-y: auto;
2050
2140
  overflow-x: clip;
2051
2141
  z-index: 1;
2142
+
2143
+ /* Column flow so the footer (now a scroll-area child) can pin to the bottom and
2144
+ content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
2145
+ reveal the content underneath. */
2146
+ display: flex;
2147
+ flex-direction: column;
2052
2148
  }
2053
2149
 
2054
2150
  /* Inner wrapper constrains content width at the large tier (enterprise desktop)
@@ -2056,6 +2152,9 @@ body {
2056
2152
  width. Full-bleed below large. */
2057
2153
  .muka-view__body-inner {
2058
2154
  width: 100%;
2155
+ /* Grow on short content so the sticky footer is pushed to the bottom rather
2156
+ than floating mid-screen. */
2157
+ flex: 1 0 auto;
2059
2158
  }
2060
2159
 
2061
2160
  @media (min-width: 1024px) {
@@ -2075,6 +2174,8 @@ body {
2075
2174
  /* ─── Footer (e.g. BottomBar) ─────────────────────────── */
2076
2175
 
2077
2176
  .muka-view__footer {
2177
+ position: sticky;
2178
+ bottom: 0;
2078
2179
  flex-shrink: 0;
2079
2180
  z-index: 2;
2080
2181
  }
@@ -3398,6 +3499,114 @@ body {
3398
3499
  }
3399
3500
 
3400
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
+
3401
3610
  /* Table */
3402
3611
  /* Table Component Styles - Using Muka Design Tokens */
3403
3612
 
@@ -3750,114 +3959,6 @@ body {
3750
3959
  }
3751
3960
 
3752
3961
 
3753
- /* SwipeActions */
3754
- /* SwipeActions Component Styles */
3755
-
3756
- .muka-swipe-actions {
3757
- position: relative;
3758
- overflow: hidden;
3759
- touch-action: pan-y;
3760
- -webkit-user-select: none;
3761
- user-select: none;
3762
- background-color: var(--color-surface-level3);
3763
- }
3764
-
3765
- .muka-swipe-actions--disabled {
3766
- touch-action: auto;
3767
- }
3768
-
3769
- /* ─── Row that holds the actual content ────────────────── */
3770
-
3771
- .muka-swipe-actions__row {
3772
- position: relative;
3773
- z-index: 1;
3774
- background-color: inherit;
3775
- will-change: transform;
3776
- }
3777
-
3778
- /* ─── Action panels — sit beneath the row ──────────────── */
3779
-
3780
- .muka-swipe-actions__panel {
3781
- position: absolute;
3782
- top: 0;
3783
- bottom: 0;
3784
- display: flex;
3785
- align-items: stretch;
3786
- z-index: 0;
3787
- }
3788
-
3789
- .muka-swipe-actions__panel--left {
3790
- left: 0;
3791
- }
3792
-
3793
- .muka-swipe-actions__panel--right {
3794
- right: 0;
3795
- }
3796
-
3797
- /* ─── Single action button ─────────────────────────────── */
3798
-
3799
- .muka-swipe-actions__button {
3800
- display: flex;
3801
- flex-direction: column;
3802
- align-items: center;
3803
- justify-content: center;
3804
- gap: var(--spacing-1);
3805
- border: none;
3806
- cursor: pointer;
3807
- padding: var(--spacing-2);
3808
- background-color: var(--color-surface-level2);
3809
- color: var(--color-text-default-default);
3810
- font-family: var(--text-label-sm-semibold-fontFamily);
3811
- font-weight: var(--text-label-sm-semibold-fontWeight);
3812
- font-size: var(--text-label-sm-semibold-fontSize);
3813
- line-height: var(--text-label-sm-semibold-lineHeight);
3814
- -webkit-tap-highlight-color: transparent;
3815
- transition: filter 0.12s ease;
3816
- }
3817
-
3818
- .muka-swipe-actions__button:hover {
3819
- filter: brightness(0.95);
3820
- }
3821
-
3822
- .muka-swipe-actions__button:focus-visible {
3823
- outline: 2px solid var(--color-action-default);
3824
- outline-offset: -2px;
3825
- }
3826
-
3827
- .muka-swipe-actions__button-icon {
3828
- display: inline-flex;
3829
- align-items: center;
3830
- justify-content: center;
3831
- }
3832
-
3833
- /* ─── Color variants ───────────────────────────────────── */
3834
-
3835
- .muka-swipe-actions__button--neutral {
3836
- background-color: var(--color-surface-level2);
3837
- color: var(--color-text-default-default);
3838
- }
3839
-
3840
- .muka-swipe-actions__button--primary {
3841
- background-color: var(--color-action-default);
3842
- color: var(--color-text-inverse-default, #fff);
3843
- }
3844
-
3845
- .muka-swipe-actions__button--success {
3846
- background-color: var(--color-state-success-default, var(--color-action-default));
3847
- color: var(--color-text-inverse-default, #fff);
3848
- }
3849
-
3850
- .muka-swipe-actions__button--warning {
3851
- background-color: var(--color-state-warning-default, var(--color-action-default));
3852
- color: var(--color-text-default-default);
3853
- }
3854
-
3855
- .muka-swipe-actions__button--destructive {
3856
- background-color: var(--color-state-error-default, #c0392b);
3857
- color: var(--color-text-inverse-default, #fff);
3858
- }
3859
-
3860
-
3861
3962
  /* Spinner */
3862
3963
  /* Spinner Component Styles */
3863
3964
 
@@ -4008,34 +4109,189 @@ body {
4008
4109
  }
4009
4110
 
4010
4111
 
4011
- /* SmsOtpField */
4012
- /* SmsOtpField Component Styles - Using Muka Design Tokens */
4112
+ /* Skeleton */
4113
+ /* Skeleton Component Styles */
4013
4114
 
4014
- /* Wrapper */
4015
- .muka-sms-otp-field {
4016
- display: inline-flex;
4017
- flex-direction: column;
4018
- gap: var(--spacing-2);
4115
+ .muka-skeleton {
4116
+ background-color: var(--color-surface-level1);
4117
+ display: block;
4019
4118
  }
4020
4119
 
4021
- /* Label */
4022
- .muka-sms-otp-field__label {
4023
- color: var(--color-text-default-default);
4024
- cursor: pointer;
4120
+ /* Variants */
4121
+ .muka-skeleton--text {
4122
+ height: 1em;
4123
+ border-radius: var(--radius-md);
4124
+ width: 100%;
4025
4125
  }
4026
4126
 
4027
- .muka-sms-otp-field__label--sm {
4028
- font-family: var(--text-label-sm-semibold-fontFamily);
4029
- font-weight: var(--text-label-sm-semibold-fontWeight);
4030
- font-size: var(--text-label-sm-semibold-fontSize);
4031
- 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);
4032
4131
  }
4033
4132
 
4034
- .muka-sms-otp-field__label--md {
4035
- font-family: var(--text-label-md-semibold-fontFamily);
4036
- font-weight: var(--text-label-md-semibold-fontWeight);
4037
- font-size: var(--text-label-md-semibold-fontSize);
4038
- 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%;
4137
+ }
4138
+
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);
4039
4295
  }
4040
4296
 
4041
4297
  .muka-sms-otp-field__label--lg {
@@ -4200,161 +4456,6 @@ body {
4200
4456
  }
4201
4457
 
4202
4458
 
4203
- /* Skeleton */
4204
- /* Skeleton Component Styles */
4205
-
4206
- .muka-skeleton {
4207
- background-color: var(--color-surface-level1);
4208
- display: block;
4209
- }
4210
-
4211
- /* Variants */
4212
- .muka-skeleton--text {
4213
- height: 1em;
4214
- border-radius: var(--radius-md);
4215
- width: 100%;
4216
- }
4217
-
4218
- .muka-skeleton--circular {
4219
- width: 2.5rem;
4220
- height: 2.5rem;
4221
- border-radius: var(--radius-full);
4222
- }
4223
-
4224
- .muka-skeleton--rectangular {
4225
- height: 7.5rem;
4226
- border-radius: var(--radius-md);
4227
- width: 100%;
4228
- }
4229
-
4230
- /* Last line in multi-line text is shorter */
4231
- .muka-skeleton--last-line {
4232
- width: 80%;
4233
- }
4234
-
4235
- /* Lines container */
4236
- .muka-skeleton__lines {
4237
- display: flex;
4238
- flex-direction: column;
4239
- gap: var(--spacing-2);
4240
- }
4241
-
4242
- /* Shimmer animation */
4243
- @keyframes muka-skeleton-shimmer {
4244
- 0% {
4245
- background-position: -200% 0;
4246
- }
4247
- 100% {
4248
- background-position: 200% 0;
4249
- }
4250
- }
4251
-
4252
- .muka-skeleton--shimmer {
4253
- background: linear-gradient(
4254
- 90deg,
4255
- var(--color-surface-level1) 25%,
4256
- var(--color-surface-level2) 50%,
4257
- var(--color-surface-level1) 75%
4258
- );
4259
- background-size: 200% 100%;
4260
- animation: muka-skeleton-shimmer 1.5s ease-in-out infinite;
4261
- }
4262
-
4263
- /* Pulse animation */
4264
- @keyframes muka-skeleton-pulse {
4265
- 0%, 100% {
4266
- opacity: 1;
4267
- }
4268
- 50% {
4269
- opacity: 0.4;
4270
- }
4271
- }
4272
-
4273
- .muka-skeleton--pulse {
4274
- animation: muka-skeleton-pulse 1.5s ease-in-out infinite;
4275
- }
4276
-
4277
-
4278
- /* Sheet */
4279
- /* Sheet Component Styles */
4280
-
4281
- /* ─── Backdrop ────────────────────────────────────────── */
4282
-
4283
- .muka-sheet__overlay {
4284
- position: fixed;
4285
- inset: 0;
4286
- background-color: var(--color-surface-backdrop);
4287
- z-index: 50;
4288
- }
4289
-
4290
- /* ─── Surface ─────────────────────────────────────────── */
4291
-
4292
- .muka-sheet {
4293
- position: fixed;
4294
- left: 0;
4295
- right: 0;
4296
- bottom: 0;
4297
- z-index: 51;
4298
-
4299
- display: flex;
4300
- flex-direction: column;
4301
-
4302
- max-height: 96dvh;
4303
-
4304
- background-color: var(--color-surface-level3);
4305
- border-top-left-radius: var(--radius-lg);
4306
- border-top-right-radius: var(--radius-lg);
4307
- box-shadow: var(--shadow-level5);
4308
-
4309
- outline: none;
4310
- }
4311
-
4312
- /* Safe-area bottom inset for the iPhone home indicator. */
4313
- .muka-sheet:not(.muka-sheet--no-safe-area) {
4314
- padding-bottom: env(safe-area-inset-bottom);
4315
- }
4316
-
4317
- /* ─── Drag handle ─────────────────────────────────────── */
4318
-
4319
- .muka-sheet__handle-container {
4320
- display: flex;
4321
- justify-content: center;
4322
- flex-shrink: 0;
4323
- padding: var(--spacing-3) 0;
4324
- }
4325
-
4326
- .muka-sheet__handle {
4327
- width: var(--dialog-drag-handle-width);
4328
- height: var(--dialog-drag-handle-height);
4329
- background-color: var(--dialog-drag-handle-color);
4330
- border-radius: var(--dialog-drag-handle-radius);
4331
- }
4332
-
4333
- /* ─── Body (scrollable) ───────────────────────────────── */
4334
-
4335
- .muka-sheet__body {
4336
- flex: 1 1 0%;
4337
- min-height: 0;
4338
- overflow-y: auto;
4339
- -webkit-overflow-scrolling: touch;
4340
- overscroll-behavior: contain;
4341
- }
4342
-
4343
- /* ─── Visually-hidden title (a11y) ────────────────────── */
4344
-
4345
- .muka-sheet__sr-title {
4346
- position: absolute;
4347
- width: 1px;
4348
- height: 1px;
4349
- padding: 0;
4350
- margin: -1px;
4351
- overflow: hidden;
4352
- clip: rect(0, 0, 0, 0);
4353
- white-space: nowrap;
4354
- border: 0;
4355
- }
4356
-
4357
-
4358
4459
  /* Select */
4359
4460
  /* Select Component Styles - Aligned with Input for consistency */
4360
4461
 
@@ -4760,175 +4861,6 @@ body {
4760
4861
  }
4761
4862
 
4762
4863
 
4763
- /* SearchInput */
4764
- /* SearchInput Component Styles */
4765
-
4766
- .muka-search-input {
4767
- display: flex;
4768
- align-items: center;
4769
- gap: var(--spacing-3);
4770
- width: 100%;
4771
- }
4772
-
4773
- /* ─── Field wrapper ───────────────────────────────────── */
4774
-
4775
- .muka-search-input__field {
4776
- flex: 1 1 auto;
4777
- display: flex;
4778
- align-items: center;
4779
- gap: var(--spacing-2);
4780
- background-color: var(--input-field-color-default-background);
4781
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
4782
- border-radius: var(--input-field-radius-md);
4783
- padding: 0 var(--input-field-padding-x);
4784
- transition: border-color 0.12s ease, background-color 0.12s ease;
4785
- }
4786
-
4787
- .muka-search-input--focused .muka-search-input__field {
4788
- border-color: var(--input-field-color-focus-border, var(--color-action-default));
4789
- }
4790
-
4791
- /* ─── Sizes ───────────────────────────────────────────── */
4792
-
4793
- .muka-search-input--sm .muka-search-input__field {
4794
- min-height: var(--input-field-height-sm);
4795
- border-radius: var(--input-field-radius-sm);
4796
- }
4797
-
4798
- .muka-search-input--md .muka-search-input__field {
4799
- min-height: var(--input-field-height-default);
4800
- }
4801
-
4802
- .muka-search-input--lg .muka-search-input__field {
4803
- min-height: var(--input-field-height-lg);
4804
- border-radius: var(--input-field-radius-lg);
4805
- }
4806
-
4807
- /* ─── Embedded variant (e.g. inside TopBar) ───────────── */
4808
-
4809
- .muka-search-input--embedded .muka-search-input__field {
4810
- background-color: var(--color-surface-level1);
4811
- border-color: transparent;
4812
- }
4813
-
4814
- .muka-search-input--embedded.muka-search-input--focused .muka-search-input__field {
4815
- border-color: transparent;
4816
- background-color: var(--color-surface-level2);
4817
- }
4818
-
4819
- /* ─── Disabled ────────────────────────────────────────── */
4820
-
4821
- .muka-search-input--disabled .muka-search-input__field {
4822
- opacity: 0.5;
4823
- pointer-events: none;
4824
- }
4825
-
4826
- /* ─── Leading icon ────────────────────────────────────── */
4827
-
4828
- .muka-search-input__leading {
4829
- display: inline-flex;
4830
- align-items: center;
4831
- justify-content: center;
4832
- flex-shrink: 0;
4833
- color: var(--color-text-subtle-default);
4834
- }
4835
-
4836
- /* ─── Input element ───────────────────────────────────── */
4837
-
4838
- .muka-search-input__input {
4839
- flex: 1 1 auto;
4840
- min-width: 0;
4841
- border: none;
4842
- background: transparent;
4843
- outline: none;
4844
- padding: 0;
4845
- color: var(--color-text-default-default);
4846
- font-family: var(--text-body-md-regular-fontFamily);
4847
- font-weight: var(--text-body-md-regular-fontWeight);
4848
- font-size: var(--text-body-md-regular-fontSize);
4849
- line-height: var(--text-body-md-regular-lineHeight);
4850
- appearance: none;
4851
- -webkit-appearance: none;
4852
- }
4853
-
4854
- .muka-search-input__input::placeholder {
4855
- color: var(--color-text-subtle-default);
4856
- }
4857
-
4858
- /* Hide the browser-supplied clear button (WebKit + Edge) */
4859
- .muka-search-input__input::-webkit-search-cancel-button,
4860
- .muka-search-input__input::-webkit-search-decoration {
4861
- -webkit-appearance: none;
4862
- appearance: none;
4863
- }
4864
-
4865
- .muka-search-input__input::-ms-clear {
4866
- display: none;
4867
- }
4868
-
4869
- /* ─── Trailing slot (loading spinner) ─────────────────── */
4870
-
4871
- .muka-search-input__trailing {
4872
- display: inline-flex;
4873
- align-items: center;
4874
- justify-content: center;
4875
- flex-shrink: 0;
4876
- }
4877
-
4878
- /* ─── Clear button ────────────────────────────────────── */
4879
-
4880
- .muka-search-input__clear {
4881
- display: inline-flex;
4882
- align-items: center;
4883
- justify-content: center;
4884
- width: 20px;
4885
- height: 20px;
4886
- border: none;
4887
- background: none;
4888
- padding: 0;
4889
- cursor: pointer;
4890
- color: var(--color-text-subtle-default);
4891
- flex-shrink: 0;
4892
- -webkit-tap-highlight-color: transparent;
4893
- }
4894
-
4895
- .muka-search-input__clear:hover {
4896
- color: var(--color-text-default-default);
4897
- }
4898
-
4899
- .muka-search-input__clear:focus-visible {
4900
- outline: 2px solid var(--color-action-default);
4901
- outline-offset: 2px;
4902
- border-radius: 50%;
4903
- }
4904
-
4905
- /* ─── Cancel button ───────────────────────────────────── */
4906
-
4907
- .muka-search-input__cancel {
4908
- flex-shrink: 0;
4909
- background: none;
4910
- border: none;
4911
- padding: var(--spacing-1) var(--spacing-2);
4912
- cursor: pointer;
4913
- color: var(--color-action-default);
4914
- font-family: var(--text-label-md-regular-fontFamily);
4915
- font-weight: var(--text-label-md-regular-fontWeight);
4916
- font-size: var(--text-label-md-regular-fontSize);
4917
- line-height: var(--text-label-md-regular-lineHeight);
4918
- -webkit-tap-highlight-color: transparent;
4919
- }
4920
-
4921
- .muka-search-input__cancel:hover {
4922
- color: var(--color-action-hover);
4923
- }
4924
-
4925
- .muka-search-input__cancel:focus-visible {
4926
- outline: 2px solid var(--color-action-default);
4927
- outline-offset: 2px;
4928
- border-radius: var(--radius-sm);
4929
- }
4930
-
4931
-
4932
4864
  /* RangeSlider */
4933
4865
  /* RangeSlider Component Styles - Using Muka Design Tokens */
4934
4866
 
@@ -5808,14 +5740,45 @@ body {
5808
5740
  color: var(--color-text-default-default);
5809
5741
  }
5810
5742
 
5811
- /* ─── Unit label (same for both sizes) ────────────────── */
5743
+ /* ─── Unit label (same for both sizes) ────────────────── */
5744
+
5745
+ .muka-price-tag__unit {
5746
+ font-family: var(--text-body-sm-regular-fontFamily);
5747
+ font-weight: var(--text-body-sm-regular-fontWeight);
5748
+ font-size: var(--text-body-sm-regular-fontSize);
5749
+ line-height: var(--text-body-sm-regular-lineHeight);
5750
+ color: var(--color-text-subtle-default);
5751
+ }
5752
+
5753
+
5754
+ /* Popover */
5755
+ /* Popover Component Styles */
5756
+
5757
+ .muka-popover__content {
5758
+ background-color: var(--color-surface-level3);
5759
+ border: var(--border-width-regular) solid var(--color-border-default);
5760
+ border-radius: var(--radius-md);
5761
+ padding: var(--spacing-4);
5762
+ box-shadow: var(--shadow-level3);
5763
+ max-width: 20rem;
5764
+ z-index: 50;
5765
+ animation: muka-popover-fade-in 150ms ease;
5766
+ }
5767
+
5768
+ @keyframes muka-popover-fade-in {
5769
+ from {
5770
+ opacity: 0;
5771
+ transform: scale(0.96);
5772
+ }
5773
+ to {
5774
+ opacity: 1;
5775
+ transform: scale(1);
5776
+ }
5777
+ }
5812
5778
 
5813
- .muka-price-tag__unit {
5814
- font-family: var(--text-body-sm-regular-fontFamily);
5815
- font-weight: var(--text-body-sm-regular-fontWeight);
5816
- font-size: var(--text-body-sm-regular-fontSize);
5817
- line-height: var(--text-body-sm-regular-lineHeight);
5818
- color: var(--color-text-subtle-default);
5779
+ /* Arrow */
5780
+ .muka-popover__arrow {
5781
+ fill: var(--color-surface-level3);
5819
5782
  }
5820
5783
 
5821
5784
 
@@ -6018,37 +5981,6 @@ body {
6018
5981
  }
6019
5982
 
6020
5983
 
6021
- /* Popover */
6022
- /* Popover Component Styles */
6023
-
6024
- .muka-popover__content {
6025
- background-color: var(--color-surface-level3);
6026
- border: var(--border-width-regular) solid var(--color-border-default);
6027
- border-radius: var(--radius-md);
6028
- padding: var(--spacing-4);
6029
- box-shadow: var(--shadow-level3);
6030
- max-width: 20rem;
6031
- z-index: 50;
6032
- animation: muka-popover-fade-in 150ms ease;
6033
- }
6034
-
6035
- @keyframes muka-popover-fade-in {
6036
- from {
6037
- opacity: 0;
6038
- transform: scale(0.96);
6039
- }
6040
- to {
6041
- opacity: 1;
6042
- transform: scale(1);
6043
- }
6044
- }
6045
-
6046
- /* Arrow */
6047
- .muka-popover__arrow {
6048
- fill: var(--color-surface-level3);
6049
- }
6050
-
6051
-
6052
5984
  /* NumberInput */
6053
5985
  /* NumberInput — reuses Input field styles (../Input/Input.css). */
6054
5986
  /* Only the prefix/suffix affixes are NumberInput-specific. */
@@ -6060,240 +5992,52 @@ body {
6060
5992
  color: var(--color-text-subtle-default);
6061
5993
  font-family: var(--text-input-md-fontFamily);
6062
5994
  font-size: var(--text-input-md-fontSize);
6063
- line-height: var(--text-input-md-lineHeight);
6064
- user-select: none;
6065
- pointer-events: none;
6066
- white-space: nowrap;
6067
- }
6068
-
6069
- /* Hide the native number spinners — affixes/step API replace them. */
6070
- .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
6071
- .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
6072
- -webkit-appearance: none;
6073
- margin: 0;
6074
- }
6075
-
6076
- .muka-numberinput__field .muka-input__native {
6077
- -moz-appearance: textfield;
6078
- appearance: textfield;
6079
- }
6080
-
6081
-
6082
- /* NavigationTransition */
6083
- /* NavigationTransition Component Styles */
6084
-
6085
- /* ─── Wrapper ────────────────────────────────────────── */
6086
-
6087
- .muka-nav-transition {
6088
- position: relative;
6089
- height: 100vh;
6090
- overflow: hidden;
6091
- }
6092
-
6093
- /* Disable interaction during animation */
6094
- .muka-nav-transition--active {
6095
- pointer-events: none;
6096
- }
6097
-
6098
- /* ─── View slots ─────────────────────────────────────── */
6099
-
6100
- .muka-nav-transition--active .muka-nav-transition__view {
6101
- position: absolute;
6102
- inset: 0;
6103
- }
6104
-
6105
- /* Z-index layering */
6106
- .muka-nav-transition__view--bottom { z-index: 1; }
6107
- .muka-nav-transition__view--top { z-index: 2; }
6108
-
6109
-
6110
- /* ListItem */
6111
- /* ListItem Component Styles - Using Muka Design Tokens */
6112
-
6113
- /* Base list item styles */
6114
- .muka-listitem {
6115
- /* Layout */
6116
- display: flex;
6117
- align-items: flex-start;
6118
- gap: var(--spacing-4);
6119
- padding: var(--spacing-5) var(--spacing-4);
6120
-
6121
- /* Background - using semantic tokens */
6122
- background-color: var(--color-surface-level3);
6123
-
6124
- /* Typography */
6125
- font-family: var(--alias-font-brand-family);
6126
-
6127
- /* Border and spacing */
6128
- border: none;
6129
- position: relative;
6130
-
6131
- /* Interaction - only apply if interactive */
6132
- transition: background-color 0.2s ease;
6133
- }
6134
-
6135
- /* Interactive state */
6136
- .muka-listitem--interactive {
6137
- cursor: pointer;
6138
- }
6139
-
6140
- .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
6141
- background-color: var(--color-surface-hover);
6142
- }
6143
-
6144
- .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
6145
- .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
6146
- background-color: var(--color-surface-pressed);
6147
- }
6148
-
6149
- /* Focus styles for accessibility */
6150
- .muka-listitem:focus-visible {
6151
- outline: 2px solid var(--color-border-focus);
6152
- outline-offset: -2px;
6153
- }
6154
-
6155
- /* Disabled state */
6156
- .muka-listitem--disabled {
6157
- opacity: 0.5;
6158
- cursor: not-allowed;
6159
- pointer-events: none;
6160
- }
6161
-
6162
- .muka-listitem--disabled:hover {
6163
- background-color: var(--color-surface-level3);
6164
- }
6165
-
6166
- /* Selected state */
6167
- .muka-listitem--selected {
6168
- background-color: var(--color-surface-level2);
6169
- }
6170
-
6171
- .muka-listitem--selected:hover {
6172
- background-color: var(--color-surface-hover);
6173
- }
6174
-
6175
- /* No divider modifier */
6176
- .muka-listitem--no-divider .muka-listitem__divider {
6177
- display: none;
6178
- }
6179
-
6180
- /* Center content vertically when no caption */
6181
- .muka-listitem--no-caption {
6182
- align-items: center;
6183
- }
6184
-
6185
- /* Leading content (icon or image) */
6186
- .muka-listitem__leading {
6187
- display: flex;
6188
- align-items: center;
6189
- justify-content: center;
6190
- flex-shrink: 0;
6191
- width: 48px;
6192
- height: 48px;
6193
- }
6194
-
6195
- .muka-listitem__icon {
6196
- display: inline-flex;
6197
- align-items: center;
6198
- justify-content: center;
6199
- width: 32px;
6200
- height: 32px;
6201
- color: var(--color-text-default-default);
6202
- }
6203
-
6204
- .muka-listitem__image {
6205
- width: 48px;
6206
- height: 48px;
6207
- border-radius: var(--radius-md);
6208
- object-fit: cover;
6209
- }
6210
-
6211
- /* Main content area */
6212
- .muka-listitem__content {
6213
- flex: 1;
6214
- display: flex;
6215
- align-items: center;
6216
- gap: var(--spacing-4);
6217
- min-width: 0;
6218
- }
6219
-
6220
- .muka-listitem__text {
6221
- flex: 1;
6222
- display: flex;
6223
- flex-direction: column;
6224
- gap: var(--spacing-1);
6225
- min-width: 0;
6226
- }
6227
-
6228
- /* Label text */
6229
- .muka-listitem__label {
6230
- margin: 0;
6231
- padding: 0;
6232
-
6233
- /* Typography - using semantic tokens */
6234
- font-family: var(--alias-font-plain-family);
6235
- font-weight: var(--alias-font-plain-weight-semibold, 600);
6236
- font-size: var(--text-label-md-fontSize);
6237
- line-height: var(--text-label-md-lineHeight);
6238
- color: var(--color-text-default-default);
6239
-
6240
- /* Text handling */
6241
- overflow: hidden;
6242
- text-overflow: ellipsis;
6243
- white-space: nowrap;
6244
- }
6245
-
6246
- /* Caption text */
6247
- .muka-listitem__caption {
6248
- margin: 0;
6249
- padding: 0;
6250
-
6251
- /* Typography - using semantic tokens */
6252
- font-family: var(--alias-font-plain-family);
6253
- font-weight: var(--alias-font-plain-weight-regular, 400);
6254
- font-size: var(--text-body-sm-fontSize);
6255
- line-height: var(--text-body-sm-lineHeight);
6256
- color: var(--color-text-subtle-default);
6257
-
6258
- /* Text handling */
6259
- overflow: hidden;
6260
- text-overflow: ellipsis;
5995
+ line-height: var(--text-input-md-lineHeight);
5996
+ user-select: none;
5997
+ pointer-events: none;
6261
5998
  white-space: nowrap;
6262
5999
  }
6263
6000
 
6264
- /* Trailing chevron */
6265
- .muka-listitem__chevron {
6266
- display: inline-flex;
6267
- align-items: center;
6268
- justify-content: center;
6269
- flex-shrink: 0;
6270
- width: 24px;
6271
- height: 24px;
6272
- color: var(--color-text-subtle-default);
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;
6273
6006
  }
6274
6007
 
6275
- /* Bottom divider */
6276
- .muka-listitem__divider {
6277
- position: absolute;
6278
- bottom: 0;
6279
- left: 0;
6280
- right: 0;
6281
- height: 1px;
6282
- background-color: var(--color-border-default);
6008
+ .muka-numberinput__field .muka-input__native {
6009
+ -moz-appearance: textfield;
6010
+ appearance: textfield;
6283
6011
  }
6284
6012
 
6285
- /* Button and anchor specific styles */
6286
- button.muka-listitem,
6287
- a.muka-listitem {
6288
- text-align: left;
6289
- width: 100%;
6013
+
6014
+ /* NavigationTransition */
6015
+ /* NavigationTransition Component Styles */
6016
+
6017
+ /* ─── Wrapper ────────────────────────────────────────── */
6018
+
6019
+ .muka-nav-transition {
6020
+ position: relative;
6021
+ height: 100vh;
6022
+ overflow: hidden;
6290
6023
  }
6291
6024
 
6292
- /* List item specific styles */
6293
- li.muka-listitem {
6294
- list-style: none;
6025
+ /* Disable interaction during animation */
6026
+ .muka-nav-transition--active {
6027
+ pointer-events: none;
6028
+ }
6029
+
6030
+ /* ─── View slots ─────────────────────────────────────── */
6031
+
6032
+ .muka-nav-transition--active .muka-nav-transition__view {
6033
+ position: absolute;
6034
+ inset: 0;
6295
6035
  }
6296
6036
 
6037
+ /* Z-index layering */
6038
+ .muka-nav-transition__view--bottom { z-index: 1; }
6039
+ .muka-nav-transition__view--top { z-index: 2; }
6040
+
6297
6041
 
6298
6042
  /* Menu */
6299
6043
  /* Menu Component Styles */
@@ -6555,26 +6299,214 @@ li.muka-listitem {
6555
6299
  }
6556
6300
  }
6557
6301
 
6558
- @keyframes muka-menu-slide-left {
6559
- from {
6560
- opacity: 0;
6561
- transform: translateX(4px);
6562
- }
6563
- to {
6564
- opacity: 1;
6565
- transform: translateX(0);
6566
- }
6302
+ @keyframes muka-menu-slide-left {
6303
+ from {
6304
+ opacity: 0;
6305
+ transform: translateX(4px);
6306
+ }
6307
+ to {
6308
+ opacity: 1;
6309
+ transform: translateX(0);
6310
+ }
6311
+ }
6312
+
6313
+ @keyframes muka-menu-slide-right {
6314
+ from {
6315
+ opacity: 0;
6316
+ transform: translateX(-4px);
6317
+ }
6318
+ to {
6319
+ opacity: 1;
6320
+ transform: translateX(0);
6321
+ }
6322
+ }
6323
+
6324
+
6325
+ /* ListItem */
6326
+ /* ListItem Component Styles - Using Muka Design Tokens */
6327
+
6328
+ /* Base list item styles */
6329
+ .muka-listitem {
6330
+ /* Layout */
6331
+ display: flex;
6332
+ align-items: flex-start;
6333
+ gap: var(--spacing-4);
6334
+ padding: var(--spacing-5) var(--spacing-4);
6335
+
6336
+ /* Background - using semantic tokens */
6337
+ background-color: var(--color-surface-level3);
6338
+
6339
+ /* Typography */
6340
+ font-family: var(--alias-font-brand-family);
6341
+
6342
+ /* Border and spacing */
6343
+ border: none;
6344
+ position: relative;
6345
+
6346
+ /* Interaction - only apply if interactive */
6347
+ transition: background-color 0.2s ease;
6348
+ }
6349
+
6350
+ /* Interactive state */
6351
+ .muka-listitem--interactive {
6352
+ cursor: pointer;
6353
+ }
6354
+
6355
+ .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
6356
+ background-color: var(--color-surface-hover);
6357
+ }
6358
+
6359
+ .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
6360
+ .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
6361
+ background-color: var(--color-surface-pressed);
6362
+ }
6363
+
6364
+ /* Focus styles for accessibility */
6365
+ .muka-listitem:focus-visible {
6366
+ outline: 2px solid var(--color-border-focus);
6367
+ outline-offset: -2px;
6368
+ }
6369
+
6370
+ /* Disabled state */
6371
+ .muka-listitem--disabled {
6372
+ opacity: 0.5;
6373
+ cursor: not-allowed;
6374
+ pointer-events: none;
6375
+ }
6376
+
6377
+ .muka-listitem--disabled:hover {
6378
+ background-color: var(--color-surface-level3);
6379
+ }
6380
+
6381
+ /* Selected state */
6382
+ .muka-listitem--selected {
6383
+ background-color: var(--color-surface-level2);
6384
+ }
6385
+
6386
+ .muka-listitem--selected:hover {
6387
+ background-color: var(--color-surface-hover);
6388
+ }
6389
+
6390
+ /* No divider modifier */
6391
+ .muka-listitem--no-divider .muka-listitem__divider {
6392
+ display: none;
6393
+ }
6394
+
6395
+ /* Center content vertically when no caption */
6396
+ .muka-listitem--no-caption {
6397
+ align-items: center;
6398
+ }
6399
+
6400
+ /* Leading content (icon or image) */
6401
+ .muka-listitem__leading {
6402
+ display: flex;
6403
+ align-items: center;
6404
+ justify-content: center;
6405
+ flex-shrink: 0;
6406
+ width: 48px;
6407
+ height: 48px;
6408
+ }
6409
+
6410
+ .muka-listitem__icon {
6411
+ display: inline-flex;
6412
+ align-items: center;
6413
+ justify-content: center;
6414
+ width: 32px;
6415
+ height: 32px;
6416
+ color: var(--color-text-default-default);
6417
+ }
6418
+
6419
+ .muka-listitem__image {
6420
+ width: 48px;
6421
+ height: 48px;
6422
+ border-radius: var(--radius-md);
6423
+ object-fit: cover;
6424
+ }
6425
+
6426
+ /* Main content area */
6427
+ .muka-listitem__content {
6428
+ flex: 1;
6429
+ display: flex;
6430
+ align-items: center;
6431
+ gap: var(--spacing-4);
6432
+ min-width: 0;
6433
+ }
6434
+
6435
+ .muka-listitem__text {
6436
+ flex: 1;
6437
+ display: flex;
6438
+ flex-direction: column;
6439
+ gap: var(--spacing-1);
6440
+ min-width: 0;
6441
+ }
6442
+
6443
+ /* Label text */
6444
+ .muka-listitem__label {
6445
+ margin: 0;
6446
+ padding: 0;
6447
+
6448
+ /* Typography - using semantic tokens */
6449
+ font-family: var(--alias-font-plain-family);
6450
+ font-weight: var(--alias-font-plain-weight-semibold, 600);
6451
+ font-size: var(--text-label-md-fontSize);
6452
+ line-height: var(--text-label-md-lineHeight);
6453
+ color: var(--color-text-default-default);
6454
+
6455
+ /* Text handling */
6456
+ overflow: hidden;
6457
+ text-overflow: ellipsis;
6458
+ white-space: nowrap;
6459
+ }
6460
+
6461
+ /* Caption text */
6462
+ .muka-listitem__caption {
6463
+ margin: 0;
6464
+ padding: 0;
6465
+
6466
+ /* Typography - using semantic tokens */
6467
+ font-family: var(--alias-font-plain-family);
6468
+ font-weight: var(--alias-font-plain-weight-regular, 400);
6469
+ font-size: var(--text-body-sm-fontSize);
6470
+ line-height: var(--text-body-sm-lineHeight);
6471
+ color: var(--color-text-subtle-default);
6472
+
6473
+ /* Text handling */
6474
+ overflow: hidden;
6475
+ text-overflow: ellipsis;
6476
+ white-space: nowrap;
6477
+ }
6478
+
6479
+ /* Trailing chevron */
6480
+ .muka-listitem__chevron {
6481
+ display: inline-flex;
6482
+ align-items: center;
6483
+ justify-content: center;
6484
+ flex-shrink: 0;
6485
+ width: 24px;
6486
+ height: 24px;
6487
+ color: var(--color-text-subtle-default);
6488
+ }
6489
+
6490
+ /* Bottom divider */
6491
+ .muka-listitem__divider {
6492
+ position: absolute;
6493
+ bottom: 0;
6494
+ left: 0;
6495
+ right: 0;
6496
+ height: 1px;
6497
+ background-color: var(--color-border-default);
6498
+ }
6499
+
6500
+ /* Button and anchor specific styles */
6501
+ button.muka-listitem,
6502
+ a.muka-listitem {
6503
+ text-align: left;
6504
+ width: 100%;
6567
6505
  }
6568
6506
 
6569
- @keyframes muka-menu-slide-right {
6570
- from {
6571
- opacity: 0;
6572
- transform: translateX(-4px);
6573
- }
6574
- to {
6575
- opacity: 1;
6576
- transform: translateX(0);
6577
- }
6507
+ /* List item specific styles */
6508
+ li.muka-listitem {
6509
+ list-style: none;
6578
6510
  }
6579
6511
 
6580
6512
 
@@ -8557,16 +8489,31 @@ li.muka-listitem {
8557
8489
  }
8558
8490
 
8559
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
+
8560
8496
  width: 100%;
8561
8497
  border-collapse: collapse;
8562
8498
  border-spacing: 0;
8563
- table-layout: fixed;
8564
- background-color: var(--color-surface-level3);
8565
- 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);
8566
8513
  }
8567
8514
 
8568
8515
  .muka-data-table__caption {
8569
- padding: var(--spacing-3) var(--spacing-6);
8516
+ padding: var(--dt-pad-y) var(--dt-pad-x);
8570
8517
  font-family: var(--text-body-base-bold-fontFamily);
8571
8518
  font-weight: var(--text-body-base-bold-fontWeight);
8572
8519
  font-size: var(--text-body-base-bold-fontSize);
@@ -8580,17 +8527,17 @@ li.muka-listitem {
8580
8527
  ======================================== */
8581
8528
 
8582
8529
  .muka-data-table__head {
8583
- 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);
8584
8531
  }
8585
8532
 
8586
8533
  .muka-data-table__th {
8587
- background-color: var(--color-surface-level1);
8588
- 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);
8589
8536
  font-family: var(--text-body-base-bold-fontFamily);
8590
8537
  font-weight: var(--text-body-base-bold-fontWeight);
8591
8538
  font-size: var(--text-body-base-bold-fontSize);
8592
8539
  line-height: var(--text-body-base-bold-lineHeight);
8593
- color: var(--color-text-default-default);
8540
+ color: var(--datatable-header-foreground);
8594
8541
  vertical-align: middle;
8595
8542
  text-align: left;
8596
8543
  }
@@ -8598,7 +8545,7 @@ li.muka-listitem {
8598
8545
  .muka-data-table__th-label {
8599
8546
  display: flex;
8600
8547
  align-items: center;
8601
- 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 */
8602
8549
  }
8603
8550
 
8604
8551
  /* ========================================
@@ -8606,28 +8553,34 @@ li.muka-listitem {
8606
8553
  ======================================== */
8607
8554
 
8608
8555
  .muka-data-table__row {
8609
- 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);
8610
8557
  transition: background-color 0.15s ease;
8611
8558
  }
8612
8559
 
8613
- .muka-data-table__row:not(.muka-data-table__row--empty):hover {
8614
- 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);
8615
8568
  }
8616
8569
 
8617
8570
  .muka-data-table__td {
8618
- padding: var(--spacing-3) var(--spacing-6);
8571
+ padding: var(--dt-pad-y) var(--dt-pad-x);
8619
8572
  font-family: var(--text-body-base-regular-fontFamily);
8620
8573
  font-weight: var(--text-body-base-regular-fontWeight);
8621
8574
  font-size: var(--text-body-base-regular-fontSize);
8622
8575
  line-height: var(--text-body-base-regular-lineHeight);
8623
- color: var(--color-text-default-default);
8576
+ color: var(--datatable-row-foreground);
8624
8577
  vertical-align: middle;
8625
8578
  }
8626
8579
 
8627
8580
  .muka-data-table__cell-content {
8628
8581
  display: flex;
8629
8582
  align-items: center;
8630
- 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 */
8631
8584
  word-break: break-word;
8632
8585
  }
8633
8586
 
@@ -8636,6 +8589,42 @@ li.muka-listitem {
8636
8589
  color: var(--color-text-subtle-default);
8637
8590
  }
8638
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
+
8639
8628
  /* ========================================
8640
8629
  ALIGNMENT
8641
8630
  ======================================== */
@@ -8668,7 +8657,7 @@ li.muka-listitem {
8668
8657
 
8669
8658
  .muka-data-table--column-dividers .muka-data-table__th:not(:last-child),
8670
8659
  .muka-data-table--column-dividers .muka-data-table__td:not(:last-child) {
8671
- 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);
8672
8661
  }
8673
8662
 
8674
8663
  /* ========================================
@@ -8680,7 +8669,7 @@ li.muka-listitem {
8680
8669
  align-items: center;
8681
8670
  gap: var(--spacing-1);
8682
8671
  width: 100%;
8683
- min-height: 2rem;
8672
+ min-height: var(--datatable-cell-min-height);
8684
8673
  padding: 0;
8685
8674
  margin: 0;
8686
8675
  border: 0;
@@ -8694,24 +8683,270 @@ li.muka-listitem {
8694
8683
  }
8695
8684
 
8696
8685
  .muka-data-table__sort-button:focus-visible {
8697
- outline: 2px solid var(--color-action-default);
8686
+ outline: 2px solid var(--datatable-focus-ring);
8698
8687
  outline-offset: 2px;
8699
8688
  }
8700
8689
 
8690
+ /* The chevron only renders on the active sort column, so it's always full-strength. */
8701
8691
  .muka-data-table__sort-icon {
8702
8692
  display: inline-flex;
8703
8693
  flex-shrink: 0;
8704
- opacity: 0.4;
8705
- transition: opacity 0.15s ease;
8706
8694
  }
8707
8695
 
8708
- .muka-data-table__sort-button:hover .muka-data-table__sort-icon {
8709
- 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;
8710
8704
  }
8711
8705
 
8712
- .muka-data-table__sort-icon--asc,
8713
- .muka-data-table__sort-icon--desc {
8714
- 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
+ }
8715
8950
  }
8716
8951
 
8717
8952
 
@@ -8947,7 +9182,6 @@ li.muka-listitem {
8947
9182
  .muka-chip {
8948
9183
  display: inline-flex;
8949
9184
  align-items: center;
8950
- gap: var(--spacing-2);
8951
9185
  border-radius: var(--border-radius-full);
8952
9186
  white-space: nowrap;
8953
9187
  user-select: none;
@@ -8955,44 +9189,89 @@ li.muka-listitem {
8955
9189
  box-sizing: border-box;
8956
9190
  }
8957
9191
 
8958
- /* 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
+ */
8959
9198
  .muka-chip--sm {
8960
9199
  height: var(--chip-size-height-sm);
8961
- padding: 0 var(--spacing-2);
8962
- font-family: var(--text-label-sm-semibold-fontFamily);
8963
- font-weight: var(--text-label-sm-semibold-fontWeight);
8964
- font-size: var(--text-label-sm-semibold-fontSize);
8965
- 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);
8966
9206
  }
8967
9207
 
8968
9208
  .muka-chip--md {
8969
9209
  height: var(--chip-size-height-md);
8970
- padding: 0 var(--spacing-3);
8971
- font-family: var(--text-label-md-semibold-fontFamily);
8972
- font-weight: var(--text-label-md-semibold-fontWeight);
8973
- font-size: var(--text-label-md-semibold-fontSize);
8974
- 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);
8975
9216
  }
8976
9217
 
8977
9218
  .muka-chip--lg {
8978
9219
  height: var(--chip-size-height-lg);
8979
- padding: 0 var(--spacing-4);
8980
- font-family: var(--text-label-lg-semibold-fontFamily);
8981
- font-weight: var(--text-label-lg-semibold-fontWeight);
8982
- font-size: var(--text-label-lg-semibold-fontSize);
8983
- 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);
8984
9248
  }
8985
9249
 
8986
- /* Icon slot */
9250
+ /* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 */
8987
9251
  .muka-chip__icon {
8988
9252
  display: inline-flex;
8989
9253
  align-items: center;
8990
9254
  justify-content: center;
8991
9255
  flex-shrink: 0;
8992
- width: 1em;
8993
- height: 1em;
8994
9256
  }
8995
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,
8996
9275
  .muka-chip__icon svg {
8997
9276
  width: 100%;
8998
9277
  height: 100%;
@@ -9003,100 +9282,146 @@ li.muka-listitem {
9003
9282
  min-width: 0;
9004
9283
  overflow: hidden;
9005
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;
9006
9292
  }
9007
9293
 
9008
- /* Remove button */
9294
+ /* Dismiss button — circular hit area. Figma circle sizes: sm 20, md 24, lg 32 */
9009
9295
  .muka-chip__remove {
9010
9296
  display: inline-flex;
9011
9297
  align-items: center;
9012
9298
  justify-content: center;
9013
9299
  flex-shrink: 0;
9014
- width: 1.25em;
9015
- height: 1.25em;
9016
9300
  padding: 0;
9017
9301
  margin: 0;
9018
9302
  border: none;
9019
9303
  border-radius: var(--border-radius-full);
9020
- background: transparent;
9021
- color: inherit;
9022
9304
  cursor: pointer;
9023
- opacity: 0.85;
9305
+ transition: background-color 0.15s ease, color 0.15s ease;
9024
9306
  }
9025
9307
 
9026
- .muka-chip__remove:hover {
9027
- opacity: 1;
9028
- 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);
9029
9319
  }
9030
9320
 
9031
9321
  .muka-chip__remove:focus-visible {
9032
9322
  outline: 2px solid currentColor;
9033
9323
  outline-offset: 2px;
9034
9324
  }
9035
-
9036
- .muka-chip__remove svg {
9037
- width: 100%;
9038
- height: 100%;
9325
+
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);
9334
+ }
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);
9039
9342
  }
9040
9343
 
9041
- /* Solid appearance – variants */
9042
- .muka-chip--solid.muka-chip--default {
9043
- background-color: var(--color-surface-level1);
9044
- color: var(--color-text-default-default);
9344
+ .muka-chip--success .muka-chip__remove {
9345
+ background-color: var(--chip-dismiss-success-background-default);
9346
+ color: var(--chip-dismiss-success-foreground-default);
9045
9347
  }
9046
-
9047
- .muka-chip--solid.muka-chip--success {
9048
- background-color: var(--color-state-success-background);
9049
- color: var(--color-state-success-contrast);
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);
9050
9355
  }
9051
9356
 
9052
- .muka-chip--solid.muka-chip--warning {
9053
- background-color: var(--color-state-warning-background);
9054
- 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);
9055
9368
  }
9056
9369
 
9057
- .muka-chip--solid.muka-chip--error {
9058
- background-color: var(--color-state-error-background);
9059
- 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);
9060
9381
  }
9061
9382
 
9062
- .muka-chip--solid.muka-chip--info {
9063
- background-color: var(--color-state-info-background);
9064
- 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);
9065
9394
  }
9066
9395
 
9067
- /* Outline appearance – light background, bordered */
9068
- .muka-chip--outline.muka-chip--default {
9069
- 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);
9070
9399
  color: var(--color-text-default-default);
9071
- border-color: var(--color-surface-level1);
9072
9400
  }
9073
9401
 
9074
- .muka-chip--outline.muka-chip--success {
9402
+ .muka-chip--success {
9075
9403
  background-color: var(--color-state-success-background);
9076
9404
  color: var(--color-state-success-contrast);
9077
- border-color: var(--color-state-success-contrast);
9078
- opacity: 0.95;
9079
9405
  }
9080
9406
 
9081
- .muka-chip--outline.muka-chip--warning {
9407
+ .muka-chip--warning {
9082
9408
  background-color: var(--color-state-warning-background);
9083
9409
  color: var(--color-state-warning-contrast);
9084
- border-color: var(--color-state-warning-contrast);
9085
- opacity: 0.95;
9086
9410
  }
9087
9411
 
9088
- .muka-chip--outline.muka-chip--error {
9412
+ .muka-chip--error {
9089
9413
  background-color: var(--color-state-error-background);
9090
9414
  color: var(--color-state-error-contrast);
9091
- border-color: var(--color-state-error-contrast);
9092
- opacity: 0.95;
9093
9415
  }
9094
9416
 
9095
- .muka-chip--outline.muka-chip--info {
9417
+ .muka-chip--info {
9096
9418
  background-color: var(--color-state-info-background);
9097
9419
  color: var(--color-state-info-contrast);
9098
- border-color: var(--color-state-info-contrast);
9099
- 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;
9100
9425
  }
9101
9426
 
9102
9427
 
@@ -10025,8 +10350,11 @@ li.muka-listitem {
10025
10350
  box-shadow: var(--button-color-primary-shadow-hover);
10026
10351
  }
10027
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). */
10028
10355
  .muka-button--primary:active:not(:disabled),
10029
- .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) {
10030
10358
  background-color: var(--button-color-primary-background-pressed);
10031
10359
  color: var(--button-color-primary-foreground-pressed);
10032
10360
  box-shadow: var(--button-color-primary-shadow-pressed);
@@ -10054,7 +10382,8 @@ li.muka-listitem {
10054
10382
  }
10055
10383
 
10056
10384
  .muka-button--secondary:active:not(:disabled),
10057
- .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) {
10058
10387
  background-color: var(--button-color-secondary-background-pressed);
10059
10388
  color: var(--button-color-secondary-foreground-pressed);
10060
10389
  box-shadow: var(--button-color-secondary-shadow-pressed);
@@ -10082,7 +10411,8 @@ li.muka-listitem {
10082
10411
  }
10083
10412
 
10084
10413
  .muka-button--tertiary:active:not(:disabled),
10085
- .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) {
10086
10416
  background-color: var(--button-color-tertiary-background-pressed);
10087
10417
  color: var(--button-color-tertiary-foreground-pressed);
10088
10418
  border-color: var(--button-color-tertiary-border-pressed);
@@ -10110,7 +10440,8 @@ li.muka-listitem {
10110
10440
  }
10111
10441
 
10112
10442
  .muka-button--ghost:active:not(:disabled),
10113
- .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) {
10114
10445
  background-color: var(--button-color-ghost-background-pressed);
10115
10446
  color: var(--button-color-ghost-foreground-pressed);
10116
10447
  border-color: var(--button-color-ghost-border-pressed);
@@ -10406,6 +10737,15 @@ li.muka-listitem {
10406
10737
  backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
10407
10738
  -webkit-backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
10408
10739
  padding: var(--bottombar-floating-padding-top) var(--bottombar-floating-margin-x) var(--bottombar-floating-margin-bottom);
10740
+
10741
+ /* The transparent frosted margin around the pill overlays scrolling content;
10742
+ let scroll/taps fall through to that content, keeping only the pill itself
10743
+ interactive (re-enabled on __content below). */
10744
+ pointer-events: none;
10745
+ }
10746
+
10747
+ .muka-bottombar--floating .muka-bottombar__content {
10748
+ pointer-events: auto;
10409
10749
  }
10410
10750
 
10411
10751
  .muka-bottombar--floating .muka-bottombar__content {
@@ -10558,56 +10898,98 @@ li.muka-listitem {
10558
10898
  .muka-badge {
10559
10899
  display: inline-flex;
10560
10900
  align-items: center;
10561
- gap: var(--spacing-1);
10562
10901
  border-radius: var(--border-radius-full);
10563
10902
  white-space: nowrap;
10564
10903
  user-select: none;
10565
10904
  box-sizing: border-box;
10566
10905
  }
10567
10906
 
10568
- /* 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
+ */
10569
10914
  .muka-badge--sm {
10570
10915
  height: var(--badge-size-height-sm);
10571
- padding: 0 var(--spacing-2);
10572
- font-family: var(--text-label-sm-semibold-fontFamily);
10573
- font-weight: var(--text-label-sm-semibold-fontWeight);
10574
- font-size: var(--text-label-sm-semibold-fontSize);
10575
- 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);
10576
10922
  }
10577
10923
 
10578
10924
  .muka-badge--md {
10579
10925
  height: var(--badge-size-height-md);
10580
- padding: 0 var(--spacing-2);
10581
- font-family: var(--text-label-sm-semibold-fontFamily);
10582
- font-weight: var(--text-label-sm-semibold-fontWeight);
10583
- font-size: var(--text-label-sm-semibold-fontSize);
10584
- 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);
10585
10932
  }
10586
10933
 
10587
10934
  .muka-badge--lg {
10588
10935
  height: var(--badge-size-height-lg);
10589
- padding: 0 var(--spacing-3);
10590
- font-family: var(--text-label-md-semibold-fontFamily);
10591
- font-weight: var(--text-label-md-semibold-fontWeight);
10592
- font-size: var(--text-label-md-semibold-fontSize);
10593
- 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);
10594
10956
  }
10595
10957
 
10596
- /* Icon slot */
10958
+ /* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
10597
10959
  .muka-badge__icon {
10598
10960
  display: inline-flex;
10599
10961
  align-items: center;
10600
10962
  justify-content: center;
10601
10963
  flex-shrink: 0;
10602
- width: 1em;
10603
- height: 1em;
10604
10964
  }
10605
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,
10606
10983
  .muka-badge__icon svg {
10607
10984
  width: 100%;
10608
10985
  height: 100%;
10609
10986
  }
10610
10987
 
10988
+ /* Icons inherit the badge's per-variant foreground color */
10989
+ .muka-badge .muka-icon {
10990
+ color: inherit;
10991
+ }
10992
+
10611
10993
  /* Dot indicator */
10612
10994
  .muka-badge__dot {
10613
10995
  flex-shrink: 0;
@@ -10634,6 +11016,13 @@ li.muka-listitem {
10634
11016
  min-width: 0;
10635
11017
  overflow: hidden;
10636
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;
10637
11026
  }
10638
11027
 
10639
11028
  /* Neutral variant */
@@ -10649,41 +11038,41 @@ li.muka-listitem {
10649
11038
  /* Info variant */
10650
11039
  .muka-badge--info {
10651
11040
  background-color: var(--color-state-info-background);
10652
- color: var(--color-state-info-foreground);
11041
+ color: var(--color-state-info-contrast);
10653
11042
  }
10654
11043
 
10655
11044
  .muka-badge--info .muka-badge__dot {
10656
- background-color: var(--color-state-info-foreground);
11045
+ background-color: var(--color-state-info-default);
10657
11046
  }
10658
11047
 
10659
11048
  /* Success variant */
10660
11049
  .muka-badge--success {
10661
11050
  background-color: var(--color-state-success-background);
10662
- color: var(--color-state-success-foreground);
11051
+ color: var(--color-state-success-contrast);
10663
11052
  }
10664
11053
 
10665
11054
  .muka-badge--success .muka-badge__dot {
10666
- background-color: var(--color-state-success-foreground);
11055
+ background-color: var(--color-state-success-default);
10667
11056
  }
10668
11057
 
10669
11058
  /* Warning variant */
10670
11059
  .muka-badge--warning {
10671
11060
  background-color: var(--color-state-warning-background);
10672
- color: var(--color-state-warning-foreground);
11061
+ color: var(--color-state-warning-contrast);
10673
11062
  }
10674
11063
 
10675
11064
  .muka-badge--warning .muka-badge__dot {
10676
- background-color: var(--color-state-warning-foreground);
11065
+ background-color: var(--color-state-warning-default);
10677
11066
  }
10678
11067
 
10679
11068
  /* Error variant */
10680
11069
  .muka-badge--error {
10681
11070
  background-color: var(--color-state-error-background);
10682
- color: var(--color-state-error-foreground);
11071
+ color: var(--color-state-error-contrast);
10683
11072
  }
10684
11073
 
10685
11074
  .muka-badge--error .muka-badge__dot {
10686
- background-color: var(--color-state-error-foreground);
11075
+ background-color: var(--color-state-error-default);
10687
11076
  }
10688
11077
 
10689
11078
 
@@ -11669,3 +12058,172 @@ li.muka-listitem {
11669
12058
  border-bottom: none;
11670
12059
  }
11671
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
+