@usefragments/ui 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. package/README.md +54 -66
  2. package/dist/assets/fragments-wordmark.cjs +2 -2
  3. package/dist/assets/fragments-wordmark.d.ts.map +1 -1
  4. package/dist/assets/fragments-wordmark.js +2 -2
  5. package/dist/assets/nav-glyph.cjs +139 -0
  6. package/dist/assets/nav-glyph.d.ts +28 -0
  7. package/dist/assets/nav-glyph.d.ts.map +1 -0
  8. package/dist/assets/nav-glyph.js +139 -0
  9. package/dist/assets/nav-glyph.module.scss.cjs +71 -0
  10. package/dist/assets/nav-glyph.module.scss.js +71 -0
  11. package/dist/assets/ui.css +6885 -6308
  12. package/dist/blocks/components/StatsCard.d.ts +1 -1
  13. package/dist/blocks/components/StatsCard.d.ts.map +1 -1
  14. package/dist/chart.cjs +24 -6
  15. package/dist/chart.js +24 -6
  16. package/dist/codeblock.cjs +76 -43
  17. package/dist/codeblock.js +71 -38
  18. package/dist/colorpicker.cjs +4 -1
  19. package/dist/colorpicker.js +4 -1
  20. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  21. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  22. package/dist/components/Alert/Alert.module.scss.cjs +23 -20
  23. package/dist/components/Alert/Alert.module.scss.js +23 -20
  24. package/dist/components/Alert/index.cjs +20 -8
  25. package/dist/components/Alert/index.d.ts +17 -11
  26. package/dist/components/Alert/index.d.ts.map +1 -1
  27. package/dist/components/Alert/index.js +20 -8
  28. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  29. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  30. package/dist/components/AppShell/index.cjs +2 -2
  31. package/dist/components/AppShell/index.js +2 -2
  32. package/dist/components/Avatar/Avatar.module.scss.cjs +14 -14
  33. package/dist/components/Avatar/Avatar.module.scss.js +14 -14
  34. package/dist/components/Badge/Badge.module.scss.cjs +33 -31
  35. package/dist/components/Badge/Badge.module.scss.js +33 -31
  36. package/dist/components/Badge/index.cjs +13 -3
  37. package/dist/components/Badge/index.d.ts +18 -13
  38. package/dist/components/Badge/index.d.ts.map +1 -1
  39. package/dist/components/Badge/index.js +13 -3
  40. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  41. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  42. package/dist/components/Box/Box.module.scss.cjs +152 -152
  43. package/dist/components/Box/Box.module.scss.js +152 -152
  44. package/dist/components/Box/index.cjs +64 -75
  45. package/dist/components/Box/index.d.ts +16 -16
  46. package/dist/components/Box/index.d.ts.map +1 -1
  47. package/dist/components/Box/index.js +64 -75
  48. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +11 -8
  49. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
  50. package/dist/components/Breadcrumbs/index.cjs +1 -1
  51. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  52. package/dist/components/Breadcrumbs/index.js +1 -1
  53. package/dist/components/Button/Button.module.scss.cjs +36 -27
  54. package/dist/components/Button/Button.module.scss.js +36 -27
  55. package/dist/components/Button/index.cjs +20 -4
  56. package/dist/components/Button/index.d.ts +18 -10
  57. package/dist/components/Button/index.d.ts.map +1 -1
  58. package/dist/components/Button/index.js +20 -4
  59. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  60. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  61. package/dist/components/Card/Card.module.scss.cjs +31 -26
  62. package/dist/components/Card/Card.module.scss.js +32 -27
  63. package/dist/components/Card/index.cjs +16 -3
  64. package/dist/components/Card/index.d.ts +23 -15
  65. package/dist/components/Card/index.d.ts.map +1 -1
  66. package/dist/components/Card/index.js +16 -3
  67. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  68. package/dist/components/Chart/Chart.module.scss.js +15 -15
  69. package/dist/components/Chart/index.d.ts.map +1 -1
  70. package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
  71. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
  72. package/dist/components/Checkbox/index.cjs +4 -4
  73. package/dist/components/Checkbox/index.d.ts +4 -6
  74. package/dist/components/Checkbox/index.d.ts.map +1 -1
  75. package/dist/components/Checkbox/index.js +4 -4
  76. package/dist/components/Chip/Chip.module.scss.cjs +19 -19
  77. package/dist/components/Chip/Chip.module.scss.js +19 -19
  78. package/dist/components/Chip/index.cjs +3 -3
  79. package/dist/components/Chip/index.d.ts +8 -3
  80. package/dist/components/Chip/index.d.ts.map +1 -1
  81. package/dist/components/Chip/index.js +3 -3
  82. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +26 -23
  83. package/dist/components/CodeBlock/CodeBlock.module.scss.js +26 -23
  84. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  85. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  86. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  87. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  88. package/dist/components/CodeBlock/index.d.ts +20 -5
  89. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  90. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -9
  91. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
  92. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  93. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  94. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  95. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
  96. package/dist/components/Combobox/Combobox.module.scss.js +21 -21
  97. package/dist/components/Combobox/index.cjs +26 -6
  98. package/dist/components/Combobox/index.d.ts.map +1 -1
  99. package/dist/components/Combobox/index.js +26 -6
  100. package/dist/components/Command/Command.module.scss.cjs +14 -11
  101. package/dist/components/Command/Command.module.scss.js +14 -11
  102. package/dist/components/Command/index.cjs +28 -16
  103. package/dist/components/Command/index.d.ts +8 -3
  104. package/dist/components/Command/index.d.ts.map +1 -1
  105. package/dist/components/Command/index.js +28 -16
  106. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  107. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  108. package/dist/components/ConversationList/index.cjs +2 -2
  109. package/dist/components/ConversationList/index.js +2 -2
  110. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  111. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  112. package/dist/components/DataTable/DataTable.icons.js +6 -33
  113. package/dist/components/DataTable/DataTable.module.scss.cjs +31 -28
  114. package/dist/components/DataTable/DataTable.module.scss.js +31 -28
  115. package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
  116. package/dist/components/DataTable/index.d.ts.map +1 -1
  117. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  118. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  119. package/dist/components/DatePicker/index.d.ts.map +1 -1
  120. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  121. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  122. package/dist/components/Dialog/index.cjs +13 -16
  123. package/dist/components/Dialog/index.d.ts +11 -10
  124. package/dist/components/Dialog/index.d.ts.map +1 -1
  125. package/dist/components/Dialog/index.js +13 -16
  126. package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
  127. package/dist/components/Drawer/Drawer.module.scss.js +40 -40
  128. package/dist/components/Drawer/index.cjs +2 -2
  129. package/dist/components/Drawer/index.d.ts +5 -4
  130. package/dist/components/Drawer/index.d.ts.map +1 -1
  131. package/dist/components/Drawer/index.js +2 -2
  132. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  133. package/dist/components/Editor/Editor.module.scss.js +17 -17
  134. package/dist/components/Editor/index.d.ts +10 -10
  135. package/dist/components/Editor/index.d.ts.map +1 -1
  136. package/dist/components/EmptyState/EmptyState.module.scss.cjs +11 -8
  137. package/dist/components/EmptyState/EmptyState.module.scss.js +11 -8
  138. package/dist/components/EmptyState/index.cjs +13 -6
  139. package/dist/components/EmptyState/index.d.ts +13 -5
  140. package/dist/components/EmptyState/index.d.ts.map +1 -1
  141. package/dist/components/EmptyState/index.js +13 -6
  142. package/dist/components/Field/Field.module.scss.cjs +5 -5
  143. package/dist/components/Field/Field.module.scss.js +5 -5
  144. package/dist/components/Field/index.cjs +9 -1
  145. package/dist/components/Field/index.d.ts.map +1 -1
  146. package/dist/components/Field/index.js +9 -1
  147. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  148. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  149. package/dist/components/Grid/Grid.module.scss.cjs +54 -54
  150. package/dist/components/Grid/Grid.module.scss.js +54 -54
  151. package/dist/components/Grid/index.cjs +1 -1
  152. package/dist/components/Grid/index.js +1 -1
  153. package/dist/components/Header/Header.module.scss.cjs +33 -33
  154. package/dist/components/Header/Header.module.scss.js +33 -33
  155. package/dist/components/Header/index.cjs +17 -38
  156. package/dist/components/Header/index.d.ts +15 -11
  157. package/dist/components/Header/index.d.ts.map +1 -1
  158. package/dist/components/Header/index.js +17 -38
  159. package/dist/components/Icon/Icon.module.scss.cjs +30 -33
  160. package/dist/components/Icon/Icon.module.scss.js +30 -33
  161. package/dist/components/Icon/index.cjs +15 -14
  162. package/dist/components/Icon/index.d.ts +23 -12
  163. package/dist/components/Icon/index.d.ts.map +1 -1
  164. package/dist/components/Icon/index.js +15 -14
  165. package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
  166. package/dist/components/IconButton/IconButton.module.scss.js +12 -12
  167. package/dist/components/IconButton/index.cjs +2 -1
  168. package/dist/components/IconButton/index.d.ts +4 -4
  169. package/dist/components/IconButton/index.d.ts.map +1 -1
  170. package/dist/components/IconButton/index.js +2 -1
  171. package/dist/components/Image/Image.module.scss.cjs +27 -27
  172. package/dist/components/Image/Image.module.scss.js +27 -27
  173. package/dist/components/Input/Input.module.scss.cjs +15 -21
  174. package/dist/components/Input/Input.module.scss.js +15 -21
  175. package/dist/components/Input/index.cjs +2 -14
  176. package/dist/components/Input/index.d.ts +0 -2
  177. package/dist/components/Input/index.d.ts.map +1 -1
  178. package/dist/components/Input/index.js +2 -14
  179. package/dist/components/Link/Link.module.scss.cjs +26 -14
  180. package/dist/components/Link/Link.module.scss.js +26 -14
  181. package/dist/components/Link/index.cjs +13 -2
  182. package/dist/components/Link/index.d.ts +11 -4
  183. package/dist/components/Link/index.d.ts.map +1 -1
  184. package/dist/components/Link/index.js +13 -2
  185. package/dist/components/List/List.module.scss.cjs +23 -19
  186. package/dist/components/List/List.module.scss.js +23 -19
  187. package/dist/components/List/index.cjs +7 -7
  188. package/dist/components/List/index.d.ts +10 -7
  189. package/dist/components/List/index.d.ts.map +1 -1
  190. package/dist/components/List/index.js +7 -7
  191. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  192. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  193. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  194. package/dist/components/Loading/Loading.module.scss.js +34 -34
  195. package/dist/components/Loading/index.cjs +5 -5
  196. package/dist/components/Loading/index.d.ts +8 -7
  197. package/dist/components/Loading/index.d.ts.map +1 -1
  198. package/dist/components/Loading/index.js +5 -5
  199. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  200. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  201. package/dist/components/Markdown/index.d.ts +2 -2
  202. package/dist/components/Markdown/index.d.ts.map +1 -1
  203. package/dist/components/Menu/Menu.module.scss.cjs +14 -14
  204. package/dist/components/Menu/Menu.module.scss.js +14 -14
  205. package/dist/components/Message/Message.module.scss.cjs +20 -20
  206. package/dist/components/Message/Message.module.scss.js +20 -20
  207. package/dist/components/Message/index.cjs +1 -1
  208. package/dist/components/Message/index.d.ts +1 -1
  209. package/dist/components/Message/index.js +1 -1
  210. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
  211. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
  212. package/dist/components/NavigationMenu/index.cjs +32 -15
  213. package/dist/components/NavigationMenu/index.d.ts +12 -6
  214. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  215. package/dist/components/NavigationMenu/index.js +32 -15
  216. package/dist/components/Pagination/Pagination.module.scss.cjs +10 -10
  217. package/dist/components/Pagination/Pagination.module.scss.js +10 -10
  218. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  219. package/dist/components/Popover/Popover.module.scss.js +10 -10
  220. package/dist/components/Progress/Progress.module.scss.cjs +28 -25
  221. package/dist/components/Progress/Progress.module.scss.js +28 -25
  222. package/dist/components/Progress/index.cjs +21 -12
  223. package/dist/components/Progress/index.d.ts +10 -6
  224. package/dist/components/Progress/index.d.ts.map +1 -1
  225. package/dist/components/Progress/index.js +21 -12
  226. package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
  227. package/dist/components/Prompt/Prompt.module.scss.js +30 -30
  228. package/dist/components/Prompt/index.cjs +7 -7
  229. package/dist/components/Prompt/index.d.ts +11 -9
  230. package/dist/components/Prompt/index.d.ts.map +1 -1
  231. package/dist/components/Prompt/index.js +7 -7
  232. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
  233. package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
  234. package/dist/components/RadioGroup/index.cjs +10 -5
  235. package/dist/components/RadioGroup/index.d.ts +11 -7
  236. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  237. package/dist/components/RadioGroup/index.js +10 -5
  238. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
  239. package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
  240. package/dist/components/ScrollArea/index.d.ts +4 -4
  241. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  242. package/dist/components/ScrollArea/scroll-state.d.ts +5 -5
  243. package/dist/components/Select/Select.module.scss.cjs +21 -21
  244. package/dist/components/Select/Select.module.scss.js +21 -21
  245. package/dist/components/Select/index.cjs +26 -20
  246. package/dist/components/Select/index.d.ts +5 -5
  247. package/dist/components/Select/index.d.ts.map +1 -1
  248. package/dist/components/Select/index.js +26 -20
  249. package/dist/components/Separator/Separator.module.scss.cjs +25 -19
  250. package/dist/components/Separator/Separator.module.scss.js +25 -19
  251. package/dist/components/Separator/index.cjs +10 -8
  252. package/dist/components/Separator/index.d.ts +4 -2
  253. package/dist/components/Separator/index.d.ts.map +1 -1
  254. package/dist/components/Separator/index.js +10 -8
  255. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  256. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  257. package/dist/components/Sidebar/index.cjs +15 -38
  258. package/dist/components/Sidebar/index.d.ts +19 -19
  259. package/dist/components/Sidebar/index.d.ts.map +1 -1
  260. package/dist/components/Sidebar/index.js +15 -38
  261. package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
  262. package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
  263. package/dist/components/Skeleton/index.cjs +7 -7
  264. package/dist/components/Skeleton/index.d.ts +8 -7
  265. package/dist/components/Skeleton/index.d.ts.map +1 -1
  266. package/dist/components/Skeleton/index.js +7 -7
  267. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  268. package/dist/components/Slider/Slider.module.scss.js +12 -12
  269. package/dist/components/Stack/Stack.module.scss.cjs +25 -25
  270. package/dist/components/Stack/Stack.module.scss.js +25 -25
  271. package/dist/components/Stack/index.cjs +1 -1
  272. package/dist/components/Stack/index.js +1 -1
  273. package/dist/components/Switch/Switch.module.scss.cjs +9 -9
  274. package/dist/components/Switch/Switch.module.scss.js +9 -9
  275. package/dist/components/Table/Table.module.scss.cjs +19 -19
  276. package/dist/components/Table/Table.module.scss.js +19 -19
  277. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  278. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  279. package/dist/components/TableOfContents/index.cjs +14 -10
  280. package/dist/components/TableOfContents/index.d.ts +5 -3
  281. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  282. package/dist/components/TableOfContents/index.js +14 -10
  283. package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
  284. package/dist/components/Tabs/Tabs.module.scss.js +18 -18
  285. package/dist/components/Tabs/index.cjs +30 -11
  286. package/dist/components/Tabs/index.d.ts +8 -6
  287. package/dist/components/Tabs/index.d.ts.map +1 -1
  288. package/dist/components/Tabs/index.js +30 -11
  289. package/dist/components/Text/Text.module.scss.cjs +109 -97
  290. package/dist/components/Text/Text.module.scss.js +109 -97
  291. package/dist/components/Text/index.cjs +45 -41
  292. package/dist/components/Text/index.d.ts +24 -19
  293. package/dist/components/Text/index.d.ts.map +1 -1
  294. package/dist/components/Text/index.js +45 -41
  295. package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
  296. package/dist/components/Textarea/Textarea.module.scss.js +22 -28
  297. package/dist/components/Textarea/index.cjs +3 -10
  298. package/dist/components/Textarea/index.d.ts +0 -2
  299. package/dist/components/Textarea/index.d.ts.map +1 -1
  300. package/dist/components/Textarea/index.js +3 -10
  301. package/dist/components/Theme/index.cjs +22 -5
  302. package/dist/components/Theme/index.d.ts +6 -12
  303. package/dist/components/Theme/index.d.ts.map +1 -1
  304. package/dist/components/Theme/index.js +22 -5
  305. package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
  306. package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
  307. package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
  308. package/dist/components/ThemeToggle/ThemeButton.js +34 -0
  309. package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -6
  310. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -6
  311. package/dist/components/ThemeToggle/icons.cjs +48 -0
  312. package/dist/components/ThemeToggle/icons.d.ts +10 -0
  313. package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
  314. package/dist/components/ThemeToggle/icons.js +48 -0
  315. package/dist/components/ThemeToggle/index.cjs +6 -50
  316. package/dist/components/ThemeToggle/index.d.ts +5 -3
  317. package/dist/components/ThemeToggle/index.d.ts.map +1 -1
  318. package/dist/components/ThemeToggle/index.js +3 -47
  319. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
  320. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
  321. package/dist/components/ThinkingIndicator/index.cjs +7 -8
  322. package/dist/components/ThinkingIndicator/index.d.ts +6 -5
  323. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  324. package/dist/components/ThinkingIndicator/index.js +7 -8
  325. package/dist/components/Toast/Toast.module.scss.cjs +28 -29
  326. package/dist/components/Toast/Toast.module.scss.js +29 -30
  327. package/dist/components/Toast/index.cjs +28 -30
  328. package/dist/components/Toast/index.d.ts +9 -8
  329. package/dist/components/Toast/index.d.ts.map +1 -1
  330. package/dist/components/Toast/index.js +28 -30
  331. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
  332. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
  333. package/dist/components/ToggleGroup/index.cjs +4 -5
  334. package/dist/components/ToggleGroup/index.d.ts +7 -6
  335. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  336. package/dist/components/ToggleGroup/index.js +4 -5
  337. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  338. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  339. package/dist/components/Tooltip/index.cjs +24 -40
  340. package/dist/components/Tooltip/index.d.ts +4 -4
  341. package/dist/components/Tooltip/index.d.ts.map +1 -1
  342. package/dist/components/Tooltip/index.js +24 -40
  343. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  344. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  345. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  346. package/dist/data-table-virtual.cjs +3 -2
  347. package/dist/data-table-virtual.js +3 -2
  348. package/dist/data-table.cjs +3 -2
  349. package/dist/data-table.js +3 -2
  350. package/dist/datepicker.cjs +26 -13
  351. package/dist/datepicker.js +26 -13
  352. package/dist/editor.cjs +68 -28
  353. package/dist/editor.js +68 -28
  354. package/dist/index.cjs +6 -2
  355. package/dist/index.d.ts +9 -9
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +8 -4
  358. package/dist/markdown.cjs +21 -29
  359. package/dist/markdown.js +21 -29
  360. package/dist/measurements/generated.cjs +46 -94
  361. package/dist/measurements/generated.d.ts +44 -92
  362. package/dist/measurements/generated.d.ts.map +1 -1
  363. package/dist/measurements/generated.js +46 -94
  364. package/dist/measurements/index.d.ts +1 -1
  365. package/dist/measurements/index.d.ts.map +1 -1
  366. package/dist/utils/a11y.cjs +5 -2
  367. package/dist/utils/a11y.d.ts +5 -5
  368. package/dist/utils/a11y.d.ts.map +1 -1
  369. package/dist/utils/a11y.js +5 -2
  370. package/dist/utils/canonical-stamp.cjs +2 -8
  371. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  372. package/dist/utils/canonical-stamp.js +1 -7
  373. package/dist/utils/css-warning.cjs +1 -1
  374. package/dist/utils/css-warning.js +1 -1
  375. package/dist/utils/env.cjs +17 -0
  376. package/dist/utils/env.d.ts +3 -0
  377. package/dist/utils/env.d.ts.map +1 -0
  378. package/dist/utils/env.js +17 -0
  379. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  380. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  381. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  382. package/dist/utils/keyboard-shortcuts.js +3 -10
  383. package/dist/utils/seed-derivation.cjs +10 -7
  384. package/dist/utils/seed-derivation.d.ts +1 -3
  385. package/dist/utils/seed-derivation.d.ts.map +1 -1
  386. package/dist/utils/seed-derivation.js +10 -7
  387. package/dist/utils/theme-presets.cjs +5 -10
  388. package/dist/utils/theme-presets.d.ts +1 -2
  389. package/dist/utils/theme-presets.d.ts.map +1 -1
  390. package/dist/utils/theme-presets.js +5 -10
  391. package/fragments.json +1 -1
  392. package/package.json +9 -10
  393. package/src/assets/fragments-logo.tsx +2 -2
  394. package/src/assets/fragments-wordmark.tsx +4 -2
  395. package/src/assets/nav-glyph.module.scss +166 -0
  396. package/src/assets/nav-glyph.tsx +188 -0
  397. package/src/components/Accordion/Accordion.contract.json +24 -48
  398. package/src/components/Accordion/Accordion.module.scss +5 -3
  399. package/src/components/Alert/Alert.contract.json +49 -65
  400. package/src/components/Alert/Alert.module.scss +57 -47
  401. package/src/components/Alert/index.tsx +72 -39
  402. package/src/components/AppShell/AppShell.contract.json +34 -51
  403. package/src/components/AppShell/AppShell.module.scss +99 -54
  404. package/src/components/AppShell/index.tsx +2 -2
  405. package/src/components/Avatar/Avatar.contract.json +31 -48
  406. package/src/components/Avatar/Avatar.module.scss +4 -2
  407. package/src/components/Badge/Badge.contract.json +86 -55
  408. package/src/components/Badge/Badge.module.scss +80 -48
  409. package/src/components/Badge/index.tsx +34 -17
  410. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  411. package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
  412. package/src/components/Box/Box.contract.json +40 -148
  413. package/src/components/Box/Box.module.scss +7 -6
  414. package/src/components/Box/index.tsx +92 -99
  415. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  416. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +27 -12
  417. package/src/components/Breadcrumbs/index.tsx +5 -1
  418. package/src/components/Button/Button.module.scss +261 -185
  419. package/src/components/Button/index.tsx +41 -28
  420. package/src/components/ButtonGroup/ButtonGroup.contract.json +34 -49
  421. package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
  422. package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
  423. package/src/components/Card/Card.module.scss +97 -76
  424. package/src/components/Card/index.tsx +44 -20
  425. package/src/components/Chart/Chart.contract.json +21 -29
  426. package/src/components/Chart/Chart.module.scss +6 -5
  427. package/src/components/Chart/index.tsx +36 -6
  428. package/src/components/Checkbox/Checkbox.contract.json +28 -27
  429. package/src/components/Checkbox/Checkbox.module.scss +47 -54
  430. package/src/components/Checkbox/index.tsx +10 -10
  431. package/src/components/Chip/Chip.contract.json +38 -45
  432. package/src/components/Chip/Chip.module.scss +24 -23
  433. package/src/components/Chip/index.tsx +12 -7
  434. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  435. package/src/components/CodeBlock/CodeBlock.module.scss +75 -73
  436. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  437. package/src/components/CodeBlock/index.tsx +114 -51
  438. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  439. package/src/components/Collapsible/Collapsible.module.scss +1 -7
  440. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  441. package/src/components/ColorPicker/ColorPicker.module.scss +34 -24
  442. package/src/components/ColorPicker/index.tsx +6 -1
  443. package/src/components/Combobox/Combobox.contract.json +36 -37
  444. package/src/components/Combobox/Combobox.module.scss +16 -19
  445. package/src/components/Combobox/index.tsx +41 -6
  446. package/src/components/Command/Command.contract.json +28 -44
  447. package/src/components/Command/Command.module.scss +19 -21
  448. package/src/components/Command/index.tsx +64 -47
  449. package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
  450. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  451. package/src/components/ConversationList/ConversationList.module.scss +2 -3
  452. package/src/components/ConversationList/index.tsx +2 -2
  453. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  454. package/src/components/DataTable/DataTable.module.scss +24 -17
  455. package/src/components/DataTable/DataTable.virtual.tsx +3 -2
  456. package/src/components/DataTable/index.tsx +9 -8
  457. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  458. package/src/components/DatePicker/DatePicker.module.scss +41 -44
  459. package/src/components/DatePicker/index.tsx +23 -9
  460. package/src/components/Dialog/Dialog.module.scss +26 -32
  461. package/src/components/Dialog/index.tsx +51 -39
  462. package/src/components/Drawer/Drawer.contract.json +28 -42
  463. package/src/components/Drawer/Drawer.module.scss +123 -64
  464. package/src/components/Drawer/index.tsx +7 -5
  465. package/src/components/Editor/Editor.contract.json +32 -49
  466. package/src/components/Editor/Editor.module.scss +60 -25
  467. package/src/components/Editor/index.tsx +240 -179
  468. package/src/components/EmptyState/EmptyState.contract.json +33 -45
  469. package/src/components/EmptyState/EmptyState.module.scss +37 -21
  470. package/src/components/EmptyState/index.tsx +56 -23
  471. package/src/components/Field/Field.contract.json +28 -46
  472. package/src/components/Field/Field.module.scss +2 -1
  473. package/src/components/Field/index.tsx +5 -1
  474. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  475. package/src/components/Fieldset/Fieldset.module.scss +15 -7
  476. package/src/components/Form/Form.contract.json +23 -23
  477. package/src/components/Grid/Grid.contract.json +28 -64
  478. package/src/components/Grid/Grid.module.scss +2 -2
  479. package/src/components/Grid/index.tsx +10 -10
  480. package/src/components/Header/Header.contract.json +31 -67
  481. package/src/components/Header/Header.module.scss +57 -54
  482. package/src/components/Header/index.tsx +134 -122
  483. package/src/components/Icon/Icon.contract.json +37 -81
  484. package/src/components/Icon/Icon.module.scss +13 -12
  485. package/src/components/Icon/index.tsx +31 -31
  486. package/src/components/IconButton/IconButton.contract.json +37 -21
  487. package/src/components/IconButton/IconButton.module.scss +19 -11
  488. package/src/components/IconButton/index.tsx +6 -5
  489. package/src/components/Image/Image.contract.json +23 -56
  490. package/src/components/Input/Input.contract.json +25 -44
  491. package/src/components/Input/Input.module.scss +6 -55
  492. package/src/components/Input/index.tsx +2 -18
  493. package/src/components/Link/Link.contract.json +46 -58
  494. package/src/components/Link/Link.module.scss +41 -10
  495. package/src/components/Link/index.tsx +27 -6
  496. package/src/components/List/List.contract.json +33 -62
  497. package/src/components/List/List.module.scss +10 -5
  498. package/src/components/List/index.tsx +17 -13
  499. package/src/components/Listbox/Listbox.contract.json +21 -37
  500. package/src/components/Listbox/Listbox.module.scss +14 -20
  501. package/src/components/Loading/Loading.contract.json +41 -65
  502. package/src/components/Loading/Loading.module.scss +37 -31
  503. package/src/components/Loading/index.tsx +15 -14
  504. package/src/components/Main/Main.contract.json +17 -9
  505. package/src/components/Markdown/Markdown.contract.json +22 -43
  506. package/src/components/Markdown/Markdown.module.scss +45 -6
  507. package/src/components/Markdown/index.tsx +48 -49
  508. package/src/components/Menu/Menu.contract.json +30 -46
  509. package/src/components/Menu/Menu.module.scss +32 -16
  510. package/src/components/Message/Message.contract.json +31 -54
  511. package/src/components/Message/Message.module.scss +18 -9
  512. package/src/components/Message/index.tsx +2 -2
  513. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  514. package/src/components/NavigationMenu/NavigationMenu.module.scss +66 -66
  515. package/src/components/NavigationMenu/index.tsx +105 -81
  516. package/src/components/Pagination/Pagination.contract.json +22 -40
  517. package/src/components/Pagination/Pagination.module.scss +9 -16
  518. package/src/components/Popover/Popover.contract.json +28 -50
  519. package/src/components/Popover/Popover.module.scss +30 -28
  520. package/src/components/Progress/Progress.contract.json +39 -35
  521. package/src/components/Progress/Progress.module.scss +16 -10
  522. package/src/components/Progress/index.tsx +34 -16
  523. package/src/components/Prompt/Prompt.contract.json +40 -56
  524. package/src/components/Prompt/Prompt.module.scss +49 -48
  525. package/src/components/Prompt/index.tsx +17 -15
  526. package/src/components/RadioGroup/RadioGroup.contract.json +29 -28
  527. package/src/components/RadioGroup/RadioGroup.module.scss +50 -45
  528. package/src/components/RadioGroup/index.tsx +23 -10
  529. package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
  530. package/src/components/ScrollArea/ScrollArea.module.scss +45 -48
  531. package/src/components/ScrollArea/index.tsx +16 -16
  532. package/src/components/ScrollArea/scroll-state.ts +24 -24
  533. package/src/components/Select/Select.module.scss +20 -19
  534. package/src/components/Select/index.tsx +26 -24
  535. package/src/components/Separator/Separator.contract.json +29 -53
  536. package/src/components/Separator/Separator.module.scss +24 -40
  537. package/src/components/Separator/index.tsx +16 -11
  538. package/src/components/Sidebar/Sidebar.contract.json +35 -67
  539. package/src/components/Sidebar/Sidebar.module.scss +94 -88
  540. package/src/components/Sidebar/index.tsx +167 -167
  541. package/src/components/Skeleton/Skeleton.contract.json +34 -60
  542. package/src/components/Skeleton/Skeleton.module.scss +50 -26
  543. package/src/components/Skeleton/index.tsx +16 -15
  544. package/src/components/Slider/Slider.contract.json +27 -39
  545. package/src/components/Slider/Slider.module.scss +9 -22
  546. package/src/components/Stack/Stack.contract.json +30 -57
  547. package/src/components/Stack/Stack.module.scss +26 -24
  548. package/src/components/Stack/index.tsx +3 -3
  549. package/src/components/Switch/Switch.contract.json +33 -46
  550. package/src/components/Switch/Switch.module.scss +106 -59
  551. package/src/components/Table/Table.contract.json +28 -46
  552. package/src/components/Table/Table.module.scss +24 -16
  553. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  554. package/src/components/TableOfContents/TableOfContents.module.scss +17 -13
  555. package/src/components/TableOfContents/index.tsx +27 -10
  556. package/src/components/Tabs/Tabs.contract.json +35 -56
  557. package/src/components/Tabs/Tabs.module.scss +27 -31
  558. package/src/components/Tabs/index.tsx +30 -15
  559. package/src/components/Text/Text.contract.json +52 -72
  560. package/src/components/Text/Text.module.scss +34 -18
  561. package/src/components/Text/index.tsx +123 -83
  562. package/src/components/Textarea/Textarea.contract.json +24 -55
  563. package/src/components/Textarea/Textarea.module.scss +22 -52
  564. package/src/components/Textarea/index.tsx +3 -14
  565. package/src/components/Theme/Theme.contract.json +35 -53
  566. package/src/components/Theme/index.tsx +41 -13
  567. package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
  568. package/src/components/ThemeToggle/ThemeToggle.module.scss +20 -27
  569. package/src/components/ThemeToggle/icons.tsx +46 -0
  570. package/src/components/ThemeToggle/index.tsx +9 -55
  571. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +34 -50
  572. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
  573. package/src/components/ThinkingIndicator/index.tsx +12 -14
  574. package/src/components/Toast/Toast.contract.json +55 -49
  575. package/src/components/Toast/Toast.module.scss +50 -105
  576. package/src/components/Toast/index.tsx +39 -34
  577. package/src/components/ToggleGroup/ToggleGroup.contract.json +39 -40
  578. package/src/components/ToggleGroup/ToggleGroup.module.scss +30 -27
  579. package/src/components/ToggleGroup/index.tsx +11 -11
  580. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  581. package/src/components/Tooltip/Tooltip.module.scss +16 -10
  582. package/src/components/Tooltip/index.tsx +19 -24
  583. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  584. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
  585. package/src/components/VisuallyHidden/index.tsx +5 -5
  586. package/src/index.ts +16 -12
  587. package/src/measurements/MeasurementTargets.module.scss +6 -7
  588. package/src/measurements/generated.ts +46 -97
  589. package/src/measurements/index.ts +0 -1
  590. package/src/measurements/measurements.json +44 -116
  591. package/src/recipes/_action.scss +4 -4
  592. package/src/recipes/_boolean-range.scss +12 -16
  593. package/src/recipes/_feedback.scss +17 -16
  594. package/src/recipes/_field.scss +28 -16
  595. package/src/recipes/_layout.scss +14 -7
  596. package/src/recipes/_navigation.scss +84 -29
  597. package/src/recipes/_overlay.scss +143 -43
  598. package/src/recipes/_popup.scss +54 -34
  599. package/src/recipes/_prose.scss +48 -28
  600. package/src/recipes/_representation.scss +10 -9
  601. package/src/recipes/_segmented.scss +1 -1
  602. package/src/recipes/_table-chrome.scss +42 -17
  603. package/src/recipes/_target.scss +2 -4
  604. package/src/recipes/_typography.scss +10 -0
  605. package/src/scss.d.ts +1 -1
  606. package/src/styles/globals.scss +31 -25
  607. package/src/tokens/_component-properties.scss +19 -1
  608. package/src/tokens/_computed.scss +32 -49
  609. package/src/tokens/_derive.scss +112 -210
  610. package/src/tokens/_measurements.catalog.generated.css +62 -44
  611. package/src/tokens/_measurements.generated.scss +119 -249
  612. package/src/tokens/_mixins.scss +49 -48
  613. package/src/tokens/_palettes.scss +39 -167
  614. package/src/tokens/_property-registrations.scss +9 -0
  615. package/src/tokens/_seeds.scss +20 -31
  616. package/src/tokens/_variables.scss +251 -94
  617. package/src/utils/a11y.tsx +69 -69
  618. package/src/utils/aria.ts +3 -3
  619. package/src/utils/canonical-stamp.ts +2 -12
  620. package/src/utils/css-warning.ts +7 -7
  621. package/src/utils/env.ts +25 -0
  622. package/src/utils/keyboard-shortcuts.ts +131 -126
  623. package/src/utils/seed-derivation.ts +11 -14
  624. package/src/utils/theme-presets.ts +5 -12
  625. package/dist/blocks/AccountSettings.block.d.ts +0 -3
  626. package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
  627. package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
  628. package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
  629. package/dist/blocks/BlogEditor.block.d.ts +0 -3
  630. package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
  631. package/dist/blocks/ChatInterface.block.d.ts +0 -3
  632. package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
  633. package/dist/blocks/ChatMessages.block.d.ts +0 -3
  634. package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
  635. package/dist/blocks/CheckoutForm.block.d.ts +0 -3
  636. package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
  637. package/dist/blocks/CommandPalette.block.d.ts +0 -3
  638. package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
  639. package/dist/blocks/ContactForm.block.d.ts +0 -3
  640. package/dist/blocks/ContactForm.block.d.ts.map +0 -1
  641. package/dist/blocks/DashboardPage.block.d.ts +0 -3
  642. package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
  643. package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
  644. package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
  645. package/dist/blocks/DataTable.block.d.ts +0 -3
  646. package/dist/blocks/DataTable.block.d.ts.map +0 -1
  647. package/dist/blocks/EmptyState.block.d.ts +0 -3
  648. package/dist/blocks/EmptyState.block.d.ts.map +0 -1
  649. package/dist/blocks/FAQSection.block.d.ts +0 -3
  650. package/dist/blocks/FAQSection.block.d.ts.map +0 -1
  651. package/dist/blocks/FeatureGrid.block.d.ts +0 -3
  652. package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
  653. package/dist/blocks/HeroSection.block.d.ts +0 -3
  654. package/dist/blocks/HeroSection.block.d.ts.map +0 -1
  655. package/dist/blocks/NavigationHeader.block.d.ts +0 -3
  656. package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
  657. package/dist/blocks/PaginatedTable.block.d.ts +0 -3
  658. package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
  659. package/dist/blocks/PricingComparison.block.d.ts +0 -3
  660. package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
  661. package/dist/blocks/ProductCard.block.d.ts +0 -3
  662. package/dist/blocks/ProductCard.block.d.ts.map +0 -1
  663. package/dist/blocks/RegistrationForm.block.d.ts +0 -3
  664. package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
  665. package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
  666. package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
  667. package/dist/blocks/SettingsPanel.block.d.ts +0 -3
  668. package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
  669. package/dist/blocks/ShoppingCart.block.d.ts +0 -3
  670. package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
  671. package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
  672. package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
  673. package/dist/blocks/TableSkeleton.block.d.ts +0 -3
  674. package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
  675. package/dist/blocks/ThinkingStates.block.d.ts +0 -3
  676. package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
  677. package/dist/components/Toggle/index.d.ts +0 -3
  678. package/dist/components/Toggle/index.d.ts.map +0 -1
  679. package/src/components/Button/Button.contract.json +0 -218
  680. package/src/components/Card/Card.contract.json +0 -175
  681. package/src/components/DataTable/DataTable.contract.json +0 -302
  682. package/src/components/Dialog/Dialog.contract.json +0 -159
  683. package/src/components/Select/Select.contract.json +0 -259
  684. package/src/components/Toggle/index.ts +0 -7
  685. package/src/tokens/_density.scss +0 -85
