@fragments-sdk/ui 0.13.0 → 0.14.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 (656) hide show
  1. package/dist/assets/ui.css +1642 -1679
  2. package/dist/chart.cjs.map +1 -1
  3. package/dist/chart.js.map +1 -1
  4. package/dist/codeblock.cjs +26 -18
  5. package/dist/codeblock.cjs.map +1 -1
  6. package/dist/codeblock.js +26 -18
  7. package/dist/codeblock.js.map +1 -1
  8. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  9. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  10. package/dist/components/Accordion/index.cjs +7 -3
  11. package/dist/components/Accordion/index.cjs.map +1 -1
  12. package/dist/components/Accordion/index.d.ts +24 -11
  13. package/dist/components/Accordion/index.d.ts.map +1 -1
  14. package/dist/components/Accordion/index.js +7 -3
  15. package/dist/components/Accordion/index.js.map +1 -1
  16. package/dist/components/Alert/Alert.module.scss.cjs +12 -12
  17. package/dist/components/Alert/Alert.module.scss.js +12 -12
  18. package/dist/components/Alert/index.cjs +37 -15
  19. package/dist/components/Alert/index.cjs.map +1 -1
  20. package/dist/components/Alert/index.d.ts +15 -22
  21. package/dist/components/Alert/index.d.ts.map +1 -1
  22. package/dist/components/Alert/index.js +37 -15
  23. package/dist/components/Alert/index.js.map +1 -1
  24. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  25. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  26. package/dist/components/AppShell/index.cjs +3 -1
  27. package/dist/components/AppShell/index.cjs.map +1 -1
  28. package/dist/components/AppShell/index.d.ts.map +1 -1
  29. package/dist/components/AppShell/index.js +3 -1
  30. package/dist/components/AppShell/index.js.map +1 -1
  31. package/dist/components/Avatar/index.cjs +9 -1
  32. package/dist/components/Avatar/index.cjs.map +1 -1
  33. package/dist/components/Avatar/index.d.ts +2 -0
  34. package/dist/components/Avatar/index.d.ts.map +1 -1
  35. package/dist/components/Avatar/index.js +9 -1
  36. package/dist/components/Avatar/index.js.map +1 -1
  37. package/dist/components/Badge/index.cjs +4 -2
  38. package/dist/components/Badge/index.cjs.map +1 -1
  39. package/dist/components/Badge/index.d.ts +3 -0
  40. package/dist/components/Badge/index.d.ts.map +1 -1
  41. package/dist/components/Badge/index.js +4 -2
  42. package/dist/components/Badge/index.js.map +1 -1
  43. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +11 -11
  44. package/dist/components/BentoGrid/BentoGrid.module.scss.js +11 -11
  45. package/dist/components/BentoGrid/index.cjs +8 -5
  46. package/dist/components/BentoGrid/index.cjs.map +1 -1
  47. package/dist/components/BentoGrid/index.d.ts +2 -8
  48. package/dist/components/BentoGrid/index.d.ts.map +1 -1
  49. package/dist/components/BentoGrid/index.js +8 -5
  50. package/dist/components/BentoGrid/index.js.map +1 -1
  51. package/dist/components/Box/index.cjs +12 -2
  52. package/dist/components/Box/index.cjs.map +1 -1
  53. package/dist/components/Box/index.d.ts +1 -1
  54. package/dist/components/Box/index.d.ts.map +1 -1
  55. package/dist/components/Box/index.js +12 -2
  56. package/dist/components/Box/index.js.map +1 -1
  57. package/dist/components/Breadcrumbs/index.cjs +3 -1
  58. package/dist/components/Breadcrumbs/index.cjs.map +1 -1
  59. package/dist/components/Breadcrumbs/index.d.ts +3 -1
  60. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  61. package/dist/components/Breadcrumbs/index.js +3 -1
  62. package/dist/components/Breadcrumbs/index.js.map +1 -1
  63. package/dist/components/Button/Button.module.scss.cjs +11 -11
  64. package/dist/components/Button/Button.module.scss.js +11 -11
  65. package/dist/components/Button/index.cjs +5 -2
  66. package/dist/components/Button/index.cjs.map +1 -1
  67. package/dist/components/Button/index.d.ts +3 -3
  68. package/dist/components/Button/index.d.ts.map +1 -1
  69. package/dist/components/Button/index.js +5 -2
  70. package/dist/components/Button/index.js.map +1 -1
  71. package/dist/components/ButtonGroup/index.cjs +3 -2
  72. package/dist/components/ButtonGroup/index.cjs.map +1 -1
  73. package/dist/components/ButtonGroup/index.d.ts +1 -2
  74. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  75. package/dist/components/ButtonGroup/index.js +3 -2
  76. package/dist/components/ButtonGroup/index.js.map +1 -1
  77. package/dist/components/Card/Card.module.scss.cjs +14 -14
  78. package/dist/components/Card/Card.module.scss.js +14 -14
  79. package/dist/components/Card/index.cjs +3 -22
  80. package/dist/components/Card/index.cjs.map +1 -1
  81. package/dist/components/Card/index.d.ts +6 -11
  82. package/dist/components/Card/index.d.ts.map +1 -1
  83. package/dist/components/Card/index.js +3 -22
  84. package/dist/components/Card/index.js.map +1 -1
  85. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  86. package/dist/components/Chart/Chart.module.scss.js +15 -15
  87. package/dist/components/Chart/index.d.ts +3 -3
  88. package/dist/components/Chart/index.d.ts.map +1 -1
  89. package/dist/components/Checkbox/Checkbox.module.scss.cjs +10 -10
  90. package/dist/components/Checkbox/Checkbox.module.scss.js +10 -10
  91. package/dist/components/Checkbox/index.cjs +11 -4
  92. package/dist/components/Checkbox/index.cjs.map +1 -1
  93. package/dist/components/Checkbox/index.d.ts +6 -0
  94. package/dist/components/Checkbox/index.d.ts.map +1 -1
  95. package/dist/components/Checkbox/index.js +11 -4
  96. package/dist/components/Checkbox/index.js.map +1 -1
  97. package/dist/components/Chip/index.cjs +11 -3
  98. package/dist/components/Chip/index.cjs.map +1 -1
  99. package/dist/components/Chip/index.d.ts +1 -2
  100. package/dist/components/Chip/index.d.ts.map +1 -1
  101. package/dist/components/Chip/index.js +11 -3
  102. package/dist/components/Chip/index.js.map +1 -1
  103. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -20
  104. package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -20
  105. package/dist/components/CodeBlock/index.d.ts +8 -2
  106. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  107. package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
  108. package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
  109. package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
  110. package/dist/components/Combobox/Combobox.module.scss.js +15 -15
  111. package/dist/components/Combobox/index.cjs +68 -18
  112. package/dist/components/Combobox/index.cjs.map +1 -1
  113. package/dist/components/Combobox/index.d.ts +32 -11
  114. package/dist/components/Combobox/index.d.ts.map +1 -1
  115. package/dist/components/Combobox/index.js +68 -18
  116. package/dist/components/Combobox/index.js.map +1 -1
  117. package/dist/components/Command/Command.module.scss.cjs +11 -11
  118. package/dist/components/Command/Command.module.scss.js +11 -11
  119. package/dist/components/Command/index.cjs +4 -4
  120. package/dist/components/Command/index.cjs.map +1 -1
  121. package/dist/components/Command/index.d.ts +1 -1
  122. package/dist/components/Command/index.d.ts.map +1 -1
  123. package/dist/components/Command/index.js +4 -4
  124. package/dist/components/Command/index.js.map +1 -1
  125. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  126. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  127. package/dist/components/ConversationList/index.cjs +6 -3
  128. package/dist/components/ConversationList/index.cjs.map +1 -1
  129. package/dist/components/ConversationList/index.d.ts +1 -1
  130. package/dist/components/ConversationList/index.d.ts.map +1 -1
  131. package/dist/components/ConversationList/index.js +6 -3
  132. package/dist/components/ConversationList/index.js.map +1 -1
  133. package/dist/components/DataTable/DataTable.module.scss.cjs +26 -26
  134. package/dist/components/DataTable/DataTable.module.scss.js +26 -26
  135. package/dist/components/DataTable/index.cjs +13 -4
  136. package/dist/components/DataTable/index.cjs.map +1 -1
  137. package/dist/components/DataTable/index.d.ts +7 -2
  138. package/dist/components/DataTable/index.d.ts.map +1 -1
  139. package/dist/components/DataTable/index.js +13 -4
  140. package/dist/components/DataTable/index.js.map +1 -1
  141. package/dist/components/DatePicker/DatePicker.module.scss.cjs +26 -26
  142. package/dist/components/DatePicker/DatePicker.module.scss.js +26 -26
  143. package/dist/components/DatePicker/index.d.ts +2 -2
  144. package/dist/components/DatePicker/index.d.ts.map +1 -1
  145. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  146. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  147. package/dist/components/Dialog/index.cjs +2 -1
  148. package/dist/components/Dialog/index.cjs.map +1 -1
  149. package/dist/components/Dialog/index.d.ts +20 -7
  150. package/dist/components/Dialog/index.d.ts.map +1 -1
  151. package/dist/components/Dialog/index.js +2 -1
  152. package/dist/components/Dialog/index.js.map +1 -1
  153. package/dist/components/Drawer/Drawer.module.scss.cjs +26 -26
  154. package/dist/components/Drawer/Drawer.module.scss.js +26 -26
  155. package/dist/components/Drawer/index.cjs +30 -3
  156. package/dist/components/Drawer/index.cjs.map +1 -1
  157. package/dist/components/Drawer/index.d.ts +3 -1
  158. package/dist/components/Drawer/index.d.ts.map +1 -1
  159. package/dist/components/Drawer/index.js +13 -3
  160. package/dist/components/Drawer/index.js.map +1 -1
  161. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  162. package/dist/components/Editor/Editor.module.scss.js +17 -17
  163. package/dist/components/Editor/index.cjs +32 -7
  164. package/dist/components/Editor/index.cjs.map +1 -1
  165. package/dist/components/Editor/index.d.ts +16 -3
  166. package/dist/components/Editor/index.d.ts.map +1 -1
  167. package/dist/components/Editor/index.js +32 -7
  168. package/dist/components/Editor/index.js.map +1 -1
  169. package/dist/components/EmptyState/EmptyState.module.scss.cjs +8 -8
  170. package/dist/components/EmptyState/EmptyState.module.scss.js +8 -8
  171. package/dist/components/EmptyState/index.cjs +12 -8
  172. package/dist/components/EmptyState/index.cjs.map +1 -1
  173. package/dist/components/EmptyState/index.d.ts +8 -12
  174. package/dist/components/EmptyState/index.d.ts.map +1 -1
  175. package/dist/components/EmptyState/index.js +12 -8
  176. package/dist/components/EmptyState/index.js.map +1 -1
  177. package/dist/components/Fieldset/index.cjs +2 -2
  178. package/dist/components/Fieldset/index.cjs.map +1 -1
  179. package/dist/components/Fieldset/index.d.ts +2 -3
  180. package/dist/components/Fieldset/index.d.ts.map +1 -1
  181. package/dist/components/Fieldset/index.js +2 -2
  182. package/dist/components/Fieldset/index.js.map +1 -1
  183. package/dist/components/Form/index.cjs +13 -13
  184. package/dist/components/Form/index.cjs.map +1 -1
  185. package/dist/components/Form/index.d.ts +5 -2
  186. package/dist/components/Form/index.d.ts.map +1 -1
  187. package/dist/components/Form/index.js +13 -13
  188. package/dist/components/Form/index.js.map +1 -1
  189. package/dist/components/Grid/Grid.module.scss.cjs +57 -57
  190. package/dist/components/Grid/Grid.module.scss.js +57 -57
  191. package/dist/components/Grid/index.cjs +7 -4
  192. package/dist/components/Grid/index.cjs.map +1 -1
  193. package/dist/components/Grid/index.d.ts +5 -3
  194. package/dist/components/Grid/index.d.ts.map +1 -1
  195. package/dist/components/Grid/index.js +7 -4
  196. package/dist/components/Grid/index.js.map +1 -1
  197. package/dist/components/Header/Header.module.scss.cjs +21 -21
  198. package/dist/components/Header/Header.module.scss.js +21 -21
  199. package/dist/components/Header/index.cjs +61 -23
  200. package/dist/components/Header/index.cjs.map +1 -1
  201. package/dist/components/Header/index.d.ts +27 -34
  202. package/dist/components/Header/index.d.ts.map +1 -1
  203. package/dist/components/Header/index.js +61 -23
  204. package/dist/components/Header/index.js.map +1 -1
  205. package/dist/components/Icon/index.cjs +11 -1
  206. package/dist/components/Icon/index.cjs.map +1 -1
  207. package/dist/components/Icon/index.d.ts +28 -9
  208. package/dist/components/Icon/index.d.ts.map +1 -1
  209. package/dist/components/Icon/index.js +11 -1
  210. package/dist/components/Icon/index.js.map +1 -1
  211. package/dist/components/Image/index.cjs +15 -4
  212. package/dist/components/Image/index.cjs.map +1 -1
  213. package/dist/components/Image/index.d.ts +7 -1
  214. package/dist/components/Image/index.d.ts.map +1 -1
  215. package/dist/components/Image/index.js +15 -4
  216. package/dist/components/Image/index.js.map +1 -1
  217. package/dist/components/Input/Input.module.scss.cjs +13 -13
  218. package/dist/components/Input/Input.module.scss.js +13 -13
  219. package/dist/components/Input/index.cjs +79 -31
  220. package/dist/components/Input/index.cjs.map +1 -1
  221. package/dist/components/Input/index.d.ts +17 -3
  222. package/dist/components/Input/index.d.ts.map +1 -1
  223. package/dist/components/Input/index.js +79 -31
  224. package/dist/components/Input/index.js.map +1 -1
  225. package/dist/components/Link/index.cjs +17 -0
  226. package/dist/components/Link/index.cjs.map +1 -1
  227. package/dist/components/Link/index.d.ts.map +1 -1
  228. package/dist/components/Link/index.js +17 -0
  229. package/dist/components/Link/index.js.map +1 -1
  230. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  231. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  232. package/dist/components/Listbox/index.cjs +10 -6
  233. package/dist/components/Listbox/index.cjs.map +1 -1
  234. package/dist/components/Listbox/index.d.ts +2 -2
  235. package/dist/components/Listbox/index.d.ts.map +1 -1
  236. package/dist/components/Listbox/index.js +10 -6
  237. package/dist/components/Listbox/index.js.map +1 -1
  238. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  239. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  240. package/dist/components/Markdown/index.d.ts +4 -2
  241. package/dist/components/Markdown/index.d.ts.map +1 -1
  242. package/dist/components/Menu/Menu.module.scss.cjs +13 -13
  243. package/dist/components/Menu/Menu.module.scss.js +13 -13
  244. package/dist/components/Menu/index.cjs +12 -1
  245. package/dist/components/Menu/index.cjs.map +1 -1
  246. package/dist/components/Menu/index.d.ts +9 -4
  247. package/dist/components/Menu/index.d.ts.map +1 -1
  248. package/dist/components/Menu/index.js +12 -1
  249. package/dist/components/Menu/index.js.map +1 -1
  250. package/dist/components/Message/Message.module.scss.cjs +18 -18
  251. package/dist/components/Message/Message.module.scss.js +18 -18
  252. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  253. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  254. package/dist/components/NavigationMenu/NavigationMenuContext.cjs.map +1 -1
  255. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts +8 -0
  256. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts.map +1 -1
  257. package/dist/components/NavigationMenu/NavigationMenuContext.js.map +1 -1
  258. package/dist/components/NavigationMenu/index.cjs +49 -10
  259. package/dist/components/NavigationMenu/index.cjs.map +1 -1
  260. package/dist/components/NavigationMenu/index.d.ts +5 -1
  261. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  262. package/dist/components/NavigationMenu/index.js +49 -10
  263. package/dist/components/NavigationMenu/index.js.map +1 -1
  264. package/dist/components/Pagination/index.cjs +37 -9
  265. package/dist/components/Pagination/index.cjs.map +1 -1
  266. package/dist/components/Pagination/index.d.ts +2 -3
  267. package/dist/components/Pagination/index.d.ts.map +1 -1
  268. package/dist/components/Pagination/index.js +37 -9
  269. package/dist/components/Pagination/index.js.map +1 -1
  270. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  271. package/dist/components/Popover/Popover.module.scss.js +10 -10
  272. package/dist/components/Popover/index.cjs +43 -2
  273. package/dist/components/Popover/index.cjs.map +1 -1
  274. package/dist/components/Popover/index.d.ts +16 -6
  275. package/dist/components/Popover/index.d.ts.map +1 -1
  276. package/dist/components/Popover/index.js +26 -2
  277. package/dist/components/Popover/index.js.map +1 -1
  278. package/dist/components/Progress/index.cjs +3 -1
  279. package/dist/components/Progress/index.cjs.map +1 -1
  280. package/dist/components/Progress/index.d.ts.map +1 -1
  281. package/dist/components/Progress/index.js +3 -1
  282. package/dist/components/Progress/index.js.map +1 -1
  283. package/dist/components/Prompt/Prompt.module.scss.cjs +14 -14
  284. package/dist/components/Prompt/Prompt.module.scss.js +14 -14
  285. package/dist/components/Prompt/index.cjs +14 -2
  286. package/dist/components/Prompt/index.cjs.map +1 -1
  287. package/dist/components/Prompt/index.d.ts +8 -5
  288. package/dist/components/Prompt/index.d.ts.map +1 -1
  289. package/dist/components/Prompt/index.js +14 -2
  290. package/dist/components/Prompt/index.js.map +1 -1
  291. package/dist/components/RadioGroup/index.cjs +14 -6
  292. package/dist/components/RadioGroup/index.cjs.map +1 -1
  293. package/dist/components/RadioGroup/index.d.ts +12 -2
  294. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  295. package/dist/components/RadioGroup/index.js +14 -6
  296. package/dist/components/RadioGroup/index.js.map +1 -1
  297. package/dist/components/Select/Select.module.scss.cjs +10 -10
  298. package/dist/components/Select/Select.module.scss.js +10 -10
  299. package/dist/components/Select/index.cjs +37 -24
  300. package/dist/components/Select/index.cjs.map +1 -1
  301. package/dist/components/Select/index.d.ts +6 -2
  302. package/dist/components/Select/index.d.ts.map +1 -1
  303. package/dist/components/Select/index.js +37 -24
  304. package/dist/components/Select/index.js.map +1 -1
  305. package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
  306. package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
  307. package/dist/components/Sidebar/index.cjs +2 -2
  308. package/dist/components/Sidebar/index.cjs.map +1 -1
  309. package/dist/components/Sidebar/index.d.ts +3 -3
  310. package/dist/components/Sidebar/index.d.ts.map +1 -1
  311. package/dist/components/Sidebar/index.js +2 -2
  312. package/dist/components/Sidebar/index.js.map +1 -1
  313. package/dist/components/Skeleton/index.cjs +6 -3
  314. package/dist/components/Skeleton/index.cjs.map +1 -1
  315. package/dist/components/Skeleton/index.d.ts +3 -7
  316. package/dist/components/Skeleton/index.d.ts.map +1 -1
  317. package/dist/components/Skeleton/index.js +6 -3
  318. package/dist/components/Skeleton/index.js.map +1 -1
  319. package/dist/components/Slider/Slider.module.scss.cjs +13 -10
  320. package/dist/components/Slider/Slider.module.scss.cjs.map +1 -1
  321. package/dist/components/Slider/Slider.module.scss.js +13 -10
  322. package/dist/components/Slider/Slider.module.scss.js.map +1 -1
  323. package/dist/components/Slider/index.cjs +33 -1
  324. package/dist/components/Slider/index.cjs.map +1 -1
  325. package/dist/components/Slider/index.d.ts +2 -0
  326. package/dist/components/Slider/index.d.ts.map +1 -1
  327. package/dist/components/Slider/index.js +33 -1
  328. package/dist/components/Slider/index.js.map +1 -1
  329. package/dist/components/Stack/index.cjs +12 -2
  330. package/dist/components/Stack/index.cjs.map +1 -1
  331. package/dist/components/Stack/index.d.ts +3 -2
  332. package/dist/components/Stack/index.d.ts.map +1 -1
  333. package/dist/components/Stack/index.js +12 -2
  334. package/dist/components/Stack/index.js.map +1 -1
  335. package/dist/components/Table/Table.module.scss.cjs +16 -16
  336. package/dist/components/Table/Table.module.scss.js +16 -16
  337. package/dist/components/Table/index.d.ts +10 -4
  338. package/dist/components/Table/index.d.ts.map +1 -1
  339. package/dist/components/TableOfContents/index.cjs +8 -5
  340. package/dist/components/TableOfContents/index.cjs.map +1 -1
  341. package/dist/components/TableOfContents/index.d.ts +2 -2
  342. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  343. package/dist/components/TableOfContents/index.js +8 -5
  344. package/dist/components/TableOfContents/index.js.map +1 -1
  345. package/dist/components/Tabs/Tabs.module.scss.cjs +9 -9
  346. package/dist/components/Tabs/Tabs.module.scss.js +9 -9
  347. package/dist/components/Tabs/index.cjs +9 -6
  348. package/dist/components/Tabs/index.cjs.map +1 -1
  349. package/dist/components/Tabs/index.d.ts +4 -1
  350. package/dist/components/Tabs/index.d.ts.map +1 -1
  351. package/dist/components/Tabs/index.js +9 -6
  352. package/dist/components/Tabs/index.js.map +1 -1
  353. package/dist/components/Textarea/index.cjs +61 -43
  354. package/dist/components/Textarea/index.cjs.map +1 -1
  355. package/dist/components/Textarea/index.d.ts +9 -1
  356. package/dist/components/Textarea/index.d.ts.map +1 -1
  357. package/dist/components/Textarea/index.js +61 -43
  358. package/dist/components/Textarea/index.js.map +1 -1
  359. package/dist/components/Theme/index.cjs +3 -1
  360. package/dist/components/Theme/index.cjs.map +1 -1
  361. package/dist/components/Theme/index.d.ts +2 -4
  362. package/dist/components/Theme/index.d.ts.map +1 -1
  363. package/dist/components/Theme/index.js +3 -1
  364. package/dist/components/Theme/index.js.map +1 -1
  365. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +22 -22
  366. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +22 -22
  367. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  368. package/dist/components/Toast/Toast.module.scss.js +20 -20
  369. package/dist/components/Toast/index.cjs +15 -14
  370. package/dist/components/Toast/index.cjs.map +1 -1
  371. package/dist/components/Toast/index.d.ts +9 -5
  372. package/dist/components/Toast/index.d.ts.map +1 -1
  373. package/dist/components/Toast/index.js +15 -14
  374. package/dist/components/Toast/index.js.map +1 -1
  375. package/dist/components/Toggle/Toggle.module.scss.cjs +11 -11
  376. package/dist/components/Toggle/Toggle.module.scss.js +11 -11
  377. package/dist/components/Toggle/index.cjs +1 -1
  378. package/dist/components/Toggle/index.cjs.map +1 -1
  379. package/dist/components/Toggle/index.js +1 -1
  380. package/dist/components/Toggle/index.js.map +1 -1
  381. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
  382. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
  383. package/dist/components/ToggleGroup/index.cjs +27 -8
  384. package/dist/components/ToggleGroup/index.cjs.map +1 -1
  385. package/dist/components/ToggleGroup/index.d.ts +8 -3
  386. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  387. package/dist/components/ToggleGroup/index.js +27 -8
  388. package/dist/components/ToggleGroup/index.js.map +1 -1
  389. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  390. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  391. package/dist/components/Tooltip/index.cjs +20 -4
  392. package/dist/components/Tooltip/index.cjs.map +1 -1
  393. package/dist/components/Tooltip/index.d.ts +3 -1
  394. package/dist/components/Tooltip/index.d.ts.map +1 -1
  395. package/dist/components/Tooltip/index.js +20 -4
  396. package/dist/components/Tooltip/index.js.map +1 -1
  397. package/dist/components/VisuallyHidden/index.cjs +10 -2
  398. package/dist/components/VisuallyHidden/index.cjs.map +1 -1
  399. package/dist/components/VisuallyHidden/index.d.ts +1 -1
  400. package/dist/components/VisuallyHidden/index.d.ts.map +1 -1
  401. package/dist/components/VisuallyHidden/index.js +10 -2
  402. package/dist/components/VisuallyHidden/index.js.map +1 -1
  403. package/dist/datepicker.cjs +8 -1
  404. package/dist/datepicker.cjs.map +1 -1
  405. package/dist/datepicker.js +8 -1
  406. package/dist/datepicker.js.map +1 -1
  407. package/dist/index.cjs.map +1 -1
  408. package/dist/index.d.ts +2 -1
  409. package/dist/index.d.ts.map +1 -1
  410. package/dist/index.js.map +1 -1
  411. package/dist/markdown.cjs +5 -5
  412. package/dist/markdown.cjs.map +1 -1
  413. package/dist/markdown.js +5 -5
  414. package/dist/markdown.js.map +1 -1
  415. package/dist/table.cjs +19 -3
  416. package/dist/table.cjs.map +1 -1
  417. package/dist/table.js +19 -3
  418. package/dist/table.js.map +1 -1
  419. package/fragments.json +1 -1
  420. package/package.json +2 -2
  421. package/src/blocks/AccountSettings.block.ts +1 -1
  422. package/src/blocks/ActivityFeed.block.ts +1 -1
  423. package/src/blocks/ActivityFeedSkeleton.block.ts +1 -1
  424. package/src/blocks/BlogEditor.block.ts +1 -1
  425. package/src/blocks/ChatInterface.block.ts +1 -1
  426. package/src/blocks/ChatMessages.block.ts +1 -1
  427. package/src/blocks/CheckoutForm.block.ts +1 -1
  428. package/src/blocks/CommandPalette.block.ts +1 -1
  429. package/src/blocks/ContactForm.block.ts +1 -1
  430. package/src/blocks/DashboardLayout.block.ts +1 -1
  431. package/src/blocks/DashboardPage.block.ts +1 -1
  432. package/src/blocks/DashboardSkeleton.block.ts +1 -1
  433. package/src/blocks/DataTable.block.ts +1 -1
  434. package/src/blocks/EmptyState.block.ts +1 -1
  435. package/src/blocks/FAQSection.block.ts +1 -1
  436. package/src/blocks/FeatureGrid.block.ts +1 -1
  437. package/src/blocks/HeroSection.block.ts +1 -1
  438. package/src/blocks/LoginForm.block.ts +1 -1
  439. package/src/blocks/NavigationHeader.block.ts +1 -1
  440. package/src/blocks/PaginatedTable.block.ts +1 -1
  441. package/src/blocks/PricingComparison.block.ts +1 -1
  442. package/src/blocks/ProductCard.block.ts +1 -1
  443. package/src/blocks/RegistrationForm.block.ts +1 -1
  444. package/src/blocks/SettingsDrawer.block.ts +1 -1
  445. package/src/blocks/SettingsPanel.block.ts +1 -1
  446. package/src/blocks/ShoppingCart.block.ts +1 -1
  447. package/src/blocks/StatsCard.block.ts +1 -1
  448. package/src/blocks/StatsCardSkeleton.block.ts +1 -1
  449. package/src/blocks/TableSkeleton.block.ts +1 -1
  450. package/src/blocks/ThinkingStates.block.ts +1 -1
  451. package/src/components/Accordion/Accordion.fragment.tsx +7 -7
  452. package/src/components/Accordion/Accordion.module.scss +2 -2
  453. package/src/components/Accordion/Accordion.test.tsx +8 -5
  454. package/src/components/Accordion/index.tsx +33 -13
  455. package/src/components/Alert/Alert.fragment.tsx +5 -1
  456. package/src/components/Alert/Alert.module.scss +1 -1
  457. package/src/components/Alert/Alert.test.tsx +25 -0
  458. package/src/components/Alert/index.tsx +49 -30
  459. package/src/components/AppShell/AppShell.fragment.tsx +1 -1
  460. package/src/components/AppShell/AppShell.module.scss +5 -5
  461. package/src/components/AppShell/AppShell.test.tsx +12 -0
  462. package/src/components/AppShell/index.tsx +2 -0
  463. package/src/components/Avatar/Avatar.fragment.tsx +7 -1
  464. package/src/components/Avatar/Avatar.test.tsx +24 -2
  465. package/src/components/Avatar/index.tsx +13 -1
  466. package/src/components/Badge/Badge.fragment.tsx +16 -1
  467. package/src/components/Badge/Badge.test.tsx +8 -1
  468. package/src/components/Badge/index.tsx +7 -2
  469. package/src/components/BentoGrid/BentoGrid.fragment.tsx +3 -1
  470. package/src/components/BentoGrid/BentoGrid.module.scss +52 -16
  471. package/src/components/BentoGrid/BentoGrid.test.tsx +20 -0
  472. package/src/components/BentoGrid/index.tsx +9 -12
  473. package/src/components/Box/Box.fragment.tsx +3 -1
  474. package/src/components/Box/Box.test.tsx +14 -0
  475. package/src/components/Box/index.tsx +8 -2
  476. package/src/components/Breadcrumbs/Breadcrumbs.fragment.tsx +19 -1
  477. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +13 -0
  478. package/src/components/Breadcrumbs/index.tsx +5 -1
  479. package/src/components/Button/Button.fragment.tsx +28 -6
  480. package/src/components/Button/Button.module.scss +3 -3
  481. package/src/components/Button/Button.test.tsx +11 -0
  482. package/src/components/Button/index.tsx +16 -6
  483. package/src/components/ButtonGroup/ButtonGroup.fragment.tsx +4 -2
  484. package/src/components/ButtonGroup/ButtonGroup.test.tsx +10 -0
  485. package/src/components/ButtonGroup/index.tsx +3 -3
  486. package/src/components/Card/Card.fragment.tsx +24 -9
  487. package/src/components/Card/Card.module.scss +8 -8
  488. package/src/components/Card/Card.test.tsx +4 -5
  489. package/src/components/Card/index.tsx +8 -38
  490. package/src/components/Chart/Chart.fragment.tsx +5 -3
  491. package/src/components/Chart/Chart.module.scss +1 -1
  492. package/src/components/Chart/index.tsx +12 -10
  493. package/src/components/Checkbox/Checkbox.fragment.tsx +27 -1
  494. package/src/components/Checkbox/Checkbox.module.scss +3 -3
  495. package/src/components/Checkbox/index.tsx +16 -3
  496. package/src/components/Chip/Chip.fragment.tsx +20 -3
  497. package/src/components/Chip/Chip.test.tsx +28 -0
  498. package/src/components/Chip/index.tsx +14 -6
  499. package/src/components/CodeBlock/CodeBlock.fragment.tsx +3 -1
  500. package/src/components/CodeBlock/CodeBlock.module.scss +9 -9
  501. package/src/components/CodeBlock/CodeBlock.test.tsx +21 -0
  502. package/src/components/CodeBlock/index.tsx +23 -9
  503. package/src/components/Collapsible/Collapsible.fragment.tsx +1 -1
  504. package/src/components/Collapsible/Collapsible.module.scss +1 -1
  505. package/src/components/ColorPicker/ColorPicker.fragment.tsx +1 -1
  506. package/src/components/Combobox/Combobox.fragment.tsx +63 -9
  507. package/src/components/Combobox/Combobox.module.scss +4 -7
  508. package/src/components/Combobox/Combobox.test.tsx +24 -3
  509. package/src/components/Combobox/index.tsx +117 -34
  510. package/src/components/Command/Command.fragment.tsx +3 -3
  511. package/src/components/Command/Command.module.scss +5 -5
  512. package/src/components/Command/Command.test.tsx +17 -0
  513. package/src/components/Command/index.tsx +8 -5
  514. package/src/components/ConversationList/ConversationList.fragment.tsx +4 -3
  515. package/src/components/ConversationList/ConversationList.module.scss +5 -5
  516. package/src/components/ConversationList/ConversationList.test.tsx +21 -0
  517. package/src/components/ConversationList/index.tsx +8 -4
  518. package/src/components/DataTable/DataTable.fragment.tsx +12 -2
  519. package/src/components/DataTable/DataTable.module.scss +3 -3
  520. package/src/components/DataTable/DataTable.test.tsx +23 -2
  521. package/src/components/DataTable/index.tsx +23 -5
  522. package/src/components/DatePicker/DatePicker.fragment.tsx +3 -1
  523. package/src/components/DatePicker/DatePicker.module.scss +1 -1
  524. package/src/components/DatePicker/DatePicker.test.tsx +17 -0
  525. package/src/components/DatePicker/index.tsx +9 -2
  526. package/src/components/Dialog/Dialog.fragment.tsx +28 -1
  527. package/src/components/Dialog/Dialog.module.scss +6 -6
  528. package/src/components/Dialog/index.tsx +25 -7
  529. package/src/components/Drawer/Drawer.fragment.tsx +4 -1
  530. package/src/components/Drawer/Drawer.module.scss +3 -3
  531. package/src/components/Drawer/Drawer.test.tsx +8 -0
  532. package/src/components/Drawer/index.tsx +15 -3
  533. package/src/components/Editor/Editor.fragment.tsx +10 -3
  534. package/src/components/Editor/Editor.module.scss +4 -4
  535. package/src/components/Editor/Editor.test.tsx +68 -1
  536. package/src/components/Editor/index.tsx +60 -9
  537. package/src/components/EmptyState/EmptyState.fragment.tsx +3 -1
  538. package/src/components/EmptyState/EmptyState.module.scss +3 -3
  539. package/src/components/EmptyState/EmptyState.test.tsx +18 -0
  540. package/src/components/EmptyState/index.tsx +16 -16
  541. package/src/components/Field/Field.fragment.tsx +1 -1
  542. package/src/components/Fieldset/Fieldset.fragment.tsx +3 -1
  543. package/src/components/Fieldset/Fieldset.test.tsx +14 -0
  544. package/src/components/Fieldset/index.tsx +3 -4
  545. package/src/components/Form/Form.fragment.tsx +12 -7
  546. package/src/components/Form/index.tsx +13 -17
  547. package/src/components/Grid/Grid.fragment.tsx +4 -3
  548. package/src/components/Grid/Grid.module.scss +3 -3
  549. package/src/components/Grid/index.tsx +11 -6
  550. package/src/components/Header/Header.fragment.tsx +31 -1
  551. package/src/components/Header/Header.module.scss +6 -6
  552. package/src/components/Header/Header.test.tsx +95 -1
  553. package/src/components/Header/index.tsx +95 -46
  554. package/src/components/Icon/Icon.fragment.tsx +21 -8
  555. package/src/components/Icon/Icon.test.tsx +27 -3
  556. package/src/components/Icon/index.tsx +39 -15
  557. package/src/components/Image/Image.fragment.tsx +15 -1
  558. package/src/components/Image/Image.test.tsx +32 -1
  559. package/src/components/Image/index.tsx +24 -4
  560. package/src/components/Input/Input.fragment.tsx +49 -1
  561. package/src/components/Input/Input.module.scss +4 -2
  562. package/src/components/Input/Input.test.tsx +3 -3
  563. package/src/components/Input/index.tsx +103 -37
  564. package/src/components/Link/Link.fragment.tsx +7 -6
  565. package/src/components/Link/Link.test.tsx +17 -1
  566. package/src/components/Link/index.tsx +22 -0
  567. package/src/components/List/List.fragment.tsx +1 -1
  568. package/src/components/Listbox/Listbox.fragment.tsx +3 -3
  569. package/src/components/Listbox/Listbox.module.scss +4 -4
  570. package/src/components/Listbox/Listbox.test.tsx +14 -0
  571. package/src/components/Listbox/index.tsx +12 -2
  572. package/src/components/Loading/Loading.fragment.tsx +1 -1
  573. package/src/components/Markdown/Markdown.fragment.tsx +5 -3
  574. package/src/components/Markdown/Markdown.module.scss +5 -5
  575. package/src/components/Markdown/Markdown.test.tsx +6 -0
  576. package/src/components/Markdown/index.tsx +12 -9
  577. package/src/components/Menu/Menu.fragment.tsx +19 -1
  578. package/src/components/Menu/Menu.module.scss +11 -11
  579. package/src/components/Menu/index.tsx +19 -7
  580. package/src/components/Message/Message.fragment.tsx +1 -1
  581. package/src/components/Message/Message.module.scss +3 -3
  582. package/src/components/NavigationMenu/NavigationMenu.fragment.tsx +9 -1
  583. package/src/components/NavigationMenu/NavigationMenu.module.scss +7 -7
  584. package/src/components/NavigationMenu/NavigationMenu.test.tsx +48 -0
  585. package/src/components/NavigationMenu/NavigationMenuContext.ts +14 -0
  586. package/src/components/NavigationMenu/index.tsx +70 -7
  587. package/src/components/Pagination/Pagination.fragment.tsx +4 -1
  588. package/src/components/Pagination/Pagination.test.tsx +39 -0
  589. package/src/components/Pagination/index.tsx +36 -10
  590. package/src/components/Popover/Popover.fragment.tsx +18 -1
  591. package/src/components/Popover/Popover.module.scss +13 -13
  592. package/src/components/Popover/index.tsx +33 -8
  593. package/src/components/Progress/Progress.fragment.tsx +3 -1
  594. package/src/components/Progress/Progress.test.tsx +8 -0
  595. package/src/components/Progress/index.tsx +9 -1
  596. package/src/components/Prompt/Prompt.fragment.tsx +4 -1
  597. package/src/components/Prompt/Prompt.module.scss +3 -3
  598. package/src/components/Prompt/Prompt.test.tsx +19 -0
  599. package/src/components/Prompt/index.tsx +24 -6
  600. package/src/components/RadioGroup/RadioGroup.fragment.tsx +31 -1
  601. package/src/components/RadioGroup/index.tsx +22 -3
  602. package/src/components/ScrollArea/ScrollArea.fragment.tsx +1 -1
  603. package/src/components/Select/Select.fragment.tsx +30 -3
  604. package/src/components/Select/Select.module.scss +3 -3
  605. package/src/components/Select/index.tsx +46 -33
  606. package/src/components/Separator/Separator.fragment.tsx +1 -1
  607. package/src/components/Sidebar/Sidebar.fragment.tsx +3 -1
  608. package/src/components/Sidebar/Sidebar.module.scss +20 -20
  609. package/src/components/Sidebar/Sidebar.test.tsx +25 -0
  610. package/src/components/Sidebar/index.tsx +7 -7
  611. package/src/components/Skeleton/Skeleton.fragment.tsx +3 -1
  612. package/src/components/Skeleton/Skeleton.test.tsx +12 -0
  613. package/src/components/Skeleton/index.tsx +6 -7
  614. package/src/components/Slider/Slider.fragment.tsx +21 -1
  615. package/src/components/Slider/Slider.module.scss +31 -0
  616. package/src/components/Slider/Slider.test.tsx +16 -0
  617. package/src/components/Slider/index.tsx +40 -1
  618. package/src/components/Stack/Stack.fragment.tsx +3 -1
  619. package/src/components/Stack/index.tsx +13 -6
  620. package/src/components/Table/Table.fragment.tsx +43 -2
  621. package/src/components/Table/Table.module.scss +2 -2
  622. package/src/components/Table/index.tsx +23 -5
  623. package/src/components/TableOfContents/TableOfContents.fragment.tsx +4 -2
  624. package/src/components/TableOfContents/TableOfContents.test.tsx +34 -9
  625. package/src/components/TableOfContents/index.tsx +9 -5
  626. package/src/components/Tabs/Tabs.fragment.tsx +33 -8
  627. package/src/components/Tabs/Tabs.module.scss +8 -8
  628. package/src/components/Tabs/index.tsx +22 -14
  629. package/src/components/Text/Text.fragment.tsx +1 -1
  630. package/src/components/Textarea/Textarea.fragment.tsx +27 -1
  631. package/src/components/Textarea/index.tsx +39 -14
  632. package/src/components/Theme/Theme.fragment.tsx +3 -1
  633. package/src/components/Theme/Theme.test.tsx +11 -0
  634. package/src/components/Theme/index.tsx +3 -3
  635. package/src/components/ThinkingIndicator/ThinkingIndicator.fragment.tsx +1 -1
  636. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +1 -1
  637. package/src/components/Toast/Toast.fragment.tsx +6 -3
  638. package/src/components/Toast/Toast.module.scss +8 -6
  639. package/src/components/Toast/index.tsx +24 -20
  640. package/src/components/Toggle/Toggle.fragment.tsx +1 -1
  641. package/src/components/Toggle/Toggle.module.scss +61 -21
  642. package/src/components/Toggle/index.tsx +3 -3
  643. package/src/components/ToggleGroup/ToggleGroup.fragment.tsx +33 -8
  644. package/src/components/ToggleGroup/ToggleGroup.module.scss +3 -3
  645. package/src/components/ToggleGroup/index.tsx +29 -9
  646. package/src/components/Tooltip/Tooltip.fragment.tsx +16 -1
  647. package/src/components/Tooltip/Tooltip.module.scss +1 -1
  648. package/src/components/Tooltip/index.tsx +16 -1
  649. package/src/components/VisuallyHidden/VisuallyHidden.fragment.tsx +3 -1
  650. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +12 -0
  651. package/src/components/VisuallyHidden/index.tsx +7 -3
  652. package/src/index.ts +3 -2
  653. package/src/tokens/_computed.scss +1 -19
  654. package/src/tokens/_density.scss +0 -42
  655. package/src/tokens/_mixins.scss +4 -0
  656. package/src/tokens/_variables.scss +12 -114
