@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
package/dist/chart.cjs CHANGED
@@ -27,6 +27,7 @@ const jsxRuntime = require("react/jsx-runtime");
27
27
  const React = require("react");
28
28
  const aria = require("./utils/aria.cjs");
29
29
  const Chart_module = require("./components/Chart/Chart.module.scss.cjs");
30
+ const env = require("./utils/env.cjs");
30
31
  function _interopNamespaceDefault(e) {
31
32
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
32
33
  if (e) {
@@ -57,7 +58,7 @@ function loadChartDeps() {
57
58
  _RechartsLegend = rc.Legend;
58
59
  } catch {
59
60
  _chartFailed = true;
60
- if (process.env.NODE_ENV === "development") {
61
+ if (env.isDevelopmentBuild()) {
61
62
  console.warn(
62
63
  "[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
63
64
  );
@@ -101,6 +102,24 @@ function ChartContainer({
101
102
  ...htmlProps
102
103
  }) {
103
104
  const chartId = React__namespace.useId();
105
+ const frameRef = React__namespace.useRef(null);
106
+ const [frame, setFrame] = React__namespace.useState(null);
107
+ React__namespace.useEffect(() => {
108
+ const element = frameRef.current;
109
+ if (!element || typeof ResizeObserver === "undefined") return;
110
+ const measure = () => {
111
+ const rect = element.getBoundingClientRect();
112
+ const width = Math.round(rect.width);
113
+ const height = Math.round(rect.height);
114
+ setFrame(
115
+ (current) => current && current.width === width && current.height === height ? current : { width, height }
116
+ );
117
+ };
118
+ measure();
119
+ const observer = new ResizeObserver(measure);
120
+ observer.observe(element);
121
+ return () => observer.disconnect();
122
+ }, []);
104
123
  const summaryId = summary ? `chart-summary-${chartId}` : void 0;
105
124
  const dataTableId = dataTable ? `chart-data-${chartId}` : void 0;
106
125
  const cssVars = React__namespace.useMemo(() => {
@@ -111,11 +130,9 @@ function ChartContainer({
111
130
  return vars;
112
131
  }, [config]);
113
132
  const rootClasses = [Chart_module.default.container, className].filter(Boolean).join(" ");
114
- const chartChildProps = {
115
- width: "100%",
116
- height: "100%"
117
- };
118
- if (typeof children.type !== "string") {
133
+ const measured = frame !== null && frame.width > 0 && frame.height > 0;
134
+ const chartChildProps = measured ? { width: frame.width, height: frame.height } : { width: "100%", height: "100%" };
135
+ if (!measured && typeof children.type !== "string") {
119
136
  chartChildProps.responsive = true;
120
137
  }
121
138
  const chartChild = React__namespace.cloneElement(
@@ -126,15 +143,12 @@ function ChartContainer({
126
143
  "div",
127
144
  {
128
145
  ...htmlProps,
146
+ ref: frameRef,
129
147
  className: rootClasses,
130
148
  style: { ...cssVars, ...style },
131
149
  role: "img",
132
150
  "aria-label": ariaLabel || "Chart",
133
- "aria-describedby": aria.mergeAriaIds(
134
- ariaDescribedBy,
135
- summaryId,
136
- dataTableId
137
- ),
151
+ "aria-describedby": aria.mergeAriaIds(ariaDescribedBy, summaryId, dataTableId),
138
152
  children: [
139
153
  chartChild,
140
154
  summaryId && /* @__PURE__ */ jsxRuntime.jsx("span", { id: summaryId, className: Chart_module.default.srOnly, children: summary }),
@@ -174,7 +188,10 @@ function ChartTooltipContent({
174
188
  "span",
175
189
  {
176
190
  className: indicatorClass,
177
- style: { backgroundColor: indicator === "dashed" ? void 0 : color, borderColor: color }
191
+ style: {
192
+ backgroundColor: indicator === "dashed" ? void 0 : color,
193
+ borderColor: color
194
+ }
178
195
  }
179
196
  ),
180
197
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: Chart_module.default.tooltipItemLabel, children: displayLabel }),
@@ -229,13 +246,7 @@ function ChartLegendContent({ payload }) {
229
246
  const label = (configEntry == null ? void 0 : configEntry.label) ?? entry.value ?? key;
230
247
  const color = entry.color ?? (configEntry == null ? void 0 : configEntry.color);
231
248
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Chart_module.default.legendItem, children: [
232
- /* @__PURE__ */ jsxRuntime.jsx(
233
- "span",
234
- {
235
- className: Chart_module.default.legendDot,
236
- style: { backgroundColor: color }
237
- }
238
- ),
249
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: Chart_module.default.legendDot, style: { backgroundColor: color } }),
239
250
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: Chart_module.default.legendLabel, children: label })
240
251
  ] }, key);
241
252
  }) });
@@ -247,13 +258,7 @@ function ChartLegend({ content, ...props }) {
247
258
  return null;
248
259
  }
249
260
  const RechartsLegendComponent = _RechartsLegend;
250
- return /* @__PURE__ */ jsxRuntime.jsx(
251
- RechartsLegendComponent,
252
- {
253
- content: content ?? defaultContent,
254
- ...props
255
- }
256
- );
261
+ return /* @__PURE__ */ jsxRuntime.jsx(RechartsLegendComponent, { content: content ?? defaultContent, ...props });
257
262
  }
258
263
  const Chart = Object.assign(ChartContainer, {
259
264
  Root: ChartContainer,
package/dist/chart.js CHANGED
@@ -3,6 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { mergeAriaIds } from "./utils/aria.js";
5
5
  import styles from "./components/Chart/Chart.module.scss.js";
6
+ import { isDevelopmentBuild } from "./utils/env.js";
6
7
  let _RechartsTooltip = null;
7
8
  let _RechartsLegend = null;
8
9
  let _chartLoadPromise = null;
@@ -16,7 +17,7 @@ function loadChartDeps() {
16
17
  _RechartsLegend = rc.Legend;
17
18
  } catch {
18
19
  _chartFailed = true;
19
- if (process.env.NODE_ENV === "development") {
20
+ if (isDevelopmentBuild()) {
20
21
  console.warn(
21
22
  "[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
22
23
  );
@@ -60,6 +61,24 @@ function ChartContainer({
60
61
  ...htmlProps
61
62
  }) {
62
63
  const chartId = React.useId();
64
+ const frameRef = React.useRef(null);
65
+ const [frame, setFrame] = React.useState(null);
66
+ React.useEffect(() => {
67
+ const element = frameRef.current;
68
+ if (!element || typeof ResizeObserver === "undefined") return;
69
+ const measure = () => {
70
+ const rect = element.getBoundingClientRect();
71
+ const width = Math.round(rect.width);
72
+ const height = Math.round(rect.height);
73
+ setFrame(
74
+ (current) => current && current.width === width && current.height === height ? current : { width, height }
75
+ );
76
+ };
77
+ measure();
78
+ const observer = new ResizeObserver(measure);
79
+ observer.observe(element);
80
+ return () => observer.disconnect();
81
+ }, []);
63
82
  const summaryId = summary ? `chart-summary-${chartId}` : void 0;
64
83
  const dataTableId = dataTable ? `chart-data-${chartId}` : void 0;
65
84
  const cssVars = React.useMemo(() => {
@@ -70,11 +89,9 @@ function ChartContainer({
70
89
  return vars;
71
90
  }, [config]);
72
91
  const rootClasses = [styles.container, className].filter(Boolean).join(" ");
73
- const chartChildProps = {
74
- width: "100%",
75
- height: "100%"
76
- };
77
- if (typeof children.type !== "string") {
92
+ const measured = frame !== null && frame.width > 0 && frame.height > 0;
93
+ const chartChildProps = measured ? { width: frame.width, height: frame.height } : { width: "100%", height: "100%" };
94
+ if (!measured && typeof children.type !== "string") {
78
95
  chartChildProps.responsive = true;
79
96
  }
80
97
  const chartChild = React.cloneElement(
@@ -85,15 +102,12 @@ function ChartContainer({
85
102
  "div",
86
103
  {
87
104
  ...htmlProps,
105
+ ref: frameRef,
88
106
  className: rootClasses,
89
107
  style: { ...cssVars, ...style },
90
108
  role: "img",
91
109
  "aria-label": ariaLabel || "Chart",
92
- "aria-describedby": mergeAriaIds(
93
- ariaDescribedBy,
94
- summaryId,
95
- dataTableId
96
- ),
110
+ "aria-describedby": mergeAriaIds(ariaDescribedBy, summaryId, dataTableId),
97
111
  children: [
98
112
  chartChild,
99
113
  summaryId && /* @__PURE__ */ jsx("span", { id: summaryId, className: styles.srOnly, children: summary }),
@@ -133,7 +147,10 @@ function ChartTooltipContent({
133
147
  "span",
134
148
  {
135
149
  className: indicatorClass,
136
- style: { backgroundColor: indicator === "dashed" ? void 0 : color, borderColor: color }
150
+ style: {
151
+ backgroundColor: indicator === "dashed" ? void 0 : color,
152
+ borderColor: color
153
+ }
137
154
  }
138
155
  ),
139
156
  /* @__PURE__ */ jsx("span", { className: styles.tooltipItemLabel, children: displayLabel }),
@@ -188,13 +205,7 @@ function ChartLegendContent({ payload }) {
188
205
  const label = (configEntry == null ? void 0 : configEntry.label) ?? entry.value ?? key;
189
206
  const color = entry.color ?? (configEntry == null ? void 0 : configEntry.color);
190
207
  return /* @__PURE__ */ jsxs("div", { className: styles.legendItem, children: [
191
- /* @__PURE__ */ jsx(
192
- "span",
193
- {
194
- className: styles.legendDot,
195
- style: { backgroundColor: color }
196
- }
197
- ),
208
+ /* @__PURE__ */ jsx("span", { className: styles.legendDot, style: { backgroundColor: color } }),
198
209
  /* @__PURE__ */ jsx("span", { className: styles.legendLabel, children: label })
199
210
  ] }, key);
200
211
  }) });
@@ -206,13 +217,7 @@ function ChartLegend({ content, ...props }) {
206
217
  return null;
207
218
  }
208
219
  const RechartsLegendComponent = _RechartsLegend;
209
- return /* @__PURE__ */ jsx(
210
- RechartsLegendComponent,
211
- {
212
- content: content ?? defaultContent,
213
- ...props
214
- }
215
- );
220
+ return /* @__PURE__ */ jsx(RechartsLegendComponent, { content: content ?? defaultContent, ...props });
216
221
  }
217
222
  const Chart = Object.assign(ChartContainer, {
218
223
  Root: ChartContainer,
@@ -26,7 +26,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
26
26
  const jsxRuntime = require("react/jsx-runtime");
27
27
  const React = require("react");
28
28
  const index = require("./components/Tabs/index.cjs");
29
+ const cssVariablesTheme = require("./components/CodeBlock/css-variables-theme.cjs");
29
30
  const CodeBlock_module = require("./components/CodeBlock/CodeBlock.module.scss.cjs");
31
+ const env = require("./utils/env.cjs");
30
32
  function _interopNamespaceDefault(e) {
31
33
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
32
34
  if (e) {
@@ -361,19 +363,21 @@ function processShikiHtml(html, options) {
361
363
  if (isRemoved) lineClasses.push("diff-removed");
362
364
  const lineClass = lineClasses.join(" ");
363
365
  const diffMarker = isAdded ? "+" : isRemoved ? "-" : " ";
364
- if (showLineNumbers || hasDiff) {
365
- const lineNumHtml = showLineNumbers ? `<span class="line-number">${displayLineNum}</span>` : "";
366
- const diffMarkerHtml = hasDiff ? `<span class="diff-marker">${diffMarker}</span>` : "";
367
- return `<span class="${lineClass}">${lineNumHtml}${diffMarkerHtml}${line}</span>`;
366
+ const lineNumHtml = showLineNumbers || hasDiff ? `${showLineNumbers ? `<span class="line-number">${displayLineNum}</span>` : ""}${hasDiff ? `<span class="diff-marker">${diffMarker}</span>` : ""}` : "";
367
+ if (/^<span class="line([^"]*)">/.test(line)) {
368
+ return line.replace(
369
+ /^<span class="line([^"]*)">/,
370
+ `<span class="${lineClass}$1">${lineNumHtml}`
371
+ );
368
372
  }
369
- return `<span class="${lineClass}">${line}</span>`;
373
+ return `<span class="${lineClass}">${lineNumHtml}${line}</span>`;
370
374
  });
371
375
  return html.replace(/<code[^>]*>[\s\S]*?<\/code>/, `<code>${processedLines.join("\n")}</code>`);
372
376
  }
373
377
  const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
374
378
  code,
375
379
  language = "tsx",
376
- theme = "one-dark-pro",
380
+ theme = "css-variables",
377
381
  showCopy = true,
378
382
  title,
379
383
  filename,
@@ -388,6 +392,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
388
392
  collapsible = false,
389
393
  defaultCollapsed = false,
390
394
  collapsedLines = 5,
395
+ collapseAction = "lines",
391
396
  compact = false,
392
397
  persistentCopy = false,
393
398
  copyPlacement = "auto",
@@ -397,7 +402,10 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
397
402
  ...htmlProps
398
403
  }, ref) {
399
404
  const [copied, setCopied] = React.useState(false);
400
- const [highlight, setHighlight] = React.useState({ html: "", loading: true });
405
+ const [highlight, setHighlight] = React.useState({
406
+ html: "",
407
+ loading: true
408
+ });
401
409
  const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed);
402
410
  const trimmedCode = React.useMemo(() => normalizeCode(code, language), [code, language]);
403
411
  const codeLines = trimmedCode.split("\n");
@@ -419,7 +427,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
419
427
  await loadShikiDeps();
420
428
  const fallbackHtml = `<pre class="shiki"><code>${escapeHtml(visibleCode)}</code></pre>`;
421
429
  if (_shikiFailed || !_codeToHtml) {
422
- if (_shikiFailed && process.env.NODE_ENV === "development") {
430
+ if (_shikiFailed && env.isDevelopmentBuild()) {
423
431
  console.warn(
424
432
  "[@usefragments/ui] CodeBlock: shiki is not installed. Install it with: npm install shiki"
425
433
  );
@@ -428,7 +436,8 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
428
436
  }
429
437
  try {
430
438
  const resolvedLang = LANGUAGE_ALIASES[language] || language;
431
- const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme });
439
+ const shikiTheme = theme === "css-variables" ? cssVariablesTheme.FUI_CSS_VARIABLES_THEME : theme;
440
+ const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme: shikiTheme });
432
441
  return processShikiHtml(html, {
433
442
  showLineNumbers,
434
443
  startLineNumber,
@@ -437,7 +446,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
437
446
  removedLines: removedSet
438
447
  });
439
448
  } catch (err) {
440
- if (process.env.NODE_ENV !== "production") {
449
+ if (!env.isProductionBuild()) {
441
450
  console.error("Syntax highlighting failed:", err);
442
451
  }
443
452
  return fallbackHtml;
@@ -468,7 +477,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
468
477
  setTimeout(() => setCopied(false), 2e3);
469
478
  onCopy == null ? void 0 : onCopy();
470
479
  } catch (err) {
471
- if (process.env.NODE_ENV !== "production") {
480
+ if (!env.isProductionBuild()) {
472
481
  console.error("Failed to copy:", err);
473
482
  }
474
483
  }
@@ -491,9 +500,9 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
491
500
  ].filter(Boolean).join(" ");
492
501
  const codeContainerStyle = maxHeight ? { maxHeight, overflow: "auto" } : {};
493
502
  const wrapperStyle = bg ? { ["--fui-code-bg"]: bg } : void 0;
494
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, ...htmlProps, className: classNames, "data-theme": "dark", children: [
495
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: CodeBlock_module.default.title, children: title }),
496
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: wrapperClasses, style: wrapperStyle, children: [
503
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, ...htmlProps, className: classNames, "data-slot": "code-block", children: [
504
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: CodeBlock_module.default.title, "data-slot": "code-block-title", children: title }),
505
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: wrapperClasses, style: wrapperStyle, "data-slot": "code-block-frame", children: [
497
506
  shouldRenderHeader && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CodeBlock_module.default.header, children: [
498
507
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: CodeBlock_module.default.filename, children: filename ?? "" }),
499
508
  shouldShowHeaderCopy && /* @__PURE__ */ jsxRuntime.jsx(
@@ -540,10 +549,10 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
540
549
  {
541
550
  type: "button",
542
551
  onClick: toggleCollapsed,
543
- className: CodeBlock_module.default.collapseButton,
552
+ className: collapseAction === "expand" ? `${CodeBlock_module.default.collapseButton} ${CodeBlock_module.default.collapseExpand}` : CodeBlock_module.default.collapseButton,
544
553
  "aria-expanded": !isCollapsed,
545
554
  "aria-label": isCollapsed ? "Expand code" : "Collapse code",
546
- children: isCollapsed ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
555
+ children: collapseAction === "expand" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: isCollapsed ? "Expand" : "Collapse" }) : isCollapsed ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
547
556
  /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { className: CodeBlock_module.default.icon }),
548
557
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
549
558
  "Show ",
@@ -572,6 +581,10 @@ function TabbedCodeBlock({
572
581
  tabsVariant = "pills",
573
582
  wordWrap,
574
583
  maxHeight,
584
+ collapsible,
585
+ defaultCollapsed,
586
+ collapsedLines,
587
+ collapseAction,
575
588
  className,
576
589
  onCopy
577
590
  }) {
@@ -584,20 +597,33 @@ function TabbedCodeBlock({
584
597
  }) }),
585
598
  tabs.map((tab, index$1) => {
586
599
  const tabValue = tab.value ?? tab.label;
587
- return /* @__PURE__ */ jsxRuntime.jsx(index.TabsPanel, { value: tabValue, flush: true, className: CodeBlock_module.default.tabbedPanel, children: /* @__PURE__ */ jsxRuntime.jsx(
588
- CodeBlockBase,
600
+ return /* @__PURE__ */ jsxRuntime.jsx(
601
+ index.TabsPanel,
589
602
  {
590
- code: tab.code,
591
- language: tab.language,
592
- theme,
593
- showCopy,
594
- copyPlacement,
595
- showLineNumbers,
596
- wordWrap,
597
- maxHeight,
598
- onCopy: onCopy ? () => onCopy(tab.label) : void 0
599
- }
600
- ) }, `${tabValue}-panel-${index$1}`);
603
+ value: tabValue,
604
+ flush: true,
605
+ className: CodeBlock_module.default.tabbedPanel,
606
+ children: /* @__PURE__ */ jsxRuntime.jsx(
607
+ CodeBlockBase,
608
+ {
609
+ code: tab.code,
610
+ language: tab.language,
611
+ theme,
612
+ showCopy,
613
+ copyPlacement,
614
+ showLineNumbers,
615
+ wordWrap,
616
+ maxHeight,
617
+ collapsible,
618
+ defaultCollapsed,
619
+ collapsedLines,
620
+ collapseAction,
621
+ onCopy: onCopy ? () => onCopy(tab.label) : void 0
622
+ }
623
+ )
624
+ },
625
+ `${tabValue}-panel-${index$1}`
626
+ );
601
627
  })
602
628
  ] }) });
603
629
  }