@@ -7,7 +7,7 @@ export interface StatsCardProps {
7
7
  /** Change indicator text (e.g., "+12.5%") */
8
8
  change?: string;
9
9
  /** Semantic variant for the change badge */
10
- changeVariant?: 'success' | 'warning' | 'error';
10
+ changeTone?: 'success' | 'warning' | 'danger';
11
11
  /** Optional icon rendered in the top-right corner */
12
12
  icon?: React.ReactNode;
13
13
  /** Additional CSS class name */
@@ -1 +1 @@
1
- {"version":3,"file":"StatsCard.d.ts","sourceRoot":"","sources":["../../../src/blocks/components/StatsCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,qDAAqD;IACrD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,eAAO,MAAM,SAAS,uFA8CrB,CAAC"}
1
+ {"version":3,"file":"StatsCard.d.ts","sourceRoot":"","sources":["../../../src/blocks/components/StatsCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9C,qDAAqD;IACrD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,eAAO,MAAM,SAAS,uFA8CrB,CAAC"}
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,6 +143,7 @@ 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",
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,6 +102,7 @@ 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",
@@ -25,8 +25,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
26
26
  const jsxRuntime = require("react/jsx-runtime");
27
27
  const React = require("react");
28
- const index = require("./components/Tabs/index.cjs");
28
+ const index$1 = require("./components/Button/index.cjs");
29
+ const index = require("./components/IconButton/index.cjs");
30
+ const index$2 = require("./components/Tabs/index.cjs");
31
+ const cssVariablesTheme = require("./components/CodeBlock/css-variables-theme.cjs");
29
32
  const CodeBlock_module = require("./components/CodeBlock/CodeBlock.module.scss.cjs");
33
+ const env = require("./utils/env.cjs");
30
34
  function _interopNamespaceDefault(e) {
31
35
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
32
36
  if (e) {
@@ -361,19 +365,21 @@ function processShikiHtml(html, options) {
361
365
  if (isRemoved) lineClasses.push("diff-removed");
362
366
  const lineClass = lineClasses.join(" ");
363
367
  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>`;
368
+ const lineNumHtml = showLineNumbers || hasDiff ? `${showLineNumbers ? `<span class="line-number">${displayLineNum}</span>` : ""}${hasDiff ? `<span class="diff-marker">${diffMarker}</span>` : ""}` : "";
369
+ if (/^<span class="line([^"]*)">/.test(line)) {
370
+ return line.replace(
371
+ /^<span class="line([^"]*)">/,
372
+ `<span class="${lineClass}$1">${lineNumHtml}`
373
+ );
368
374
  }
369
- return `<span class="${lineClass}">${line}</span>`;
375
+ return `<span class="${lineClass}">${lineNumHtml}${line}</span>`;
370
376
  });
371
377
  return html.replace(/<code[^>]*>[\s\S]*?<\/code>/, `<code>${processedLines.join("\n")}</code>`);
372
378
  }
373
379
  const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
374
380
  code,
375
381
  language = "tsx",
376
- theme = "one-dark-pro",
382
+ theme = "css-variables",
377
383
  showCopy = true,
378
384
  title,
379
385
  filename,
@@ -388,6 +394,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
388
394
  collapsible = false,
389
395
  defaultCollapsed = false,
390
396
  collapsedLines = 5,
397
+ collapseAction = "lines",
391
398
  compact = false,
392
399
  persistentCopy = false,
393
400
  copyPlacement = "auto",
@@ -397,7 +404,10 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
397
404
  ...htmlProps
398
405
  }, ref) {
399
406
  const [copied, setCopied] = React.useState(false);
400
- const [highlight, setHighlight] = React.useState({ html: "", loading: true });
407
+ const [highlight, setHighlight] = React.useState({
408
+ html: "",
409
+ loading: true
410
+ });
401
411
  const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed);
402
412
  const trimmedCode = React.useMemo(() => normalizeCode(code, language), [code, language]);
403
413
  const codeLines = trimmedCode.split("\n");
@@ -419,7 +429,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
419
429
  await loadShikiDeps();
420
430
  const fallbackHtml = `<pre class="shiki"><code>${escapeHtml(visibleCode)}</code></pre>`;
421
431
  if (_shikiFailed || !_codeToHtml) {
422
- if (_shikiFailed && process.env.NODE_ENV === "development") {
432
+ if (_shikiFailed && env.isDevelopmentBuild()) {
423
433
  console.warn(
424
434
  "[@usefragments/ui] CodeBlock: shiki is not installed. Install it with: npm install shiki"
425
435
  );
@@ -428,7 +438,8 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
428
438
  }
429
439
  try {
430
440
  const resolvedLang = LANGUAGE_ALIASES[language] || language;
431
- const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme });
441
+ const shikiTheme = theme === "css-variables" ? cssVariablesTheme.FUI_CSS_VARIABLES_THEME : theme;
442
+ const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme: shikiTheme });
432
443
  return processShikiHtml(html, {
433
444
  showLineNumbers,
434
445
  startLineNumber,
@@ -437,7 +448,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
437
448
  removedLines: removedSet
438
449
  });
439
450
  } catch (err) {
440
- if (process.env.NODE_ENV !== "production") {
451
+ if (!env.isProductionBuild()) {
441
452
  console.error("Syntax highlighting failed:", err);
442
453
  }
443
454
  return fallbackHtml;
@@ -468,7 +479,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
468
479
  setTimeout(() => setCopied(false), 2e3);
469
480
  onCopy == null ? void 0 : onCopy();
470
481
  } catch (err) {
471
- if (process.env.NODE_ENV !== "production") {
482
+ if (!env.isProductionBuild()) {
472
483
  console.error("Failed to copy:", err);
473
484
  }
474
485
  }
@@ -491,15 +502,16 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
491
502
  ].filter(Boolean).join(" ");
492
503
  const codeContainerStyle = maxHeight ? { maxHeight, overflow: "auto" } : {};
493
504
  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: [
505
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, ...htmlProps, className: classNames, "data-slot": "code-block", children: [
506
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: CodeBlock_module.default.title, "data-slot": "code-block-title", children: title }),
507
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: wrapperClasses, style: wrapperStyle, "data-slot": "code-block-frame", children: [
497
508
  shouldRenderHeader && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CodeBlock_module.default.header, children: [
498
509
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: CodeBlock_module.default.filename, children: filename ?? "" }),
499
510
  shouldShowHeaderCopy && /* @__PURE__ */ jsxRuntime.jsx(
500
- "button",
511
+ index.IconButton,
501
512
  {
502
- type: "button",
513
+ variant: "ghost",
514
+ size: "sm",
503
515
  onClick: handleCopy,
504
516
  className: `${CodeBlock_module.default.copyButton} ${copied ? CodeBlock_module.default.copied : ""}`,
505
517
  "aria-label": copied ? "Copied!" : "Copy code",
@@ -508,9 +520,10 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
508
520
  )
509
521
  ] }),
510
522
  shouldShowOverlayCopy && /* @__PURE__ */ jsxRuntime.jsx(
511
- "button",
523
+ index.IconButton,
512
524
  {
513
- type: "button",
525
+ variant: "ghost",
526
+ size: "sm",
514
527
  onClick: handleCopy,
515
528
  className: `${CodeBlock_module.default.copyButton} ${CodeBlock_module.default.copyOverlay} ${copied ? CodeBlock_module.default.copied : ""}`,
516
529
  "aria-label": copied ? "Copied!" : "Copy code",
@@ -526,9 +539,10 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
526
539
  }
527
540
  ),
528
541
  persistentCopy && /* @__PURE__ */ jsxRuntime.jsx(
529
- "button",
542
+ index.IconButton,
530
543
  {
531
- type: "button",
544
+ variant: "ghost",
545
+ size: "sm",
532
546
  onClick: handleCopy,
533
547
  className: `${CodeBlock_module.default.persistentCopy} ${CodeBlock_module.default.copyButton} ${CodeBlock_module.default.copyOverlay} ${copied ? CodeBlock_module.default.copied : ""}`,
534
548
  "aria-label": copied ? "Copied!" : "Copy code",
@@ -536,14 +550,16 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
536
550
  }
537
551
  ),
538
552
  shouldShowCollapse && /* @__PURE__ */ jsxRuntime.jsx(
539
- "button",
553
+ index$1.Button,
540
554
  {
541
- type: "button",
555
+ variant: "ghost",
556
+ size: "sm",
557
+ fullWidth: true,
542
558
  onClick: toggleCollapsed,
543
- className: CodeBlock_module.default.collapseButton,
559
+ className: collapseAction === "expand" ? `${CodeBlock_module.default.collapseButton} ${CodeBlock_module.default.collapseExpand}` : CodeBlock_module.default.collapseButton,
544
560
  "aria-expanded": !isCollapsed,
545
561
  "aria-label": isCollapsed ? "Expand code" : "Collapse code",
546
- children: isCollapsed ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
562
+ children: collapseAction === "expand" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: isCollapsed ? "Expand" : "Collapse" }) : isCollapsed ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
547
563
  /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { className: CodeBlock_module.default.icon }),
548
564
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
549
565
  "Show ",
@@ -569,35 +585,52 @@ function TabbedCodeBlock({
569
585
  copyPlacement = "auto",
570
586
  showLineNumbers = false,
571
587
  theme,
572
- tabsVariant = "pills",
588
+ tabsVariant = "soft",
573
589
  wordWrap,
574
590
  maxHeight,
591
+ collapsible,
592
+ defaultCollapsed,
593
+ collapsedLines,
594
+ collapseAction,
575
595
  className,
576
596
  onCopy
577
597
  }) {
578
598
  var _a, _b;
579
599
  const defaultValue = defaultTab || ((_a = tabs[0]) == null ? void 0 : _a.value) || ((_b = tabs[0]) == null ? void 0 : _b.label) || "";
580
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className, children: /* @__PURE__ */ jsxRuntime.jsxs(index.TabsRoot, { defaultValue, value, onValueChange, children: [
581
- /* @__PURE__ */ jsxRuntime.jsx(index.TabsList, { variant: tabsVariant, children: tabs.map((tab, index$1) => {
600
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className, children: /* @__PURE__ */ jsxRuntime.jsxs(index$2.TabsRoot, { defaultValue, value, onValueChange, children: [
601
+ /* @__PURE__ */ jsxRuntime.jsx(index$2.TabsList, { variant: tabsVariant, children: tabs.map((tab, index2) => {
582
602
  const tabValue = tab.value ?? tab.label;
583
- return /* @__PURE__ */ jsxRuntime.jsx(index.Tab, { value: tabValue, children: tab.label }, `${tabValue}-${index$1}`);
603
+ return /* @__PURE__ */ jsxRuntime.jsx(index$2.Tab, { value: tabValue, children: tab.label }, `${tabValue}-${index2}`);
584
604
  }) }),
585
- tabs.map((tab, index$1) => {
605
+ tabs.map((tab, index2) => {
586
606
  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,
607
+ return /* @__PURE__ */ jsxRuntime.jsx(
608
+ index$2.TabsPanel,
589
609
  {
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}`);
610
+ value: tabValue,
611
+ flush: true,
612
+ className: CodeBlock_module.default.tabbedPanel,
613
+ children: /* @__PURE__ */ jsxRuntime.jsx(
614
+ CodeBlockBase,
615
+ {
616
+ code: tab.code,
617
+ language: tab.language,
618
+ theme,
619
+ showCopy,
620
+ copyPlacement,
621
+ showLineNumbers,
622
+ wordWrap,
623
+ maxHeight,
624
+ collapsible,
625
+ defaultCollapsed,
626
+ collapsedLines,
627
+ collapseAction,
628
+ onCopy: onCopy ? () => onCopy(tab.label) : void 0
629
+ }
630
+ )
631
+ },
632
+ `${tabValue}-panel-${index2}`
633
+ );
601
634
  })
602
635
  ] }) });
