@usefragments/ui 1.5.4 → 1.7.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 (667) hide show
  1. package/README.md +4 -4
  2. package/dist/assets/fragments-wordmark.cjs +2 -2
  3. package/dist/assets/fragments-wordmark.d.ts.map +1 -1
  4. package/dist/assets/fragments-wordmark.js +2 -2
  5. package/dist/assets/ui.css +10468 -6909
  6. package/dist/chart.cjs +31 -26
  7. package/dist/chart.js +31 -26
  8. package/dist/codeblock.cjs +55 -29
  9. package/dist/codeblock.js +55 -29
  10. package/dist/colorpicker.cjs +5 -2
  11. package/dist/colorpicker.js +5 -2
  12. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  13. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  14. package/dist/components/Alert/Alert.module.scss.cjs +15 -12
  15. package/dist/components/Alert/Alert.module.scss.js +15 -12
  16. package/dist/components/Alert/index.cjs +7 -1
  17. package/dist/components/Alert/index.d.ts +12 -6
  18. package/dist/components/Alert/index.d.ts.map +1 -1
  19. package/dist/components/Alert/index.js +7 -1
  20. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  21. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  22. package/dist/components/AppShell/index.cjs +5 -3
  23. package/dist/components/AppShell/index.d.ts +4 -2
  24. package/dist/components/AppShell/index.d.ts.map +1 -1
  25. package/dist/components/AppShell/index.js +5 -3
  26. package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
  27. package/dist/components/Avatar/Avatar.module.scss.js +17 -14
  28. package/dist/components/Avatar/index.cjs +100 -118
  29. package/dist/components/Avatar/index.d.ts +7 -5
  30. package/dist/components/Avatar/index.d.ts.map +1 -1
  31. package/dist/components/Avatar/index.js +100 -118
  32. package/dist/components/Badge/Badge.module.scss.cjs +19 -19
  33. package/dist/components/Badge/Badge.module.scss.js +19 -19
  34. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  35. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  36. package/dist/components/Box/Box.module.scss.cjs +152 -152
  37. package/dist/components/Box/Box.module.scss.js +152 -152
  38. package/dist/components/Box/index.cjs +64 -75
  39. package/dist/components/Box/index.d.ts +16 -16
  40. package/dist/components/Box/index.d.ts.map +1 -1
  41. package/dist/components/Box/index.js +64 -75
  42. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
  43. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
  44. package/dist/components/Button/Button.module.scss.cjs +14 -14
  45. package/dist/components/Button/Button.module.scss.js +14 -14
  46. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  47. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  48. package/dist/components/Card/Card.module.scss.cjs +30 -18
  49. package/dist/components/Card/Card.module.scss.js +31 -19
  50. package/dist/components/Card/index.cjs +8 -0
  51. package/dist/components/Card/index.d.ts +12 -2
  52. package/dist/components/Card/index.d.ts.map +1 -1
  53. package/dist/components/Card/index.js +8 -0
  54. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  55. package/dist/components/Chart/Chart.module.scss.js +15 -15
  56. package/dist/components/Chart/index.d.ts +7 -7
  57. package/dist/components/Chart/index.d.ts.map +1 -1
  58. package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
  59. package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
  60. package/dist/components/Checkbox/index.cjs +6 -8
  61. package/dist/components/Checkbox/index.d.ts.map +1 -1
  62. package/dist/components/Checkbox/index.js +6 -8
  63. package/dist/components/Chip/Chip.module.scss.cjs +15 -15
  64. package/dist/components/Chip/Chip.module.scss.js +15 -15
  65. package/dist/components/Chip/index.cjs +6 -6
  66. package/dist/components/Chip/index.d.ts +1 -1
  67. package/dist/components/Chip/index.js +4 -4
  68. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +27 -24
  69. package/dist/components/CodeBlock/CodeBlock.module.scss.js +27 -24
  70. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  71. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  72. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  73. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  74. package/dist/components/CodeBlock/index.d.ts +17 -3
  75. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  76. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
  77. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
  78. package/dist/components/Collapsible/index.cjs +3 -2
  79. package/dist/components/Collapsible/index.d.ts +3 -3
  80. package/dist/components/Collapsible/index.d.ts.map +1 -1
  81. package/dist/components/Collapsible/index.js +3 -2
  82. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
  83. package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
  84. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  85. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
  86. package/dist/components/Combobox/Combobox.module.scss.js +21 -27
  87. package/dist/components/Combobox/index.cjs +21 -5
  88. package/dist/components/Combobox/index.d.ts.map +1 -1
  89. package/dist/components/Combobox/index.js +21 -5
  90. package/dist/components/Command/Command.module.scss.cjs +11 -11
  91. package/dist/components/Command/Command.module.scss.js +11 -11
  92. package/dist/components/Command/index.cjs +26 -15
  93. package/dist/components/Command/index.d.ts +2 -2
  94. package/dist/components/Command/index.d.ts.map +1 -1
  95. package/dist/components/Command/index.js +26 -15
  96. package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
  97. package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
  98. package/dist/components/ConversationList/index.cjs +40 -44
  99. package/dist/components/ConversationList/index.d.ts +3 -3
  100. package/dist/components/ConversationList/index.d.ts.map +1 -1
  101. package/dist/components/ConversationList/index.js +40 -44
  102. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  103. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  104. package/dist/components/DataTable/DataTable.icons.js +6 -33
  105. package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
  106. package/dist/components/DataTable/DataTable.module.scss.js +32 -56
  107. package/dist/components/DataTable/index.d.ts +5 -4
  108. package/dist/components/DataTable/index.d.ts.map +1 -1
  109. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  110. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  111. package/dist/components/DatePicker/index.d.ts.map +1 -1
  112. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  113. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  114. package/dist/components/Dialog/index.cjs +11 -14
  115. package/dist/components/Dialog/index.d.ts +7 -7
  116. package/dist/components/Dialog/index.d.ts.map +1 -1
  117. package/dist/components/Dialog/index.js +11 -14
  118. package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
  119. package/dist/components/Drawer/Drawer.module.scss.js +31 -28
  120. package/dist/components/Drawer/index.cjs +1 -1
  121. package/dist/components/Drawer/index.js +1 -1
  122. package/dist/components/Editor/Editor.module.scss.cjs +23 -23
  123. package/dist/components/Editor/Editor.module.scss.js +23 -23
  124. package/dist/components/Editor/index.d.ts +10 -10
  125. package/dist/components/Editor/index.d.ts.map +1 -1
  126. package/dist/components/EmptyState/EmptyState.module.scss.cjs +15 -12
  127. package/dist/components/EmptyState/EmptyState.module.scss.js +15 -12
  128. package/dist/components/EmptyState/index.cjs +8 -6
  129. package/dist/components/EmptyState/index.d.ts +9 -4
  130. package/dist/components/EmptyState/index.d.ts.map +1 -1
  131. package/dist/components/EmptyState/index.js +8 -6
  132. package/dist/components/Field/Field.module.scss.cjs +8 -5
  133. package/dist/components/Field/Field.module.scss.js +8 -5
  134. package/dist/components/Field/index.cjs +18 -1
  135. package/dist/components/Field/index.d.ts +9 -2
  136. package/dist/components/Field/index.d.ts.map +1 -1
  137. package/dist/components/Field/index.js +18 -1
  138. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  139. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  140. package/dist/components/Form/Form.module.scss.cjs +5 -2
  141. package/dist/components/Form/Form.module.scss.js +5 -2
  142. package/dist/components/Form/index.cjs +6 -1
  143. package/dist/components/Form/index.d.ts +8 -3
  144. package/dist/components/Form/index.d.ts.map +1 -1
  145. package/dist/components/Form/index.js +6 -1
  146. package/dist/components/Grid/Grid.module.scss.cjs +54 -72
  147. package/dist/components/Grid/Grid.module.scss.js +54 -72
  148. package/dist/components/Grid/index.cjs +57 -77
  149. package/dist/components/Grid/index.d.ts +11 -11
  150. package/dist/components/Grid/index.d.ts.map +1 -1
  151. package/dist/components/Grid/index.js +57 -77
  152. package/dist/components/Header/Header.module.scss.cjs +33 -33
  153. package/dist/components/Header/Header.module.scss.js +33 -33
  154. package/dist/components/Header/index.cjs +18 -38
  155. package/dist/components/Header/index.d.ts +15 -11
  156. package/dist/components/Header/index.d.ts.map +1 -1
  157. package/dist/components/Header/index.js +18 -38
  158. package/dist/components/Icon/Icon.module.scss.cjs +29 -8
  159. package/dist/components/Icon/Icon.module.scss.js +30 -9
  160. package/dist/components/Icon/index.cjs +30 -48
  161. package/dist/components/Icon/index.d.ts +6 -6
  162. package/dist/components/Icon/index.d.ts.map +1 -1
  163. package/dist/components/Icon/index.js +30 -48
  164. package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
  165. package/dist/components/IconButton/IconButton.module.scss.js +8 -8
  166. package/dist/components/IconButton/index.cjs +2 -1
  167. package/dist/components/IconButton/index.d.ts.map +1 -1
  168. package/dist/components/IconButton/index.js +2 -1
  169. package/dist/components/Image/Image.module.scss.cjs +27 -27
  170. package/dist/components/Image/Image.module.scss.js +27 -27
  171. package/dist/components/Input/Input.module.scss.cjs +19 -25
  172. package/dist/components/Input/Input.module.scss.js +19 -25
  173. package/dist/components/Input/index.cjs +1 -2
  174. package/dist/components/Input/index.d.ts.map +1 -1
  175. package/dist/components/Input/index.js +1 -2
  176. package/dist/components/Link/Link.module.scss.cjs +14 -10
  177. package/dist/components/Link/Link.module.scss.js +14 -10
  178. package/dist/components/Link/index.d.ts +1 -1
  179. package/dist/components/Link/index.d.ts.map +1 -1
  180. package/dist/components/List/List.module.scss.cjs +19 -19
  181. package/dist/components/List/List.module.scss.js +19 -19
  182. package/dist/components/List/index.cjs +4 -7
  183. package/dist/components/List/index.d.ts.map +1 -1
  184. package/dist/components/List/index.js +4 -7
  185. package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
  186. package/dist/components/Listbox/Listbox.module.scss.js +9 -9
  187. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  188. package/dist/components/Loading/Loading.module.scss.js +34 -34
  189. package/dist/components/Loading/index.cjs +39 -67
  190. package/dist/components/Loading/index.d.ts +6 -6
  191. package/dist/components/Loading/index.d.ts.map +1 -1
  192. package/dist/components/Loading/index.js +39 -67
  193. package/dist/components/Main/Main.module.scss.cjs +7 -7
  194. package/dist/components/Main/Main.module.scss.js +7 -7
  195. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  196. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  197. package/dist/components/Markdown/index.d.ts +2 -2
  198. package/dist/components/Markdown/index.d.ts.map +1 -1
  199. package/dist/components/Menu/Menu.module.scss.cjs +16 -16
  200. package/dist/components/Menu/Menu.module.scss.js +16 -16
  201. package/dist/components/Menu/index.cjs +19 -61
  202. package/dist/components/Menu/index.d.ts +10 -10
  203. package/dist/components/Menu/index.d.ts.map +1 -1
  204. package/dist/components/Menu/index.js +19 -61
  205. package/dist/components/Message/Message.module.scss.cjs +18 -21
  206. package/dist/components/Message/Message.module.scss.js +18 -21
  207. package/dist/components/Message/index.cjs +15 -2
  208. package/dist/components/Message/index.d.ts.map +1 -1
  209. package/dist/components/Message/index.js +15 -2
  210. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
  211. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
  212. package/dist/components/NavigationMenu/index.cjs +32 -15
  213. package/dist/components/NavigationMenu/index.d.ts +12 -6
  214. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  215. package/dist/components/NavigationMenu/index.js +32 -15
  216. package/dist/components/Pagination/Pagination.module.scss.cjs +18 -9
  217. package/dist/components/Pagination/Pagination.module.scss.js +19 -10
  218. package/dist/components/Pagination/index.cjs +5 -2
  219. package/dist/components/Pagination/index.d.ts +3 -1
  220. package/dist/components/Pagination/index.d.ts.map +1 -1
  221. package/dist/components/Pagination/index.js +5 -2
  222. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  223. package/dist/components/Popover/Popover.module.scss.js +10 -10
  224. package/dist/components/Progress/Progress.module.scss.cjs +29 -32
  225. package/dist/components/Progress/Progress.module.scss.js +29 -32
  226. package/dist/components/Progress/geometry.cjs +30 -0
  227. package/dist/components/Progress/geometry.d.ts +8 -0
  228. package/dist/components/Progress/geometry.d.ts.map +1 -0
  229. package/dist/components/Progress/geometry.js +30 -0
  230. package/dist/components/Progress/index.cjs +40 -29
  231. package/dist/components/Progress/index.d.ts +4 -3
  232. package/dist/components/Progress/index.d.ts.map +1 -1
  233. package/dist/components/Progress/index.js +40 -29
  234. package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
  235. package/dist/components/Prompt/Prompt.module.scss.js +29 -29
  236. package/dist/components/Prompt/index.cjs +5 -4
  237. package/dist/components/Prompt/index.d.ts.map +1 -1
  238. package/dist/components/Prompt/index.js +5 -4
  239. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
  240. package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
  241. package/dist/components/RadioGroup/index.cjs +7 -6
  242. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  243. package/dist/components/RadioGroup/index.js +7 -6
  244. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
  245. package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
  246. package/dist/components/ScrollArea/index.cjs +66 -42
  247. package/dist/components/ScrollArea/index.d.ts +6 -5
  248. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  249. package/dist/components/ScrollArea/index.js +66 -42
  250. package/dist/components/ScrollArea/scroll-state.cjs +58 -0
  251. package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
  252. package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
  253. package/dist/components/ScrollArea/scroll-state.js +58 -0
  254. package/dist/components/Select/Select.module.scss.cjs +21 -21
  255. package/dist/components/Select/Select.module.scss.js +21 -21
  256. package/dist/components/Select/index.cjs +3 -2
  257. package/dist/components/Select/index.d.ts.map +1 -1
  258. package/dist/components/Select/index.js +3 -2
  259. package/dist/components/Separator/Separator.module.scss.cjs +13 -10
  260. package/dist/components/Separator/Separator.module.scss.js +13 -10
  261. package/dist/components/Separator/index.cjs +37 -38
  262. package/dist/components/Separator/index.d.ts +4 -4
  263. package/dist/components/Separator/index.d.ts.map +1 -1
  264. package/dist/components/Separator/index.js +37 -38
  265. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  266. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  267. package/dist/components/Sidebar/index.cjs +17 -38
  268. package/dist/components/Sidebar/index.d.ts +23 -18
  269. package/dist/components/Sidebar/index.d.ts.map +1 -1
  270. package/dist/components/Sidebar/index.js +17 -38
  271. package/dist/components/Skeleton/Skeleton.module.scss.cjs +56 -40
  272. package/dist/components/Skeleton/Skeleton.module.scss.js +56 -40
  273. package/dist/components/Skeleton/index.cjs +41 -55
  274. package/dist/components/Skeleton/index.d.ts +7 -7
  275. package/dist/components/Skeleton/index.d.ts.map +1 -1
  276. package/dist/components/Skeleton/index.js +41 -55
  277. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  278. package/dist/components/Slider/Slider.module.scss.js +12 -12
  279. package/dist/components/Stack/Stack.module.scss.cjs +25 -45
  280. package/dist/components/Stack/Stack.module.scss.js +25 -45
  281. package/dist/components/Stack/index.cjs +106 -101
  282. package/dist/components/Stack/index.d.ts +7 -7
  283. package/dist/components/Stack/index.d.ts.map +1 -1
  284. package/dist/components/Stack/index.js +106 -101
  285. package/dist/components/Switch/Switch.module.scss.cjs +32 -0
  286. package/dist/components/Switch/Switch.module.scss.js +32 -0
  287. package/dist/components/{Toggle → Switch}/index.cjs +9 -14
  288. package/dist/components/Switch/index.d.ts +37 -1
  289. package/dist/components/Switch/index.d.ts.map +1 -1
  290. package/dist/components/{Toggle → Switch}/index.js +5 -10
  291. package/dist/components/Table/Table.module.scss.cjs +21 -30
  292. package/dist/components/Table/Table.module.scss.js +21 -30
  293. package/dist/components/Table/index.d.ts +6 -5
  294. package/dist/components/Table/index.d.ts.map +1 -1
  295. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  296. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  297. package/dist/components/TableOfContents/index.cjs +13 -9
  298. package/dist/components/TableOfContents/index.d.ts +5 -3
  299. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  300. package/dist/components/TableOfContents/index.js +13 -9
  301. package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
  302. package/dist/components/Tabs/Tabs.module.scss.js +12 -12
  303. package/dist/components/Tabs/index.cjs +28 -8
  304. package/dist/components/Tabs/index.d.ts.map +1 -1
  305. package/dist/components/Tabs/index.js +28 -8
  306. package/dist/components/Text/Text.module.scss.cjs +105 -57
  307. package/dist/components/Text/Text.module.scss.js +105 -57
  308. package/dist/components/Text/index.cjs +49 -33
  309. package/dist/components/Text/index.d.ts +30 -19
  310. package/dist/components/Text/index.d.ts.map +1 -1
  311. package/dist/components/Text/index.js +49 -33
  312. package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
  313. package/dist/components/Textarea/Textarea.module.scss.js +26 -23
  314. package/dist/components/Textarea/index.cjs +5 -10
  315. package/dist/components/Textarea/index.d.ts.map +1 -1
  316. package/dist/components/Textarea/index.js +5 -10
  317. package/dist/components/Theme/context.cjs +39 -0
  318. package/dist/components/Theme/context.d.ts +21 -0
  319. package/dist/components/Theme/context.d.ts.map +1 -0
  320. package/dist/components/Theme/context.js +22 -0
  321. package/dist/components/Theme/index.cjs +16 -210
  322. package/dist/components/Theme/index.d.ts +4 -37
  323. package/dist/components/Theme/index.d.ts.map +1 -1
  324. package/dist/components/Theme/index.js +11 -205
  325. package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +9 -6
  326. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +26 -0
  327. package/dist/components/ThemeToggle/index.cjs +140 -0
  328. package/dist/components/ThemeToggle/index.d.ts +26 -0
  329. package/dist/components/ThemeToggle/index.d.ts.map +1 -0
  330. package/dist/components/ThemeToggle/index.js +140 -0
  331. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
  332. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
  333. package/dist/components/ThinkingIndicator/index.cjs +34 -41
  334. package/dist/components/ThinkingIndicator/index.d.ts +4 -4
  335. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  336. package/dist/components/ThinkingIndicator/index.js +34 -41
  337. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  338. package/dist/components/Toast/Toast.module.scss.js +20 -20
  339. package/dist/components/Toggle/index.d.ts +2 -42
  340. package/dist/components/Toggle/index.d.ts.map +1 -1
  341. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
  342. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
  343. package/dist/components/ToggleGroup/index.cjs +3 -2
  344. package/dist/components/ToggleGroup/index.d.ts +2 -1
  345. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  346. package/dist/components/ToggleGroup/index.js +3 -2
  347. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  348. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  349. package/dist/components/Tooltip/index.cjs +24 -40
  350. package/dist/components/Tooltip/index.d.ts +4 -4
  351. package/dist/components/Tooltip/index.d.ts.map +1 -1
  352. package/dist/components/Tooltip/index.js +24 -40
  353. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  354. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  355. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  356. package/dist/data-table.cjs +14 -10
  357. package/dist/data-table.js +14 -10
  358. package/dist/datepicker.cjs +5 -3
  359. package/dist/datepicker.js +5 -3
  360. package/dist/editor.cjs +68 -28
  361. package/dist/editor.js +68 -28
  362. package/dist/index.cjs +101 -99
  363. package/dist/index.d.ts +3 -3
  364. package/dist/index.d.ts.map +1 -1
  365. package/dist/index.js +6 -4
  366. package/dist/markdown.cjs +21 -29
  367. package/dist/markdown.js +22 -30
  368. package/dist/measurements/generated.cjs +304 -0
  369. package/dist/measurements/generated.d.ts +268 -0
  370. package/dist/measurements/generated.d.ts.map +1 -0
  371. package/dist/measurements/generated.js +304 -0
  372. package/dist/measurements/index.d.ts +2 -0
  373. package/dist/measurements/index.d.ts.map +1 -0
  374. package/dist/measurements.cjs +6 -0
  375. package/dist/measurements.js +6 -0
  376. package/dist/recipes/popup.cjs +14 -0
  377. package/dist/recipes/popup.d.ts +4 -0
  378. package/dist/recipes/popup.d.ts.map +1 -0
  379. package/dist/recipes/popup.js +14 -0
  380. package/dist/recipes/table-chrome.cjs +18 -0
  381. package/dist/recipes/table-chrome.d.ts +10 -0
  382. package/dist/recipes/table-chrome.d.ts.map +1 -0
  383. package/dist/recipes/table-chrome.js +18 -0
  384. package/dist/table.cjs +5 -2
  385. package/dist/table.js +5 -2
  386. package/dist/utils/a11y.cjs +5 -2
  387. package/dist/utils/a11y.d.ts +5 -5
  388. package/dist/utils/a11y.d.ts.map +1 -1
  389. package/dist/utils/a11y.js +5 -2
  390. package/dist/utils/canonical-stamp.cjs +2 -8
  391. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  392. package/dist/utils/canonical-stamp.js +1 -7
  393. package/dist/utils/css-warning.cjs +1 -1
  394. package/dist/utils/css-warning.js +1 -1
  395. package/dist/utils/env.cjs +17 -0
  396. package/dist/utils/env.d.ts +3 -0
  397. package/dist/utils/env.d.ts.map +1 -0
  398. package/dist/utils/env.js +17 -0
  399. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  400. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  401. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  402. package/dist/utils/keyboard-shortcuts.js +3 -10
  403. package/dist/utils/layout-spacing.cjs +27 -0
  404. package/dist/utils/layout-spacing.d.ts +5 -0
  405. package/dist/utils/layout-spacing.d.ts.map +1 -0
  406. package/dist/utils/layout-spacing.js +27 -0
  407. package/dist/utils/seed-derivation.cjs +14 -48
  408. package/dist/utils/seed-derivation.d.ts +4 -3
  409. package/dist/utils/seed-derivation.d.ts.map +1 -1
  410. package/dist/utils/seed-derivation.js +14 -48
  411. package/dist/utils/theme-presets.cjs +1 -0
  412. package/dist/utils/theme-presets.d.ts +3 -2
  413. package/dist/utils/theme-presets.d.ts.map +1 -1
  414. package/dist/utils/theme-presets.js +1 -0
  415. package/fragments.json +1 -1
  416. package/package.json +25 -4
  417. package/src/assets/fragments-logo.tsx +2 -2
  418. package/src/assets/fragments-wordmark.tsx +4 -2
  419. package/src/components/Accordion/Accordion.contract.json +24 -48
  420. package/src/components/Accordion/Accordion.module.scss +31 -52
  421. package/src/components/Alert/Alert.contract.json +37 -53
  422. package/src/components/Alert/Alert.module.scss +52 -44
  423. package/src/components/Alert/index.tsx +55 -29
  424. package/src/components/AppShell/AppShell.contract.json +34 -51
  425. package/src/components/AppShell/AppShell.module.scss +59 -43
  426. package/src/components/AppShell/index.tsx +8 -4
  427. package/src/components/Avatar/Avatar.contract.json +31 -48
  428. package/src/components/Avatar/Avatar.module.scss +25 -60
  429. package/src/components/Avatar/index.tsx +152 -146
  430. package/src/components/Badge/Badge.contract.json +37 -42
  431. package/src/components/Badge/Badge.module.scss +59 -47
  432. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  433. package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
  434. package/src/components/Box/Box.contract.json +40 -148
  435. package/src/components/Box/Box.module.scss +253 -81
  436. package/src/components/Box/index.tsx +92 -99
  437. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  438. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +19 -15
  439. package/src/components/Button/Button.module.scss +60 -64
  440. package/src/components/ButtonGroup/ButtonGroup.contract.json +32 -47
  441. package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
  442. package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
  443. package/src/components/Card/Card.module.scss +284 -167
  444. package/src/components/Card/index.tsx +21 -2
  445. package/src/components/Chart/Chart.contract.json +21 -29
  446. package/src/components/Chart/Chart.module.scss +28 -29
  447. package/src/components/Chart/index.tsx +72 -55
  448. package/src/components/Checkbox/Checkbox.contract.json +24 -24
  449. package/src/components/Checkbox/Checkbox.module.scss +75 -87
  450. package/src/components/Checkbox/index.tsx +8 -11
  451. package/src/components/Chip/Chip.contract.json +36 -42
  452. package/src/components/Chip/Chip.module.scss +25 -36
  453. package/src/components/Chip/index.tsx +5 -5
  454. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  455. package/src/components/CodeBlock/CodeBlock.module.scss +129 -217
  456. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  457. package/src/components/CodeBlock/index.tsx +91 -35
  458. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  459. package/src/components/Collapsible/Collapsible.module.scss +29 -63
  460. package/src/components/Collapsible/index.tsx +22 -26
  461. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  462. package/src/components/ColorPicker/ColorPicker.module.scss +54 -33
  463. package/src/components/ColorPicker/index.tsx +7 -2
  464. package/src/components/Combobox/Combobox.contract.json +36 -37
  465. package/src/components/Combobox/Combobox.module.scss +61 -74
  466. package/src/components/Combobox/index.tsx +34 -6
  467. package/src/components/Command/Command.contract.json +21 -43
  468. package/src/components/Command/Command.module.scss +47 -77
  469. package/src/components/Command/index.tsx +58 -47
  470. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  471. package/src/components/ConversationList/ConversationList.module.scss +20 -78
  472. package/src/components/ConversationList/index.tsx +55 -59
  473. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  474. package/src/components/DataTable/DataTable.module.scss +81 -217
  475. package/src/components/DataTable/index.tsx +28 -32
  476. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  477. package/src/components/DatePicker/DatePicker.module.scss +66 -38
  478. package/src/components/DatePicker/index.tsx +7 -3
  479. package/src/components/Dialog/Dialog.module.scss +45 -69
  480. package/src/components/Dialog/index.tsx +47 -37
  481. package/src/components/Drawer/Drawer.contract.json +22 -36
  482. package/src/components/Drawer/Drawer.module.scss +93 -99
  483. package/src/components/Drawer/index.tsx +1 -1
  484. package/src/components/Editor/Editor.contract.json +31 -48
  485. package/src/components/Editor/Editor.module.scss +137 -220
  486. package/src/components/Editor/index.tsx +240 -179
  487. package/src/components/EmptyState/EmptyState.contract.json +31 -43
  488. package/src/components/EmptyState/EmptyState.module.scss +45 -84
  489. package/src/components/EmptyState/index.tsx +48 -23
  490. package/src/components/Field/Field.contract.json +28 -45
  491. package/src/components/Field/Field.module.scss +9 -11
  492. package/src/components/Field/index.tsx +31 -1
  493. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  494. package/src/components/Fieldset/Fieldset.module.scss +23 -8
  495. package/src/components/Form/Form.contract.json +27 -40
  496. package/src/components/Form/Form.module.scss +9 -4
  497. package/src/components/Form/index.tsx +22 -7
  498. package/src/components/Grid/Grid.contract.json +28 -64
  499. package/src/components/Grid/Grid.module.scss +159 -63
  500. package/src/components/Grid/index.tsx +114 -133
  501. package/src/components/Header/Header.contract.json +31 -67
  502. package/src/components/Header/Header.module.scss +56 -48
  503. package/src/components/Header/index.tsx +134 -121
  504. package/src/components/Icon/Icon.contract.json +22 -62
  505. package/src/components/Icon/Icon.module.scss +16 -0
  506. package/src/components/Icon/index.tsx +74 -86
  507. package/src/components/IconButton/IconButton.contract.json +34 -18
  508. package/src/components/IconButton/IconButton.module.scss +15 -26
  509. package/src/components/IconButton/index.tsx +2 -1
  510. package/src/components/Image/Image.contract.json +23 -56
  511. package/src/components/Input/Input.contract.json +26 -32
  512. package/src/components/Input/Input.module.scss +69 -56
  513. package/src/components/Input/index.tsx +1 -2
  514. package/src/components/Link/Link.contract.json +32 -52
  515. package/src/components/Link/Link.module.scss +29 -13
  516. package/src/components/Link/index.tsx +1 -1
  517. package/src/components/List/List.contract.json +23 -52
  518. package/src/components/List/List.module.scss +16 -21
  519. package/src/components/List/index.tsx +4 -10
  520. package/src/components/Listbox/Listbox.contract.json +21 -37
  521. package/src/components/Listbox/Listbox.module.scss +26 -54
  522. package/src/components/Loading/Loading.contract.json +37 -61
  523. package/src/components/Loading/Loading.module.scss +33 -40
  524. package/src/components/Loading/index.tsx +68 -97
  525. package/src/components/Main/Main.contract.json +17 -9
  526. package/src/components/Main/Main.module.scss +3 -5
  527. package/src/components/Markdown/Markdown.contract.json +22 -43
  528. package/src/components/Markdown/Markdown.module.scss +72 -182
  529. package/src/components/Markdown/index.tsx +50 -51
  530. package/src/components/Menu/Menu.contract.json +25 -41
  531. package/src/components/Menu/Menu.module.scss +63 -133
  532. package/src/components/Menu/index.tsx +57 -89
  533. package/src/components/Message/Message.contract.json +29 -52
  534. package/src/components/Message/Message.module.scss +60 -143
  535. package/src/components/Message/index.tsx +16 -6
  536. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  537. package/src/components/NavigationMenu/NavigationMenu.module.scss +123 -71
  538. package/src/components/NavigationMenu/index.tsx +105 -81
  539. package/src/components/Pagination/Pagination.contract.json +22 -40
  540. package/src/components/Pagination/Pagination.module.scss +34 -27
  541. package/src/components/Pagination/index.tsx +7 -2
  542. package/src/components/Popover/Popover.contract.json +24 -46
  543. package/src/components/Popover/Popover.module.scss +43 -78
  544. package/src/components/Progress/Progress.contract.json +32 -28
  545. package/src/components/Progress/Progress.module.scss +64 -43
  546. package/src/components/Progress/geometry.ts +41 -0
  547. package/src/components/Progress/index.tsx +44 -30
  548. package/src/components/Prompt/Prompt.contract.json +31 -47
  549. package/src/components/Prompt/Prompt.module.scss +58 -87
  550. package/src/components/Prompt/index.tsx +6 -5
  551. package/src/components/RadioGroup/RadioGroup.contract.json +23 -24
  552. package/src/components/RadioGroup/RadioGroup.module.scss +63 -83
  553. package/src/components/RadioGroup/index.tsx +7 -9
  554. package/src/components/ScrollArea/ScrollArea.contract.json +23 -40
  555. package/src/components/ScrollArea/ScrollArea.module.scss +123 -97
  556. package/src/components/ScrollArea/index.tsx +85 -67
  557. package/src/components/ScrollArea/scroll-state.ts +87 -0
  558. package/src/components/Select/Select.module.scss +55 -43
  559. package/src/components/Select/index.tsx +6 -2
  560. package/src/components/Separator/Separator.contract.json +24 -48
  561. package/src/components/Separator/Separator.module.scss +29 -19
  562. package/src/components/Separator/index.tsx +55 -51
  563. package/src/components/Sidebar/Sidebar.contract.json +42 -62
  564. package/src/components/Sidebar/Sidebar.module.scss +117 -106
  565. package/src/components/Sidebar/index.tsx +169 -162
  566. package/src/components/Skeleton/Skeleton.contract.json +28 -54
  567. package/src/components/Skeleton/Skeleton.module.scss +51 -34
  568. package/src/components/Skeleton/index.tsx +65 -72
  569. package/src/components/Slider/Slider.contract.json +27 -39
  570. package/src/components/Slider/Slider.module.scss +33 -27
  571. package/src/components/Stack/Stack.contract.json +29 -56
  572. package/src/components/Stack/Stack.module.scss +110 -38
  573. package/src/components/Stack/index.tsx +157 -127
  574. package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +34 -47
  575. package/src/components/Switch/Switch.module.scss +255 -0
  576. package/src/components/{Toggle → Switch}/index.tsx +5 -21
  577. package/src/components/Table/Table.contract.json +28 -46
  578. package/src/components/Table/Table.module.scss +50 -129
  579. package/src/components/Table/index.tsx +13 -6
  580. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  581. package/src/components/TableOfContents/TableOfContents.module.scss +35 -182
  582. package/src/components/TableOfContents/index.tsx +26 -9
  583. package/src/components/Tabs/Tabs.contract.json +24 -45
  584. package/src/components/Tabs/Tabs.module.scss +28 -23
  585. package/src/components/Tabs/index.tsx +17 -5
  586. package/src/components/Text/Text.contract.json +30 -72
  587. package/src/components/Text/Text.module.scss +43 -7
  588. package/src/components/Text/index.tsx +136 -63
  589. package/src/components/Textarea/Textarea.contract.json +25 -43
  590. package/src/components/Textarea/Textarea.module.scss +58 -40
  591. package/src/components/Textarea/index.tsx +5 -12
  592. package/src/components/Theme/Theme.contract.json +32 -51
  593. package/src/components/Theme/context.ts +42 -0
  594. package/src/components/Theme/index.tsx +16 -310
  595. package/src/components/ThemeToggle/ThemeToggle.module.scss +89 -0
  596. package/src/components/ThemeToggle/index.tsx +180 -0
  597. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +23 -40
  598. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
  599. package/src/components/ThinkingIndicator/index.tsx +44 -54
  600. package/src/components/Toast/Toast.contract.json +35 -61
  601. package/src/components/Toast/Toast.module.scss +62 -139
  602. package/src/components/Toggle/index.ts +7 -0
  603. package/src/components/ToggleGroup/ToggleGroup.contract.json +40 -68
  604. package/src/components/ToggleGroup/ToggleGroup.module.scss +166 -89
  605. package/src/components/ToggleGroup/index.tsx +5 -3
  606. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  607. package/src/components/Tooltip/Tooltip.module.scss +23 -39
  608. package/src/components/Tooltip/index.tsx +19 -24
  609. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  610. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
  611. package/src/components/VisuallyHidden/index.tsx +5 -5
  612. package/src/index.ts +4 -3
  613. package/src/measurements/MeasurementTargets.module.scss +229 -0
  614. package/src/measurements/generated.ts +324 -0
  615. package/src/measurements/index.ts +8 -0
  616. package/src/measurements/measurements.json +368 -0
  617. package/src/recipes/_action.scss +138 -0
  618. package/src/recipes/_boolean-range.scss +116 -0
  619. package/src/recipes/_feedback.scss +171 -0
  620. package/src/recipes/_field.scss +102 -0
  621. package/src/recipes/_layout.scss +74 -0
  622. package/src/recipes/_navigation.scss +110 -0
  623. package/src/recipes/_overlay.scss +191 -0
  624. package/src/recipes/_popup.scss +102 -0
  625. package/src/recipes/_prose.scss +182 -0
  626. package/src/recipes/_representation.scss +193 -0
  627. package/src/recipes/_segmented.scss +26 -0
  628. package/src/recipes/_surface.scss +13 -0
  629. package/src/recipes/_table-chrome.scss +119 -0
  630. package/src/recipes/_target.scss +31 -0
  631. package/src/recipes/_typography.scss +38 -0
  632. package/src/recipes/popup.ts +12 -0
  633. package/src/recipes/table-chrome.ts +30 -0
  634. package/src/scss.d.ts +1 -1
  635. package/src/styles/globals.scss +21 -20
  636. package/src/tokens/_component-properties.scss +2 -2
  637. package/src/tokens/_computed.scss +14 -25
  638. package/src/tokens/_density.scss +41 -132
  639. package/src/tokens/_derive.scss +112 -210
  640. package/src/tokens/_measurements.catalog.generated.css +96 -0
  641. package/src/tokens/_measurements.generated.scss +617 -0
  642. package/src/tokens/_mixins.scss +7 -284
  643. package/src/tokens/_palettes.scss +39 -167
  644. package/src/tokens/_property-registrations.scss +96 -92
  645. package/src/tokens/_radius.scss +16 -70
  646. package/src/tokens/_seeds.scss +24 -23
  647. package/src/tokens/_variables.scss +338 -178
  648. package/src/utils/a11y.tsx +69 -69
  649. package/src/utils/aria.ts +3 -3
  650. package/src/utils/canonical-stamp.ts +2 -12
  651. package/src/utils/css-warning.ts +7 -7
  652. package/src/utils/env.ts +25 -0
  653. package/src/utils/keyboard-shortcuts.ts +131 -126
  654. package/src/utils/layout-spacing.ts +31 -0
  655. package/src/utils/seed-derivation.ts +144 -178
  656. package/src/utils/theme-presets.ts +58 -30
  657. package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
  658. package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
  659. package/dist/components/Toggle/Toggle.module.scss.js +0 -44
  660. package/src/components/Button/Button.contract.json +0 -218
  661. package/src/components/Card/Card.contract.json +0 -175
  662. package/src/components/DataTable/DataTable.contract.json +0 -302
  663. package/src/components/Dialog/Dialog.contract.json +0 -159
  664. package/src/components/Select/Select.contract.json +0 -259
  665. package/src/components/Switch/index.ts +0 -3
  666. package/src/components/Theme/ThemeToggle.module.scss +0 -91
  667. package/src/components/Toggle/Toggle.module.scss +0 -244
