@usefragments/ui 1.6.0 → 2.0.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 (685) hide show
  1. package/README.md +54 -66
  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/nav-glyph.cjs +139 -0
  6. package/dist/assets/nav-glyph.d.ts +28 -0
  7. package/dist/assets/nav-glyph.d.ts.map +1 -0
  8. package/dist/assets/nav-glyph.js +139 -0
  9. package/dist/assets/nav-glyph.module.scss.cjs +71 -0
  10. package/dist/assets/nav-glyph.module.scss.js +71 -0
  11. package/dist/assets/ui.css +6885 -6308
  12. package/dist/blocks/components/StatsCard.d.ts +1 -1
  13. package/dist/blocks/components/StatsCard.d.ts.map +1 -1
  14. package/dist/chart.cjs +24 -6
  15. package/dist/chart.js +24 -6
  16. package/dist/codeblock.cjs +76 -43
  17. package/dist/codeblock.js +71 -38
  18. package/dist/colorpicker.cjs +4 -1
  19. package/dist/colorpicker.js +4 -1
  20. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  21. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  22. package/dist/components/Alert/Alert.module.scss.cjs +23 -20
  23. package/dist/components/Alert/Alert.module.scss.js +23 -20
  24. package/dist/components/Alert/index.cjs +20 -8
  25. package/dist/components/Alert/index.d.ts +17 -11
  26. package/dist/components/Alert/index.d.ts.map +1 -1
  27. package/dist/components/Alert/index.js +20 -8
  28. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  29. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  30. package/dist/components/AppShell/index.cjs +2 -2
  31. package/dist/components/AppShell/index.js +2 -2
  32. package/dist/components/Avatar/Avatar.module.scss.cjs +14 -14
  33. package/dist/components/Avatar/Avatar.module.scss.js +14 -14
  34. package/dist/components/Badge/Badge.module.scss.cjs +33 -31
  35. package/dist/components/Badge/Badge.module.scss.js +33 -31
  36. package/dist/components/Badge/index.cjs +13 -3
  37. package/dist/components/Badge/index.d.ts +18 -13
  38. package/dist/components/Badge/index.d.ts.map +1 -1
  39. package/dist/components/Badge/index.js +13 -3
  40. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  41. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  42. package/dist/components/Box/Box.module.scss.cjs +152 -152
  43. package/dist/components/Box/Box.module.scss.js +152 -152
  44. package/dist/components/Box/index.cjs +64 -75
  45. package/dist/components/Box/index.d.ts +16 -16
  46. package/dist/components/Box/index.d.ts.map +1 -1
  47. package/dist/components/Box/index.js +64 -75
  48. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +11 -8
  49. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
  50. package/dist/components/Breadcrumbs/index.cjs +1 -1
  51. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  52. package/dist/components/Breadcrumbs/index.js +1 -1
  53. package/dist/components/Button/Button.module.scss.cjs +36 -27
  54. package/dist/components/Button/Button.module.scss.js +36 -27
  55. package/dist/components/Button/index.cjs +20 -4
  56. package/dist/components/Button/index.d.ts +18 -10
  57. package/dist/components/Button/index.d.ts.map +1 -1
  58. package/dist/components/Button/index.js +20 -4
  59. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  60. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  61. package/dist/components/Card/Card.module.scss.cjs +31 -26
  62. package/dist/components/Card/Card.module.scss.js +32 -27
  63. package/dist/components/Card/index.cjs +16 -3
  64. package/dist/components/Card/index.d.ts +23 -15
  65. package/dist/components/Card/index.d.ts.map +1 -1
  66. package/dist/components/Card/index.js +16 -3
  67. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  68. package/dist/components/Chart/Chart.module.scss.js +15 -15
  69. package/dist/components/Chart/index.d.ts.map +1 -1
  70. package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
  71. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
  72. package/dist/components/Checkbox/index.cjs +4 -4
  73. package/dist/components/Checkbox/index.d.ts +4 -6
  74. package/dist/components/Checkbox/index.d.ts.map +1 -1
  75. package/dist/components/Checkbox/index.js +4 -4
  76. package/dist/components/Chip/Chip.module.scss.cjs +19 -19
  77. package/dist/components/Chip/Chip.module.scss.js +19 -19
  78. package/dist/components/Chip/index.cjs +3 -3
  79. package/dist/components/Chip/index.d.ts +8 -3
  80. package/dist/components/Chip/index.d.ts.map +1 -1
  81. package/dist/components/Chip/index.js +3 -3
  82. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +26 -23
  83. package/dist/components/CodeBlock/CodeBlock.module.scss.js +26 -23
  84. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  85. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  86. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  87. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  88. package/dist/components/CodeBlock/index.d.ts +20 -5
  89. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  90. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -9
  91. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
  92. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  93. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  94. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  95. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
  96. package/dist/components/Combobox/Combobox.module.scss.js +21 -21
  97. package/dist/components/Combobox/index.cjs +26 -6
  98. package/dist/components/Combobox/index.d.ts.map +1 -1
  99. package/dist/components/Combobox/index.js +26 -6
  100. package/dist/components/Command/Command.module.scss.cjs +14 -11
  101. package/dist/components/Command/Command.module.scss.js +14 -11
  102. package/dist/components/Command/index.cjs +28 -16
  103. package/dist/components/Command/index.d.ts +8 -3
  104. package/dist/components/Command/index.d.ts.map +1 -1
  105. package/dist/components/Command/index.js +28 -16
  106. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  107. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  108. package/dist/components/ConversationList/index.cjs +2 -2
  109. package/dist/components/ConversationList/index.js +2 -2
  110. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  111. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  112. package/dist/components/DataTable/DataTable.icons.js +6 -33
  113. package/dist/components/DataTable/DataTable.module.scss.cjs +31 -28
  114. package/dist/components/DataTable/DataTable.module.scss.js +31 -28
  115. package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
  116. package/dist/components/DataTable/index.d.ts.map +1 -1
  117. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  118. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  119. package/dist/components/DatePicker/index.d.ts.map +1 -1
  120. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  121. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  122. package/dist/components/Dialog/index.cjs +13 -16
  123. package/dist/components/Dialog/index.d.ts +11 -10
  124. package/dist/components/Dialog/index.d.ts.map +1 -1
  125. package/dist/components/Dialog/index.js +13 -16
  126. package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
  127. package/dist/components/Drawer/Drawer.module.scss.js +40 -40
  128. package/dist/components/Drawer/index.cjs +2 -2
  129. package/dist/components/Drawer/index.d.ts +5 -4
  130. package/dist/components/Drawer/index.d.ts.map +1 -1
  131. package/dist/components/Drawer/index.js +2 -2
  132. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  133. package/dist/components/Editor/Editor.module.scss.js +17 -17
  134. package/dist/components/Editor/index.d.ts +10 -10
  135. package/dist/components/Editor/index.d.ts.map +1 -1
  136. package/dist/components/EmptyState/EmptyState.module.scss.cjs +11 -8
  137. package/dist/components/EmptyState/EmptyState.module.scss.js +11 -8
  138. package/dist/components/EmptyState/index.cjs +13 -6
  139. package/dist/components/EmptyState/index.d.ts +13 -5
  140. package/dist/components/EmptyState/index.d.ts.map +1 -1
  141. package/dist/components/EmptyState/index.js +13 -6
  142. package/dist/components/Field/Field.module.scss.cjs +5 -5
  143. package/dist/components/Field/Field.module.scss.js +5 -5
  144. package/dist/components/Field/index.cjs +9 -1
  145. package/dist/components/Field/index.d.ts.map +1 -1
  146. package/dist/components/Field/index.js +9 -1
  147. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  148. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  149. package/dist/components/Grid/Grid.module.scss.cjs +54 -54
  150. package/dist/components/Grid/Grid.module.scss.js +54 -54
  151. package/dist/components/Grid/index.cjs +1 -1
  152. package/dist/components/Grid/index.js +1 -1
  153. package/dist/components/Header/Header.module.scss.cjs +33 -33
  154. package/dist/components/Header/Header.module.scss.js +33 -33
  155. package/dist/components/Header/index.cjs +17 -38
  156. package/dist/components/Header/index.d.ts +15 -11
  157. package/dist/components/Header/index.d.ts.map +1 -1
  158. package/dist/components/Header/index.js +17 -38
  159. package/dist/components/Icon/Icon.module.scss.cjs +30 -33
  160. package/dist/components/Icon/Icon.module.scss.js +30 -33
  161. package/dist/components/Icon/index.cjs +15 -14
  162. package/dist/components/Icon/index.d.ts +23 -12
  163. package/dist/components/Icon/index.d.ts.map +1 -1
  164. package/dist/components/Icon/index.js +15 -14
  165. package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
  166. package/dist/components/IconButton/IconButton.module.scss.js +12 -12
  167. package/dist/components/IconButton/index.cjs +2 -1
  168. package/dist/components/IconButton/index.d.ts +4 -4
  169. package/dist/components/IconButton/index.d.ts.map +1 -1
  170. package/dist/components/IconButton/index.js +2 -1
  171. package/dist/components/Image/Image.module.scss.cjs +27 -27
  172. package/dist/components/Image/Image.module.scss.js +27 -27
  173. package/dist/components/Input/Input.module.scss.cjs +15 -21
  174. package/dist/components/Input/Input.module.scss.js +15 -21
  175. package/dist/components/Input/index.cjs +2 -14
  176. package/dist/components/Input/index.d.ts +0 -2
  177. package/dist/components/Input/index.d.ts.map +1 -1
  178. package/dist/components/Input/index.js +2 -14
  179. package/dist/components/Link/Link.module.scss.cjs +26 -14
  180. package/dist/components/Link/Link.module.scss.js +26 -14
  181. package/dist/components/Link/index.cjs +13 -2
  182. package/dist/components/Link/index.d.ts +11 -4
  183. package/dist/components/Link/index.d.ts.map +1 -1
  184. package/dist/components/Link/index.js +13 -2
  185. package/dist/components/List/List.module.scss.cjs +23 -19
  186. package/dist/components/List/List.module.scss.js +23 -19
  187. package/dist/components/List/index.cjs +7 -7
  188. package/dist/components/List/index.d.ts +10 -7
  189. package/dist/components/List/index.d.ts.map +1 -1
  190. package/dist/components/List/index.js +7 -7
  191. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  192. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  193. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  194. package/dist/components/Loading/Loading.module.scss.js +34 -34
  195. package/dist/components/Loading/index.cjs +5 -5
  196. package/dist/components/Loading/index.d.ts +8 -7
  197. package/dist/components/Loading/index.d.ts.map +1 -1
  198. package/dist/components/Loading/index.js +5 -5
  199. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  200. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  201. package/dist/components/Markdown/index.d.ts +2 -2
  202. package/dist/components/Markdown/index.d.ts.map +1 -1
  203. package/dist/components/Menu/Menu.module.scss.cjs +14 -14
  204. package/dist/components/Menu/Menu.module.scss.js +14 -14
  205. package/dist/components/Message/Message.module.scss.cjs +20 -20
  206. package/dist/components/Message/Message.module.scss.js +20 -20
  207. package/dist/components/Message/index.cjs +1 -1
  208. package/dist/components/Message/index.d.ts +1 -1
  209. package/dist/components/Message/index.js +1 -1
  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 +10 -10
  217. package/dist/components/Pagination/Pagination.module.scss.js +10 -10
  218. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  219. package/dist/components/Popover/Popover.module.scss.js +10 -10
  220. package/dist/components/Progress/Progress.module.scss.cjs +28 -25
  221. package/dist/components/Progress/Progress.module.scss.js +28 -25
  222. package/dist/components/Progress/index.cjs +21 -12
  223. package/dist/components/Progress/index.d.ts +10 -6
  224. package/dist/components/Progress/index.d.ts.map +1 -1
  225. package/dist/components/Progress/index.js +21 -12
  226. package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
  227. package/dist/components/Prompt/Prompt.module.scss.js +30 -30
  228. package/dist/components/Prompt/index.cjs +7 -7
  229. package/dist/components/Prompt/index.d.ts +11 -9
  230. package/dist/components/Prompt/index.d.ts.map +1 -1
  231. package/dist/components/Prompt/index.js +7 -7
  232. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
  233. package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
  234. package/dist/components/RadioGroup/index.cjs +10 -5
  235. package/dist/components/RadioGroup/index.d.ts +11 -7
  236. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  237. package/dist/components/RadioGroup/index.js +10 -5
  238. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
  239. package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
  240. package/dist/components/ScrollArea/index.d.ts +4 -4
  241. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  242. package/dist/components/ScrollArea/scroll-state.d.ts +5 -5
  243. package/dist/components/Select/Select.module.scss.cjs +21 -21
  244. package/dist/components/Select/Select.module.scss.js +21 -21
  245. package/dist/components/Select/index.cjs +26 -20
  246. package/dist/components/Select/index.d.ts +5 -5
  247. package/dist/components/Select/index.d.ts.map +1 -1
  248. package/dist/components/Select/index.js +26 -20
  249. package/dist/components/Separator/Separator.module.scss.cjs +25 -19
  250. package/dist/components/Separator/Separator.module.scss.js +25 -19
  251. package/dist/components/Separator/index.cjs +10 -8
  252. package/dist/components/Separator/index.d.ts +4 -2
  253. package/dist/components/Separator/index.d.ts.map +1 -1
  254. package/dist/components/Separator/index.js +10 -8
  255. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  256. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  257. package/dist/components/Sidebar/index.cjs +15 -38
  258. package/dist/components/Sidebar/index.d.ts +19 -19
  259. package/dist/components/Sidebar/index.d.ts.map +1 -1
  260. package/dist/components/Sidebar/index.js +15 -38
  261. package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
  262. package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
  263. package/dist/components/Skeleton/index.cjs +7 -7
  264. package/dist/components/Skeleton/index.d.ts +8 -7
  265. package/dist/components/Skeleton/index.d.ts.map +1 -1
  266. package/dist/components/Skeleton/index.js +7 -7
  267. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  268. package/dist/components/Slider/Slider.module.scss.js +12 -12
  269. package/dist/components/Stack/Stack.module.scss.cjs +25 -25
  270. package/dist/components/Stack/Stack.module.scss.js +25 -25
  271. package/dist/components/Stack/index.cjs +1 -1
  272. package/dist/components/Stack/index.js +1 -1
  273. package/dist/components/Switch/Switch.module.scss.cjs +9 -9
  274. package/dist/components/Switch/Switch.module.scss.js +9 -9
  275. package/dist/components/Table/Table.module.scss.cjs +19 -19
  276. package/dist/components/Table/Table.module.scss.js +19 -19
  277. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  278. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  279. package/dist/components/TableOfContents/index.cjs +14 -10
  280. package/dist/components/TableOfContents/index.d.ts +5 -3
  281. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  282. package/dist/components/TableOfContents/index.js +14 -10
  283. package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
  284. package/dist/components/Tabs/Tabs.module.scss.js +18 -18
  285. package/dist/components/Tabs/index.cjs +30 -11
  286. package/dist/components/Tabs/index.d.ts +8 -6
  287. package/dist/components/Tabs/index.d.ts.map +1 -1
  288. package/dist/components/Tabs/index.js +30 -11
  289. package/dist/components/Text/Text.module.scss.cjs +109 -97
  290. package/dist/components/Text/Text.module.scss.js +109 -97
  291. package/dist/components/Text/index.cjs +45 -41
  292. package/dist/components/Text/index.d.ts +24 -19
  293. package/dist/components/Text/index.d.ts.map +1 -1
  294. package/dist/components/Text/index.js +45 -41
  295. package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
  296. package/dist/components/Textarea/Textarea.module.scss.js +22 -28
  297. package/dist/components/Textarea/index.cjs +3 -10
  298. package/dist/components/Textarea/index.d.ts +0 -2
  299. package/dist/components/Textarea/index.d.ts.map +1 -1
  300. package/dist/components/Textarea/index.js +3 -10
  301. package/dist/components/Theme/index.cjs +22 -5
  302. package/dist/components/Theme/index.d.ts +6 -12
  303. package/dist/components/Theme/index.d.ts.map +1 -1
  304. package/dist/components/Theme/index.js +22 -5
  305. package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
  306. package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
  307. package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
  308. package/dist/components/ThemeToggle/ThemeButton.js +34 -0
  309. package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -6
  310. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -6
  311. package/dist/components/ThemeToggle/icons.cjs +48 -0
  312. package/dist/components/ThemeToggle/icons.d.ts +10 -0
  313. package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
  314. package/dist/components/ThemeToggle/icons.js +48 -0
  315. package/dist/components/ThemeToggle/index.cjs +6 -50
  316. package/dist/components/ThemeToggle/index.d.ts +5 -3
  317. package/dist/components/ThemeToggle/index.d.ts.map +1 -1
  318. package/dist/components/ThemeToggle/index.js +3 -47
  319. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
  320. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
  321. package/dist/components/ThinkingIndicator/index.cjs +7 -8
  322. package/dist/components/ThinkingIndicator/index.d.ts +6 -5
  323. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  324. package/dist/components/ThinkingIndicator/index.js +7 -8
  325. package/dist/components/Toast/Toast.module.scss.cjs +28 -29
  326. package/dist/components/Toast/Toast.module.scss.js +29 -30
  327. package/dist/components/Toast/index.cjs +28 -30
  328. package/dist/components/Toast/index.d.ts +9 -8
  329. package/dist/components/Toast/index.d.ts.map +1 -1
  330. package/dist/components/Toast/index.js +28 -30
  331. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
  332. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
  333. package/dist/components/ToggleGroup/index.cjs +4 -5
  334. package/dist/components/ToggleGroup/index.d.ts +7 -6
  335. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  336. package/dist/components/ToggleGroup/index.js +4 -5
  337. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  338. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  339. package/dist/components/Tooltip/index.cjs +24 -40
  340. package/dist/components/Tooltip/index.d.ts +4 -4
  341. package/dist/components/Tooltip/index.d.ts.map +1 -1
  342. package/dist/components/Tooltip/index.js +24 -40
  343. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  344. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  345. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  346. package/dist/data-table-virtual.cjs +3 -2
  347. package/dist/data-table-virtual.js +3 -2
  348. package/dist/data-table.cjs +3 -2
  349. package/dist/data-table.js +3 -2
  350. package/dist/datepicker.cjs +26 -13
  351. package/dist/datepicker.js +26 -13
  352. package/dist/editor.cjs +68 -28
  353. package/dist/editor.js +68 -28
  354. package/dist/index.cjs +6 -2
  355. package/dist/index.d.ts +9 -9
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +8 -4
  358. package/dist/markdown.cjs +21 -29
  359. package/dist/markdown.js +21 -29
  360. package/dist/measurements/generated.cjs +46 -94
  361. package/dist/measurements/generated.d.ts +44 -92
  362. package/dist/measurements/generated.d.ts.map +1 -1
  363. package/dist/measurements/generated.js +46 -94
  364. package/dist/measurements/index.d.ts +1 -1
  365. package/dist/measurements/index.d.ts.map +1 -1
  366. package/dist/utils/a11y.cjs +5 -2
  367. package/dist/utils/a11y.d.ts +5 -5
  368. package/dist/utils/a11y.d.ts.map +1 -1
  369. package/dist/utils/a11y.js +5 -2
  370. package/dist/utils/canonical-stamp.cjs +2 -8
  371. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  372. package/dist/utils/canonical-stamp.js +1 -7
  373. package/dist/utils/css-warning.cjs +1 -1
  374. package/dist/utils/css-warning.js +1 -1
  375. package/dist/utils/env.cjs +17 -0
  376. package/dist/utils/env.d.ts +3 -0
  377. package/dist/utils/env.d.ts.map +1 -0
  378. package/dist/utils/env.js +17 -0
  379. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  380. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  381. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  382. package/dist/utils/keyboard-shortcuts.js +3 -10
  383. package/dist/utils/seed-derivation.cjs +10 -7
  384. package/dist/utils/seed-derivation.d.ts +1 -3
  385. package/dist/utils/seed-derivation.d.ts.map +1 -1
  386. package/dist/utils/seed-derivation.js +10 -7
  387. package/dist/utils/theme-presets.cjs +5 -10
  388. package/dist/utils/theme-presets.d.ts +1 -2
  389. package/dist/utils/theme-presets.d.ts.map +1 -1
  390. package/dist/utils/theme-presets.js +5 -10
  391. package/fragments.json +1 -1
  392. package/package.json +9 -10
  393. package/src/assets/fragments-logo.tsx +2 -2
  394. package/src/assets/fragments-wordmark.tsx +4 -2
  395. package/src/assets/nav-glyph.module.scss +166 -0
  396. package/src/assets/nav-glyph.tsx +188 -0
  397. package/src/components/Accordion/Accordion.contract.json +24 -48
  398. package/src/components/Accordion/Accordion.module.scss +5 -3
  399. package/src/components/Alert/Alert.contract.json +49 -65
  400. package/src/components/Alert/Alert.module.scss +57 -47
  401. package/src/components/Alert/index.tsx +72 -39
  402. package/src/components/AppShell/AppShell.contract.json +34 -51
  403. package/src/components/AppShell/AppShell.module.scss +99 -54
  404. package/src/components/AppShell/index.tsx +2 -2
  405. package/src/components/Avatar/Avatar.contract.json +31 -48
  406. package/src/components/Avatar/Avatar.module.scss +4 -2
  407. package/src/components/Badge/Badge.contract.json +86 -55
  408. package/src/components/Badge/Badge.module.scss +80 -48
  409. package/src/components/Badge/index.tsx +34 -17
  410. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  411. package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
  412. package/src/components/Box/Box.contract.json +40 -148
  413. package/src/components/Box/Box.module.scss +7 -6
  414. package/src/components/Box/index.tsx +92 -99
  415. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  416. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +27 -12
  417. package/src/components/Breadcrumbs/index.tsx +5 -1
  418. package/src/components/Button/Button.module.scss +261 -185
  419. package/src/components/Button/index.tsx +41 -28
  420. package/src/components/ButtonGroup/ButtonGroup.contract.json +34 -49
  421. package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
  422. package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
  423. package/src/components/Card/Card.module.scss +97 -76
  424. package/src/components/Card/index.tsx +44 -20
  425. package/src/components/Chart/Chart.contract.json +21 -29
  426. package/src/components/Chart/Chart.module.scss +6 -5
  427. package/src/components/Chart/index.tsx +36 -6
  428. package/src/components/Checkbox/Checkbox.contract.json +28 -27
  429. package/src/components/Checkbox/Checkbox.module.scss +47 -54
  430. package/src/components/Checkbox/index.tsx +10 -10
  431. package/src/components/Chip/Chip.contract.json +38 -45
  432. package/src/components/Chip/Chip.module.scss +24 -23
  433. package/src/components/Chip/index.tsx +12 -7
  434. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  435. package/src/components/CodeBlock/CodeBlock.module.scss +75 -73
  436. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  437. package/src/components/CodeBlock/index.tsx +114 -51
  438. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  439. package/src/components/Collapsible/Collapsible.module.scss +1 -7
  440. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  441. package/src/components/ColorPicker/ColorPicker.module.scss +34 -24
  442. package/src/components/ColorPicker/index.tsx +6 -1
  443. package/src/components/Combobox/Combobox.contract.json +36 -37
  444. package/src/components/Combobox/Combobox.module.scss +16 -19
  445. package/src/components/Combobox/index.tsx +41 -6
  446. package/src/components/Command/Command.contract.json +28 -44
  447. package/src/components/Command/Command.module.scss +19 -21
  448. package/src/components/Command/index.tsx +64 -47
  449. package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
  450. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  451. package/src/components/ConversationList/ConversationList.module.scss +2 -3
  452. package/src/components/ConversationList/index.tsx +2 -2
  453. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  454. package/src/components/DataTable/DataTable.module.scss +24 -17
  455. package/src/components/DataTable/DataTable.virtual.tsx +3 -2
  456. package/src/components/DataTable/index.tsx +9 -8
  457. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  458. package/src/components/DatePicker/DatePicker.module.scss +41 -44
  459. package/src/components/DatePicker/index.tsx +23 -9
  460. package/src/components/Dialog/Dialog.module.scss +26 -32
  461. package/src/components/Dialog/index.tsx +51 -39
  462. package/src/components/Drawer/Drawer.contract.json +28 -42
  463. package/src/components/Drawer/Drawer.module.scss +123 -64
  464. package/src/components/Drawer/index.tsx +7 -5
  465. package/src/components/Editor/Editor.contract.json +32 -49
  466. package/src/components/Editor/Editor.module.scss +60 -25
  467. package/src/components/Editor/index.tsx +240 -179
  468. package/src/components/EmptyState/EmptyState.contract.json +33 -45
  469. package/src/components/EmptyState/EmptyState.module.scss +37 -21
  470. package/src/components/EmptyState/index.tsx +56 -23
  471. package/src/components/Field/Field.contract.json +28 -46
  472. package/src/components/Field/Field.module.scss +2 -1
  473. package/src/components/Field/index.tsx +5 -1
  474. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  475. package/src/components/Fieldset/Fieldset.module.scss +15 -7
  476. package/src/components/Form/Form.contract.json +23 -23
  477. package/src/components/Grid/Grid.contract.json +28 -64
  478. package/src/components/Grid/Grid.module.scss +2 -2
  479. package/src/components/Grid/index.tsx +10 -10
  480. package/src/components/Header/Header.contract.json +31 -67
  481. package/src/components/Header/Header.module.scss +57 -54
  482. package/src/components/Header/index.tsx +134 -122
  483. package/src/components/Icon/Icon.contract.json +37 -81
  484. package/src/components/Icon/Icon.module.scss +13 -12
  485. package/src/components/Icon/index.tsx +31 -31
  486. package/src/components/IconButton/IconButton.contract.json +37 -21
  487. package/src/components/IconButton/IconButton.module.scss +19 -11
  488. package/src/components/IconButton/index.tsx +6 -5
  489. package/src/components/Image/Image.contract.json +23 -56
  490. package/src/components/Input/Input.contract.json +25 -44
  491. package/src/components/Input/Input.module.scss +6 -55
  492. package/src/components/Input/index.tsx +2 -18
  493. package/src/components/Link/Link.contract.json +46 -58
  494. package/src/components/Link/Link.module.scss +41 -10
  495. package/src/components/Link/index.tsx +27 -6
  496. package/src/components/List/List.contract.json +33 -62
  497. package/src/components/List/List.module.scss +10 -5
  498. package/src/components/List/index.tsx +17 -13
  499. package/src/components/Listbox/Listbox.contract.json +21 -37
  500. package/src/components/Listbox/Listbox.module.scss +14 -20
  501. package/src/components/Loading/Loading.contract.json +41 -65
  502. package/src/components/Loading/Loading.module.scss +37 -31
  503. package/src/components/Loading/index.tsx +15 -14
  504. package/src/components/Main/Main.contract.json +17 -9
  505. package/src/components/Markdown/Markdown.contract.json +22 -43
  506. package/src/components/Markdown/Markdown.module.scss +45 -6
  507. package/src/components/Markdown/index.tsx +48 -49
  508. package/src/components/Menu/Menu.contract.json +30 -46
  509. package/src/components/Menu/Menu.module.scss +32 -16
  510. package/src/components/Message/Message.contract.json +31 -54
  511. package/src/components/Message/Message.module.scss +18 -9
  512. package/src/components/Message/index.tsx +2 -2
  513. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  514. package/src/components/NavigationMenu/NavigationMenu.module.scss +66 -66
  515. package/src/components/NavigationMenu/index.tsx +105 -81
  516. package/src/components/Pagination/Pagination.contract.json +22 -40
  517. package/src/components/Pagination/Pagination.module.scss +9 -16
  518. package/src/components/Popover/Popover.contract.json +28 -50
  519. package/src/components/Popover/Popover.module.scss +30 -28
  520. package/src/components/Progress/Progress.contract.json +39 -35
  521. package/src/components/Progress/Progress.module.scss +16 -10
  522. package/src/components/Progress/index.tsx +34 -16
  523. package/src/components/Prompt/Prompt.contract.json +40 -56
  524. package/src/components/Prompt/Prompt.module.scss +49 -48
  525. package/src/components/Prompt/index.tsx +17 -15
  526. package/src/components/RadioGroup/RadioGroup.contract.json +29 -28
  527. package/src/components/RadioGroup/RadioGroup.module.scss +50 -45
  528. package/src/components/RadioGroup/index.tsx +23 -10
  529. package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
  530. package/src/components/ScrollArea/ScrollArea.module.scss +45 -48
  531. package/src/components/ScrollArea/index.tsx +16 -16
  532. package/src/components/ScrollArea/scroll-state.ts +24 -24
  533. package/src/components/Select/Select.module.scss +20 -19
  534. package/src/components/Select/index.tsx +26 -24
  535. package/src/components/Separator/Separator.contract.json +29 -53
  536. package/src/components/Separator/Separator.module.scss +24 -40
  537. package/src/components/Separator/index.tsx +16 -11
  538. package/src/components/Sidebar/Sidebar.contract.json +35 -67
  539. package/src/components/Sidebar/Sidebar.module.scss +94 -88
  540. package/src/components/Sidebar/index.tsx +167 -167
  541. package/src/components/Skeleton/Skeleton.contract.json +34 -60
  542. package/src/components/Skeleton/Skeleton.module.scss +50 -26
  543. package/src/components/Skeleton/index.tsx +16 -15
  544. package/src/components/Slider/Slider.contract.json +27 -39
  545. package/src/components/Slider/Slider.module.scss +9 -22
  546. package/src/components/Stack/Stack.contract.json +30 -57
  547. package/src/components/Stack/Stack.module.scss +26 -24
  548. package/src/components/Stack/index.tsx +3 -3
  549. package/src/components/Switch/Switch.contract.json +33 -46
  550. package/src/components/Switch/Switch.module.scss +106 -59
  551. package/src/components/Table/Table.contract.json +28 -46
  552. package/src/components/Table/Table.module.scss +24 -16
  553. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  554. package/src/components/TableOfContents/TableOfContents.module.scss +17 -13
  555. package/src/components/TableOfContents/index.tsx +27 -10
  556. package/src/components/Tabs/Tabs.contract.json +35 -56
  557. package/src/components/Tabs/Tabs.module.scss +27 -31
  558. package/src/components/Tabs/index.tsx +30 -15
  559. package/src/components/Text/Text.contract.json +52 -72
  560. package/src/components/Text/Text.module.scss +34 -18
  561. package/src/components/Text/index.tsx +123 -83
  562. package/src/components/Textarea/Textarea.contract.json +24 -55
  563. package/src/components/Textarea/Textarea.module.scss +22 -52
  564. package/src/components/Textarea/index.tsx +3 -14
  565. package/src/components/Theme/Theme.contract.json +35 -53
  566. package/src/components/Theme/index.tsx +41 -13
  567. package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
  568. package/src/components/ThemeToggle/ThemeToggle.module.scss +20 -27
  569. package/src/components/ThemeToggle/icons.tsx +46 -0
  570. package/src/components/ThemeToggle/index.tsx +9 -55
  571. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +34 -50
  572. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
  573. package/src/components/ThinkingIndicator/index.tsx +12 -14
  574. package/src/components/Toast/Toast.contract.json +55 -49
  575. package/src/components/Toast/Toast.module.scss +50 -105
  576. package/src/components/Toast/index.tsx +39 -34
  577. package/src/components/ToggleGroup/ToggleGroup.contract.json +39 -40
  578. package/src/components/ToggleGroup/ToggleGroup.module.scss +30 -27
  579. package/src/components/ToggleGroup/index.tsx +11 -11
  580. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  581. package/src/components/Tooltip/Tooltip.module.scss +16 -10
  582. package/src/components/Tooltip/index.tsx +19 -24
  583. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  584. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
  585. package/src/components/VisuallyHidden/index.tsx +5 -5
  586. package/src/index.ts +16 -12
  587. package/src/measurements/MeasurementTargets.module.scss +6 -7
  588. package/src/measurements/generated.ts +46 -97
  589. package/src/measurements/index.ts +0 -1
  590. package/src/measurements/measurements.json +44 -116
  591. package/src/recipes/_action.scss +4 -4
  592. package/src/recipes/_boolean-range.scss +12 -16
  593. package/src/recipes/_feedback.scss +17 -16
  594. package/src/recipes/_field.scss +28 -16
  595. package/src/recipes/_layout.scss +14 -7
  596. package/src/recipes/_navigation.scss +84 -29
  597. package/src/recipes/_overlay.scss +143 -43
  598. package/src/recipes/_popup.scss +54 -34
  599. package/src/recipes/_prose.scss +48 -28
  600. package/src/recipes/_representation.scss +10 -9
  601. package/src/recipes/_segmented.scss +1 -1
  602. package/src/recipes/_table-chrome.scss +42 -17
  603. package/src/recipes/_target.scss +2 -4
  604. package/src/recipes/_typography.scss +10 -0
  605. package/src/scss.d.ts +1 -1
  606. package/src/styles/globals.scss +31 -25
  607. package/src/tokens/_component-properties.scss +19 -1
  608. package/src/tokens/_computed.scss +32 -49
  609. package/src/tokens/_derive.scss +112 -210
  610. package/src/tokens/_measurements.catalog.generated.css +62 -44
  611. package/src/tokens/_measurements.generated.scss +119 -249
  612. package/src/tokens/_mixins.scss +49 -48
  613. package/src/tokens/_palettes.scss +39 -167
  614. package/src/tokens/_property-registrations.scss +9 -0
  615. package/src/tokens/_seeds.scss +20 -31
  616. package/src/tokens/_variables.scss +251 -94
  617. package/src/utils/a11y.tsx +69 -69
  618. package/src/utils/aria.ts +3 -3
  619. package/src/utils/canonical-stamp.ts +2 -12
  620. package/src/utils/css-warning.ts +7 -7
  621. package/src/utils/env.ts +25 -0
  622. package/src/utils/keyboard-shortcuts.ts +131 -126
  623. package/src/utils/seed-derivation.ts +11 -14
  624. package/src/utils/theme-presets.ts +5 -12
  625. package/dist/blocks/AccountSettings.block.d.ts +0 -3
  626. package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
  627. package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
  628. package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
  629. package/dist/blocks/BlogEditor.block.d.ts +0 -3
  630. package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
  631. package/dist/blocks/ChatInterface.block.d.ts +0 -3
  632. package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
  633. package/dist/blocks/ChatMessages.block.d.ts +0 -3
  634. package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
  635. package/dist/blocks/CheckoutForm.block.d.ts +0 -3
  636. package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
  637. package/dist/blocks/CommandPalette.block.d.ts +0 -3
  638. package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
  639. package/dist/blocks/ContactForm.block.d.ts +0 -3
  640. package/dist/blocks/ContactForm.block.d.ts.map +0 -1
  641. package/dist/blocks/DashboardPage.block.d.ts +0 -3
  642. package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
  643. package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
  644. package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
  645. package/dist/blocks/DataTable.block.d.ts +0 -3
  646. package/dist/blocks/DataTable.block.d.ts.map +0 -1
  647. package/dist/blocks/EmptyState.block.d.ts +0 -3
  648. package/dist/blocks/EmptyState.block.d.ts.map +0 -1
  649. package/dist/blocks/FAQSection.block.d.ts +0 -3
  650. package/dist/blocks/FAQSection.block.d.ts.map +0 -1
  651. package/dist/blocks/FeatureGrid.block.d.ts +0 -3
  652. package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
  653. package/dist/blocks/HeroSection.block.d.ts +0 -3
  654. package/dist/blocks/HeroSection.block.d.ts.map +0 -1
  655. package/dist/blocks/NavigationHeader.block.d.ts +0 -3
  656. package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
  657. package/dist/blocks/PaginatedTable.block.d.ts +0 -3
  658. package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
  659. package/dist/blocks/PricingComparison.block.d.ts +0 -3
  660. package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
  661. package/dist/blocks/ProductCard.block.d.ts +0 -3
  662. package/dist/blocks/ProductCard.block.d.ts.map +0 -1
  663. package/dist/blocks/RegistrationForm.block.d.ts +0 -3
  664. package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
  665. package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
  666. package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
  667. package/dist/blocks/SettingsPanel.block.d.ts +0 -3
  668. package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
  669. package/dist/blocks/ShoppingCart.block.d.ts +0 -3
  670. package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
  671. package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
  672. package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
  673. package/dist/blocks/TableSkeleton.block.d.ts +0 -3
  674. package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
  675. package/dist/blocks/ThinkingStates.block.d.ts +0 -3
  676. package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
  677. package/dist/components/Toggle/index.d.ts +0 -3
  678. package/dist/components/Toggle/index.d.ts.map +0 -1
  679. package/src/components/Button/Button.contract.json +0 -218
  680. package/src/components/Card/Card.contract.json +0 -175
  681. package/src/components/DataTable/DataTable.contract.json +0 -302
  682. package/src/components/Dialog/Dialog.contract.json +0 -159
  683. package/src/components/Select/Select.contract.json +0 -259
  684. package/src/components/Toggle/index.ts +0 -7
  685. package/src/tokens/_density.scss +0 -85
