@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
@@ -67,6 +67,21 @@ export type EditorMode = 'rich' | 'markdown';
67
67
 
68
68
  export type EditorSize = 'sm' | 'md' | 'lg';
69
69
 
70
+ export interface EditorToolbarIconRenderState {
71
+ format: EditorFormat;
72
+ active: boolean;
73
+ disabled: boolean;
74
+ readOnly: boolean;
75
+ isDisabled: boolean;
76
+ mode: EditorMode;
77
+ }
78
+
79
+ export type EditorToolbarIconSlot =
80
+ | React.ReactNode
81
+ | ((state: EditorToolbarIconRenderState) => React.ReactNode);
82
+
83
+ export type EditorToolbarIcons = Partial<Record<EditorFormat, EditorToolbarIconSlot>>;
84
+
70
85
  export interface EditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
71
86
  children?: React.ReactNode;
72
87
  /** Controlled value */
@@ -87,14 +102,16 @@ export interface EditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
87
102
  toolbar?: boolean;
88
103
  /** Show default status bar */
89
104
  statusBar?: boolean;
90
- /** Auto-save callback */
91
- onAutoSave?: (value: string) => void;
105
+ /** Auto-save callback (sync or async) */
106
+ onAutoSave?: (value: string) => void | Promise<void>;
92
107
  /** Auto-save interval in ms */
93
108
  autoSaveInterval?: number;
94
109
  /** Editor size preset */
95
110
  size?: EditorSize;
96
111
  /** Maximum character count (shows indicator in status bar) */
97
112
  maxLength?: number;
113
+ /** Custom toolbar icons keyed by format/action, for any icon package */
114
+ toolbarIcons?: EditorToolbarIcons;
98
115
  }
99
116
 