@@ -1,16 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "ThinkingIndicator",
4
- "description": "Animated indicator showing AI is processing",
4
+ "description": "Shows that an AI response is being generated.",
5
5
  "category": "ai",
6
- "tags": [
7
- "thinking",
8
- "loading",
9
- "ai",
10
- "processing",
11
- "indicator",
12
- "animation"
13
- ],
6
+ "tags": ["thinking", "loading", "ai", "processing", "indicator", "animation"],
14
7
  "status": "stable",
15
8
  "sourcePath": "src/components/ThinkingIndicator/index.tsx",
16
9
  "exportName": "ThinkingIndicator",
@@ -39,11 +32,7 @@
39
32
  "description": "Animation style",
40
33
  "default": "dots",
41
34
  "required": false,
42
- "values": [
43
- "dots",
44
- "pulse",
45
- "spinner"
46
- ]
35
+ "values": ["dots", "pulse", "spinner"]
47
36
  },
48
37
  "showElapsed": {
49
38
  "type": "boolean",
@@ -59,21 +48,21 @@
59
48
  },
60
49
  "usage": {
61
50
  "when": [
62
- "AI is processing a request and generating a response",
63
- "Need visual feedback during async AI operations",
64
- "Want to show multi-step progress for complex AI tasks",
65
- "Indicating streaming is about to begin"
51
+ "A model is working on a request",
52
+ "Async AI work that would otherwise look frozen",
53
+ "Multi-stage tasks worth showing stage by stage",
54
+ "The moment before streaming starts"
66
55
  ],
67
56
  "whenNot": [
68
- "Simple loading states (use Progress or Skeleton)",
69
- "Form submission loading (use Button loading state)",
70
- "Page-level loading (use Progress or Skeleton)"
57
+ "Ordinary loading (use Progress or Skeleton)",
58
+ "Form submission (use the Button loading state)",
59
+ "Whole-page loading (use Progress or Skeleton)"
71
60
  ],
72
61
  "guidelines": [
73
- "Use active prop to control visibility",
74
- "Choose variant based on context (dots for chat, spinner for actions)",
75
- "Enable showElapsed for longer operations",
76
- "Use steps for multi-step AI workflows (tool calls, research)"
62
+ "active controls whether it shows at all",
63
+ "dots suits chat; spinner suits a discrete action",
64
+ "Turn on showElapsed once waits run past a few seconds",
65
+ "Use steps for tool calls, research, and other staged work"
77
66
  ],
78
67
  "accessibility": [
79
68
  "Uses role=\"status\" and aria-live=\"polite\"",
@@ -85,37 +74,37 @@
85
74
  "examples": [
86
75
  {
87
76
  "name": "Dots (Default)",
88
- "description": "Bouncing dots animation",
77
+ "description": "Three dots bounce in sequence; the quietest option.",
89
78
  "code": "<ThinkingIndicator variant=\"dots\" label=\"Thinking...\" />"
90
79
  },
91
80
  {
92
81
  "name": "Pulse",
93
- "description": "Pulsing ring animation",
82
+ "description": "A single ring breathes in place.",
94
83
  "code": "<ThinkingIndicator variant=\"pulse\" label=\"Processing...\" />"
95
84
  },
96
85
  {
97
86
  "name": "Spinner",
98
- "description": "Rotating spinner animation",
87
+ "description": "A rotating arc, for work with a definite end.",
99
88
  "code": "<ThinkingIndicator variant=\"spinner\" label=\"Loading...\" />"
100
89
  },
101
90
  {
102
91
  "name": "With Elapsed Time",
103
- "description": "Shows time since started",
92
+ "description": "A live counter reassures the reader during long waits.",
104
93
  "code": "<ThinkingIndicator\n variant=\"dots\"\n label=\"Generating response...\"\n showElapsed\n/>"
105
94
  },
106
95
  {
107
96
  "name": "Multi-Step Progress",
108
- "description": "Shows progress through multiple steps",
97
+ "description": "Finished, running, and queued stages read at a glance.",
109
98
  "code": "<ThinkingIndicator\n variant=\"spinner\"\n label=\"Working...\"\n steps={[\n { id: '1', label: 'Analyzing request', status: 'complete' },\n { id: '2', label: 'Searching knowledge base', status: 'active' },\n { id: '3', label: 'Generating response', status: 'pending' },\n ]}\n/>"
110
99
  },
111
100
  {
112
101
  "name": "With Error Step",
113
- "description": "Shows a step that encountered an error",
102
+ "description": "A failed stage turns red while the next one retries.",
114
103
  "code": "<ThinkingIndicator\n variant=\"spinner\"\n label=\"Retrying...\"\n steps={[\n { id: '1', label: 'Connecting to API', status: 'complete' },\n { id: '2', label: 'Fetching data', status: 'error' },\n { id: '3', label: 'Retrying with fallback', status: 'active' },\n ]}\n/>"
115
104
  },
116
105
  {
117
106
  "name": "Custom Label",
118
- "description": "Custom status text",
107
+ "description": "Name the actual task instead of a generic status.",
119
108
  "code": "<ThinkingIndicator\n variant=\"dots\"\n label=\"Claude is writing code...\"\n/>"
120
109
  }
121
110
  ],
@@ -144,17 +133,11 @@
144
133
  "showElapsed: boolean - show elapsed time",
145
134
  "steps: ThinkingStep[] - multi-step progress"
146
135
  ],
147
- "a11yRules": [
148
- "A11Y_ARIA_LIVE",
149
- "A11Y_MOTION_PREFERENCE"
150
- ]
136
+ "a11yRules": ["A11Y_ARIA_LIVE", "A11Y_MOTION_PREFERENCE"]
151
137
  },