603
636
  }
package/dist/codeblock.js CHANGED
@@ -2,8 +2,12 @@
2
2
  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
+ import { Button } from "./components/Button/index.js";
6
+ import { IconButton } from "./components/IconButton/index.js";
5
7
  import { TabsRoot, TabsList, Tab, TabsPanel } from "./components/Tabs/index.js";
8
+ import { FUI_CSS_VARIABLES_THEME } from "./components/CodeBlock/css-variables-theme.js";
6
9
  import styles from "./components/CodeBlock/CodeBlock.module.scss.js";
10
+ import { isProductionBuild, isDevelopmentBuild } from "./utils/env.js";
7
11
  let _codeToHtml = null;
8
12
  let _shikiLoadPromise = null;
9
13
  let _shikiFailed = false;
@@ -321,19 +325,21 @@ function processShikiHtml(html, options) {
321
325
  if (isRemoved) lineClasses.push("diff-removed");
322
326
  const lineClass = lineClasses.join(" ");
323
327
  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>`;
328
+ const lineNumHtml = showLineNumbers || hasDiff ? `${showLineNumbers ? `<span class="line-number">${displayLineNum}</span>` : ""}${hasDiff ? `<span class="diff-marker">${diffMarker}</span>` : ""}` : "";
329
+ if (/^<span class="line([^"]*)">/.test(line)) {
330
+ return line.replace(
331
+ /^<span class="line([^"]*)">/,
332
+ `<span class="${lineClass}$1">${lineNumHtml}`
333
+ );
328
334
  }
329
- return `<span class="${lineClass}">${line}</span>`;
335
+ return `<span class="${lineClass}">${lineNumHtml}${line}</span>`;
330
336
  });
331
337
  return html.replace(/<code[^>]*>[\s\S]*?<\/code>/, `<code>${processedLines.join("\n")}</code>`);
332
338
  }
333
339
  const CodeBlockBase = React.forwardRef(function CodeBlock2({
334
340
  code,
335
341
  language = "tsx",
336
- theme = "one-dark-pro",
342
+ theme = "css-variables",
337
343
  showCopy = true,
338
344
  title,
339
345
  filename,
@@ -348,6 +354,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
348
354
  collapsible = false,
349
355
  defaultCollapsed = false,
350
356
  collapsedLines = 5,
357
+ collapseAction = "lines",
351
358
  compact = false,
352
359
  persistentCopy = false,
353
360
  copyPlacement = "auto",
@@ -357,7 +364,10 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
357
364
  ...htmlProps
358
365
  }, ref) {
359
366
  const [copied, setCopied] = useState(false);
360
- const [highlight, setHighlight] = useState({ html: "", loading: true });
367
+ const [highlight, setHighlight] = useState({
368
+ html: "",
369
+ loading: true
370
+ });
361
371
  const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);
362
372
  const trimmedCode = useMemo(() => normalizeCode(code, language), [code, language]);
363
373
  const codeLines = trimmedCode.split("\n");
@@ -379,7 +389,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
379
389
  await loadShikiDeps();
380
390
  const fallbackHtml = `<pre class="shiki"><code>${escapeHtml(visibleCode)}</code></pre>`;
381
391
  if (_shikiFailed || !_codeToHtml) {
382
- if (_shikiFailed && process.env.NODE_ENV === "development") {
392
+ if (_shikiFailed && isDevelopmentBuild()) {
383
393
  console.warn(
384
394
  "[@usefragments/ui] CodeBlock: shiki is not installed. Install it with: npm install shiki"
385
395
  );
@@ -388,7 +398,8 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
388
398
  }
389
399
  try {
390
400
  const resolvedLang = LANGUAGE_ALIASES[language] || language;
391
- const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme });
401
+ const shikiTheme = theme === "css-variables" ? FUI_CSS_VARIABLES_THEME : theme;
402
+ const html = await _codeToHtml(visibleCode, { lang: resolvedLang, theme: shikiTheme });
392
403
  return processShikiHtml(html, {
393
404
  showLineNumbers,
394
405
  startLineNumber,
@@ -397,7 +408,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
397
408
  removedLines: removedSet
398
409
  });
399
410
  } catch (err) {
400
- if (process.env.NODE_ENV !== "production") {
411
+ if (!isProductionBuild()) {
401
412
  console.error("Syntax highlighting failed:", err);
402
413
  }
403
414
  return fallbackHtml;
@@ -428,7 +439,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
428
439
  setTimeout(() => setCopied(false), 2e3);
429
440
  onCopy == null ? void 0 : onCopy();
430
441
  } catch (err) {
431
- if (process.env.NODE_ENV !== "production") {
442
+ if (!isProductionBuild()) {
432
443
  console.error("Failed to copy:", err);
433
444
  }
434
445
  }
@@ -451,15 +462,16 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
451
462
  ].filter(Boolean).join(" ");
452
463
  const codeContainerStyle = maxHeight ? { maxHeight, overflow: "auto" } : {};
453
464
  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: [
465
+ return /* @__PURE__ */ jsxs("div", { ref, ...htmlProps, className: classNames, "data-slot": "code-block", children: [
466
+ title && /* @__PURE__ */ jsx("div", { className: styles.title, "data-slot": "code-block-title", children: title }),
467
+ /* @__PURE__ */ jsxs("div", { className: wrapperClasses, style: wrapperStyle, "data-slot": "code-block-frame", children: [
457
468
  shouldRenderHeader && /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
458
469
  /* @__PURE__ */ jsx("span", { className: styles.filename, children: filename ?? "" }),
459
470
  shouldShowHeaderCopy && /* @__PURE__ */ jsx(
460
- "button",
471
+ IconButton,
461
472
  {
462
- type: "button",
473
+ variant: "ghost",
474
+ size: "sm",
463
475
  onClick: handleCopy,
464
476
  className: `${styles.copyButton} ${copied ? styles.copied : ""}`,
465
477
  "aria-label": copied ? "Copied!" : "Copy code",
@@ -468,9 +480,10 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
468
480
  )
469
481
  ] }),
470
482
  shouldShowOverlayCopy && /* @__PURE__ */ jsx(
471
- "button",
483
+ IconButton,
472
484
  {
473
- type: "button",
485
+ variant: "ghost",
486
+ size: "sm",
474
487
  onClick: handleCopy,
475
488
  className: `${styles.copyButton} ${styles.copyOverlay} ${copied ? styles.copied : ""}`,
476
489
  "aria-label": copied ? "Copied!" : "Copy code",
@@ -486,9 +499,10 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
486
499
  }
487
500
  ),
488
501
  persistentCopy && /* @__PURE__ */ jsx(
489
- "button",
502
+ IconButton,
490
503
  {
491
- type: "button",
504
+ variant: "ghost",
505
+ size: "sm",
492
506
  onClick: handleCopy,
493
507
  className: `${styles.persistentCopy} ${styles.copyButton} ${styles.copyOverlay} ${copied ? styles.copied : ""}`,
494
508
  "aria-label": copied ? "Copied!" : "Copy code",
@@ -496,14 +510,16 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
496
510
  }
497
511
  ),
498
512
  shouldShowCollapse && /* @__PURE__ */ jsx(
499
- "button",
513
+ Button,
500
514
  {
501
- type: "button",
515
+ variant: "ghost",
516
+ size: "sm",
517
+ fullWidth: true,
502
518
  onClick: toggleCollapsed,
503
- className: styles.collapseButton,
519
+ className: collapseAction === "expand" ? `${styles.collapseButton} ${styles.collapseExpand}` : styles.collapseButton,
504
520
  "aria-expanded": !isCollapsed,
505
521
  "aria-label": isCollapsed ? "Expand code" : "Collapse code",
506
- children: isCollapsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
522
+ children: collapseAction === "expand" ? /* @__PURE__ */ jsx("span", { children: isCollapsed ? "Expand" : "Collapse" }) : isCollapsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
507
523
  /* @__PURE__ */ jsx(ChevronDownIcon, { className: styles.icon }),
508
524
  /* @__PURE__ */ jsxs("span", { children: [
509
525
  "Show ",
@@ -529,9 +545,13 @@ function TabbedCodeBlock({
529
545
  copyPlacement = "auto",
530
546
  showLineNumbers = false,
531
547
  theme,
532
- tabsVariant = "pills",
548
+ tabsVariant = "soft",
533
549
  wordWrap,
534
550
  maxHeight,
551
+ collapsible,
552
+ defaultCollapsed,
553
+ collapsedLines,
554
+ collapseAction,
535
555
  className,
536
556
  onCopy
537
557
  }) {
@@ -544,20 +564,33 @@ function TabbedCodeBlock({
544
564
  }) }),
545
565
  tabs.map((tab, index) => {
546
566
  const tabValue = tab.value ?? tab.label;
547
- return /* @__PURE__ */ jsx(TabsPanel, { value: tabValue, flush: true, className: styles.tabbedPanel, children: /* @__PURE__ */ jsx(
548
- CodeBlockBase,
567
+ return /* @__PURE__ */ jsx(
568
+ TabsPanel,
549
569
  {
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}`);
570
+ value: tabValue,
571
+ flush: true,
572
+ className: styles.tabbedPanel,
573
+ children: /* @__PURE__ */ jsx(
574
+ CodeBlockBase,
575
+ {
576
+ code: tab.code,
577
+ language: tab.language,
578
+ theme,
579
+ showCopy,
580
+ copyPlacement,
581
+ showLineNumbers,
582
+ wordWrap,
583
+ maxHeight,
584
+ collapsible,
585
+ defaultCollapsed,
586
+ collapsedLines,
587
+ collapseAction,
588
+ onCopy: onCopy ? () => onCopy(tab.label) : void 0
589
+ }
590
+ )
591
+ },
592
+ `${tabValue}-panel-${index}`
593
+ );
561
594
  })