@@ -25,10 +25,15 @@ export interface PopoverProps {
25
25
  modal?: boolean;
26
26
  }
27
27
 
28
- export interface PopoverTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
28
+ type PopoverTriggerAsButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
29
29
  children: React.ReactNode;
30
- asChild?: boolean;
31
- }
30
+ asChild?: false;
31
+ };
32
+ type PopoverTriggerAsChildProps = Omit<React.HTMLAttributes<HTMLElement>, 'children'> & {
33
+ children: React.ReactElement;
34
+ asChild: true;
35
+ };
36
+ export type PopoverTriggerProps = PopoverTriggerAsButtonProps | PopoverTriggerAsChildProps;
32
37
 
33
38
  export interface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {
34
39
  children: React.ReactNode;
@@ -55,10 +60,15 @@ export interface PopoverFooterProps extends React.HTMLAttributes<HTMLDivElement>
55
60
  children: React.ReactNode;
56
61
  }
57
62
 
58
- export interface PopoverCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
63
+ type PopoverCloseAsButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
59
64
  children?: React.ReactNode;
60
- asChild?: boolean;
61
- }
65
+ asChild?: false;
66
+ };
67
+ type PopoverCloseAsChildProps = Omit<React.HTMLAttributes<HTMLElement>, 'children'> & {
68
+ children: React.ReactElement;
69
+ asChild: true;
70
+ };
71
+ export type PopoverCloseProps = PopoverCloseAsButtonProps | PopoverCloseAsChildProps;
62
72
 