152
138
  "ai": {
153
139
  "compositionPattern": "compound",
154
- "subComponents": [
155
- "Steps",
156
- "Step"
157
- ]
140
+ "subComponents": ["Steps", "Step"]
158
141
  },
159
142
  "provenance": {
160
143
  "source": "migrated",
@@ -1,5 +1,7 @@
1
1
  @use "../../tokens/variables" as *;
2
- @use "../../tokens/mixins" as *;
2
+ @use "../../recipes/layout" as layout;
3
+ @use "../../recipes/representation" as representation;
4
+ @use "../../recipes/typography" as typography;
3
5
 
4
6
  // ============================================
5
7
  // Thinking Indicator Root
@@ -8,25 +10,25 @@
8
10
  .thinkingIndicator {
9
11
  display: flex;
10
12
  flex-direction: column;
11
- gap: var(--fui-space-2, $fui-space-2);
12
- padding: var(--fui-space-2, $fui-space-2);
13
+ gap: layout.gap("sm");
14
+ padding: layout.gap("sm");
13
15
  }
14
16
 
15
17
  .main {
16
18
  display: flex;
17
19
  align-items: center;
18
- gap: var(--fui-space-2, $fui-space-2);
20
+ gap: layout.gap("sm");
19
21
  }
20
22
 
21
23
  .label {
22
- @include text-base;
23
- font-size: var(--fui-font-size-sm, $fui-font-size-sm);
24
+ @include typography.role("body-compact");
25
+
24
26
  color: var(--fui-text-secondary, $fui-text-secondary);
25
27
  }
26
28
 
27
29
  .elapsed {
28
- @include helper-text;
29
- font-size: var(--fui-font-size-xs, $fui-font-size-xs);
30
+ @include typography.role("caption");
31
+
30
32
  color: var(--fui-text-tertiary, $fui-text-tertiary);
31
33
  font-variant-numeric: tabular-nums;
32
34
  }
@@ -42,17 +44,18 @@
42
44
  .steps {
43
45
  display: flex;
44
46
  flex-direction: column;
45
- gap: var(--fui-space-1, $fui-space-1);
46
- padding-left: var(--fui-space-4, $fui-space-4);
47
- border-left: 2px solid var(--fui-border, $fui-border);
48
- margin-left: var(--fui-space-1, $fui-space-1); // 7px — align with center of animation
47
+ gap: layout.gap("xs");
48
+ margin-inline-start: calc(representation.activity-size("sm") / 2);
49
+ padding-inline-start: layout.gap("lg");
50
+ border-inline-start: var(--fui-stroke-default, 2px) solid var(--fui-border, $fui-border);
49
51
  }
50
52
 
51
53
  .step {
52
54
  display: flex;
53
55
  align-items: center;
54
- gap: var(--fui-space-2, $fui-space-2);
55
- font-size: var(--fui-font-size-xs, $fui-font-size-xs);
56
+ gap: layout.gap("sm");
57
+ @include typography.role("caption");
58
+
56
59
  color: var(--fui-text-tertiary, $fui-text-tertiary);
57
60
  }
58
61
 
@@ -60,14 +63,16 @@
60
63
  display: flex;
61
64
  align-items: center;
62
65
  justify-content: center;
63
- width: var(--fui-icon-md, $fui-icon-md); // 16px
64
- height: var(--fui-icon-md, $fui-icon-md);
65
- flex-shrink: 0;
66
+ @include representation.glyph("md");
67
+
68
+ > svg {
69
+ @include representation.glyph("xs");
70
+ }
66
71
  }
