@usefragments/ui 1.5.3 → 1.6.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 (497) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/ui.css +8808 -5810
  3. package/dist/chart.cjs +7 -20
  4. package/dist/chart.js +7 -20
  5. package/dist/colorpicker.cjs +2 -1
  6. package/dist/colorpicker.js +2 -1
  7. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  8. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  9. package/dist/components/Alert/Alert.module.scss.cjs +12 -12
  10. package/dist/components/Alert/Alert.module.scss.js +12 -12
  11. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  12. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  13. package/dist/components/AppShell/index.cjs +5 -3
  14. package/dist/components/AppShell/index.d.ts +4 -2
  15. package/dist/components/AppShell/index.d.ts.map +1 -1
  16. package/dist/components/AppShell/index.js +5 -3
  17. package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
  18. package/dist/components/Avatar/Avatar.module.scss.js +17 -14
  19. package/dist/components/Avatar/index.cjs +100 -118
  20. package/dist/components/Avatar/index.d.ts +7 -5
  21. package/dist/components/Avatar/index.d.ts.map +1 -1
  22. package/dist/components/Avatar/index.js +100 -118
  23. package/dist/components/Badge/Badge.module.scss.cjs +19 -19
  24. package/dist/components/Badge/Badge.module.scss.js +19 -19
  25. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  26. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  27. package/dist/components/Box/Box.module.scss.cjs +152 -152
  28. package/dist/components/Box/Box.module.scss.js +152 -152
  29. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
  30. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
  31. package/dist/components/Button/Button.module.scss.cjs +14 -14
  32. package/dist/components/Button/Button.module.scss.js +14 -14
  33. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  34. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  35. package/dist/components/Card/Card.module.scss.cjs +18 -18
  36. package/dist/components/Card/Card.module.scss.js +18 -18
  37. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  38. package/dist/components/Chart/Chart.module.scss.js +15 -15
  39. package/dist/components/Chart/index.d.ts +7 -7
  40. package/dist/components/Chart/index.d.ts.map +1 -1
  41. package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
  42. package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
  43. package/dist/components/Checkbox/index.cjs +4 -6
  44. package/dist/components/Checkbox/index.d.ts.map +1 -1
  45. package/dist/components/Checkbox/index.js +4 -6
  46. package/dist/components/Chip/Chip.module.scss.cjs +15 -15
  47. package/dist/components/Chip/Chip.module.scss.js +15 -15
  48. package/dist/components/Chip/index.cjs +4 -5
  49. package/dist/components/Chip/index.d.ts +1 -1
  50. package/dist/components/Chip/index.d.ts.map +1 -1
  51. package/dist/components/Chip/index.js +2 -3
  52. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +22 -22
  53. package/dist/components/CodeBlock/CodeBlock.module.scss.js +22 -22
  54. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
  55. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
  56. package/dist/components/Collapsible/index.cjs +3 -2
  57. package/dist/components/Collapsible/index.d.ts +3 -3
  58. package/dist/components/Collapsible/index.d.ts.map +1 -1
  59. package/dist/components/Collapsible/index.js +3 -2
  60. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
  61. package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
  62. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  63. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
  64. package/dist/components/Combobox/Combobox.module.scss.js +21 -27
  65. package/dist/components/Combobox/index.cjs +4 -4
  66. package/dist/components/Combobox/index.d.ts.map +1 -1
  67. package/dist/components/Combobox/index.js +4 -4
  68. package/dist/components/Command/Command.module.scss.cjs +11 -11
  69. package/dist/components/Command/Command.module.scss.js +11 -11
  70. package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
  71. package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
  72. package/dist/components/ConversationList/index.cjs +40 -44
  73. package/dist/components/ConversationList/index.d.ts +3 -3
  74. package/dist/components/ConversationList/index.d.ts.map +1 -1
  75. package/dist/components/ConversationList/index.js +40 -44
  76. package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
  77. package/dist/components/DataTable/DataTable.module.scss.js +32 -56
  78. package/dist/components/DataTable/index.d.ts +5 -4
  79. package/dist/components/DataTable/index.d.ts.map +1 -1
  80. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  81. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  82. package/dist/components/DatePicker/index.d.ts.map +1 -1
  83. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  84. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  85. package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
  86. package/dist/components/Drawer/Drawer.module.scss.js +31 -28
  87. package/dist/components/Drawer/index.cjs +1 -1
  88. package/dist/components/Drawer/index.js +1 -1
  89. package/dist/components/Editor/Editor.module.scss.cjs +23 -23
  90. package/dist/components/Editor/Editor.module.scss.js +23 -23
  91. package/dist/components/EmptyState/EmptyState.module.scss.cjs +12 -12
  92. package/dist/components/EmptyState/EmptyState.module.scss.js +12 -12
  93. package/dist/components/Field/Field.module.scss.cjs +8 -5
  94. package/dist/components/Field/Field.module.scss.js +8 -5
  95. package/dist/components/Field/index.cjs +10 -1
  96. package/dist/components/Field/index.d.ts +9 -2
  97. package/dist/components/Field/index.d.ts.map +1 -1
  98. package/dist/components/Field/index.js +10 -1
  99. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  100. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  101. package/dist/components/Form/Form.module.scss.cjs +5 -2
  102. package/dist/components/Form/Form.module.scss.js +5 -2
  103. package/dist/components/Form/index.cjs +6 -1
  104. package/dist/components/Form/index.d.ts +8 -3
  105. package/dist/components/Form/index.d.ts.map +1 -1
  106. package/dist/components/Form/index.js +6 -1
  107. package/dist/components/Grid/Grid.module.scss.cjs +54 -72
  108. package/dist/components/Grid/Grid.module.scss.js +54 -72
  109. package/dist/components/Grid/index.cjs +57 -77
  110. package/dist/components/Grid/index.d.ts +11 -11
  111. package/dist/components/Grid/index.d.ts.map +1 -1
  112. package/dist/components/Grid/index.js +57 -77
  113. package/dist/components/Header/Header.module.scss.cjs +33 -33
  114. package/dist/components/Header/Header.module.scss.js +33 -33
  115. package/dist/components/Header/index.cjs +2 -1
  116. package/dist/components/Header/index.d.ts.map +1 -1
  117. package/dist/components/Header/index.js +2 -1
  118. package/dist/components/Icon/Icon.module.scss.cjs +29 -8
  119. package/dist/components/Icon/Icon.module.scss.js +30 -9
  120. package/dist/components/Icon/index.cjs +30 -48
  121. package/dist/components/Icon/index.d.ts +6 -6
  122. package/dist/components/Icon/index.d.ts.map +1 -1
  123. package/dist/components/Icon/index.js +30 -48
  124. package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
  125. package/dist/components/IconButton/IconButton.module.scss.js +8 -8
  126. package/dist/components/Input/Input.module.scss.cjs +19 -25
  127. package/dist/components/Input/Input.module.scss.js +19 -25
  128. package/dist/components/Input/index.cjs +1 -2
  129. package/dist/components/Input/index.d.ts.map +1 -1
  130. package/dist/components/Input/index.js +1 -2
  131. package/dist/components/Link/Link.module.scss.cjs +10 -10
  132. package/dist/components/Link/Link.module.scss.js +10 -10
  133. package/dist/components/List/List.module.scss.cjs +19 -19
  134. package/dist/components/List/List.module.scss.js +19 -19
  135. package/dist/components/List/index.cjs +4 -7
  136. package/dist/components/List/index.d.ts.map +1 -1
  137. package/dist/components/List/index.js +4 -7
  138. package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
  139. package/dist/components/Listbox/Listbox.module.scss.js +9 -9
  140. package/dist/components/Loading/Loading.module.scss.cjs +30 -30
  141. package/dist/components/Loading/Loading.module.scss.js +30 -30
  142. package/dist/components/Loading/index.cjs +39 -67
  143. package/dist/components/Loading/index.d.ts +6 -6
  144. package/dist/components/Loading/index.d.ts.map +1 -1
  145. package/dist/components/Loading/index.js +39 -67
  146. package/dist/components/Main/Main.module.scss.cjs +7 -7
  147. package/dist/components/Main/Main.module.scss.js +7 -7
  148. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  149. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  150. package/dist/components/Menu/Menu.module.scss.cjs +16 -16
  151. package/dist/components/Menu/Menu.module.scss.js +16 -16
  152. package/dist/components/Menu/index.cjs +19 -61
  153. package/dist/components/Menu/index.d.ts +10 -10
  154. package/dist/components/Menu/index.d.ts.map +1 -1
  155. package/dist/components/Menu/index.js +19 -61
  156. package/dist/components/Message/Message.module.scss.cjs +18 -21
  157. package/dist/components/Message/Message.module.scss.js +18 -21
  158. package/dist/components/Message/index.cjs +15 -2
  159. package/dist/components/Message/index.d.ts.map +1 -1
  160. package/dist/components/Message/index.js +15 -2
  161. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  162. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  163. package/dist/components/Pagination/Pagination.module.scss.cjs +18 -9
  164. package/dist/components/Pagination/Pagination.module.scss.js +19 -10
  165. package/dist/components/Pagination/index.cjs +5 -2
  166. package/dist/components/Pagination/index.d.ts +3 -1
  167. package/dist/components/Pagination/index.d.ts.map +1 -1
  168. package/dist/components/Pagination/index.js +5 -2
  169. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  170. package/dist/components/Popover/Popover.module.scss.js +10 -10
  171. package/dist/components/Progress/Progress.module.scss.cjs +29 -32
  172. package/dist/components/Progress/Progress.module.scss.js +29 -32
  173. package/dist/components/Progress/geometry.cjs +30 -0
  174. package/dist/components/Progress/geometry.d.ts +8 -0
  175. package/dist/components/Progress/geometry.d.ts.map +1 -0
  176. package/dist/components/Progress/geometry.js +30 -0
  177. package/dist/components/Progress/index.cjs +40 -29
  178. package/dist/components/Progress/index.d.ts +4 -3
  179. package/dist/components/Progress/index.d.ts.map +1 -1
  180. package/dist/components/Progress/index.js +40 -29
  181. package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
  182. package/dist/components/Prompt/Prompt.module.scss.js +29 -29
  183. package/dist/components/Prompt/index.cjs +5 -4
  184. package/dist/components/Prompt/index.d.ts.map +1 -1
  185. package/dist/components/Prompt/index.js +5 -4
  186. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
  187. package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
  188. package/dist/components/RadioGroup/index.cjs +7 -6
  189. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  190. package/dist/components/RadioGroup/index.js +7 -6
  191. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
  192. package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
  193. package/dist/components/ScrollArea/index.cjs +66 -42
  194. package/dist/components/ScrollArea/index.d.ts +3 -2
  195. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  196. package/dist/components/ScrollArea/index.js +66 -42
  197. package/dist/components/ScrollArea/scroll-state.cjs +58 -0
  198. package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
  199. package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
  200. package/dist/components/ScrollArea/scroll-state.js +58 -0
  201. package/dist/components/Select/Select.module.scss.cjs +21 -21
  202. package/dist/components/Select/Select.module.scss.js +21 -21
  203. package/dist/components/Select/index.cjs +3 -2
  204. package/dist/components/Select/index.d.ts.map +1 -1
  205. package/dist/components/Select/index.js +3 -2
  206. package/dist/components/Separator/Separator.module.scss.cjs +13 -10
  207. package/dist/components/Separator/Separator.module.scss.js +13 -10
  208. package/dist/components/Separator/index.cjs +37 -38
  209. package/dist/components/Separator/index.d.ts +4 -4
  210. package/dist/components/Separator/index.d.ts.map +1 -1
  211. package/dist/components/Separator/index.js +37 -38
  212. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  213. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  214. package/dist/components/Sidebar/index.cjs +5 -3
  215. package/dist/components/Sidebar/index.d.ts +6 -1
  216. package/dist/components/Sidebar/index.d.ts.map +1 -1
  217. package/dist/components/Sidebar/index.js +5 -3
  218. package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -38
  219. package/dist/components/Skeleton/Skeleton.module.scss.js +50 -38
  220. package/dist/components/Skeleton/index.cjs +41 -55
  221. package/dist/components/Skeleton/index.d.ts +7 -7
  222. package/dist/components/Skeleton/index.d.ts.map +1 -1
  223. package/dist/components/Skeleton/index.js +41 -55
  224. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  225. package/dist/components/Slider/Slider.module.scss.js +12 -12
  226. package/dist/components/Stack/Stack.module.scss.cjs +25 -45
  227. package/dist/components/Stack/Stack.module.scss.js +25 -45
  228. package/dist/components/Stack/index.cjs +106 -101
  229. package/dist/components/Stack/index.d.ts +7 -7
  230. package/dist/components/Stack/index.d.ts.map +1 -1
  231. package/dist/components/Stack/index.js +106 -101
  232. package/dist/components/Switch/Switch.module.scss.cjs +32 -0
  233. package/dist/components/Switch/Switch.module.scss.js +32 -0
  234. package/dist/components/{Toggle → Switch}/index.cjs +9 -14
  235. package/dist/components/Switch/index.d.ts +37 -1
  236. package/dist/components/Switch/index.d.ts.map +1 -1
  237. package/dist/components/{Toggle → Switch}/index.js +5 -10
  238. package/dist/components/Table/Table.module.scss.cjs +18 -27
  239. package/dist/components/Table/Table.module.scss.js +18 -27
  240. package/dist/components/Table/index.d.ts +6 -5
  241. package/dist/components/Table/index.d.ts.map +1 -1
  242. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  243. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  244. package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
  245. package/dist/components/Tabs/Tabs.module.scss.js +12 -12
  246. package/dist/components/Tabs/index.cjs +2 -2
  247. package/dist/components/Tabs/index.js +2 -2
  248. package/dist/components/Text/Text.module.scss.cjs +93 -57
  249. package/dist/components/Text/Text.module.scss.js +93 -57
  250. package/dist/components/Text/index.cjs +14 -6
  251. package/dist/components/Text/index.d.ts +25 -15
  252. package/dist/components/Text/index.d.ts.map +1 -1
  253. package/dist/components/Text/index.js +14 -6
  254. package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
  255. package/dist/components/Textarea/Textarea.module.scss.js +26 -23
  256. package/dist/components/Textarea/index.cjs +5 -10
  257. package/dist/components/Textarea/index.d.ts.map +1 -1
  258. package/dist/components/Textarea/index.js +5 -10
  259. package/dist/components/Theme/context.cjs +39 -0
  260. package/dist/components/Theme/context.d.ts +21 -0
  261. package/dist/components/Theme/context.d.ts.map +1 -0
  262. package/dist/components/Theme/context.js +22 -0
  263. package/dist/components/Theme/index.cjs +14 -209
  264. package/dist/components/Theme/index.d.ts +4 -37
  265. package/dist/components/Theme/index.d.ts.map +1 -1
  266. package/dist/components/Theme/index.js +9 -204
  267. package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +6 -6
  268. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +23 -0
  269. package/dist/components/ThemeToggle/index.cjs +115 -0
  270. package/dist/components/ThemeToggle/index.d.ts +21 -0
  271. package/dist/components/ThemeToggle/index.d.ts.map +1 -0
  272. package/dist/components/ThemeToggle/index.js +115 -0
  273. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
  274. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
  275. package/dist/components/ThinkingIndicator/index.cjs +34 -41
  276. package/dist/components/ThinkingIndicator/index.d.ts +4 -4
  277. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  278. package/dist/components/ThinkingIndicator/index.js +34 -41
  279. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  280. package/dist/components/Toast/Toast.module.scss.js +20 -20
  281. package/dist/components/Toggle/index.d.ts +2 -42
  282. package/dist/components/Toggle/index.d.ts.map +1 -1
  283. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
  284. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
  285. package/dist/components/ToggleGroup/index.cjs +3 -2
  286. package/dist/components/ToggleGroup/index.d.ts +2 -1
  287. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  288. package/dist/components/ToggleGroup/index.js +3 -2
  289. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  290. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  291. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  292. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  293. package/dist/data-table.cjs +12 -9
  294. package/dist/data-table.js +12 -9
  295. package/dist/datepicker.cjs +2 -1
  296. package/dist/datepicker.js +2 -1
  297. package/dist/index.cjs +100 -98
  298. package/dist/index.d.ts +2 -2
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +4 -2
  301. package/dist/markdown.cjs +1 -1
  302. package/dist/markdown.js +2 -2
  303. package/dist/measurements/generated.cjs +296 -0
  304. package/dist/measurements/generated.d.ts +261 -0
  305. package/dist/measurements/generated.d.ts.map +1 -0
  306. package/dist/measurements/generated.js +296 -0
  307. package/dist/measurements/index.d.ts +2 -0
  308. package/dist/measurements/index.d.ts.map +1 -0
  309. package/dist/measurements.cjs +6 -0
  310. package/dist/measurements.js +6 -0
  311. package/dist/recipes/popup.cjs +14 -0
  312. package/dist/recipes/popup.d.ts +4 -0
  313. package/dist/recipes/popup.d.ts.map +1 -0
  314. package/dist/recipes/popup.js +14 -0
  315. package/dist/recipes/table-chrome.cjs +18 -0
  316. package/dist/recipes/table-chrome.d.ts +10 -0
  317. package/dist/recipes/table-chrome.d.ts.map +1 -0
  318. package/dist/recipes/table-chrome.js +18 -0
  319. package/dist/table.cjs +5 -2
  320. package/dist/table.js +5 -2
  321. package/dist/utils/layout-spacing.cjs +27 -0
  322. package/dist/utils/layout-spacing.d.ts +5 -0
  323. package/dist/utils/layout-spacing.d.ts.map +1 -0
  324. package/dist/utils/layout-spacing.js +27 -0
  325. package/dist/utils/seed-derivation.cjs +4 -42
  326. package/dist/utils/seed-derivation.d.ts +4 -3
  327. package/dist/utils/seed-derivation.d.ts.map +1 -1
  328. package/dist/utils/seed-derivation.js +4 -42
  329. package/dist/utils/theme-presets.cjs +1 -0
  330. package/dist/utils/theme-presets.d.ts +3 -2
  331. package/dist/utils/theme-presets.d.ts.map +1 -1
  332. package/dist/utils/theme-presets.js +1 -0
  333. package/fragments.json +1 -1
  334. package/package.json +23 -4
  335. package/src/components/Accordion/Accordion.module.scss +31 -52
  336. package/src/components/Alert/Alert.module.scss +28 -44
  337. package/src/components/AppShell/AppShell.module.scss +6 -3
  338. package/src/components/AppShell/index.tsx +8 -4
  339. package/src/components/Avatar/Avatar.module.scss +22 -60
  340. package/src/components/Avatar/index.tsx +152 -146
  341. package/src/components/Badge/Badge.module.scss +51 -46
  342. package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
  343. package/src/components/Box/Box.module.scss +253 -81
  344. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +10 -11
  345. package/src/components/Button/Button.module.scss +52 -57
  346. package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
  347. package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
  348. package/src/components/Card/Card.module.scss +211 -175
  349. package/src/components/Chart/Chart.module.scss +28 -29
  350. package/src/components/Chart/index.tsx +40 -53
  351. package/src/components/Checkbox/Checkbox.module.scss +43 -64
  352. package/src/components/Checkbox/index.tsx +4 -9
  353. package/src/components/Chip/Chip.contract.json +4 -3
  354. package/src/components/Chip/Chip.module.scss +23 -34
  355. package/src/components/Chip/index.tsx +3 -4
  356. package/src/components/CodeBlock/CodeBlock.module.scss +102 -215
  357. package/src/components/Collapsible/Collapsible.module.scss +29 -63
  358. package/src/components/Collapsible/index.tsx +22 -26
  359. package/src/components/ColorPicker/ColorPicker.module.scss +42 -24
  360. package/src/components/ColorPicker/index.tsx +2 -1
  361. package/src/components/Combobox/Combobox.module.scss +60 -73
  362. package/src/components/Combobox/index.tsx +7 -5
  363. package/src/components/Command/Command.module.scss +47 -77
  364. package/src/components/ConversationList/ConversationList.module.scss +20 -78
  365. package/src/components/ConversationList/index.tsx +55 -59
  366. package/src/components/DataTable/DataTable.module.scss +76 -216
  367. package/src/components/DataTable/index.tsx +20 -25
  368. package/src/components/DatePicker/DatePicker.module.scss +54 -33
  369. package/src/components/DatePicker/index.tsx +2 -1
  370. package/src/components/Dialog/Dialog.module.scss +42 -66
  371. package/src/components/Drawer/Drawer.module.scss +93 -99
  372. package/src/components/Drawer/index.tsx +1 -1
  373. package/src/components/Editor/Editor.module.scss +115 -220
  374. package/src/components/EmptyState/EmptyState.module.scss +38 -85
  375. package/src/components/Field/Field.contract.json +2 -1
  376. package/src/components/Field/Field.module.scss +9 -11
  377. package/src/components/Field/index.tsx +27 -1
  378. package/src/components/Fieldset/Fieldset.module.scss +14 -6
  379. package/src/components/Form/Form.contract.json +10 -23
  380. package/src/components/Form/Form.module.scss +9 -4
  381. package/src/components/Form/index.tsx +22 -7
  382. package/src/components/Grid/Grid.module.scss +159 -63
  383. package/src/components/Grid/index.tsx +107 -126
  384. package/src/components/Header/Header.module.scss +25 -32
  385. package/src/components/Header/index.tsx +2 -1
  386. package/src/components/Icon/Icon.module.scss +16 -0
  387. package/src/components/Icon/index.tsx +74 -86
  388. package/src/components/IconButton/IconButton.module.scss +11 -21
  389. package/src/components/Input/Input.module.scss +67 -55
  390. package/src/components/Input/index.tsx +1 -2
  391. package/src/components/Link/Link.module.scss +8 -9
  392. package/src/components/List/List.module.scss +16 -21
  393. package/src/components/List/index.tsx +4 -10
  394. package/src/components/Listbox/Listbox.module.scss +26 -54
  395. package/src/components/Loading/Loading.module.scss +23 -33
  396. package/src/components/Loading/index.tsx +68 -97
  397. package/src/components/Main/Main.module.scss +3 -5
  398. package/src/components/Markdown/Markdown.module.scss +36 -184
  399. package/src/components/Markdown/index.tsx +2 -2
  400. package/src/components/Menu/Menu.module.scss +48 -133
  401. package/src/components/Menu/index.tsx +57 -89
  402. package/src/components/Message/Message.module.scss +52 -142
  403. package/src/components/Message/index.tsx +16 -6
  404. package/src/components/NavigationMenu/NavigationMenu.module.scss +59 -52
  405. package/src/components/Pagination/Pagination.module.scss +32 -25
  406. package/src/components/Pagination/index.tsx +7 -2
  407. package/src/components/Popover/Popover.module.scss +37 -73
  408. package/src/components/Progress/Progress.module.scss +61 -41
  409. package/src/components/Progress/geometry.ts +41 -0
  410. package/src/components/Progress/index.tsx +44 -30
  411. package/src/components/Prompt/Prompt.module.scss +45 -82
  412. package/src/components/Prompt/index.tsx +6 -5
  413. package/src/components/RadioGroup/RadioGroup.module.scss +50 -69
  414. package/src/components/RadioGroup/index.tsx +7 -9
  415. package/src/components/ScrollArea/ScrollArea.contract.json +8 -24
  416. package/src/components/ScrollArea/ScrollArea.module.scss +122 -96
  417. package/src/components/ScrollArea/index.tsx +78 -60
  418. package/src/components/ScrollArea/scroll-state.ts +87 -0
  419. package/src/components/Select/Select.module.scss +53 -41
  420. package/src/components/Select/index.tsx +6 -2
  421. package/src/components/Separator/Separator.module.scss +29 -19
  422. package/src/components/Separator/index.tsx +55 -51
  423. package/src/components/Sidebar/Sidebar.contract.json +12 -0
  424. package/src/components/Sidebar/Sidebar.module.scss +101 -99
  425. package/src/components/Sidebar/index.tsx +10 -3
  426. package/src/components/Skeleton/Skeleton.module.scss +26 -26
  427. package/src/components/Skeleton/index.tsx +65 -72
  428. package/src/components/Slider/Slider.module.scss +31 -25
  429. package/src/components/Stack/Stack.module.scss +101 -30
  430. package/src/components/Stack/index.tsx +157 -127
  431. package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +1 -1
  432. package/src/components/{Toggle/Toggle.module.scss → Switch/Switch.module.scss} +55 -82
  433. package/src/components/{Toggle → Switch}/index.tsx +5 -21
  434. package/src/components/Table/Table.module.scss +38 -129
  435. package/src/components/Table/index.tsx +13 -6
  436. package/src/components/TableOfContents/TableOfContents.module.scss +20 -177
  437. package/src/components/Tabs/Tabs.module.scss +27 -22
  438. package/src/components/Tabs/index.tsx +2 -2
  439. package/src/components/Text/Text.module.scss +22 -3
  440. package/src/components/Text/index.tsx +56 -21
  441. package/src/components/Textarea/Textarea.module.scss +59 -39
  442. package/src/components/Textarea/index.tsx +5 -12
  443. package/src/components/Theme/context.ts +42 -0
  444. package/src/components/Theme/index.tsx +14 -309
  445. package/src/components/ThemeToggle/ThemeToggle.module.scss +73 -0
  446. package/src/components/ThemeToggle/index.tsx +144 -0
  447. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
  448. package/src/components/ThinkingIndicator/index.tsx +44 -54
  449. package/src/components/Toast/Toast.contract.json +5 -21
  450. package/src/components/Toast/Toast.module.scss +61 -138
  451. package/src/components/Toggle/index.ts +7 -0
  452. package/src/components/ToggleGroup/ToggleGroup.contract.json +12 -39
  453. package/src/components/ToggleGroup/ToggleGroup.module.scss +132 -88
  454. package/src/components/ToggleGroup/index.tsx +5 -3
  455. package/src/components/Tooltip/Tooltip.module.scss +23 -39
  456. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
  457. package/src/index.ts +2 -1
  458. package/src/measurements/MeasurementTargets.module.scss +229 -0
  459. package/src/measurements/generated.ts +317 -0
  460. package/src/measurements/index.ts +8 -0
  461. package/src/measurements/measurements.json +361 -0
  462. package/src/recipes/_action.scss +138 -0
  463. package/src/recipes/_boolean-range.scss +124 -0
  464. package/src/recipes/_feedback.scss +171 -0
  465. package/src/recipes/_field.scss +98 -0
  466. package/src/recipes/_layout.scss +67 -0
  467. package/src/recipes/_navigation.scss +110 -0
  468. package/src/recipes/_overlay.scss +191 -0
  469. package/src/recipes/_popup.scss +92 -0
  470. package/src/recipes/_prose.scss +174 -0
  471. package/src/recipes/_representation.scss +193 -0
  472. package/src/recipes/_segmented.scss +26 -0
  473. package/src/recipes/_surface.scss +13 -0
  474. package/src/recipes/_table-chrome.scss +105 -0
  475. package/src/recipes/_target.scss +31 -0
  476. package/src/recipes/_typography.scss +38 -0
  477. package/src/recipes/popup.ts +12 -0
  478. package/src/recipes/table-chrome.ts +30 -0
  479. package/src/styles/globals.scss +2 -2
  480. package/src/tokens/_component-properties.scss +2 -2
  481. package/src/tokens/_computed.scss +9 -9
  482. package/src/tokens/_density.scss +41 -132
  483. package/src/tokens/_measurements.catalog.generated.css +91 -0
  484. package/src/tokens/_measurements.generated.scss +604 -0
  485. package/src/tokens/_mixins.scss +0 -276
  486. package/src/tokens/_property-registrations.scss +96 -92
  487. package/src/tokens/_radius.scss +16 -70
  488. package/src/tokens/_seeds.scss +8 -7
  489. package/src/tokens/_variables.scss +163 -148
  490. package/src/utils/layout-spacing.ts +31 -0
  491. package/src/utils/seed-derivation.ts +134 -172
  492. package/src/utils/theme-presets.ts +58 -30
  493. package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
  494. package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
  495. package/dist/components/Toggle/Toggle.module.scss.js +0 -44
  496. package/src/components/Switch/index.ts +0 -3
  497. package/src/components/Theme/ThemeToggle.module.scss +0 -91