63
73
  // ============================================
64
74
  // Icons
@@ -109,6 +119,9 @@ function PopoverRoot({
109
119
 
110
120
  function PopoverTrigger({ children, asChild, className, ...htmlProps }: PopoverTriggerProps) {
111
121
  if (asChild) {
122
+ if (!React.isValidElement(children)) {
123
+ throw new Error('Popover.Trigger with asChild requires a single valid React element child.');
124
+ }
112
125
  return (
113
126
  <BasePopover.Trigger {...htmlProps} className={className} render={children as React.ReactElement}>
114
127
  {null}
@@ -117,7 +130,11 @@ function PopoverTrigger({ children, asChild, className, ...htmlProps }: PopoverT
117
130
  }
118
131
 
119
132
  return (
120
- <BasePopover.Trigger {...htmlProps} className={className}>
133
+ <BasePopover.Trigger
134
+ {...htmlProps}
135
+ type={(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>).type ?? 'button'}
136
+ className={className}
137
+ >
121
138
  {children}
122
139
  </BasePopover.Trigger>
123
140
  );
@@ -186,6 +203,7 @@ function PopoverClose({ children, asChild, className, ...htmlProps }: PopoverClo
186
203
  return (
187
204
  <BasePopover.Close
188
205
  {...htmlProps}
206
+ type={(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>).type ?? 'button'}
189
207
  aria-label="Close popover"
190
208
  className={[styles.close, className].filter(Boolean).join(' ')}
191
209
  >
@@ -195,6 +213,9 @@ function PopoverClose({ children, asChild, className, ...htmlProps }: PopoverClo
195
213
  }
196
214
 
197
215
  if (asChild) {
216
+ if (!React.isValidElement(children)) {
217
+ throw new Error('Popover.Close with asChild requires a single valid React element child.');
218
+ }
198
219
  return (
199
220
  <BasePopover.Close {...htmlProps} className={className} render={children as React.ReactElement}>
200
221
  {null}
@@ -203,7 +224,11 @@ function PopoverClose({ children, asChild, className, ...htmlProps }: PopoverClo
203
224
  }
204
225
 
205
226
  return (
206
- <BasePopover.Close {...htmlProps} className={className}>
227
+ <BasePopover.Close
228
+ {...htmlProps}
229
+ type={(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>).type ?? 'button'}
230
+ className={className}
231
+ >
207
232
  {children}
208
233
  </BasePopover.Close>
209
234
  );
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { defineFragment } from '@fragments-sdk/cli/core';
2
+ import { defineFragment } from '@fragments-sdk/core';
3
3
  import { Progress, CircularProgress } from '.';
4
4
 
5
5
  export default defineFragment({
@@ -31,6 +31,7 @@ export default defineFragment({
31
31
  'Use indeterminate for unknown durations',
32
32
  'Include a label for context when the purpose isnt obvious',
33
33
  'Use appropriate color variants for success/warning/danger states',
34
+ 'Determinate values are clamped to the min/max range for display',
34
35
  ],
35
36
  accessibility: [
36
37
  'Uses role="progressbar" with aria-valuenow',
@@ -93,6 +94,7 @@ export default defineFragment({
93
94
  'variant: default|success|warning|danger - color',
94
95
  'label: string - descriptive label',
95
96
  'showValue: boolean - display percentage',
97
+ 'Determinate display values are clamped (and invalid min/max ranges render as 0%)',
96
98
  ],
97
99
  scenarioTags: [
98
100
  'feedback.progress',
@@ -43,6 +43,14 @@ describe('Progress', () => {
43
43
  const { container } = render(<Progress value={60} label="Loading" />);
44
44
  await expectNoA11yViolations(container);
45
45
  });
46
+
47
+ it('clamps displayed percentage and handles invalid ranges safely', () => {
48
+ const { rerender } = render(<Progress value={150} showValue />);
49
+ expect(screen.getByText('100%')).toBeInTheDocument();
50
+
51
+ rerender(<Progress value={50} min={100} max={100} showValue />);
52
+ expect(screen.getByText('0%')).toBeInTheDocument();
53
+ });
46
54
  });
47
55
 
48
56
  describe('CircularProgress', () => {
@@ -59,7 +59,15 @@ function ProgressRoot({
59
59
  ...htmlProps
60
60
  }: ProgressProps) {
61
61
  const isIndeterminate = value === null;
62
- const percentage = isIndeterminate ? 0 : Math.round(((value - min) / (max - min)) * 100);
62
+ const range = max - min;
63
+ const normalizedPercentage = isIndeterminate
64
+ ? 0
65
+ : range <= 0
66
+ ? 0
67
+ : ((value - min) / range) * 100;
68
+ const percentage = isIndeterminate
69
+ ? 0
70
+ : Math.round(Math.min(100, Math.max(0, normalizedPercentage)));
63
71
 
64
72
  const trackClasses = [
65
73
  styles.track,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { defineFragment } from '@fragments-sdk/cli/core';
2
+ import { defineFragment } from '@fragments-sdk/core';
3
3
  import { Prompt } from '.';
4
4
 
5
5
  export default defineFragment({
@@ -27,6 +27,8 @@ export default defineFragment({
27
27
  guidelines: [
28
28
  'Always provide an onSubmit handler',
29
29
  'Use loading state during API calls',
30
+ 'Prompt.Textarea forwards native textarea props (autoComplete, inputMode, aria-*, data-*, handlers)',
31
+ 'Prompt.Textarea composes your onChange/onKeyDown handlers with built-in submit and auto-resize behavior',
30
32
  'Consider showing usage/token limits for AI contexts',
31
33
  ],
32
34
  accessibility: [
@@ -123,6 +125,7 @@ export default defineFragment({
123
125
  'loading: boolean - shows loading state',
124
126
  'minRows/maxRows: number - row constraints (default: 1/8)',
125
127
  'submitOnEnter: boolean - Enter key behavior (default: true)',
128
+ 'Prompt.Textarea accepts native textarea props and optional aria-label override',
126
129
  ],
127
130
  scenarioTags: [
128
131
  'form.prompt',
@@ -60,7 +60,7 @@
60
60
  display: block;
61
61
  width: 100%;
62
62
  min-height: 2.857rem; // ~40px
63
- padding: var(--fui-padding-inline-sm) var(--fui-padding-inline-md);
63
+ padding: var(--fui-space-2) var(--fui-space-3);
64
64
  background: transparent;
65
65
  border: none;
66
66
  resize: none;
@@ -90,7 +90,7 @@
90
90
  align-items: center;
91
91
  justify-content: space-between;
92
92
  gap: var(--fui-space-2, $fui-space-2);
93
- padding: var(--fui-padding-item-xs) var(--fui-padding-item-sm);
93
+ padding: var(--fui-space-1) var(--fui-space-2);
94
94
  background-color: var(--fui-bg-secondary, $fui-bg-secondary);
95
95
  border-top: 1px solid var(--fui-border, $fui-border);
96
96
  }
@@ -155,7 +155,7 @@
155
155
  display: flex;
156
156
  align-items: center;
157
157
  gap: var(--fui-space-1, $fui-space-1);
158
- padding: var(--fui-padding-item-xs) var(--fui-padding-item-sm);
158
+ padding: var(--fui-space-1) var(--fui-space-2);
159
159
  border-radius: var(--fui-radius-md, $fui-radius-md);
160
160
  background-color: transparent;
161
161
  color: var(--fui-text-secondary, $fui-text-secondary);
@@ -34,6 +34,25 @@ describe('Prompt', () => {
34
34
  expect(screen.getByPlaceholderText('Type here...')).toBeInTheDocument();
35
35
  });
36
36
 
37
+ it('forwards textarea props and composes textarea handlers', async () => {
38
+ const user = userEvent.setup();
39
+ const onKeyDown = vi.fn();
40
+ const onChange = vi.fn();
41
+
42
+ render(
43
+ <Prompt defaultValue="" onSubmit={() => {}}>
44
+ <Prompt.Textarea data-testid="prompt-textarea" onKeyDown={onKeyDown} onChange={onChange} />
45
+ <Prompt.Submit />
46
+ </Prompt>
47
+ );
48
+
49
+ const textarea = screen.getByTestId('prompt-textarea');
50
+ await user.type(textarea, 'Hi');
51
+ expect(onChange).toHaveBeenCalled();
52
+ await user.keyboard('{Enter}');
53
+ expect(onKeyDown).toHaveBeenCalled();
54
+ });
55
+
37
56
  it('renders compound sub-components (Toolbar, Actions)', () => {
38
57
  renderPrompt();
39
58
  expect(screen.getByRole('button', { name: /attach file/i })).toBeInTheDocument();
@@ -38,10 +38,16 @@ export interface PromptProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
38
38
  variant?: PromptVariant;
39
39
  }
40
40
 
41
- export interface PromptTextareaProps {
41
+ export interface PromptTextareaProps extends Omit<
42
+ React.TextareaHTMLAttributes<HTMLTextAreaElement>,
43
+ 'value' | 'defaultValue' | 'onChange' | 'rows' | 'disabled' | 'children'
44
+ > {
42
45
  /** Override placeholder from context */
43
46
  placeholder?: string;
44
- className?: string;
47
+ /** Composed with internal state update logic */
48
+ onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
49
+ /** Composed with internal submit-on-enter logic */
50
+ onKeyDown?: React.KeyboardEventHandler<HTMLTextAreaElement>;
45
51
  }
46
52
 
47
53
  export interface PromptToolbarProps {
@@ -64,7 +70,7 @@ export interface PromptActionButtonProps {
64
70
  /** Accessible label for the button */
65
71
  'aria-label': string;
66
72
  /** Click handler */
67
- onClick?: () => void;
73
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
68
74
  /** Disabled state */
69
75
  disabled?: boolean;
70
76
  className?: string;
@@ -73,7 +79,7 @@ export interface PromptActionButtonProps {
73
79
  export interface PromptModeButtonProps {
74
80
  children: React.ReactNode;
75
81
  /** Click handler */
76
- onClick?: () => void;
82
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
77
83
  /** Whether this mode is currently active */
78
84
  active?: boolean;
79
85
  /** Disabled state */
@@ -239,7 +245,14 @@ function PromptRoot({
239
245
  );
240
246
  }
241
247
 
242
- function PromptTextarea({ placeholder: overridePlaceholder, className }: PromptTextareaProps) {
248
+ function PromptTextarea({
249
+ placeholder: overridePlaceholder,
250
+ className,
251
+ onChange,
252
+ onKeyDown,
253
+ 'aria-label': ariaLabel,
254
+ ...htmlProps
255
+ }: PromptTextareaProps) {
243
256
  const {
244
257
  value,
245
258
  setValue,
@@ -280,10 +293,14 @@ function PromptTextarea({ placeholder: overridePlaceholder, className }: PromptT
280
293
  }, [value, adjustHeight]);
281
294
 
282
295
  const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
296
+ onChange?.(e);
297
+ if (e.defaultPrevented) return;
283
298
  setValue(e.target.value);
284
299
  };
285
300
 
286
301
  const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
302
+ onKeyDown?.(e);
303
+ if (e.defaultPrevented) return;
287
304
  if (submitOnEnter && e.key === 'Enter' && !e.shiftKey) {
288
305
  e.preventDefault();
289
306
  handleSubmit();
@@ -295,6 +312,7 @@ function PromptTextarea({ placeholder: overridePlaceholder, className }: PromptT
295
312
  return (
296
313
  <textarea
297
314
  ref={textareaRef}
315
+ {...htmlProps}
298
316
  className={classes}
299
317
  value={value}
300
318
  onChange={handleChange}
@@ -302,7 +320,7 @@ function PromptTextarea({ placeholder: overridePlaceholder, className }: PromptT
302
320
  placeholder={overridePlaceholder ?? placeholder}
303
321
  disabled={disabled || loading}
304
322
  rows={minRows}
305
- aria-label={overridePlaceholder ?? placeholder}
323
+ aria-label={ariaLabel ?? overridePlaceholder ?? placeholder}
306
324
  />
307
325
  );
308
326
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { defineFragment } from '@fragments-sdk/cli/core';
2
+ import { defineFragment } from '@fragments-sdk/core';
3
3
  import { RadioGroup } from '.';
4
4
 
5
5
  export default defineFragment({
@@ -57,6 +57,10 @@ export default defineFragment({
57
57
  type: 'function',
58
58
  description: 'Callback when selection changes',
59
59
  },
60
+ onChange: {
61
+ type: 'function',
62
+ description: 'Alias for onValueChange',
63
+ },
60
64
  orientation: {
61
65
  type: 'enum',
62
66
  values: ['horizontal', 'vertical'],
@@ -82,6 +86,14 @@ export default defineFragment({
82
86
  type: 'string',
83
87
  description: 'Error message',
84
88
  },
89
+ wrapperClassName: {
90
+ type: 'string',
91
+ description: 'Class name for the outer wrapper element',
92
+ },
93
+ groupClassName: {
94
+ type: 'string',
95
+ description: 'Class name for the inner radio group element',
96
+ },
85
97
  },
86
98
 
87
99
  relations: [
@@ -106,9 +118,12 @@ export default defineFragment({
106
118
  propsSummary: [
107
119
  'value: string - selected value',
108
120
  'onValueChange: (value: string) => void',
121
+ 'onChange: (value: string) => void - alias for onValueChange',
109
122
  'orientation: horizontal|vertical (default: vertical)',
110
123
  'size: sm|md|lg (default: md)',
111
124
  'disabled: boolean - disable all options',
125
+ 'wrapperClassName/groupClassName - explicit styling targets for wrapper and group',
126
+ 'RadioGroup.Item supports controlClassName/contentClassName for item-level styling',
112
127
  ],
113
128
  scenarioTags: [
114
129
  'form.selection',
@@ -190,5 +205,20 @@ export default defineFragment({
190
205
  </RadioGroup>
191
206
  ),
192
207
  },
208
+ {
209
+ name: 'Styling Targets',
210
+ description: 'Use explicit class names for wrapper/group/item styling hooks',
211
+ render: () => (
212
+ <RadioGroup
213
+ defaultValue="a"
214
+ label="Display mode"
215
+ wrapperClassName="demo-radio-wrapper"
216
+ groupClassName="demo-radio-group"
217
+ >
218
+ <RadioGroup.Item value="a" label="Compact" controlClassName="demo-radio-control" contentClassName="demo-radio-content" />
219
+ <RadioGroup.Item value="b" label="Comfortable" />
220
+ </RadioGroup>
221
+ ),
222
+ },
193
223
  ],
194
224
  });
@@ -20,6 +20,8 @@ export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElemen
20
20
  defaultValue?: string;
21
21
  /** Callback when value changes */
22
22
  onValueChange?: (value: string) => void;
23
+ /** Alias for onValueChange */
24
+ onChange?: (value: string) => void;
23
25
  /** Orientation of the radio group */
24
26
  orientation?: 'horizontal' | 'vertical';
25
27
  /** Whether the group is disabled */
@@ -32,6 +34,10 @@ export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElemen
32
34
  error?: string;
33
35
  /** Size variant */
34
36
  size?: 'sm' | 'md' | 'lg';
37
+ /** Class applied to the outer wrapper (label + group + error) */
38
+ wrapperClassName?: string;
39
+ /** Class applied to the inner radio group container */
40
+ groupClassName?: string;
35
41
  /** Children (Radio.Item components) */
36
42
  children: React.ReactNode;
37
43
  }
@@ -53,6 +59,10 @@ export interface RadioItemProps {
53
59
  'aria-describedby'?: string;
54
60
  /** Additional class name */
55
61
  className?: string;
62
+ /** Class applied directly to the radio control */
63
+ controlClassName?: string;
64
+ /** Class applied to the item text content wrapper */
65
+ contentClassName?: string;
56
66
  }
57
67
 
58
68
  function mergeAriaIds(...ids: Array<string | undefined>): string | undefined {
@@ -79,6 +89,8 @@ function RadioItem({
79
89
  'aria-labelledby': ariaLabelledBy,
80
90
  'aria-describedby': ariaDescribedBy,
81
91
  className,
92
+ controlClassName,
93
+ contentClassName,
82
94
  }: RadioItemProps) {
83
95
  const size = React.useContext(RadioSizeContext);
84
96
  const id = React.useId();
@@ -89,6 +101,7 @@ function RadioItem({
89
101
  styles.radio,
90
102
  size === 'sm' && styles.radioSm,
91
103
  size === 'lg' && styles.radioLg,
104
+ controlClassName,
92
105
  ].filter(Boolean).join(' ');
93
106
 
94
107
  const labelClasses = [
@@ -131,7 +144,7 @@ function RadioItem({
131
144
  >
132
145
  <BaseRadio.Indicator className={styles.indicator} />
133
146
  </BaseRadio.Root>
134
- <div className={styles.content}>
147
+ <div className={[styles.content, contentClassName].filter(Boolean).join(' ')}>
135
148
  <span id={labelId} className={labelClasses}>{label}</span>
136
149
  {description && (
137
150
  <span id={descriptionId} className={styles.description}>{description}</span>
@@ -149,12 +162,15 @@ function RadioGroupRoot({
149
162
  value,
150
163
  defaultValue,
151
164
  onValueChange,
165
+ onChange,
152
166
  orientation = 'vertical',
153
167
  disabled = false,
154
168
  name,
155
169
  label,
156
170
  error,
157
171
  size = 'md',
172
+ wrapperClassName,
173
+ groupClassName,
158
174
  children,
159
175
  className,
160
176
  'aria-label': ariaLabel,
@@ -170,16 +186,19 @@ function RadioGroupRoot({
170
186
  styles.group,
171
187
  styles[orientation],
172
188
  className,
189
+ groupClassName,
173
190
  ].filter(Boolean).join(' ');
174
191
 
192
+ const handleValueChange = onChange ?? onValueChange;
193
+
175
194
  return (
176
195
  <RadioSizeContext.Provider value={size}>
177
- <div {...htmlProps} className={styles.wrapper}>
196
+ <div {...htmlProps} className={[styles.wrapper, wrapperClassName].filter(Boolean).join(' ')}>
178
197
  {label && <span id={labelId} className={styles.groupLabel}>{label}</span>}
179
198
  <BaseRadioGroup
180
199
  value={value}
181
200
  defaultValue={defaultValue}
182
- onValueChange={onValueChange}
201
+ onValueChange={handleValueChange}
183
202
  disabled={disabled}
184
203
  name={name}
185
204
  aria-label={ariaLabel}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { defineFragment } from '@fragments-sdk/cli/core';
2
+ import { defineFragment } from '@fragments-sdk/core';
3
3
  import { ScrollArea } from '.';
4
4
 
5
5
  const tags = ['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4', 'Tag 5', 'Tag 6', 'Tag 7', 'Tag 8', 'Tag 9', 'Tag 10', 'Tag 11', 'Tag 12', 'Tag 13', 'Tag 14', 'Tag 15'];
@@ -1,5 +1,5 @@
1
1
  import React, { useState } from 'react';
2
- import { defineFragment } from '@fragments-sdk/cli/core';
2
+ import { defineFragment } from '@fragments-sdk/core';
3
3
  import { Select } from '.';
4
4
 
5
5
  // Stateful wrapper for interactive demos
@@ -72,6 +72,10 @@ export default defineFragment({
72
72
  type: 'function',
73
73
  description: 'Called when selection changes',
74
74
  },
75
+ onChange: {
76
+ type: 'function',
77
+ description: 'Alias for onValueChange',
78
+ },
75
79
  open: {
76
80
  type: 'boolean',
77
81
  description: 'Controlled open state of the dropdown',
@@ -94,6 +98,10 @@ export default defineFragment({
94
98
  description: 'Disable the select',
95
99
  default: 'false',
96
100
  },
101
+ options: {
102
+ type: 'array',
103
+ description: 'Convenience options array for simple selects (alternative to compound Select.Item children)',
104
+ },
97
105
  },
98
106
 
99
107
  relations: [
@@ -104,10 +112,12 @@ export default defineFragment({
104
112
 
105
113
  contract: {
106
114
  propsSummary: [
107
- 'value: string - controlled selected value',
108
- 'onValueChange: (value) => void - selection handler',
115
+ 'value: string | null - controlled selected value',
116
+ 'onValueChange: (value: string | null) => void - selection handler',
117
+ 'onChange: (value: string | null) => void - alias for onValueChange',
109
118
  'placeholder: string - placeholder text',
110
119
  'disabled: boolean - disable select',
120
+ 'options: SelectOption[] - convenience API for simple option lists',
111
121
  'maxVisibleItems: number - max visible options before scrolling (default 4)',
112
122
  ],
113
123
  scenarioTags: [
@@ -234,5 +244,22 @@ export default defineFragment({
234
244
  </Select>
235
245
  ),
236
246
  },
247
+ {
248
+ name: 'Options Prop',
249
+ description: 'Convenience API for simple lists without manual Select.Item composition',
250
+ render: () => (
251
+ <StatefulSelect
252
+ placeholder="Select a team"
253
+ options={[
254
+ { value: 'eng', label: 'Engineering' },
255
+ { value: 'design', label: 'Design' },
256
+ { value: 'pm', label: 'Product' },
257
+ ]}
258
+ >
259
+ <Select.Trigger />
260
+ <Select.Content />
261
+ </StatefulSelect>
262
+ ),
263
+ },
237
264
  ],
238
265
  });
@@ -96,7 +96,7 @@
96
96
  var(--fui-space-1, #{$fui-space-1}) * 2
97
97
  ) !important;
98
98
  overflow-y: auto !important;
99
- padding: var(--fui-padding-item-xs, $fui-padding-item-xs);
99
+ padding: var(--fui-space-1, $fui-space-1);
100
100
  box-shadow: var(--fui-shadow-md, $fui-shadow-md);
101
101
 
102
102
  // Animation
@@ -128,7 +128,7 @@
128
128
  align-items: center;
129
129
  gap: var(--fui-space-2, $fui-space-2);
130
130
  width: 100%;
131
- padding: var(--fui-padding-item-xs, $fui-padding-item-xs) var(--fui-padding-item-md, $fui-padding-item-md);
131
+ padding: var(--fui-space-1, $fui-space-1) var(--fui-space-3, $fui-space-3);
132
132
  border-radius: var(--fui-radius-sm, $fui-radius-sm);
133
133
  cursor: pointer;
134
134
  outline: none;
@@ -178,7 +178,7 @@
178
178
 
179
179
  // Group label
180
180
  .groupLabel {
181
- padding: var(--fui-padding-item-xs, $fui-padding-item-xs) var(--fui-padding-item-md, $fui-padding-item-md);
181
+ padding: var(--fui-space-1, $fui-space-1) var(--fui-space-3, $fui-space-3);
182
182
  font-size: var(--fui-font-size-xs, $fui-font-size-xs);
183
183
  font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
184
184
  color: var(--fui-text-tertiary, $fui-text-tertiary);