package/dist/codeblock.js CHANGED
@@ -3,7 +3,9 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { useState, useMemo, useEffect, useCallback } from "react";
5
5
  import { TabsRoot, TabsList, Tab, TabsPanel } from "./components/Tabs/index.js";
6
+ import { FUI_CSS_VARIABLES_THEME } from "./components/CodeBlock/css-variables-theme.js";
6
7
  import styles from "./components/CodeBlock/CodeBlock.module.scss.js";
8
+ import { isProductionBuild, isDevelopmentBuild } from "./utils/env.js";
7
9
  let _codeToHtml = null;
8
10
  let _shikiLoadPromise = null;
9
11
  let _shikiFailed = false;
@@ -321,19 +323,21 @@ function processShikiHtml(html, options) {
321
323
  if (isRemoved) lineClasses.push("diff-removed");
322
324
  const lineClass = lineClasses.join(" ");
323
325
  const diffMarker = isAdded ? "+" : isRemoved ? "-" : " ";
324
- if (showLineNumbers || hasDiff) {
325
- const lineNumHtml = showLineNumbers ? `<span class="line-number">${displayLineNum}</span>` : "";
326
- const diffMarkerHtml = hasDiff ? `<span class="diff-marker">${diffMarker}</span>` : "";
327
- return `<span class="${lineClass}">${lineNumHtml}${diffMarkerHtml}${line}</span>`;
326
+ const lineNumHtml = showLineNumbers || hasDiff ? `${showLineNumbers ? `<span class="line-number">${displayLineNum}</span>` : ""}${hasDiff ? `<span class="diff-marker">${diffMarker}</span>` : ""}` : "";
327
+ if (/^<span class="line([^"]*)">/.test(line)) {
328
+ return line.replace(
329
+ /^<span class="line([^"]*)">/,
330
+ `<span class="${lineClass}$1">${lineNumHtml}`
331
+ );
328
332
  }