@@ -1,15 +1,15 @@
1
- 'use client';
1
+ "use client";
2
2
 
3
- import * as React from 'react';
4
- import styles from './ThinkingIndicator.module.scss';
5
- import { Loading } from '../Loading';
3
+ import * as React from "react";
4
+ import styles from "./ThinkingIndicator.module.scss";
5
+ import { Loading } from "../Loading";
6
6
 
7
7
  // ============================================
8
8
  // Types
9
9
  // ============================================
10
10
 
11
- export type ThinkingVariant = 'dots' | 'pulse' | 'spinner';
12
- export type StepStatus = 'pending' | 'active' | 'complete' | 'error';
11
+ export type ThinkingVariant = "dots" | "pulse" | "spinner";
12
+ export type StepStatus = "pending" | "active" | "complete" | "error";
13
13
 
14
14
  export interface ThinkingStep {
15
15
  id: string;
@@ -55,7 +55,9 @@ const ThinkingIndicatorContext = React.createContext<ThinkingIndicatorContextVal
55
55
  function useThinkingIndicatorContext() {
56
56
  const context = React.useContext(ThinkingIndicatorContext);
57
57
  if (!context) {
58
- throw new Error('ThinkingIndicator compound components must be used within a ThinkingIndicator');
58
+ throw new Error(
59
+ "ThinkingIndicator compound components must be used within a ThinkingIndicator"
60
+ );
59
61
  }
60
62
  return context;
61
63
  }
@@ -82,7 +84,7 @@ function useElapsedTime(active: boolean): string {
82
84
  return () => clearInterval(interval);
83
85
  }, [active]);
