@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,5 +1,7 @@
1
- @use '../../tokens/variables' as *;
2
- @use '../../tokens/mixins' as *;
1
+ @use "../../tokens/variables" as *;
2
+ @use "../../tokens/mixins" as *;
3
+ @use "../../recipes/representation" as representation;
4
+ @use "../../recipes/typography" as typography;
3
5
 
4
6
  // Container
5
7
  .container {
@@ -37,66 +39,63 @@
37
39
 
38
40
  // Tooltip
39
41
  .tooltip {
42
+ @include representation.chart-tooltip;
43
+
40
44
  background: var(--fui-bg-elevated, $fui-bg-elevated);
41
- border: 1px solid var(--fui-border, $fui-border);
45
+ border: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
42
46
  border-radius: var(--fui-radius-md, $fui-radius-md);
43
47
  box-shadow: var(--fui-shadow-md, $fui-shadow-md);
44
- padding: var(--fui-space-2, $fui-space-2) var(--fui-space-3, $fui-space-3);
45
- font-family: var(--fui-font-sans, $fui-font-sans);
46
48
  }
47
49
 
48
50
  .tooltipLabel {
49
- font-size: var(--fui-font-size-xs, $fui-font-size-xs);
50
- font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
51
+ @include typography.role("ui-standard");
52
+
51
53
  color: var(--fui-text-primary, $fui-text-primary);
52
- margin-bottom: var(--fui-space-1, $fui-space-1);
54
+ margin-block-end: var(--fui-raw-space-4, 4px);
53
55
  }
54
56
 
55
57
  .tooltipItems {
56
58
  display: flex;
57
59
  flex-direction: column;
58
- gap: calc(var(--fui-space-px, $fui-space-px) * 2);
60
+ gap: var(--_fui-chart-tooltip-item-gap);
59
61
  }
60
62
 
61
63
  .tooltipItem {
62
64
  display: flex;
63
65
  align-items: center;
64
- gap: var(--fui-space-2, $fui-space-2);
66
+ gap: var(--_fui-chart-tooltip-item-gap);
65
67
  justify-content: space-between;
66
- min-width: 100px;
67
68
  }
68
69
 
69
70
  .tooltipIndicator {
70
- width: 8px;
71
- height: 8px;
72
- border-radius: var(--fui-radius-full, $fui-radius-full);
71
+ @include representation.chart-marker("dot");
72
+
73
73
  flex-shrink: 0;
74
74
 
75
75
  &.tooltipIndicatorLine {
76
- width: 12px;
77
- height: 2px;
76
+ @include representation.chart-marker("line");
77
+
78
78
  border-radius: var(--fui-radius-full, $fui-radius-full);
79
79
  }
80
80
 
81
81
  &.tooltipIndicatorDashed {
82
- width: 12px;
83
- height: 0;
84
- border-top: 2px dashed;
82
+ @include representation.chart-marker("dashed");
83
+
84
+ box-sizing: border-box;
85
+ border-top: var(--fui-chart-marker-stroke, var(--fui-raw-space-2, 2px)) dashed;
85
86
  border-radius: 0;
86
87
  }
87
88
  }
88
89
 
89
90
  .tooltipItemLabel {
90
- font-size: var(--fui-font-size-xs, $fui-font-size-xs);
91
91
  color: var(--fui-text-secondary, $fui-text-secondary);
92
92
  }
93
93
 
94
94
  .tooltipItemValue {
95
- font-size: var(--fui-font-size-xs, $fui-font-size-xs);
96
95
  font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
97
96
  color: var(--fui-text-primary, $fui-text-primary);
98
97
  font-variant-numeric: tabular-nums;
99
- margin-left: auto;
98
+ margin-inline-start: auto;
100
99
  }
101
100
 
102
101
  // Legend
@@ -105,24 +104,24 @@
105
104
  flex-wrap: wrap;
106
105
  align-items: center;
107
106
  justify-content: center;
108
- gap: var(--fui-space-3, $fui-space-3);
109
- padding-top: var(--fui-space-2, $fui-space-2);
107
+ gap: var(--fui-raw-space-12, 12px);
108
+ padding-block-start: var(--fui-raw-space-8, 8px);
110
109
  }
111
110
 
112
111
  .legendItem {
113
112
  display: flex;
114
113
  align-items: center;
115
- gap: var(--fui-space-1, $fui-space-1);
114
+ gap: var(--fui-raw-space-4, 4px);
116
115
  }
117
116
 