562
595
  ] }) });
563
596
  }
@@ -31,6 +31,7 @@ const field = require("@base-ui/react/field");
31
31
  const index = require("./components/ComponentDefaults/index.cjs");
32
32
  const index$1 = require("./components/Input/index.cjs");
33
33
  const ColorPicker_module = require("./components/ColorPicker/ColorPicker.module.scss.cjs");
34
+ const env = require("./utils/env.cjs");
34
35
  function _interopNamespaceDefault(e) {
35
36
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
36
37
  if (e) {
@@ -59,7 +60,7 @@ function loadColorfulDeps() {
59
60
  _HexColorPicker = rc.HexColorPicker;
60
61
  } catch {
61
62
  _colorfulFailed = true;
62
- if (process.env.NODE_ENV === "development") {
63
+ if (env.isDevelopmentBuild()) {
63
64
  console.warn(
64
65
  "[@usefragments/ui] ColorPicker: react-colorful is not installed. Install it with: npm install react-colorful"
65
66
  );
@@ -150,6 +151,7 @@ const ColorPickerRoot = React__namespace.forwardRef(function ColorPicker2({
150
151
  className: ColorPicker_module.default.swatch,
151
152
  style: { backgroundColor: displayValue },
152
153
  disabled,
154
+ "aria-invalid": error || void 0,
153
155
  "aria-label": label ? `Edit ${label} color` : "Edit color"
154
156
  }
155
157
  ),
@@ -178,6 +180,7 @@ const ColorPickerRoot = React__namespace.forwardRef(function ColorPicker2({
178
180
  onChange: handleInputChange,
179
181
  onBlur: handleInputBlur,
180
182
  disabled,
183
+ error,
181
184
  size,
182
185
  className: ColorPicker_module.default.hexInput,
183
186
  inputClassName: ColorPicker_module.default.hexInputField,