67
72
 
68
73
  .stepDot {
69
- width: 6px;
70
- height: 6px;
74
+ inline-size: var(--fui-raw-space-8, 8px);
75
+ block-size: var(--fui-raw-space-8, 8px);
71
76
  border-radius: var(--fui-radius-full, $fui-radius-full);
72
77
  background-color: var(--fui-text-tertiary, $fui-text-tertiary);
73
78
  opacity: 0.5;
@@ -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 };
@@ -1,14 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "Toast",
4
- "description": "Brief, non-blocking notification messages",
4
+ "description": "Briefly reports what just happened, without blocking the page.",
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": {
@@ -81,62 +70,52 @@
81
70
  },
82
71
  "usage": {
83
72
  "when": [
84
- "Providing feedback after an action",
85
- "Showing success/error status of operations",
86
- "Non-critical information that doesn't require action",
87
- "Temporary messages that auto-dismiss"
73
+ "Confirming an action landed",
74
+ "Reporting whether an operation worked",
75
+ "News the user does not have to act on",
76
+ "Messages that can disappear on their own"
88
77
  ],
89
78
  "whenNot": [
90
- "Critical errors requiring user action (use Dialog)",
91
- "Persistent information (use Alert)",
92
- "Inline validation (use form error states)",
93
- "System-wide announcements (use Banner)"
79
+ "Errors the user must resolve — use Dialog",
80
+ "Anything that must stay on screen — use Alert",
81
+ "Field-level validation use form error states",
82
+ "Site-wide notices use a banner"
94
83
  ],
95
84
  "guidelines": [
96
- "Keep messages brief and actionable",
97
- "Use appropriate variant for the message type",
98
- "Auto-dismiss after reasonable duration (3-5s)",
99
- "Allow manual dismissal for longer messages",
100
- "Limit number of simultaneous toasts",
101
- "useToast() variant helpers accept either (title, description?) or an options object for action/duration/id"
85
+ "One sentence, plus a title if it helps",
86
+ "Match the variant to what actually happened",
87
+ "Auto-dismiss in three to five seconds",
88
+ "Anything with an action needs a manual dismiss too",
89
+ "Two or three on screen at once, no more",
90
+ "useToast() helpers take (title, description) or an options object for action, duration, and id"
102
91
  ],
103
92
  "accessibility": [
104
- "Use role=\"alert\" for important messages",
105
- "Ensure sufficient display time for reading",
106
- "Don't rely solely on color for meaning",
107
- "Provide dismiss button with accessible label"
93
+ "role=\"alert\" for anything the user must not miss",
94
+ "Leave enough time to read it",
95
+ "Never let colour be the only signal",
96
+ "Give the dismiss button a real label"
108
97
  ]
109
98
  },