84
86
 
85
- if (elapsed < 1000) return '';
87
+ if (elapsed < 1000) return "";
86
88
 
87
89
  const seconds = Math.floor(elapsed / 1000);
88
90
  if (seconds < 60) return `${seconds}s`;
@@ -100,8 +102,6 @@ function CheckIcon() {
100
102
  return (
101
103
  <svg
102
104
  xmlns="http://www.w3.org/2000/svg"
103
- width="12"
104
- height="12"
105
105
  viewBox="0 0 24 24"
106
106
  fill="none"
107
107
  stroke="currentColor"
@@ -119,8 +119,6 @@ function ErrorIcon() {
119
119
  return (
120
120
  <svg
121
121
  xmlns="http://www.w3.org/2000/svg"
122
- width="12"
123
- height="12"
124
122
  viewBox="0 0 24 24"
125
123
  fill="none"
126
124
  stroke="currentColor"
@@ -140,7 +138,7 @@ function ErrorIcon() {
140
138
  // ============================================
141
139
 
142
140
  function ThinkingSteps({ children, className, ...htmlProps }: ThinkingStepsProps) {
143
- const classes = [styles.steps, className].filter(Boolean).join(' ');
141
+ const classes = [styles.steps, className].filter(Boolean).join(" ");
144
142
 
145
143
  return (
146
144
  <div {...htmlProps} className={classes}>
@@ -149,25 +147,31 @@ function ThinkingSteps({ children, className, ...htmlProps }: ThinkingStepsProps
149
147
  );
150
148
  }
151
149
 
152
- function ThinkingStep({
153
- label,
154
- status = 'pending',
155
- className,
156
- ...htmlProps
157
- }: ThinkingStepProps) {
150
+ function ThinkingStep({ label, status = "pending", className, ...htmlProps }: ThinkingStepProps) {
158
151
  const classes = [
159
152
  styles.step,
160
153
  styles[`step${status.charAt(0).toUpperCase() + status.slice(1)}`],
161
154
  className,
162
- ].filter(Boolean).join(' ');
155
+ ]
156
+ .filter(Boolean)
157
+ .join(" ");
163
158
 
164
159
  return (
165
160
  <div {...htmlProps} className={classes}>
166
161
  <span className={styles.stepIndicator}>
167
- {status === 'complete' && <CheckIcon />}
168
- {status === 'error' && <ErrorIcon />}
169
- {status === 'active' && <Loading size="sm" variant="spinner" color="current" label="" />}
170
- {status === 'pending' && <span className={styles.stepDot} />}
162
+ {status === "complete" && <CheckIcon />}
163
+ {status === "error" && <ErrorIcon />}
164
+ {status === "active" && (
165
+ <Loading
166
+ size="sm"
167
+ variant="spinner"
168
+ color="current"
169
+ label=""
170
+ role="presentation"
171
+ aria-hidden="true"
172
+ />
173
+ )}
174
+ {status === "pending" && <span className={styles.stepDot} />}
171
175
  </span>
172
176
  <span className={styles.stepLabel}>{label}</span>
173
177
  </div>
@@ -180,8 +184,8 @@ function ThinkingStep({
180
184
 
181
185
  function ThinkingIndicatorRoot({
182
186
  active = true,
183
- label = 'Thinking...',
184
- variant = 'dots',
187
+ label = "Thinking...",
188
+ variant = "dots",
185
189
  showElapsed = false,
186
190
  steps,
187
191
  className,
@@ -196,41 +200,31 @@ function ThinkingIndicatorRoot({
196
200
 
197
201
  if (!active) return null;
198
202
 
199
- const classes = [
200
- styles.thinkingIndicator,
201
- className,
202
- ].filter(Boolean).join(' ');
203
+ const classes = [styles.thinkingIndicator, className].filter(Boolean).join(" ");
203
204
 
204
205
  // Map ThinkingIndicator variants to Loading variants
205
- const loadingVariant = variant === 'dots' ? 'dots'
206
- : variant === 'pulse' ? 'pulse'
207
- : 'spinner';
206
+ const loadingVariant = variant === "dots" ? "dots" : variant === "pulse" ? "pulse" : "spinner";
208
207
 
209
208
  return (
210
209
  <ThinkingIndicatorContext.Provider value={contextValue}>
211
- <div
212
- {...htmlProps}
213
- className={classes}
214
- role="status"
215
- aria-label={label}
216
- aria-live="polite"
217
- >
210
+ <div {...htmlProps} className={classes} role="status" aria-label={label} aria-live="polite">
218
211
  <div className={styles.main}>
219
- <Loading size="sm" variant={loadingVariant} color="muted" label="" />
212
+ <Loading
213
+ size="sm"
214
+ variant={loadingVariant}
215
+ color="muted"
216
+ label=""
217
+ role="presentation"
218
+ aria-hidden="true"
219
+ />
220
220
  <span className={styles.label}>{label}</span>
221
- {showElapsed && elapsedTime && (
222
- <span className={styles.elapsed}>{elapsedTime}</span>
223
- )}
221
+ {showElapsed && elapsedTime && <span className={styles.elapsed}>{elapsedTime}</span>}
224
222
  </div>
225
223
 
226
224
  {steps && steps.length > 0 && (
227
225
  <ThinkingSteps>
228
226
  {steps.map((step) => (
229
- <ThinkingStep
230
- key={step.id}
231
- label={step.label}
232
- status={step.status}
233
- />
227
+ <ThinkingStep key={step.id} label={step.label} status={step.status} />
234
228
  ))}
235
229
  </ThinkingSteps>
236
230
  )}
@@ -248,10 +242,6 @@ export const ThinkingIndicator = Object.assign(ThinkingIndicatorRoot, {
248
242
  Step: ThinkingStep,
249
243
  });
250
244
 
251
- export {
252
- ThinkingIndicatorRoot,
253
- ThinkingSteps,
254
- ThinkingStep,
255
- };
245
+ export { ThinkingIndicatorRoot, ThinkingSteps, ThinkingStep };
256
246
 
257
247
  export { useThinkingIndicatorContext };
@@ -3,12 +3,7 @@
3
3
  "name": "Toast",
4
4
  "description": "Brief, non-blocking notification messages",
5
5
  "category": "feedback",
6
- "tags": [
7
- "notification",
8
- "alert",
9
- "message",
10
- "feedback"
11
- ],
6
+ "tags": ["notification", "alert", "message", "feedback"],
12
7
  "status": "stable",
13
8
  "sourcePath": "src/components/Toast/index.tsx",
14
9
  "exportName": "Toast",
@@ -44,18 +39,12 @@
44
39
  "description": "Visual variant indicating message type",
45
40
  "default": "default",
46
41
  "required": false,
47
- "values": [
48
- "default",
49
- "success",
50
- "error",
51
- "warning",
52
- "info"
53
- ]
42
+ "values": ["default", "success", "error", "warning", "info"]
54
43
  },
55
44
  "duration": {
56
45
  "type": "number",
57
46
  "description": "Auto-dismiss duration in ms (0 = no auto-dismiss)",
58
- "default": 5000,
47
+ "default": 8000,
59
48
  "required": false
60
49
  },
61
50
  "action": {
@@ -161,16 +150,11 @@
161
150
  "ToastInput (useToast): optional id for deterministic creation/replacement flows",
162
151
  "useToast().success/error/warning/info: (title, description?) or ({ title, description, action, duration, id })"
163
152
  ],
164
- "a11yRules": [
165
- "A11Y_ALERT_ROLE",
166
- "A11Y_TARGET_SIZE_MIN"
167
- ]
153
+ "a11yRules": ["A11Y_ALERT_ROLE", "A11Y_TARGET_SIZE_MIN"]
168
154
  },
169
155
  "ai": {
170
156
  "compositionPattern": "compound",
171
- "subComponents": [
172
- "Provider"
173
- ]
157
+ "subComponents": ["Provider"]
174
158
  },
175
159
  "provenance": {
176
160
  "source": "migrated",
@@ -1,19 +1,25 @@
1
1
  @use "../../tokens/variables" as *;
2
2
  @use "../../tokens/mixins" as *;
3
-
4
- // ============================================
5
- // Toast Container
6
- // ============================================
3
+ @use "../../recipes/feedback" as feedback;
7
4
 
8
5
  .container {
9
6
  position: fixed;
10
- // Sits above all overlays (Dialog/Drawer 50-51, Menu/Popover 52, Tooltip 60).
11
- z-index: 70;
7
+ z-index: var(--fui-feedback-toast-layer, 70);
12
8
  display: flex;
13
9
  flex-direction: column;
14
- gap: var(--fui-space-2, $fui-space-2);
15
- max-width: 420px;
16
- width: calc(100% - var(--fui-space-4, $fui-space-4) * 2);
10
+ gap: var(--fui-feedback-stack-gap, var(--fui-raw-space-8, 8px));
11
+ inline-size: min(
12
+ var(--fui-feedback-toast-max-inline, 400px),
13
+ calc(
14
+ 100% - var(
15
+ --fui-feedback-viewport-inset-left,
16
+ max(var(--fui-raw-space-16, 16px), env(safe-area-inset-left))
17
+ ) - var(
18
+ --fui-feedback-viewport-inset-right,
19
+ max(var(--fui-raw-space-16, 16px), env(safe-area-inset-right))
20
+ )
21
+ )
22
+ );
17
23
  pointer-events: none;
18
24
 
19
25
  > * {
@@ -21,65 +27,40 @@
21
27
  }
22
28
  }
23
29
 
24
- // Position variants
25
30
  .topleft {
26
- top: var(--fui-space-4, $fui-space-4);
27
- left: var(--fui-space-4, $fui-space-4);
31
+ @include feedback.viewport-stack("top-left");
28
32
  }
29
33
 
30
34
  .topcenter {
31
- top: var(--fui-space-4, $fui-space-4);
32
- left: 50%;
33
- transform: translateX(-50%);
35
+ @include feedback.viewport-stack("top-center");
34
36
  }
35
37
 
36
38
  .topright {
37
- top: var(--fui-space-4, $fui-space-4);
38
- right: var(--fui-space-4, $fui-space-4);
39
+ @include feedback.viewport-stack("top-right");
39
40
  }
40
41
 
41
42
  .bottomleft {
42
- bottom: var(--fui-space-4, $fui-space-4);
43
- left: var(--fui-space-4, $fui-space-4);
44
- flex-direction: column-reverse;
43
+ @include feedback.viewport-stack("bottom-left");
45
44
  }
46
45
 
47
46
  .bottomcenter {
48
- bottom: var(--fui-space-4, $fui-space-4);
49
- left: 50%;
50
- transform: translateX(-50%);
51
- flex-direction: column-reverse;
47
+ @include feedback.viewport-stack("bottom-center");
52
48
  }
53
49
 
54
50
  .bottomright {
55
- bottom: var(--fui-space-4, $fui-space-4);
56
- right: var(--fui-space-4, $fui-space-4);
57
- flex-direction: column-reverse;
51
+ @include feedback.viewport-stack("bottom-right");
58
52
  }
59
53
 
60
- // ============================================
61
- // Toast Item
62
- // ============================================
63
-
64
54
  .toast {
65
- display: flex;
66
- // Single-line toasts (title only) read best vertically centered; toasts
67
- // with a description are multi-line and top-align — see `:has(.description)`.
68
- align-items: center;
69
- gap: var(--fui-space-1, $fui-space-1);
70
- padding: var(--fui-space-2, $fui-space-2) var(--fui-space-3, $fui-space-3);
55
+ @include feedback.transient;
56
+
71
57
  background-color: var(--fui-bg-elevated, $fui-bg-elevated);
72
- border: 1px solid var(--fui-border, $fui-border);
58
+ border: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
73
59
  border-radius: var(--fui-radius-lg, $fui-radius-lg);
74
60
  box-shadow: var(--fui-shadow-md, $fui-shadow-md);
75
- font-family: var(--fui-font-sans, $fui-font-sans);
76
-
77
- // Animation
78
61
  animation: toastEnter var(--fui-transition-normal, $fui-transition-normal);
79
62
  }
80
63
 
81
- // With a description the toast is multi-line: top-align icon/close to the
82
- // first line rather than the block centre.
83
64
  .toast:has(.description) {
84
65
  align-items: flex-start;
85
66
  }
@@ -89,35 +70,23 @@
89
70
  opacity: 0;
90
71
  transform: translateY($fui-anim-offset-md) scale(0.96);
91
72
  }
73
+
92
74
  to {
93
75
  opacity: 1;
94
76
  transform: translateY(0) scale(1);
95
77
  }
96
78
  }
97
79
 
98
- // ============================================
99
- // Variant Styles
100
- // ============================================
101
-
102
- .default {
103
- .icon {
104
- color: var(--fui-text-secondary, $fui-text-secondary);
105
- }
80
+ .default .icon {
81
+ color: var(--fui-text-secondary, $fui-text-secondary);
106
82
  }
107
83
 
108
84
  .success {
109
85
  background: var(--fui-color-success-bg, $fui-color-success-bg);
110
86
  border-color: var(--fui-color-success-border, $fui-color-success-border);
111
87
 
112
- .title {
113
- color: var(--fui-color-success-text, $fui-color-success-text);
114
- }
115
-
116
- .description {
117
- color: var(--fui-color-success-text, $fui-color-success-text);
118
- opacity: 0.8;
119
- }
120
-
88
+ .title,
89
+ .description,
121
90
  .icon {
122
91
  color: var(--fui-color-success-text, $fui-color-success-text);
123
92
  }
@@ -127,15 +96,8 @@
127
96
  background: var(--fui-color-danger-bg, $fui-color-danger-bg);
128
97
  border-color: var(--fui-color-danger-border, $fui-color-danger-border);
129
98
 
130
- .title {
131
- color: var(--fui-color-danger-text, $fui-color-danger-text);
132
- }
133
-
134
- .description {
135
- color: var(--fui-color-danger-text, $fui-color-danger-text);
136
- opacity: 0.8;
137
- }
138
-
99
+ .title,
100
+ .description,
139
101
  .icon {
140
102
  color: var(--fui-color-danger-text, $fui-color-danger-text);
141
103
  }
@@ -145,15 +107,8 @@
145
107
  background: var(--fui-color-warning-bg, $fui-color-warning-bg);
146
108
  border-color: var(--fui-color-warning-border, $fui-color-warning-border);
147
109
 
148
- .title {
149
- color: var(--fui-color-warning-text, $fui-color-warning-text);
150
- }
151
-
152
- .description {
153
- color: var(--fui-color-warning-text, $fui-color-warning-text);
154
- opacity: 0.8;
155
- }
156
-
110
+ .title,
111
+ .description,
157
112
  .icon {
158
113
  color: var(--fui-color-warning-text, $fui-color-warning-text);
159
114
  }
@@ -163,78 +118,59 @@
163
118
  background: var(--fui-color-info-bg, $fui-color-info-bg);
164
119
  border-color: var(--fui-color-info-border, $fui-color-info-border);
165
120
 
166
- .title {
167
- color: var(--fui-color-info-text, $fui-color-info-text);
168
- }
169
-
170
- .description {
171
- color: var(--fui-color-info-text, $fui-color-info-text);
172
- opacity: 0.8;
173
- }
174
-
121
+ .title,
122
+ .description,
175
123
  .icon {
176
124
  color: var(--fui-color-info-text, $fui-color-info-text);
177
125
  }
178
126
  }
179
127
 
180
- // ============================================
181
- // Toast Parts
182
- // ============================================
128
+ .success .description,
129
+ .error .description,
130
+ .warning .description,
131
+ .info .description {
132
+ opacity: 0.8;
133
+ }
183
134
 
184
135
  .icon {
185
- flex-shrink: 0;
186
- width: 1.25rem;
187
- height: 1.25rem;
136
+ @include feedback.icon;
188
137
 
189
138
  svg {
190
- width: 100%;
191
- height: 100%;
139
+ inline-size: 100%;
140
+ block-size: 100%;
192
141
  }
193
142
  }
194
143
 
195
- // Nudge the icon to meet the first line only in multi-line toasts; centered
196
- // single-line toasts need no offset.
197
144
  .toast:has(.description) .icon {
198
- margin-top: 1px;
145
+ margin-block-start: var(--fui-stroke-hairline, 1px);
199
146
  }
200
147
 
201
148
  .content {
149
+ display: grid;
202
150
  flex: 1;
203
- min-width: 0;
151
+ gap: var(--fui-feedback-text-gap, var(--fui-raw-space-4, 4px));
152
+ min-inline-size: 0;
204
153
  }
205
154
 
206
155
  .title {
207
- font-size: var(--fui-font-size-sm, $fui-font-size-sm);
208
- font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
156
+ @include feedback.title;
157
+
209
158
  color: var(--fui-text-primary, $fui-text-primary);
210
- line-height: var(--fui-line-height-tight, $fui-line-height-tight);
211
159
  }
212
160
 
213
161
  .description {
214
- margin-top: 2px;
215
- font-size: var(--fui-font-size-sm, $fui-font-size-sm);
162
+ @include feedback.body;
163
+
216
164
  color: var(--fui-text-secondary, $fui-text-secondary);
217
- line-height: var(--fui-line-height-normal, $fui-line-height-normal);
218
165
  }
219
166
 
220
- // ============================================
221
- // Action Button
222
- // ============================================
223
-
224
167
  .action {
168
+ @include button-reset;
169
+ @include feedback.compact-action;
170
+
225
171
  flex-shrink: 0;
226
- @include min-target-size;
227
-
228
- display: inline-flex;
229
- align-items: center;
230
- justify-content: center;
231
- padding: var(--fui-space-1, $fui-space-1) var(--fui-space-2, $fui-space-2);
232
- font-size: var(--fui-font-size-sm, $fui-font-size-sm);
233
- font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
234
- color: var(--fui-color-accent, $fui-color-accent);
235
- background: transparent;
236
- border: none;
237
172
  border-radius: var(--fui-radius-sm, $fui-radius-sm);
173
+ color: var(--fui-color-accent, $fui-color-accent);
238
174
  cursor: pointer;
239
175
  transition: background-color var(--fui-transition-fast, $fui-transition-fast);
240
176
 
@@ -247,20 +183,11 @@
247
183
  }
248
184
  }
249
185
 
250
- // ============================================
251
- // Close Button
252
- // ============================================
253
-
254
186
  .close {
187
+ @include button-reset;
188
+ @include feedback.close;
189
+
255
190
  flex-shrink: 0;
256
- @include touch-target;
257
-
258
- width: 1.5rem;
259
- height: 1.5rem;
260
- margin: -2px -4px -2px 0;
261
- padding: 0;
262
- background: transparent;
263
- border: none;
264
191
  border-radius: var(--fui-radius-sm, $fui-radius-sm);
265
192
  color: var(--fui-text-tertiary, $fui-text-tertiary);
266
193
  cursor: pointer;
@@ -269,8 +196,8 @@
269
196
  color var(--fui-transition-fast, $fui-transition-fast);
270
197
 
271
198
  svg {
272
- width: 1rem;
273
- height: 1rem;
199
+ inline-size: var(--_fui-action-icon-size);
200
+ block-size: var(--_fui-action-icon-size);
274
201
  }
275
202
 
276
203
  &:hover {
@@ -283,10 +210,6 @@
283
210
  }
284
211
  }
285
212
 
286
- // ============================================
287
- // Accessibility: Reduced Motion
288
- // ============================================
289
-
290
213
  @media (prefers-reduced-motion: reduce) {
291
214
  .toast {
292
215
  animation: none;
@@ -0,0 +1,7 @@
1
+ /** @deprecated Import `Switch` from `../Switch` instead. */
2
+ export {
3
+ Switch,
4
+ type SwitchProps,
5
+ Switch as Toggle,
6
+ type SwitchProps as ToggleProps,
7
+ } from "../Switch";
@@ -3,14 +3,7 @@
3
3
  "name": "ToggleGroup",
4
4
  "description": "A group of toggle buttons where only one can be selected at a time. Useful for switching between views, modes, or options.",
5
5
  "category": "forms",
6
- "tags": [
7
- "toggle",
8
- "group",
9
- "fragmented",
10
- "control",
11
- "tabs",
12
- "switch"
13
- ],
6
+ "tags": ["toggle", "group", "fragmented", "control", "tabs", "switch"],
14
7
  "status": "stable",
15
8
  "sourcePath": "src/components/ToggleGroup/index.tsx",
16
9
  "exportName": "ToggleGroup",
@@ -22,7 +15,7 @@
22
15
  "children: node (required)",
23
16
  "variant: default|pills|outline|outlined (default: default)",
24
17
  "size: sm|md|lg (default: md)",
25
- "gap: sm|none|xs (default: xs)",
18
+ "gap: sm|none|xs (default: xs for pills; none otherwise)",
26
19
  "selectionMode: single (default: single)"
27
20
  ],
28
21
  "props": {
@@ -56,43 +49,27 @@
56
49
  "description": "Visual style",
57
50
  "default": "default",
58
51
  "required": false,
59
- "values": [
60
- "default",
61
- "pills",
62
- "outline",
63
- "outlined"
64
- ]
52
+ "values": ["default", "pills", "outline", "outlined"]
65
53
  },
66
54
  "size": {
67
55
  "type": "enum",
68
56
  "description": "Size variant",
69
57
  "default": "md",
70
58
  "required": false,
71
- "values": [
72
- "sm",
73
- "md",
74
- "lg"
75
- ]
59
+ "values": ["sm", "md", "lg"]
76
60
  },
77
61
  "gap": {
78
62
  "type": "enum",
79
- "description": "Gap between items (pills/outline variants)",
80
- "default": "xs",
63
+ "description": "Gap between items in the pills variant. Connected variants intentionally ignore gaps.",
81
64
  "required": false,
82
- "values": [
83
- "sm",
84
- "none",
85
- "xs"
86
- ]
65
+ "values": ["sm", "none", "xs"]
87
66
  },
88
67
  "selectionMode": {
89
68
  "type": "enum",
90
69
  "description": "Selection behavior",
91
70
  "default": "single",
92
71
  "required": false,
93
- "values": [
94
- "single"
95
- ]
72
+ "values": ["single"]
96
73
  }
97
74
  },
98
75
  "usage": {
@@ -112,6 +89,7 @@
112
89
  "Keep options to 2-5 items for clarity",
113
90
  "Use clear, concise labels",
114
91
  "Consider icons for common actions (grid/list view)",
92
+ "Use default for an inset tonal rail, pills for an open filter cluster, and outline for connected bordered segments",
115
93
  "Ensure adequate touch targets on mobile"
116
94
  ],
117
95
  "accessibility": [
@@ -182,20 +160,15 @@
182
160
  "onChange: (value: string) => void - change handler (or onValueChange)",
183
161
  "children: ToggleGroup.Item[] - toggle items",
184
162
  "variant: default|pills|outline|outlined - visual style (outlined aliases outline)",
185
- "size: sm|md - size variant",
186
- "gap: none|xs|sm - spacing",
163
+ "size: sm|md|lg - size variant",
164
+ "gap: none|xs|sm - pills spacing (xs by default; connected variants remain gapless)",
187
165
  "selectionMode: single (default: single)"
188
166
  ],
189
- "a11yRules": [
190
- "A11Y_GROUP_ROLE",
191
- "A11Y_KEYBOARD_ACCESSIBLE"
192
- ]
167
+ "a11yRules": ["A11Y_GROUP_ROLE", "A11Y_KEYBOARD_ACCESSIBLE"]
193
168
  },
194
169
  "ai": {
195
170
  "compositionPattern": "compound",
196
- "subComponents": [
197
- "Item"
198
- ]
171
+ "subComponents": ["Item"]
199
172
  },
200
173
  "provenance": {
201
174
  "source": "migrated",