118
117
  .legendDot {
119
- width: 8px;
120
- height: 8px;
121
- border-radius: var(--fui-radius-full, $fui-radius-full);
118
+ @include representation.chart-marker("dot");
119
+
122
120
  flex-shrink: 0;
123
121
  }
124
122
 
125
123
  .legendLabel {
126
- font-size: var(--fui-font-size-xs, $fui-font-size-xs);
124
+ @include typography.role("ui-compact");
125
+
127
126
  color: var(--fui-text-secondary, $fui-text-secondary);
128
127
  }
@@ -1,8 +1,9 @@
1
- 'use client';
1
+ "use client";
2
2
 
3
- import * as React from 'react';
4
- import { mergeAriaIds } from '../../utils/aria';
5
- import styles from './Chart.module.scss';
3
+ import * as React from "react";
4
+ import { mergeAriaIds } from "../../utils/aria";
5
+ import styles from "./Chart.module.scss";
6
+ import { isDevelopmentBuild } from "../../utils/env";
6
7
 
7
8
  // ============================================
8
9
  // Types (self-owned — no external dependency for types)
@@ -36,10 +37,10 @@ export interface ChartTooltipContentProps {
36
37
  payload?: Record<string, unknown>;
37
38
  }[];
38
39
  label?: string;
39
- indicator?: 'dot' | 'line' | 'dashed';
40
+ indicator?: "dot" | "line" | "dashed";
40
41
  hideLabel?: boolean;
41
42
  hideIndicator?: boolean;
42
- labelFormatter?: (label: string, payload: ChartTooltipContentProps['payload']) => React.ReactNode;
43
+ labelFormatter?: (label: string, payload: ChartTooltipContentProps["payload"]) => React.ReactNode;
43
44
  valueFormatter?: (value: number | string) => string;
44
45
  }
45
46
 