329
- return `<span class="${lineClass}">${line}</span>`;
333
+ return `<span class="${lineClass}">${lineNumHtml}${line}</span>`;
330
334
  });
331
335
  return html.replace(/<code[^>]*>[\s\S]*?<\/code>/, `<code>${processedLines.join("\n")}</code>`);
332
336
  }
333
337
  const CodeBlockBase = React.forwardRef(function CodeBlock2({
334
338
  code,
335
339
  language = "tsx",
336
- theme = "one-dark-pro",
340
+ theme = "css-variables",
337
341
  showCopy = true,
338
342
  title,
339
343
  filename,
@@ -348,6 +352,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
348
352
  collapsible = false,
349
353
  defaultCollapsed = false,
350
354
  collapsedLines = 5,
355
+ collapseAction = "lines",
351
356
  compact = false,
352
357
  persistentCopy = false,
353
358
  copyPlacement = "auto",
@@ -357,7 +362,10 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
357
362
  ...htmlProps
358
363
  }, ref) {
359
364
  const [copied, setCopied] = useState(false);
360
- const [highlight, setHighlight] = useState({ html: "", loading: true });
365
+ const [highlight, setHighlight] = useState({
366
+ html: "",
367
+ loading: true
368
+ });
361
369
  const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);
362
370
  const trimmedCode = useMemo(() => normalizeCode(code, language), [code, language]);
363
371
  const codeLines = trimmedCode.split("\n");
@@ -379,7 +387,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
379
387
  await loadShikiDeps();
380
388
  const fallbackHtml = `<pre class="shiki"><code>${escapeHtml(visibleCode)}</code></pre>`;
381
389
  if (_shikiFailed || !_codeToHtml) {
382
- if (_shikiFailed && process.env.NODE_ENV === "development") {
390
+ if (_shikiFailed && isDevelopmentBuild()) {
383
391
  console.warn(
384
392
  "[@usefragments/ui] CodeBlock: shiki is not installed. Install it with: npm install shiki"
385
393
  );
@@ -388,7 +396,8 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
388
396
  }
389
397
  try {
390
398
  const resolvedLang = LANGUAGE_ALIASES[language] || language;
391
- const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme });
399
+ const shikiTheme = theme === "css-variables" ? FUI_CSS_VARIABLES_THEME : theme;
400
+ const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme: shikiTheme });
392
401
  return processShikiHtml(html, {
393
402
  showLineNumbers,
394
403
  startLineNumber,
@@ -397,7 +406,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
397
406
  removedLines: removedSet
398
407
  });