110
99
  "examples": [
111
100
  {
112
101
  "name": "Default",
113
- "description": "Interactive toast demo - click buttons to trigger toasts (includes helper object syntax example)",
114
- "code": "<ToastDemoWrapper />"
115
- },
116
- {
117
- "name": "Success",
118
- "description": "Success message variant",
119
- "code": "<Toast\n title=\"Success!\"\n description=\"Your changes have been saved.\"\n variant=\"success\"\n/>"
120
- },
121
- {
122
- "name": "Error",
123
- "description": "Error message variant",
124
- "code": "<Toast\n title=\"Error\"\n description=\"Failed to save changes. Please try again.\"\n variant=\"error\"\n/>"
102
+ "description": "Neutral message with a title and one line under it.",
103
+ "code": "<Toast\n title=\"Draft saved\"\n description=\"We will keep it until you publish.\"\n/>"
125
104
  },
126
105
  {
127
- "name": "Warning",
128
- "description": "Warning message variant",
129
- "code": "<Toast\n title=\"Warning\"\n description=\"This action cannot be undone.\"\n variant=\"warning\"\n/>"
106
+ "name": "Variants",
107
+ "description": "Icon and colour together carry the outcome.",
108
+ "code": "import { Stack } from '@/components/Stack';\n\n<Stack direction=\"column\" gap=\"sm\">\n <Toast\n title=\"Success!\"\n description=\"Your changes have been saved.\"\n variant=\"success\"\n />\n <Toast\n title=\"Error\"\n description=\"Failed to save changes. Please try again.\"\n variant=\"error\"\n />\n <Toast\n title=\"Warning\"\n description=\"This action cannot be undone.\"\n variant=\"warning\"\n />\n <Toast\n title=\"New update\"\n description=\"Version 2.0 is now available.\"\n variant=\"info\"\n />\n</Stack>"
130
109
  },
131
110
  {
132
- "name": "Info",
133
- "description": "Informational message variant",
134
- "code": "<Toast\n title=\"New Update\"\n description=\"Version 2.0 is now available.\"\n variant=\"info\"\n/>"
111
+ "name": "With Action",
112
+ "description": "One-tap way back from something destructive.",
113
+ "code": "<Toast\n title=\"File deleted\"\n description=\"The file has been moved to trash.\"\n action={{\n label: 'Undo',\n onClick: () => {},\n }}\n/>"
135
114
  },
136
115
  {
137
- "name": "With Action",
138
- "description": "Toast with an action button",
139
- "code": "<Toast\n title=\"File deleted\"\n description=\"The file has been moved to trash.\"\n action={{\n label: 'Undo',\n onClick: () => console.log('Undo clicked'),\n }}\n/>"
116
+ "name": "Dismissible",
117
+ "description": "onDismiss adds a close button for longer messages.",
118
+ "code": "<Toast\n title=\"Export running\"\n description=\"We will email you when the file is ready.\"\n variant=\"info\"\n onDismiss={() => {}}\n/>"
140
119
  }
141
120
  ],
142
121
  "relations": [
@@ -161,16 +140,11 @@
161
140
  "ToastInput (useToast): optional id for deterministic creation/replacement flows",
162
141
  "useToast().success/error/warning/info: (title, description?) or ({ title, description, action, duration, id })"
163
142
  ],
164
- "a11yRules": [
165
- "A11Y_ALERT_ROLE",
166
- "A11Y_TARGET_SIZE_MIN"
167
- ]
143
+ "a11yRules": ["A11Y_ALERT_ROLE", "A11Y_TARGET_SIZE_MIN"]
168
144
  },
169
145
  "ai": {
170
146
  "compositionPattern": "compound",
171
- "subComponents": [
172
- "Provider"
173
- ]
147
+ "subComponents": ["Provider"]
174
148
  },
175
149
  "provenance": {
176
150
  "source": "migrated",