@@ -69,15 +70,15 @@ function loadChartDeps(): Promise<void> {
69
70
  if (!_chartLoadPromise) {
70
71
  _chartLoadPromise = (async () => {
71
72
  try {
72
- const rc = await import('recharts');
73
+ const rc = await import("recharts");
73
74
  _RechartsTooltip = rc.Tooltip as unknown as React.ComponentType<Record<string, unknown>>;
74
75
  _RechartsLegend = rc.Legend as unknown as React.ComponentType<Record<string, unknown>>;
75
76
  } catch {
76
77
  _chartFailed = true;
77
- if (process.env.NODE_ENV === 'development') {
78
+ if (isDevelopmentBuild()) {
78
79
  console.warn(
79
- '[@usefragments/ui] Chart: recharts is not installed. ' +
80
- 'Install it with: npm install recharts'
80
+ "[@usefragments/ui] Chart: recharts is not installed. " +
81
+ "Install it with: npm install recharts"
81
82
  );
82
83
  }
83
84
  }
@@ -102,7 +103,6 @@ function useChartDeps(): boolean {
102
103
  return _RechartsTooltip !== null;
103
104
  }
104
105
 
105
-
106
106
  // ============================================
107
107
  // Context
108
108
  // ============================================
@@ -112,7 +112,7 @@ const ChartConfigContext = React.createContext<ChartConfig | null>(null);
112
112
  export function useChartConfig() {
113
113
  const ctx = React.useContext(ChartConfigContext);
114
114
  if (!ctx) {
115
- throw new Error('useChartConfig must be used within a <ChartContainer>');
115
+ throw new Error("useChartConfig must be used within a <ChartContainer>");
116
116
  }
117
117
  return ctx;
118
118
  }
@@ -128,11 +128,39 @@ export function ChartContainer({
128
128
  style,
129
129
  summary,
130
130
  dataTable,
131
- 'aria-label': ariaLabel,
132
- 'aria-describedby': ariaDescribedBy,
131
+ "aria-label": ariaLabel,
132
+ "aria-describedby": ariaDescribedBy,
133
133
  ...htmlProps
134
134
  }: ChartContainerProps) {
135
135
  const chartId = React.useId();
136
+ const frameRef = React.useRef<HTMLDivElement | null>(null);
137
+ // Recharts only lays a chart out once it knows a pixel box. Percentage
138
+ // sizing leaves the first paint blank until something else happens to
139
+ // resize the window, so the container measures its own frame and hands the
140
+ // chart real numbers — re-measured whenever the frame changes.
141
+ const [frame, setFrame] = React.useState<{ width: number; height: number } | null>(null);
142
+
143
+ React.useEffect(() => {
144
+ const element = frameRef.current;
145
+ if (!element || typeof ResizeObserver === "undefined") return;
146
+
147
+ const measure = () => {
148
+ const rect = element.getBoundingClientRect();
149
+ const width = Math.round(rect.width);
150
+ const height = Math.round(rect.height);
151
+ setFrame((current) =>
152
+ current && current.width === width && current.height === height
153
+ ? current
154
+ : { width, height }
155
+ );
156
+ };
157
+
158
+ measure();
159
+ const observer = new ResizeObserver(measure);
160
+ observer.observe(element);
161
+ return () => observer.disconnect();
162
+ }, []);
163
+
136
164
  const summaryId = summary ? `chart-summary-${chartId}` : undefined;
137
165
  const dataTableId = dataTable ? `chart-data-${chartId}` : undefined;
138
166
 
@@ -145,17 +173,17 @@ export function ChartContainer({
145
173
  return vars;
146
174
  }, [config]);
147
175
 
148
- const rootClasses = [styles.container, className].filter(Boolean).join(' ');
176
+ const rootClasses = [styles.container, className].filter(Boolean).join(" ");
149
177
 
150
178
  // Inject sizing props into the chart child (recharts API).
151
179
  // Only pass `responsive` for custom component types to avoid leaking the
152
180
  // prop to intrinsic DOM nodes in test/demo usage.
153
- const chartChildProps: Record<string, unknown> = {
154
- width: '100%',
155
- height: '100%',
156
- };
181
+ const measured = frame !== null && frame.width > 0 && frame.height > 0;
182
+ const chartChildProps: Record<string, unknown> = measured
183
+ ? { width: frame.width, height: frame.height }
184
+ : { width: "100%", height: "100%" };
157
185
 
158
- if (typeof children.type !== 'string') {
186
+ if (!measured && typeof children.type !== "string") {
159
187
  chartChildProps.responsive = true;
160
188
  }
161
189
 
@@ -168,15 +196,12 @@ export function ChartContainer({
168
196
  <ChartConfigContext.Provider value={config}>
169
197
  <div
170
198
  {...htmlProps}
199
+ ref={frameRef}
171
200
  className={rootClasses}
172
201
  style={{ ...cssVars, ...style }}
173
202
  role="img"
174
- aria-label={ariaLabel || 'Chart'}
175
- aria-describedby={mergeAriaIds(
176
- ariaDescribedBy,
177
- summaryId,
178
- dataTableId
179
- )}
203
+ aria-label={ariaLabel || "Chart"}
204
+ aria-describedby={mergeAriaIds(ariaDescribedBy, summaryId, dataTableId)}
180
205
  >
181
206
  {chartChild}
182
207
  {summaryId && (
@@ -202,7 +227,7 @@ export function ChartTooltipContent({
202
227
  active,
203
228
  payload,
204
229
  label,
205
- indicator = 'dot',
230
+ indicator = "dot",
206
231
  hideLabel = false,
207
232
  hideIndicator = false,
208
233
  labelFormatter,
@@ -212,15 +237,11 @@ export function ChartTooltipContent({
212
237
 
213
238
  if (!active || !payload?.length) return null;
214
239
 
215
- const formattedLabel = labelFormatter
216
- ? labelFormatter(String(label), payload)
217
- : label;
240
+ const formattedLabel = labelFormatter ? labelFormatter(String(label), payload) : label;
218
241
 
219
242
  return (
220
243
  <div className={styles.tooltip}>
221
- {!hideLabel && formattedLabel && (
222
- <div className={styles.tooltipLabel}>{formattedLabel}</div>
223
- )}
244
+ {!hideLabel && formattedLabel && <div className={styles.tooltipLabel}>{formattedLabel}</div>}
224
245
  <div className={styles.tooltipItems}>
225
246
  {payload.map((entry, i) => {
226
247
  const key = String(entry.dataKey ?? entry.name ?? i);
@@ -229,20 +250,25 @@ export function ChartTooltipContent({
229
250
  const color = entry.color ?? configEntry?.color;
230
251
  const displayValue = valueFormatter
231
252
  ? valueFormatter(entry.value ?? 0)
232
- : String(entry.value ?? '');
253
+ : String(entry.value ?? "");
233
254
 
234
255
  const indicatorClass = [
235
256
  styles.tooltipIndicator,
236
- indicator === 'line' && styles.tooltipIndicatorLine,
237
- indicator === 'dashed' && styles.tooltipIndicatorDashed,
238
- ].filter(Boolean).join(' ');
257
+ indicator === "line" && styles.tooltipIndicatorLine,
258
+ indicator === "dashed" && styles.tooltipIndicatorDashed,
259
+ ]
260
+ .filter(Boolean)
261
+ .join(" ");
239
262
 
240
263
  return (
241
264
  <div key={key} className={styles.tooltipItem}>
242
265
  {!hideIndicator && (
243
266
  <span
244
267
  className={indicatorClass}
245
- style={{ backgroundColor: indicator === 'dashed' ? undefined : color, borderColor: color }}
268
+ style={{
269
+ backgroundColor: indicator === "dashed" ? undefined : color,
270
+ borderColor: color,
271
+ }}
246
272
  />
247
273
  )}
248
274
  <span className={styles.tooltipItemLabel}>{displayLabel}</span>
@@ -260,11 +286,11 @@ export function ChartTooltipContent({
260
286
  // ============================================
261
287
 
262
288
  type ChartTooltipProps = {
263
- indicator?: 'dot' | 'line' | 'dashed';
289
+ indicator?: "dot" | "line" | "dashed";
264
290
  hideLabel?: boolean;
265
291
  hideIndicator?: boolean;
266
- labelFormatter?: ChartTooltipContentProps['labelFormatter'];
267
- valueFormatter?: ChartTooltipContentProps['valueFormatter'];
292
+ labelFormatter?: ChartTooltipContentProps["labelFormatter"];
293
+ valueFormatter?: ChartTooltipContentProps["valueFormatter"];
268
294
  content?: React.ReactNode | ((tooltipProps: Record<string, unknown>) => React.ReactNode);
269
295
  [key: string]: unknown;
270
296
  };
@@ -281,7 +307,6 @@ export function ChartTooltip({
281
307
  const chartReady = useChartDeps();
282
308
 
283
309
  const defaultContent = React.useCallback(
284
-
285
310
  (tooltipProps: Record<string, unknown>) => (
286
311
  <ChartTooltipContent
287
312
  {...(tooltipProps as ChartTooltipContentProps)}
@@ -292,7 +317,7 @@ export function ChartTooltip({
292
317
  valueFormatter={valueFormatter}
293
318
  />
294
319
  ),
295
- [indicator, hideLabel, hideIndicator, labelFormatter, valueFormatter],
320
+ [indicator, hideLabel, hideIndicator, labelFormatter, valueFormatter]
296
321
  );
297
322
 
298
323
  // Nothing until recharts resolves; nothing at all if it is not installed.
@@ -304,7 +329,7 @@ export function ChartTooltip({
304
329
 
305
330
  return (
306
331
  <RechartsTooltipComponent
307
- cursor={{ stroke: 'var(--fui-border)' }}
332
+ cursor={{ stroke: "var(--fui-border)" }}
308
333
  content={content ?? defaultContent}
309
334
  {...props}
310
335
  />
@@ -323,17 +348,14 @@ export function ChartLegendContent({ payload }: ChartLegendContentProps) {
323
348
  return (
324
349
  <div className={styles.legend}>
325
350
  {payload.map((entry) => {
326
- const key = String(entry.dataKey ?? entry.value ?? '');
351
+ const key = String(entry.dataKey ?? entry.value ?? "");
327
352
  const configEntry = config?.[key];
328
353
  const label = configEntry?.label ?? entry.value ?? key;
329
354
  const color = entry.color ?? configEntry?.color;
330
355
 
331
356
  return (
332
357
  <div key={key} className={styles.legendItem}>
333
- <span
334
- className={styles.legendDot}
335
- style={{ backgroundColor: color }}
336
- />
358
+ <span className={styles.legendDot} style={{ backgroundColor: color }} />
337
359
  <span className={styles.legendLabel}>{label}</span>
338
360
  </div>
339
361
  );
@@ -363,12 +385,7 @@ export function ChartLegend({ content, ...props }: ChartLegendProps) {
363
385
 
364
386
  const RechartsLegendComponent = _RechartsLegend;
365
387
 
366
- return (
367
- <RechartsLegendComponent
368
- content={content ?? defaultContent}
369
- {...props}
370
- />
371
- );
388
+ return <RechartsLegendComponent content={content ?? defaultContent} {...props} />;
372
389
  }
373
390
 
374
391
  export const Chart = Object.assign(ChartContainer, {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "Checkbox",
4
- "description": "Binary toggle for form fields. Use for options that require explicit submission, unlike Switch which takes effect immediately.",
5
- "category": "forms",
4
+ "description": "Selects options that take effect when a form is submitted.",
5
+ "category": "inputs",
6
6
  "tags": ["checkbox", "form", "boolean", "selection", "input"],
7
7
  "status": "stable",
8
8
  "sourcePath": "src/components/Checkbox/index.tsx",
@@ -139,63 +139,63 @@
139
139
  },
140
140
  "usage": {
141
141
  "when": [
142
- "Form fields requiring explicit submission",
143
- "Multi-select from a list of options",
144
- "Terms and conditions acceptance",
145
- "Filter or preference checklists"
142
+ "Choices that apply only once the form is submitted",
143
+ "Picking several items from a list",
144
+ "Accepting terms",
145
+ "Filter and preference lists"
146
146
  ],
147
147
  "whenNot": [
148
- "Immediate effect settings (use Switch)",
149
- "Single selection from options (use RadioGroup)",
150
- "Selecting from many options (use Select)"
148
+ "Settings that apply instantly (use Switch)",
149
+ "One choice from a few (use RadioGroup)",
150
+ "Many options (use Select)"
151
151
  ],
152
152
  "guidelines": [
153
- "Always include a visible label",
154
- "Use helperText for additional context when needed",
155
- "Group related checkboxes visually",
156
- "Use indeterminate state for parent/child relationships"
153
+ "Always show a label",
154
+ "Add helperText when the consequence is not obvious",
155
+ "Keep related boxes together",
156
+ "Use indeterminate for a parent whose children are partly checked"
157
157
  ],
158
158
  "accessibility": [
159
- "Proper label association",
160
- "Keyboard accessible (Space to toggle)",
161
- "Visible focus indicator",
162
- "Indeterminate state properly announced"
159
+ "Label is tied to the box",
160
+ "Space toggles it",
161
+ "Focus ring stays visible",
162
+ "Indeterminate is announced as mixed"
163
163
  ]
164
164
  },
165
165
  "examples": [
166
166
  {
167
167
  "name": "Default",
168
- "description": "Basic checkbox with label",
168
+ "description": "One box, one label, off to start.",
169
169
  "code": "<StatefulCheckbox label=\"Accept terms and conditions\" />"
170
170
  },
171
171
  {
172
172
  "name": "With Helper Text",
173
- "description": "Checkbox with helper text",
173
+ "description": "Second line spells out what opting in does.",
174
174
  "code": "<StatefulCheckbox\n label=\"Email notifications\"\n helperText=\"Receive email updates about your account activity\"\n/>"
175
175
  },
176
176
  {
177
177
  "name": "Checked",
178
- "description": "Pre-checked checkbox",
178
+ "description": "Starts on.",
179
179
  "code": "<StatefulCheckbox defaultChecked label=\"Subscribe to newsletter\" />"
180
180
  },
181
181
  {
182
182
  "name": "Indeterminate",
183
- "description": "Partial selection state",
183
+ "description": "A dash on the parent means only some children are on.",
184
184
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n <Checkbox indeterminate label=\"Select all\" />\n <div style={{ marginLeft: '24px', display: 'flex', flexDirection: 'column', gap: '8px' }}>\n <StatefulCheckbox defaultChecked label=\"Option 1\" />\n <StatefulCheckbox label=\"Option 2\" />\n <StatefulCheckbox defaultChecked label=\"Option 3\" />\n </div>\n</div>"
185
185
  },
186
186
  {
187
187
  "name": "Sizes",
188
- "description": "Available size options",
188
+ "description": "Three box sizes: sm, md, lg.",
189
189
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>\n <StatefulCheckbox size=\"sm\" label=\"Small checkbox\" />\n <StatefulCheckbox size=\"md\" label=\"Medium checkbox\" />\n <StatefulCheckbox size=\"lg\" label=\"Large checkbox\" />\n</div>"
190
190
  },
191
191
  {
192
192
  "name": "Disabled",
193
- "description": "Non-interactive states",
193
+ "description": "Locked in both positions, on and off.",
194
194
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n <Checkbox disabled label=\"Disabled unchecked\" />\n <Checkbox disabled checked label=\"Disabled checked\" />\n</div>"
195
195
  },
196
196
  {
197
197
  "name": "Custom Styling Targets",
198
- "description": "Use explicit class targets for control vs content styling",
198
+ "description": "controlClassName styles the box, contentClassName the text.",
199
199
  "code": "<Checkbox\n label=\"Styled checkbox\"\n helperText=\"Control and content wrappers can be targeted independently\"\n controlClassName=\"demo-checkbox-control\"\n contentClassName=\"demo-checkbox-content\"\n/>"
200
200
  }
201
201
  ],