399
408
  } catch (err) {
400
- if (process.env.NODE_ENV !== "production") {
409
+ if (!isProductionBuild()) {
401
410
  console.error("Syntax highlighting failed:", err);
402
411
  }
403
412
  return fallbackHtml;
@@ -428,7 +437,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
428
437
  setTimeout(() => setCopied(false), 2e3);
429
438
  onCopy == null ? void 0 : onCopy();
430
439
  } catch (err) {
431
- if (process.env.NODE_ENV !== "production") {
440
+ if (!isProductionBuild()) {
432
441
  console.error("Failed to copy:", err);
433
442
  }
434
443
  }
@@ -451,9 +460,9 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
451
460
  ].filter(Boolean).join(" ");
452
461
  const codeContainerStyle = maxHeight ? { maxHeight, overflow: "auto" } : {};
453
462
  const wrapperStyle = bg ? { ["--fui-code-bg"]: bg } : void 0;
454
- return /* @__PURE__ */ jsxs("div", { ref, ...htmlProps, className: classNames, "data-theme": "dark", children: [
455
- title && /* @__PURE__ */ jsx("div", { className: styles.title, children: title }),
456
- /* @__PURE__ */ jsxs("div", { className: wrapperClasses, style: wrapperStyle, children: [
463
+ return /* @__PURE__ */ jsxs("div", { ref, ...htmlProps, className: classNames, "data-slot": "code-block", children: [
464
+ title && /* @__PURE__ */ jsx("div", { className: styles.title, "data-slot": "code-block-title", children: title }),
465
+ /* @__PURE__ */ jsxs("div", { className: wrapperClasses, style: wrapperStyle, "data-slot": "code-block-frame", children: [
457
466
  shouldRenderHeader && /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
458
467
  /* @__PURE__ */ jsx("span", { className: styles.filename, children: filename ?? "" }),
459
468
  shouldShowHeaderCopy && /* @__PURE__ */ jsx(
@@ -500,10 +509,10 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
500
509
  {
501
510
  type: "button",
502
511
  onClick: toggleCollapsed,
503
- className: styles.collapseButton,
512
+ className: collapseAction === "expand" ? `${styles.collapseButton} ${styles.collapseExpand}` : styles.collapseButton,
504
513
  "aria-expanded": !isCollapsed,
505
514
  "aria-label": isCollapsed ? "Expand code" : "Collapse code",
506
- children: isCollapsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
515
+ children: collapseAction === "expand" ? /* @__PURE__ */ jsx("span", { children: isCollapsed ? "Expand" : "Collapse" }) : isCollapsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
507
516
  /* @__PURE__ */ jsx(ChevronDownIcon, { className: styles.icon }),
508
517
  /* @__PURE__ */ jsxs("span", { children: [
509
518
  "Show ",
@@ -532,6 +541,10 @@ function TabbedCodeBlock({
532
541
  tabsVariant = "pills",
533
542
  wordWrap,
534
543
  maxHeight,
544
+ collapsible,
545
+ defaultCollapsed,
546
+ collapsedLines,
547
+ collapseAction,
535
548
  className,
536
549
  onCopy
537
550
  }) {
@@ -544,20 +557,33 @@ function TabbedCodeBlock({
544
557
  }) }),
545
558
  tabs.map((tab, index) => {
546
559
  const tabValue = tab.value ?? tab.label;
547
- return /* @__PURE__ */ jsx(TabsPanel, { value: tabValue, flush: true, className: styles.tabbedPanel, children: /* @__PURE__ */ jsx(
548
- CodeBlockBase,
560
+ return /* @__PURE__ */ jsx(
561
+ TabsPanel,
549
562
  {
550
- code: tab.code,
551
- language: tab.language,
552
- theme,
553
- showCopy,
554
- copyPlacement,
555
- showLineNumbers,
556
- wordWrap,
557
- maxHeight,
558
- onCopy: onCopy ? () => onCopy(tab.label) : void 0
559
- }
560
- ) }, `${tabValue}-panel-${index}`);
563
+ value: tabValue,
564
+ flush: true,
565
+ className: styles.tabbedPanel,
566
+ children: /* @__PURE__ */ jsx(
567
+ CodeBlockBase,
568
+ {
569
+ code: tab.code,
570
+ language: tab.language,
571
+ theme,
572
+ showCopy,
573
+ copyPlacement,
574
+ showLineNumbers,
575
+ wordWrap,
576
+ maxHeight,
577
+ collapsible,
578
+ defaultCollapsed,
579
+ collapsedLines,
580
+ collapseAction,
581
+ onCopy: onCopy ? () => onCopy(tab.label) : void 0
582
+ }
583
+ )
584
+ },
585
+ `${tabValue}-panel-${index}`
586
+ );
561
587
  })
562
588
  ] }) });
563
589
  }
@@ -26,10 +26,12 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
26
26
  const jsxRuntime = require("react/jsx-runtime");
27
27
  const React = require("react");
28
28
  const popover = require("@base-ui/react/popover");
29
+ const popup = require("./recipes/popup.cjs");
29
30
  const field = require("@base-ui/react/field");
30
31
  const index = require("./components/ComponentDefaults/index.cjs");
31
32
  const index$1 = require("./components/Input/index.cjs");
32
33
  const ColorPicker_module = require("./components/ColorPicker/ColorPicker.module.scss.cjs");
34
+ const env = require("./utils/env.cjs");
33
35
  function _interopNamespaceDefault(e) {
34
36
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
35
37
  if (e) {
@@ -58,7 +60,7 @@ function loadColorfulDeps() {
58
60
  _HexColorPicker = rc.HexColorPicker;
59
61
  } catch {
60
62
  _colorfulFailed = true;
61
- if (process.env.NODE_ENV === "development") {
63
+ if (env.isDevelopmentBuild()) {
62
64
  console.warn(
63
65
  "[@usefragments/ui] ColorPicker: react-colorful is not installed. Install it with: npm install react-colorful"
64
66
  );
@@ -157,7 +159,7 @@ const ColorPickerRoot = React__namespace.forwardRef(function ColorPicker2({
157
159
  {
158
160
  side: "bottom",
159
161
  align: "start",
160
- sideOffset: 4,
162
+ sideOffset: popup.POPUP_OFFSET_PX,
161
163
  className: ColorPicker_module.default.positioner,
162
164
  children: /* @__PURE__ */ jsxRuntime.jsx(
163
165
  popover.Popover.Popup,
@@ -177,6 +179,7 @@ const ColorPickerRoot = React__namespace.forwardRef(function ColorPicker2({
177
179
  onChange: handleInputChange,
178
180
  onBlur: handleInputBlur,
179
181
  disabled,
182
+ error,
180
183
  size,
181
184
  className: ColorPicker_module.default.hexInput,
182
185
  inputClassName: ColorPicker_module.default.hexInputField,
@@ -2,10 +2,12 @@
2
2
  import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { Popover } from "@base-ui/react/popover";
5
+ import { POPUP_OFFSET_PX } from "./recipes/popup.js";
5
6
  import { Field } from "@base-ui/react/field";
6
7
  import { useResolvedControlSize } from "./components/ComponentDefaults/index.js";
7
8
  import { Input } from "./components/Input/index.js";
8
9
  import styles from "./components/ColorPicker/ColorPicker.module.scss.js";
10
+ import { isDevelopmentBuild } from "./utils/env.js";
9
11
  let _HexColorPicker = null;
10
12
  let _colorfulLoadPromise = null;
11
13
  let _colorfulFailed = false;
@@ -17,7 +19,7 @@ function loadColorfulDeps() {
17
19
  _HexColorPicker = rc.HexColorPicker;
18
20
  } catch {
19
21
  _colorfulFailed = true;
20
- if (process.env.NODE_ENV === "development") {
22
+ if (isDevelopmentBuild()) {
21
23
  console.warn(
22
24
  "[@usefragments/ui] ColorPicker: react-colorful is not installed. Install it with: npm install react-colorful"
23
25
  );
@@ -116,7 +118,7 @@ const ColorPickerRoot = React.forwardRef(function ColorPicker2({
116
118
  {
117
119
  side: "bottom",
118
120
  align: "start",
119
- sideOffset: 4,
121
+ sideOffset: POPUP_OFFSET_PX,
120
122
  className: styles.positioner,
121
123
  children: /* @__PURE__ */ jsx(
122
124
  Popover.Popup,
@@ -136,6 +138,7 @@ const ColorPickerRoot = React.forwardRef(function ColorPicker2({
136
138
  onChange: handleInputChange,
137
139
  onBlur: handleInputBlur,
138
140
  disabled,
141
+ error,
139
142
  size,
140
143
  className: styles.hexInput,
141
144
  inputClassName: styles.hexInputField,