100
117
  export interface EditorToolbarProps {
@@ -304,6 +321,7 @@ interface EditorContextValue {
304
321
  mode: EditorMode;
305
322
  size: EditorSize;
306
323
  maxLength?: number;
324
+ toolbarIcons?: EditorToolbarIcons;
307
325
  wordCount: number;
308
326
  charCount: number;
309
327
  toggleFormat: (f: EditorFormat) => void;
@@ -373,6 +391,7 @@ function EditorRoot({
373
391
  autoSaveInterval = 30000,
374
392
  size = 'md',
375
393
  maxLength,
394
+ toolbarIcons,
376
395
  className,
377
396
  ...htmlProps
378
397
  }: EditorProps) {
@@ -418,7 +437,7 @@ function EditorRoot({
418
437
  'aria-multiline': 'true',
419
438
  },
420
439
  },
421
- content: defaultValue || controlledValue || '',
440
+ content: controlledValue !== undefined ? controlledValue : defaultValue,
422
441
  editable: !disabled && !readOnly,
423
442
  onUpdate: ({ editor: e }: { editor: { getHTML: () => string } }) => {
424
443
  const html = e.getHTML();
@@ -448,17 +467,32 @@ function EditorRoot({
448
467
  React.useEffect(() => {
449
468
  if (!onAutoSave || !value) return;
450
469
 
470
+ let cancelled = false;
451
471
  const timer = setTimeout(() => {
452
472
  setSaveStatus('saving');
453
473
  try {
454
- onAutoSave(value);
455
- setSaveStatus('saved');
474
+ Promise.resolve(onAutoSave(value))
475
+ .then(() => {
476
+ if (!cancelled) {
477
+ setSaveStatus('saved');
478
+ }
479
+ })
480
+ .catch(() => {
481
+ if (!cancelled) {
482
+ setSaveStatus('error');
483
+ }
484
+ });
456
485
  } catch {
457
- setSaveStatus('error');
486
+ if (!cancelled) {
487
+ setSaveStatus('error');
488
+ }
458
489
  }
459
490
  }, autoSaveInterval);
460
491
 
461
- return () => clearTimeout(timer);
492
+ return () => {
493
+ cancelled = true;
494
+ clearTimeout(timer);
495
+ };
462
496
  }, [value, onAutoSave, autoSaveInterval]);
463
497
 
464
498
  const toggleFormat = React.useCallback(
@@ -585,6 +619,7 @@ function EditorRoot({
585
619
  mode,
586
620
  size,
587
621
  maxLength,
622
+ toolbarIcons,
588
623
  wordCount,
589
624
  charCount,
590
625
  toggleFormat,
@@ -652,7 +687,7 @@ function EditorToolbarGroup({ children, 'aria-label': ariaLabel, className }: Ed
652
687
  }
653
688
 
654
689
  function EditorToolbarButton({ format, className }: EditorToolbarButtonProps) {
655
- const { toggleFormat, isFormatActive, disabled, readOnly, editor, mode } = useEditorContext();
690
+ const { toggleFormat, isFormatActive, disabled, readOnly, editor, mode, toolbarIcons } = useEditorContext();
656
691
  const meta = FORMAT_META[format];
657
692
  const isAction = ACTION_FORMATS.has(format);
658
693
  const active = isAction ? false : isFormatActive(format);
@@ -669,6 +704,20 @@ function EditorToolbarButton({ format, className }: EditorToolbarButtonProps) {
669
704
  }
670
705
  }
671
706
 
707
+ const iconState: EditorToolbarIconRenderState = {
708
+ format,
709
+ active,
710
+ disabled,
711
+ readOnly,
712
+ isDisabled,
713
+ mode,
714
+ };
715
+
716
+ const iconOverride = toolbarIcons?.[format];
717
+ const renderedOverride = typeof iconOverride === 'function'
718
+ ? iconOverride(iconState)
719
+ : iconOverride;
720
+
672
721
  const classes = [
673
722
  styles.toolbarButton,
674
723
  active && styles.toolbarButtonActive,
@@ -685,7 +734,9 @@ function EditorToolbarButton({ format, className }: EditorToolbarButtonProps) {
685
734
  title={`${meta.label} (${meta.shortcut})`}
686
735
  {...(isAction ? {} : { 'aria-pressed': active })}
687
736
  >
688
- <IconComponent size={16} weight={active ? 'bold' : 'regular'} />
737
+ {iconOverride !== undefined
738
+ ? renderedOverride
739
+ : <IconComponent size={16} weight={active ? 'bold' : 'regular'} />}
689
740
  </button>
690
741
  );
691
742
  }
@@ -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 { EmptyState } from '.';
4
4
  import { Button } from '../Button';
5
5
 
@@ -83,6 +83,7 @@ export default defineFragment({
83
83
  'Provide a clear action to resolve the empty state',
84
84
  'Use appropriate icons to reinforce the message',
85
85
  'Keep messaging positive and actionable',
86
+ 'EmptyState compound sub-components forward DOM props for ids, aria attributes, and handlers',
86
87
  ],
87
88
  accessibility: [
88
89
  'Empty state content is accessible to screen readers',
@@ -112,6 +113,7 @@ export default defineFragment({
112
113
  propsSummary: [
113
114
  'size: sm|md|lg (default: md)',
114
115
  'Sub-components: EmptyState.Icon, EmptyState.Title, EmptyState.Description, EmptyState.Actions',
116
+ 'Compound sub-components forward DOM props to their rendered elements',
115
117
  ],
116
118
  scenarioTags: [
117
119
  'feedback.empty',
@@ -13,7 +13,7 @@
13
13
 
14
14
  // Size variants
15
15
  .sm {
16
- padding: var(--fui-padding-container-lg) var(--fui-padding-container-md);
16
+ padding: var(--fui-space-6) var(--fui-space-4);
17
17
 
18
18
  .title {
19
19
  font-size: var(--fui-font-size-sm, $fui-font-size-sm);
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  .md {
37
- padding: var(--fui-space-10, $fui-space-10) var(--fui-padding-container-lg);
37
+ padding: var(--fui-space-10, $fui-space-10) var(--fui-space-6);
38
38
 
39
39
  .title {
40
40
  font-size: var(--fui-font-size-base, $fui-font-size-base);
@@ -55,7 +55,7 @@
55
55
  }
56
56
 
57
57
  .lg {
58
- padding: var(--fui-space-12, $fui-space-12) var(--fui-padding-container-xl);
58
+ padding: var(--fui-space-12, $fui-space-12) var(--fui-space-8);
59
59
 
60
60
  .title {
61
61
  font-size: var(--fui-font-size-lg, $fui-font-size-lg);
@@ -64,4 +64,22 @@ describe('EmptyState', () => {
64
64
  );
65
65
  await expectNoA11yViolations(container);
66
66
  });
67
+
68
+ it('forwards DOM props on compound sub-components', () => {
69
+ render(
70
+ <EmptyState>
71
+ <EmptyState.Icon data-testid="icon" title="placeholder">ICON</EmptyState.Icon>
72
+ <EmptyState.Title data-testid="title" id="empty-title">Empty</EmptyState.Title>
73
+ <EmptyState.Description data-testid="desc" aria-live="polite">Nothing here</EmptyState.Description>
74
+ <EmptyState.Actions data-testid="actions" role="group">
75
+ <button>Add</button>
76
+ </EmptyState.Actions>
77
+ </EmptyState>
78
+ );
79
+
80
+ expect(screen.getByTestId('icon')).toHaveAttribute('title', 'placeholder');
81
+ expect(screen.getByTestId('title')).toHaveAttribute('id', 'empty-title');
82
+ expect(screen.getByTestId('desc')).toHaveAttribute('aria-live', 'polite');
83
+ expect(screen.getByTestId('actions')).toHaveAttribute('role', 'group');
84
+ });
67
85
  });
@@ -12,24 +12,20 @@ export interface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {
12
12
  size?: 'sm' | 'md' | 'lg';
13
13
  }
14
14
 
15
- export interface EmptyStateIconProps {
15
+ export interface EmptyStateIconProps extends React.HTMLAttributes<HTMLDivElement> {
16
16
  children: React.ReactNode;
17
- className?: string;
18
17
  }
19
18
 
20
- export interface EmptyStateTitleProps {
19
+ export interface EmptyStateTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
21
20
  children: React.ReactNode;
22
- className?: string;
23
21
  }
24
22
 
25
- export interface EmptyStateDescriptionProps {
23
+ export interface EmptyStateDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
26
24
  children: React.ReactNode;
27
- className?: string;
28
25
  }
29
26
 
30
- export interface EmptyStateActionsProps {
27
+ export interface EmptyStateActionsProps extends React.HTMLAttributes<HTMLDivElement> {
31
28
  children: React.ReactNode;
32
- className?: string;
33
29
  }
34
30
 
35
31
  // ============================================
@@ -73,24 +69,28 @@ function EmptyStateRoot({
73
69
  );
74
70
  }
75
71
 
76
- function EmptyStateIcon({ children, className }: EmptyStateIconProps) {
72
+ function EmptyStateIcon({ children, className, ...htmlProps }: EmptyStateIconProps) {
77
73
  const classes = [styles.icon, className].filter(Boolean).join(' ');
78
- return <div className={classes}>{children}</div>;
74
+ return <div {...htmlProps} className={classes}>{children}</div>;
79
75
  }
80
76
 
81
- function EmptyStateTitle({ children, className }: EmptyStateTitleProps) {
77
+ function EmptyStateTitle({ children, className, ...htmlProps }: EmptyStateTitleProps) {
82
78
  const classes = [styles.title, className].filter(Boolean).join(' ');
83
- return <h3 className={classes}>{children}</h3>;
79
+ return <h3 {...htmlProps} className={classes}>{children}</h3>;
84
80
  }
85
81
 
86
- function EmptyStateDescription({ children, className }: EmptyStateDescriptionProps) {
82
+ function EmptyStateDescription({
83
+ children,
84
+ className,
85
+ ...htmlProps
86
+ }: EmptyStateDescriptionProps) {
87
87
  const classes = [styles.description, className].filter(Boolean).join(' ');
88
- return <p className={classes}>{children}</p>;
88
+ return <p {...htmlProps} className={classes}>{children}</p>;
89
89
  }
90
90
 
91
- function EmptyStateActions({ children, className }: EmptyStateActionsProps) {
91
+ function EmptyStateActions({ children, className, ...htmlProps }: EmptyStateActionsProps) {
92
92
  const classes = [styles.actions, className].filter(Boolean).join(' ');
93
- return <div className={classes}>{children}</div>;
93
+ return <div {...htmlProps} className={classes}>{children}</div>;
94
94
  }
95
95
 
96
96
  // ============================================
@@ -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 { Field } from '.';
4
4
  import { Input } from '../Input';
5
5
  import { Grid } from '../Grid';
@@ -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 { Fieldset } from '.';
4
4
  import { Field } from '../Field';
5
5
  import { Input } from '../Input';
@@ -34,6 +34,7 @@ export default defineFragment({
34
34
  'Always include a Fieldset.Legend for accessibility',
35
35
  'Use disabled prop to disable all fields within the group',
36
36
  'Use Grid inside Fieldset for multi-column layouts',
37
+ 'Fieldset.Legend forwards DOM props for ids, aria attributes, and custom data hooks',
37
38
  ],
38
39
  accessibility: [
39
40
  'Renders semantic fieldset element',
@@ -64,6 +65,7 @@ export default defineFragment({
64
65
  propsSummary: [
65
66
  'disabled: boolean - disables all child fields',
66
67
  'Fieldset.Legend: accessible group label',
68
+ 'Fieldset.Legend forwards DOM props',
67
69
  ],
68
70
  scenarioTags: ['form.group', 'form.fieldset'],
69
71
  a11yRules: ['A11Y_FIELDSET_LEGEND'],
@@ -45,4 +45,18 @@ describe('Fieldset', () => {
45
45
  );
46
46
  await expectNoA11yViolations(container);
47
47
  });
48
+
49
+ it('forwards DOM props to Fieldset.Legend', () => {
50
+ render(
51
+ <Fieldset>
52
+ <Fieldset.Legend data-testid="legend" id="legend-id" aria-live="polite">
53
+ Accessible legend
54
+ </Fieldset.Legend>
55
+ </Fieldset>
56
+ );
57
+
58
+ const legend = screen.getByTestId('legend');
59
+ expect(legend).toHaveAttribute('id', 'legend-id');
60
+ expect(legend).toHaveAttribute('aria-live', 'polite');
61
+ });
48
62
  });
@@ -13,9 +13,8 @@ export interface FieldsetProps extends React.HTMLAttributes<HTMLFieldSetElement>
13
13
  disabled?: boolean;
14
14
  }
15
15
 
16
- export interface FieldsetLegendProps {
16
+ export interface FieldsetLegendProps extends React.HTMLAttributes<HTMLElement> {
17
17
  children: React.ReactNode;
18
- className?: string;
19
18
  }
20
19
 
21
20
  // ============================================
@@ -32,9 +31,9 @@ function FieldsetRoot({ children, disabled, className, ...htmlProps }: FieldsetP
32
31
  );
33
32
  }
34
33
 
35
- function FieldsetLegend({ children, className }: FieldsetLegendProps) {
34
+ function FieldsetLegend({ children, className, ...htmlProps }: FieldsetLegendProps) {
36
35
  const classes = [styles.legend, className].filter(Boolean).join(' ');
37
- return <BaseFieldset.Legend className={classes}>{children}</BaseFieldset.Legend>;
36
+ return <BaseFieldset.Legend {...htmlProps} className={classes}>{children}</BaseFieldset.Legend>;
38
37
  }
39
38
 
40
39
  // ============================================
@@ -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 { Form } from '.';
4
4
  import { Field } from '../Field';
5
5
  import { Fieldset } from '../Fieldset';
@@ -37,7 +37,7 @@ export default defineFragment({
37
37
  guidelines: [
38
38
  'Pass errors as Record<string, string | string[]> keyed by field name',
39
39
  'Use onClearErrors to clear errors when fields are modified',
40
- 'Use onFormSubmit for form submission handling',
40
+ 'Use onSubmit for form submission handling (onFormSubmit is deprecated alias)',
41
41
  'Field components with matching name prop display errors automatically',
42
42
  'Use Grid inside Form or Fieldset for multi-column layouts',
43
43
  ],
@@ -57,9 +57,13 @@ export default defineFragment({
57
57
  type: 'object',
58
58
  description: 'Server-side errors keyed by field name',
59
59
  },
60
+ onSubmit: {
61
+ type: 'function',
62
+ description: 'Form submission handler (preferred)',
63
+ },
60
64
  onFormSubmit: {
61
65
  type: 'function',
62
- description: 'Form submission handler',
66
+ description: 'Deprecated alias for onSubmit',
63
67
  },
64
68
  onClearErrors: {
65
69
  type: 'function',
@@ -81,7 +85,8 @@ export default defineFragment({
81
85
  contract: {
82
86
  propsSummary: [
83
87
  'errors: Record<string, string | string[]> - server errors by field name',
84
- 'onFormSubmit: (event) => void - submission handler',
88
+ 'onSubmit: (event) => void - submission handler (preferred)',
89
+ 'onFormSubmit: (event) => void - deprecated alias for onSubmit',
85
90
  'onClearErrors: (name) => void - clear errors callback',
86
91
  ],
87
92
  scenarioTags: ['form.submit', 'form.validation', 'form.server'],
@@ -93,7 +98,7 @@ export default defineFragment({
93
98
  name: 'Sign up',
94
99
  description: 'Registration form with two-column name fields',
95
100
  render: () => (
96
- <Form onFormSubmit={(e) => { e.preventDefault(); }}>
101
+ <Form onSubmit={(e) => { e.preventDefault(); }}>
97
102
  <Grid columns={2} gap="md">
98
103
  <Field name="firstName">
99
104
  <Field.Label>First Name</Field.Label>
@@ -143,7 +148,7 @@ export default defineFragment({
143
148
  name: 'Profile settings',
144
149
  description: 'Multi-section form with Fieldsets, switches, and radio group',
145
150
  render: () => (
146
- <Form onFormSubmit={(e) => { e.preventDefault(); }}>
151
+ <Form onSubmit={(e) => { e.preventDefault(); }}>
147
152
  <Fieldset>
148
153
  <Fieldset.Legend>Profile</Fieldset.Legend>
149
154
  <Grid columns={2} gap="md">
@@ -209,7 +214,7 @@ export default defineFragment({
209
214
  name: 'Contact form',
210
215
  description: 'Contact form with select, textarea, and checkbox',
211
216
  render: () => (
212
- <Form onFormSubmit={(e) => { e.preventDefault(); }}>
217
+ <Form onSubmit={(e) => { e.preventDefault(); }}>
213
218
  <Grid columns={2} gap="md">
214
219
  <Field name="name">
215
220
  <Field.Label>Name</Field.Label>
@@ -8,9 +8,12 @@ import styles from './Form.module.scss';
8
8
  // Types
9
9
  // ============================================
10
10
 
11
- export interface FormProps extends Omit<React.HTMLAttributes<HTMLFormElement>, 'onSubmit'> {
11
+ export interface FormProps extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'onSubmit'> {
12
12
  children: React.ReactNode;
13
13
  errors?: Record<string, string | string[]>;
14
+ /** Standard form submit handler */
15
+ onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
16
+ /** @deprecated Use onSubmit */
14
17
  onFormSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
15
18
  onClearErrors?: (name: string) => void;
16
19
  validationMode?: 'onSubmit' | 'onBlur' | 'onChange';
@@ -23,6 +26,7 @@ export interface FormProps extends Omit<React.HTMLAttributes<HTMLFormElement>, '
23
26
  function FormRoot({
24
27
  children,
25
28
  errors,
29
+ onSubmit,
26
30
  onFormSubmit,
27
31
  onClearErrors,
28
32
  validationMode,
@@ -30,24 +34,16 @@ function FormRoot({
30
34
  ...htmlProps
31
35
  }: FormProps) {
32
36
  const classes = [styles.root, className].filter(Boolean).join(' ');
33
-
34
- const baseProps: Record<string, unknown> = {
35
- ...htmlProps,
36
- errors,
37
- validationMode,
38
- className: classes,
39
- };
40
-
41
- if (onFormSubmit) {
42
- baseProps.onSubmit = onFormSubmit;
43
- }
44
-
45
- if (onClearErrors) {
46
- baseProps.onClearErrors = onClearErrors;
47
- }
37
+ const submitHandler = onSubmit ?? onFormSubmit;
48
38
 
49
39
  return (
50
- <BaseForm {...baseProps}>
40
+ <BaseForm
41
+ {...htmlProps}
42
+ errors={errors}
43
+ validationMode={validationMode}
44
+ onSubmit={submitHandler}
45
+ className={classes}
46
+ >
51
47
  {children}
52
48
  </BaseForm>
53
49
  );
@@ -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 { Grid } from '.';
4
4
 
5
5
  export default defineFragment({
@@ -31,6 +31,7 @@ export default defineFragment({
31
31
  'Use fixed column counts when exact column control is needed and responsiveness is not required',
32
32
  'Use Grid.Item with colSpan to create asymmetric layouts within a fixed grid',
33
33
  'Keep gap consistent within a context — md is the default and works for most cases',
34
+ 'Pass DOM attributes (id, role, aria-*, data-*, event handlers) directly to Grid and Grid.Item roots when needed',
34
35
  ],
35
36
  accessibility: [
36
37
  'Grid is purely visual — it does not affect reading order or semantics',
@@ -60,9 +61,8 @@ export default defineFragment({
60
61
  gap: {
61
62
  type: 'union',
62
63
  values: ['none', 'xs', 'sm', 'md', 'lg', 'xl'],
63
- description: 'Gap between items. Accepts string tokens or numbers (1-8) mapping to the spacing scale',
64
64
  default: 'md',
65
- description: 'Gap between grid items, mapped to spacing tokens',
65
+ description: 'Gap between grid items. Accepts string tokens or numbers (1-8) mapped to the spacing scale',
66
66
  },
67
67
  alignItems: {
68
68
  type: 'enum',
@@ -103,6 +103,7 @@ export default defineFragment({
103
103
  'alignItems: start|center|end|stretch — vertical alignment',
104
104
  'justifyItems: start|center|end|stretch — horizontal alignment',
105
105
  'padding: none|sm|md|lg (default: none)',
106
+ 'Pass-through DOM props supported on Grid and Grid.Item roots (id, role, aria-*, data-*, handlers)',
106
107
  ],
107
108
  scenarioTags: [
108
109
  'layout.grid',
@@ -82,9 +82,9 @@
82
82
  // ============================================
83
83
 
84
84
  .paddingNone { padding: 0; }
85
- .paddingSm { padding: var(--fui-padding-container-sm); }
86
- .paddingMd { padding: var(--fui-padding-container-md); }
87
- .paddingLg { padding: var(--fui-padding-container-lg); }
85
+ .paddingSm { padding: var(--fui-space-3); }
86
+ .paddingMd { padding: var(--fui-space-4); }
87
+ .paddingLg { padding: var(--fui-space-6); }
88
88
 
89
89
  // ============================================
90
90
  // Align items (cross-axis within cells)
@@ -6,6 +6,7 @@ import styles from './Grid.module.scss';
6
6
  // ============================================
7
7
 
8
8
  type ColumnCount = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
9
+ type GapScale = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
9
10
 
10
11
  /** Responsive value — either a single value or per-breakpoint overrides */
11
12
  export interface ResponsiveColumns {
@@ -25,7 +26,7 @@ export interface ResponsiveColumns {
25
26
  * CSS Grid layout component with responsive columns.
26
27
  * @see https://usefragments.com/components/grid
27
28
  */
28
- export interface GridProps {
29
+ export interface GridProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'style' | 'className'> {
29
30
  children?: React.ReactNode;
30
31
  /**
31
32
  * Number of columns.
@@ -37,7 +38,7 @@ export interface GridProps {
37
38
  /** Minimum width for auto-fill columns (only used with columns="auto") */
38
39
  minChildWidth?: string;
39
40
  /** Gap between grid items. Accepts string tokens or numbers (1-8) mapping to the spacing scale */
40
- gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
41
+ gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | GapScale;
41
42
  /** Vertical alignment of items within their cells */
42
43
  alignItems?: 'start' | 'center' | 'end' | 'stretch';
43
44
  /** Horizontal alignment of items within their cells */
@@ -50,7 +51,7 @@ export interface GridProps {
50
51
  style?: React.CSSProperties;
51
52
  }
52
53
 
53
- export interface GridItemProps {
54
+ export interface GridItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className'> {
54
55
  children?: React.ReactNode;
55
56
  /** Number of columns this item spans */
56
57
  colSpan?: ColumnCount | 'full';
@@ -60,6 +61,7 @@ export interface GridItemProps {
60
61
  alignSelf?: 'start' | 'center' | 'end' | 'stretch';
61
62
  /** Additional class name */
62
63
  className?: string;
64
+ style?: React.CSSProperties;
63
65
  }
64
66
 
65
67
  // ============================================
@@ -72,7 +74,7 @@ function isResponsiveColumns(
72
74
  return typeof columns === 'object' && columns !== null;
73
75
  }
74
76
 
75
- const gapClasses: Record<NonNullable<GridProps['gap']>, string> = {
77
+ const gapClasses: Record<Exclude<NonNullable<GridProps['gap']>, GapScale>, string> = {
76
78
  none: styles.gapNone,
77
79
  xs: styles.gapXs,
78
80
  sm: styles.gapSm,
@@ -104,6 +106,7 @@ export const Grid = React.forwardRef<HTMLDivElement, GridProps>(
104
106
  padding = 'none',
105
107
  className,
106
108
  style,
109
+ ...htmlProps
107
110
  },
108
111
  ref
109
112
  ) {
@@ -149,7 +152,7 @@ export const Grid = React.forwardRef<HTMLDivElement, GridProps>(
149
152
  const mergedStyle = inlineStyle ? { ...inlineStyle, ...style } : style;
150
153
 
151
154
  return (
152
- <div ref={ref} className={classes} style={mergedStyle}>
155
+ <div {...htmlProps} ref={ref} className={classes} style={mergedStyle}>
153
156
  {children}
154
157
  </div>
155
158
  );
@@ -168,6 +171,8 @@ const GridItem = React.forwardRef<HTMLDivElement, GridItemProps>(
168
171
  rowSpan,
169
172
  alignSelf,
170
173
  className,
174
+ style,
175
+ ...htmlProps
171
176
  },
172
177
  ref
173
178
  ) {
@@ -182,7 +187,7 @@ const GridItem = React.forwardRef<HTMLDivElement, GridItemProps>(
182
187
  .join(' ');
183
188
 
184
189
  return (
185
- <div ref={ref} className={classes}>
190
+ <div {...htmlProps} ref={ref} className={classes} style={style}>
186
191
  {children}
187
192
  </div>
188
193
  );