@@ -1,4 +1,6 @@
1
1
  @use "../../tokens/variables" as *;
2
+ @use "../../tokens/mixins" as *;
3
+ @use "../../tokens/measurements.generated" as measurements;
2
4
  @use "../../recipes/action" as action;
3
5
  @use "../../recipes/field" as field;
4
6
  @use "../../recipes/popup" as popup;
@@ -10,6 +12,16 @@
10
12
  display: flex;
11
13
  flex-direction: column;
12
14
  overflow: hidden;
15
+ @include high-contrast-outline;
16
+ }
17
+
18
+ // Hosted: the surrounding surface is the frame; the pick list keeps only its
19
+ // own inset.
20
+ .hosted {
21
+ background: transparent;
22
+ border: 0;
23
+ border-radius: var(--fui-raw-space-0, #{measurements.raw-space(0)});
24
+ box-shadow: none;
13
25
  }
14
26
 
15
27
  .inputWrapper {
@@ -18,8 +30,8 @@
18
30
 
19
31
  display: flex;
20
32
  align-items: center;
21
- gap: var(--fui-popup-row-content-gap);
22
- margin-block-end: var(--fui-popup-container-inset);
33
+ gap: var(--fui-popup-row-content-gap, var(--fui-raw-space-8, #{measurements.raw-space(8)}));
34
+ margin-block-end: var(--fui-popup-container-inset, var(--fui-raw-space-4, #{measurements.raw-space(4)}));
23
35
 
24
36
  &:focus-within {
25
37
  @include field.focus-state;
@@ -36,7 +48,7 @@
36
48
  .input {
37
49
  flex: 1;
38
50
  min-inline-size: 0;
39
- padding: 0;
51
+ padding: var(--fui-raw-space-0, #{measurements.raw-space(0)});
40
52
  border: none;
41
53
  outline: none;
42
54
  color: var(--fui-text-primary, $fui-text-primary);
@@ -69,8 +81,8 @@
69
81
  }
70
82
 
71
83
  > svg {
72
- inline-size: var(--fui-popup-indicator-box);
73
- block-size: var(--fui-popup-indicator-box);
84
+ inline-size: var(--fui-popup-indicator-box, var(--fui-raw-space-16, #{measurements.raw-space(16)}));
85
+ block-size: var(--fui-popup-indicator-box, var(--fui-raw-space-16, #{measurements.raw-space(16)}));
74
86
  flex: 0 0 auto;
75
87
  }
76
88
  }
@@ -97,8 +109,8 @@
97
109
  .empty {
98
110
  @include typography.role("body-compact");
99
111
 
100
- padding-block: var(--fui-popup-row-block-inset);
101
- padding-inline: var(--fui-popup-row-inline-inset);
112
+ padding-block: var(--fui-popup-row-block-inset, var(--fui-raw-space-8, #{measurements.raw-space(8)}));
113
+ padding-inline: var(--fui-popup-row-inline-inset, var(--fui-raw-space-8, #{measurements.raw-space(8)}));
102
114
  color: var(--fui-text-secondary, $fui-text-secondary);
103
115
  text-align: center;
104
116
  }
@@ -106,17 +118,3 @@
106
118
  .separator {
107
119
  @include popup.group-separator;
108
120
  }
109
-
110
- @media (prefers-contrast: more) {
111
- .command {
112
- border-color: var(--fui-text-primary, $fui-text-primary);
113
- outline: var(--fui-stroke-hairline, 1px) solid var(--fui-text-primary, $fui-text-primary);
114
- outline-offset: calc(-1 * var(--fui-stroke-default, 2px));
115
- }
116
-
117
- .itemActive {
118
- outline: var(--fui-focus-ring-width, $fui-focus-ring-width) solid
119
- var(--fui-color-accent, $fui-color-accent);
120
- outline-offset: calc(-1 * var(--fui-focus-ring-width, $fui-focus-ring-width));
121
- }
122
- }
@@ -1,7 +1,7 @@
1
- 'use client';
1
+ "use client";
2
2
 
3
- import * as React from 'react';
4
- import styles from './Command.module.scss';
3
+ import * as React from "react";
4
+ import styles from "./Command.module.scss";
5
5
 
6
6
  // ============================================
7
7
  // Types
@@ -20,6 +20,11 @@ export interface CommandProps extends React.HTMLAttributes<HTMLDivElement> {
20
20
  filter?: (value: string, search: string, keywords?: string[]) => number;
21
21
  /** Whether to loop keyboard navigation. Default: true */
22
22
  loop?: boolean;
23
+ /**
24
+ * The Command sits inside another surface (a Popover, a Dialog) that draws
25
+ * the frame, so it draws none of its own.
26
+ */
27
+ hosted?: boolean;
23
28
  }
24
29
 
25
30
  export interface CommandInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
@@ -30,7 +35,7 @@ export interface CommandListProps extends React.HTMLAttributes<HTMLDivElement> {
30
35
  children: React.ReactNode;
31
36
  }
32
37
 
33
- export interface CommandItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
38
+ export interface CommandItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
34
39
  children: React.ReactNode;
35
40
  /** Value used for filtering (falls back to text content) */
36
41
  value?: string;
@@ -78,13 +83,13 @@ function defaultFilter(value: string, search: string, keywords?: string[]): numb
78
83
  }
79
84
 
80
85
  function getTextContent(node: React.ReactNode): string {
81
- if (typeof node === 'string' || typeof node === 'number') return String(node);
82
- if (Array.isArray(node)) return node.map(getTextContent).join(' ');
86
+ if (typeof node === "string" || typeof node === "number") return String(node);
87
+ if (Array.isArray(node)) return node.map(getTextContent).join(" ");
83
88
  if (React.isValidElement(node)) {
84
89
  const childProps = node.props as { children?: React.ReactNode };
85
90
  return getTextContent(childProps.children);
86
91
  }
87
- return '';
92
+ return "";
88
93
  }
89
94
 
90
95
  // ============================================
@@ -115,7 +120,7 @@ const CommandContext = React.createContext<CommandContextValue | null>(null);
115
120
 
116
121
  function useCommandContext() {
117
122
  const ctx = React.useContext(CommandContext);
118
- if (!ctx) throw new Error('Command sub-components must be used within <Command>');
123
+ if (!ctx) throw new Error("Command sub-components must be used within <Command>");
119
124
  return ctx;
120
125
  }
121
126
 
@@ -150,10 +155,11 @@ function SearchIcon() {
150
155
  function CommandRoot({
151
156
  children,
152
157
  search: controlledSearch,
153
- defaultSearch = '',
158
+ defaultSearch = "",
154
159
  onSearchChange,
155
160
  filter = defaultFilter,
156
161
  loop = true,
162
+ hosted = false,
157
163
  className,
158
164
  ...htmlProps
159
165
  }: CommandProps) {
@@ -231,14 +237,25 @@ function CommandRoot({
231
237
  visibleCount,
232
238
  listId,
233
239
  }),
234
- [search, setSearch, filter, scores, registerItem, unregisterItem, activeId, loop, visibleCount, listId]
240
+ [
241
+ search,
242
+ setSearch,
243
+ filter,
244
+ scores,
245
+ registerItem,
246
+ unregisterItem,
247
+ activeId,
248
+ loop,
249
+ visibleCount,
250
+ listId,
251
+ ]
235
252
  );
236
253
 
237
254
  return (
238
255
  <CommandContext.Provider value={contextValue}>
239
256
  <div
240
257
  {...htmlProps}
241
- className={[styles.command, className].filter(Boolean).join(' ')}
258
+ className={[styles.command, hosted && styles.hosted, className].filter(Boolean).join(" ")}
242
259
  role="search"
243
260
  >
244
261
  {children}
@@ -247,12 +264,7 @@ function CommandRoot({
247
264
  );
248
265
  }
249
266
 
250
- function CommandInput({
251
- className,
252
- onChange,
253
- onKeyDown,
254
- ...htmlProps
255
- }: CommandInputProps) {
267
+ function CommandInput({ className, onChange, onKeyDown, ...htmlProps }: CommandInputProps) {
256
268
  const { search, setSearch, listRef, setActiveId, activeId, loop, listId } = useCommandContext();
257
269
  const inputRef = React.useRef<HTMLInputElement>(null);
258
270
 
@@ -261,7 +273,7 @@ function CommandInput({
261
273
  if (!list) return [];
262
274
  return Array.from(
263
275
  list.querySelectorAll<HTMLElement>('[data-command-item]:not([data-disabled="true"])')
264
- ).filter((el) => el.style.display !== 'none');
276
+ ).filter((el) => el.style.display !== "none");
265
277
  }, [listRef]);
266
278
 
267
279
  const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {
@@ -270,45 +282,48 @@ function CommandInput({
270
282
 
271
283
  const items = getEnabledItems();
272
284
  if (items.length === 0) return;
285
+ const firstItem = items[0];
286
+ const lastItem = items.at(-1);
287
+ if (!firstItem || !lastItem) return;
273
288
 
274
- const currentIndex = activeId
275
- ? items.findIndex((item) => item.id === activeId)
276
- : -1;
289
+ const currentIndex = activeId ? items.findIndex((item) => item.id === activeId) : -1;
277
290
 
278
291
  switch (event.key) {
279
- case 'ArrowDown': {
292
+ case "ArrowDown": {
280
293
  event.preventDefault();
281
294
  if (currentIndex < 0) {
282
- setActiveId(items[0].id);
295
+ setActiveId(firstItem.id);
283
296
  } else if (currentIndex < items.length - 1) {
284
- setActiveId(items[currentIndex + 1].id);
297
+ const nextItem = items[currentIndex + 1];
298
+ if (nextItem) setActiveId(nextItem.id);
285
299
  } else if (loop) {
286
- setActiveId(items[0].id);
300
+ setActiveId(firstItem.id);
287
301
  }
288
302
  break;
289
303
  }
290
- case 'ArrowUp': {
304
+ case "ArrowUp": {
291
305
  event.preventDefault();
292
306
  if (currentIndex < 0) {
293
- setActiveId(items[items.length - 1].id);
307
+ setActiveId(lastItem.id);
294
308
  } else if (currentIndex > 0) {
295
- setActiveId(items[currentIndex - 1].id);
309
+ const previousItem = items[currentIndex - 1];
310
+ if (previousItem) setActiveId(previousItem.id);
296
311
  } else if (loop) {
297
- setActiveId(items[items.length - 1].id);
312
+ setActiveId(lastItem.id);
298
313
  }
299
314
  break;
300
315
  }
301
- case 'Home': {
316
+ case "Home": {
302
317
  event.preventDefault();
303
- setActiveId(items[0].id);
318
+ setActiveId(firstItem.id);
304
319
  break;
305
320
  }
306
- case 'End': {
321
+ case "End": {
307
322
  event.preventDefault();
308
- setActiveId(items[items.length - 1].id);
323
+ setActiveId(lastItem.id);
309
324
  break;
310
325
  }
311
- case 'Enter': {
326
+ case "Enter": {
312
327
  event.preventDefault();
313
328
  if (activeId) {
314
329
  const activeItem = items.find((item) => item.id === activeId);
@@ -343,7 +358,7 @@ function CommandInput({
343
358
  setSearch(e.target.value);
344
359
  }}
345
360
  onKeyDown={handleKeyDown}
346
- className={[styles.input, className].filter(Boolean).join(' ')}
361
+ className={[styles.input, className].filter(Boolean).join(" ")}
347
362
  />
348
363
  </div>
349
364
  );
@@ -358,7 +373,7 @@ function CommandList({ children, className, ...htmlProps }: CommandListProps) {
358
373
  {...htmlProps}
359
374
  id={listId}
360
375
  role="listbox"
361
- className={[styles.list, className].filter(Boolean).join(' ')}
376
+ className={[styles.list, className].filter(Boolean).join(" ")}
362
377
  >
363
378
  {children}
364
379
  </div>
@@ -402,11 +417,13 @@ function CommandItem({
402
417
  // Scroll active item into view
403
418
  React.useEffect(() => {
404
419
  if (isActive && itemRef.current) {
405
- itemRef.current.scrollIntoView({ block: 'nearest' });
420
+ itemRef.current.scrollIntoView({ block: "nearest" });
406
421
  }
407
422
  }, [isActive]);
408
423
 
409
- const activateItem = (event: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => {
424
+ const activateItem = (
425
+ event: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>
426
+ ) => {
410
427
  if (disabled) return;
411
428
  onItemSelect?.(textValue, event);
412
429
  };
@@ -440,7 +457,7 @@ function CommandItem({
440
457
  onKeyDown={(e) => {
441
458
  onKeyDown?.(e);
442
459
  if (e.defaultPrevented) return;
443
- if (e.key === 'Enter' || e.key === ' ') {
460
+ if (e.key === "Enter" || e.key === " ") {
444
461
  e.preventDefault();
445
462
  activateItem(e);
446
463
  }
@@ -453,8 +470,8 @@ function CommandItem({
453
470
  className,
454
471
  ]
455
472
  .filter(Boolean)
456
- .join(' ')}
457
- style={{ ...style, display: isVisible ? undefined : 'none' }}
473
+ .join(" ")}
474
+ style={{ ...style, display: isVisible ? undefined : "none" }}
458
475
  >
459
476
  {children}
460
477
  </div>
@@ -470,8 +487,8 @@ function CommandGroup({ children, heading, className, ...htmlProps }: CommandGro
470
487
  // Check if any children are visible after each score update
471
488
  React.useEffect(() => {
472
489
  if (!groupRef.current) return;
473
- const items = groupRef.current.querySelectorAll<HTMLElement>('[data-command-item]');
474
- const anyVisible = Array.from(items).some((item) => item.style.display !== 'none');
490
+ const items = groupRef.current.querySelectorAll<HTMLElement>("[data-command-item]");
491
+ const anyVisible = Array.from(items).some((item) => item.style.display !== "none");
475
492
  setHasVisibleChildren(anyVisible);
476
493
  }, [scores]);
477
494
 
@@ -483,8 +500,8 @@ function CommandGroup({ children, heading, className, ...htmlProps }: CommandGro
483
500
  {...restHtmlProps}
484
501
  role="group"
485
502
  aria-labelledby={heading ? labelId : undefined}
486
- className={[styles.group, className].filter(Boolean).join(' ')}
487
- style={{ ...style, display: hasVisibleChildren ? undefined : 'none' }}
503
+ className={[styles.group, className].filter(Boolean).join(" ")}
504
+ style={{ ...style, display: hasVisibleChildren ? undefined : "none" }}
488
505
  >
489
506
  {heading && (
490
507
  <div id={labelId} className={styles.groupHeading}>
@@ -507,7 +524,7 @@ function CommandEmpty({ children, className, ...htmlProps }: CommandEmptyProps)
507
524
  role="option"
508
525
  aria-disabled="true"
509
526
  aria-selected="false"
510
- className={[styles.empty, className].filter(Boolean).join(' ')}
527
+ className={[styles.empty, className].filter(Boolean).join(" ")}
511
528
  >
512
529
  {children}
513
530
  </div>
@@ -519,7 +536,7 @@ function CommandSeparator({ className, ...htmlProps }: CommandSeparatorProps) {
519
536
  <div
520
537
  {...htmlProps}
521
538
  role="separator"
522
- className={[styles.separator, className].filter(Boolean).join(' ')}
539
+ className={[styles.separator, className].filter(Boolean).join(" ")}
523
540
  />
524
541
  );
525
542
  }
@@ -0,0 +1,91 @@
1
+ {
2
+ "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
+ "name": "ComponentDefaults",
4
+ "description": "Utility provider that sets the default control size for every control below it.",
5
+ "category": "utilities",
6
+ "tags": ["provider", "defaults", "size", "utility"],
7
+ "status": "stable",
8
+ "sourcePath": "src/components/ComponentDefaults/index.tsx",
9
+ "exportName": "ComponentDefaultsProvider",
10
+ "propsSummary": [
11
+ "children: node (required)",
12
+ "controlSize: sm|md|lg",
13
+ "value: { controlSize?: sm|md|lg }"
14
+ ],
15
+ "props": {
16
+ "children": {
17
+ "type": "node",
18
+ "description": "Subtree that inherits the defaults",
19
+ "required": true
20
+ },
21
+ "controlSize": {
22
+ "type": "enum",
23
+ "description": "Default size for controls that do not pass their own size prop",
24
+ "required": false,
25
+ "values": ["sm", "md", "lg"]
26
+ },
27
+ "value": {
28
+ "type": "object",
29
+ "description": "Full defaults object; explicit controlSize wins over value.controlSize",
30
+ "required": false
31
+ }
32
+ },
33
+ "usage": {
34
+ "when": [
35
+ "A region needs every control at one size (dense table toolbars, compact sidebars)",
36
+ "A ThemeProvider subtree should default to sm or lg controls"
37
+ ],
38
+ "whenNot": [
39
+ "Sizing a single control (pass its size prop)",
40
+ "Changing spacing or typography (use tokens, not control size)"
41
+ ],
42
+ "guidelines": [
43
+ "Renders no chrome: it only supplies context read through useResolvedControlSize",
44
+ "Nest providers to override the size for a smaller region",
45
+ "An explicit size prop on a control always wins over the provider default",
46
+ "ThemeProvider componentDefaults wires this provider for you at the root"
47
+ ],
48
+ "accessibility": [
49
+ "sm controls still meet the kit's minimum target size through the action recipe"
50
+ ]
51
+ },
52
+ "examples": [
53
+ {
54
+ "name": "Dense Toolbar",
55
+ "description": "Every control in the toolbar defaults to sm without repeating the prop.",
56
+ "code": "<ComponentDefaultsProvider controlSize=\"sm\">\n <div style={{ display: 'flex', gap: '8px' }}>\n <Button variant=\"soft\">Filter</Button>\n <Button variant=\"ghost\">Export</Button>\n </div>\n</ComponentDefaultsProvider>"
57
+ },
58
+ {
59
+ "name": "Nested Override",
60
+ "description": "A nested provider narrows the default for one region.",
61
+ "code": "<ComponentDefaultsProvider controlSize=\"lg\">\n <Button>Large by default</Button>\n <ComponentDefaultsProvider controlSize=\"sm\">\n <Button>Small in this region</Button>\n </ComponentDefaultsProvider>\n</ComponentDefaultsProvider>"
62
+ }
63
+ ],
64
+ "relations": [
65
+ {
66
+ "component": "Theme",
67
+ "relationship": "parent",
68
+ "note": "ThemeProvider accepts componentDefaults and mounts this provider"
69
+ },
70
+ {
71
+ "component": "Button",
72
+ "relationship": "child",
73
+ "note": "Controls resolve their size through useResolvedControlSize"
74
+ }
75
+ ],
76
+ "contract": {
77
+ "propsSummary": [
78
+ "controlSize: sm|md|lg - default size for controls below the provider",
79
+ "value: { controlSize } - defaults object, explicit controlSize wins",
80
+ "useComponentDefaults() - read the merged defaults",
81
+ "useResolvedControlSize(explicit, fallback) - explicit > provider > fallback (md)"
82
+ ],
83
+ "a11yRules": []
84
+ },
85
+ "provenance": {
86
+ "source": "manual",
87
+ "verified": false,
88
+ "frameworkSupport": "native",
89
+ "extractedAt": "2026-09-03T00:00:00.000Z"
90
+ }
91
+ }
@@ -1,16 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "ConversationList",
4
- "description": "Scrollable message container with auto-scroll and history loading",
4
+ "description": "Stacks chat messages in a scroller that follows new arrivals.",
5
5
  "category": "ai",
6
- "tags": [
7
- "conversation",
8
- "chat",
9
- "messages",
10
- "scroll",
11
- "ai",
12
- "list"
13
- ],
6
+ "tags": ["conversation", "chat", "messages", "scroll", "ai", "list"],
14
7
  "status": "stable",
15
8
  "sourcePath": "src/components/ConversationList/index.tsx",
16
9
  "exportName": "ConversationList",
@@ -73,24 +66,24 @@
73
66
  },
74
67
  "usage": {
75
68
  "when": [
76
- "Building a chat interface with multiple messages",
77
- "Need auto-scroll behavior when new messages arrive",
78
- "Require infinite scroll for loading message history",
79
- "Want date separators between message groups"
69
+ "Chat interfaces holding many messages",
70
+ "Transcripts that should follow new arrivals",
71
+ "Paging back through older message history",
72
+ "Runs of messages grouped day by day"
80
73
  ],
81
74
  "whenNot": [
82
- "Simple list of items without chat context (use List)",
83
- "Single message display (use Message directly)",
84
- "Non-scrolling message layout"
75
+ "Plain item lists with no chat context (use List)",
76
+ "A single message (use Message directly)",
77
+ "Layouts that never scroll"
85
78
  ],
86
79
  "guidelines": [
87
- "Use autoScroll=\"smart\" for best UX (only auto-scrolls when near bottom)",
88
- "Set showAvatars={false} for avatarless transcripts; messages remove their outer inline inset automatically",
89
- "Conversation chrome uses neutral surfaces and the body foreground; reserve brand accent for actions or semantic state",
90
- "Implement onScrollTop for loading older messages",
91
- "ConversationList composes your onScroll handler with internal auto-scroll/history logic",
92
- "Provide an emptyState for new conversations",
93
- "Use DateSeparator between messages from different days"
80
+ "autoScroll=\"smart\" follows only when the reader is already near the bottom",
81
+ "showAvatars={false} drops the avatar gutter and the inset that goes with it",
82
+ "Chrome stays on neutral surfaces; reserve accent for actions and semantic state",
83
+ "Implement onScrollTop to page in older messages",
84
+ "Your onScroll handler composes with the internal auto-scroll and history logic",
85
+ "Give new conversations an emptyState",
86
+ "Put a DateSeparator between messages from different days"
94
87
  ],
95
88
  "accessibility": [
96
89
  "Uses proper ARIA roles for separators",
@@ -102,28 +95,33 @@
102
95
  "examples": [
103
96
  {
104
97
  "name": "Basic",
105
- "description": "Simple conversation with messages",
98
+ "description": "Three turns stacked in reading order.",
106
99
  "code": "<ConversationList>\n <Message role=\"user\">\n <Message.Content>Hello!</Message.Content>\n </Message>\n <Message role=\"assistant\">\n <Message.Content>Hi there! How can I help you today?</Message.Content>\n </Message>\n <Message role=\"user\">\n <Message.Content>Can you explain React hooks?</Message.Content>\n </Message>\n</ConversationList>"
107
100
  },
108
101
  {
109
102
  "name": "With Date Separators",
110
- "description": "Messages grouped by date",
103
+ "description": "A labelled rule marks where one day ends.",
111
104
  "code": "<ConversationList>\n <ConversationList.DateSeparator date={new Date(Date.now() - 86400000)} />\n <Message role=\"user\">\n <Message.Content>A message from yesterday</Message.Content>\n </Message>\n <ConversationList.DateSeparator date={new Date()} />\n <Message role=\"assistant\">\n <Message.Content>And a message from today!</Message.Content>\n </Message>\n</ConversationList>"
112
105
  },
113
106
  {
114
107
  "name": "Without Avatars",
115
- "description": "Compact transcript without message or typing-indicator avatars",
108
+ "description": "Turns sit flush when nothing needs an avatar gutter.",
116
109
  "code": "<ConversationList showAvatars={false}>\n <Message role=\"user\">\n <Message.Content>Hello!</Message.Content>\n </Message>\n <Message role=\"assistant\">\n <Message.Content>How can I help?</Message.Content>\n </Message>\n</ConversationList>"
117
110
  },
118
111
  {
119
112
  "name": "With Typing Indicator",
120
- "description": "Shows assistant is typing",
113
+ "description": "Animated dots hold the reply's place before it lands.",
121
114
  "code": "<ConversationList>\n <Message role=\"user\">\n <Message.Content>What is TypeScript?</Message.Content>\n </Message>\n <ConversationList.TypingIndicator name=\"Assistant\" />\n</ConversationList>"
122
115
  },
123
116
  {
124
117
  "name": "Loading History",
125
- "description": "Loading older messages",
118
+ "description": "A spinner pins to the top while older turns load.",
126
119
  "code": "<ConversationList loadingHistory>\n <Message role=\"user\">\n <Message.Content>This is the latest message</Message.Content>\n </Message>\n</ConversationList>"
120
+ },
121
+ {
122
+ "name": "Empty",
123
+ "description": "A fresh conversation shows its placeholder instead of blank space.",
124
+ "code": "<ConversationList\n emptyState={\n <EmptyState>\n <EmptyState.Title>No messages yet</EmptyState.Title>\n <EmptyState.Description>\n Ask a question to get started.\n </EmptyState.Description>\n </EmptyState>\n }\n/>"
127
125
  }
128
126
  ],
129
127
  "relations": [
@@ -152,10 +150,7 @@
152
150
  "loadingHistory: boolean - show history loading spinner",
153
151
  "emptyState: ReactNode - empty conversation content"
154
152
  ],
155
- "a11yRules": [
156
- "A11Y_ARIA_ROLES",
157
- "A11Y_MOTION_PREFERENCE"
158
- ]
153
+ "a11yRules": ["A11Y_ARIA_ROLES", "A11Y_MOTION_PREFERENCE"]
159
154
  },
160
155
  "provenance": {
161
156
  "source": "migrated",
@@ -1,4 +1,5 @@
1
1
  @use "../../tokens/variables" as *;
2
+ @use "../../tokens/measurements.generated" as measurements;
2
3
  @use "../../recipes/layout" as layout;
3
4
  @use "../../recipes/representation" as representation;
4
5
  @use "../../recipes/typography" as typography;
@@ -64,7 +65,7 @@
64
65
 
65
66
  .dateSeparatorLine {
66
67
  flex: 1;
67
- height: var(--fui-stroke-hairline, 1px);
68
+ height: var(--fui-stroke-hairline, #{$fui-stroke-hairline});
68
69
  background-color: var(--fui-border, $fui-border);
69
70
  }
70
71
 
@@ -73,8 +74,6 @@
73
74
 
74
75
  color: var(--fui-text-secondary, $fui-text-secondary);
75
76
  white-space: nowrap;
76
- text-transform: uppercase;
77
- letter-spacing: var(--fui-letter-spacing-wide, $fui-letter-spacing-wide);
78
77
  }
79
78
 
80
79
  // ============================================
@@ -130,7 +130,7 @@ function TypingIndicator({
130
130
  <div className={styles.typingContent}>
131
131
  <Loading
132
132
  size="sm"
133
- variant="dots"
133
+ kind="dots"
134
134
  color="muted"
135
135
  label=""
136
136
  role="presentation"
@@ -242,7 +242,7 @@ function ConversationListRoot({
242
242
  <div {...htmlProps} ref={containerRef} className={classes} onScroll={handleScroll}>
243
243
  {loadingHistory && (
244
244
  <div className={styles.loadingHistory}>
245
- <Loading size="md" variant="spinner" color="muted" label="Loading history" />
245
+ <Loading size="md" kind="spinner" color="muted" label="Loading history" />
246
246
  <span>Loading history...</span>
247
247
  </div>
248
248
  )}
@@ -5,9 +5,7 @@ import styles from "./DataTable.module.scss";
5
5
  export function ExpandIcon({ expanded }: { expanded: boolean }) {
6
6
  return (
7
7
  <svg
8
- className={[styles.expandIcon, expanded && styles.expandIconOpen]
9
- .filter(Boolean)
10
- .join(" ")}
8
+ className={[styles.expandIcon, expanded && styles.expandIconOpen].filter(Boolean).join(" ")}
11
9
  viewBox="0 0 12 12"
12
10
  fill="none"
13
11
  xmlns="http://www.w3.org/2000/svg"
@@ -28,12 +26,7 @@ export function ExpandIcon({ expanded }: { expanded: boolean }) {
28
26
  // (--fui-icon-xs) in CSS so all sort glyphs share the icon ladder.
29
27
  export function SortIcon() {
30
28
  return (
31
- <svg
32
- viewBox="0 0 12 12"
33
- fill="none"
34
- xmlns="http://www.w3.org/2000/svg"
35
- aria-hidden="true"
36
- >
29
+ <svg viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
37
30
  <path d="M6 2L8.5 5H3.5L6 2Z" fill="currentColor" opacity="0.3" />
38
31
  <path d="M6 10L3.5 7H8.5L6 10Z" fill="currentColor" opacity="0.3" />
39
32
  </svg>
@@ -42,12 +35,7 @@ export function SortIcon() {
42
35
 
43
36
  export function SortAscIcon() {
44
37
  return (
45
- <svg
46
- viewBox="0 0 12 12"
47
- fill="none"
48
- xmlns="http://www.w3.org/2000/svg"
49
- aria-hidden="true"
50
- >
38
+ <svg viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
51
39
  <path d="M6 2L8.5 5H3.5L6 2Z" fill="currentColor" />
52
40
  </svg>
53
41
  );
@@ -55,12 +43,7 @@ export function SortAscIcon() {
55
43
 
56
44
  export function SortDescIcon() {
57
45
  return (
58
- <svg
59
- viewBox="0 0 12 12"
60
- fill="none"
61
- xmlns="http://www.w3.org/2000/svg"
62
- aria-hidden="true"
63
- >
46
+ <svg viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
64
47
  <path d="M6 10L3.5 7H8.5L6 10Z" fill="currentColor" />
65
48
  </svg>
66
49
  );