@flowstack-ui/brick 0.1.9 → 0.1.12

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 (647) hide show
  1. package/README.md +9 -6
  2. package/dist/agents/accordion.json +8 -2
  3. package/dist/agents/accordion.md +3 -1
  4. package/dist/agents/alert-dialog.json +111 -0
  5. package/dist/agents/alert-dialog.md +53 -0
  6. package/dist/agents/app-bar.json +5 -4
  7. package/dist/agents/app-bar.md +4 -3
  8. package/dist/agents/aspect-ratio.json +80 -0
  9. package/dist/agents/aspect-ratio.md +45 -0
  10. package/dist/agents/avatar.json +92 -0
  11. package/dist/agents/avatar.md +49 -0
  12. package/dist/agents/badge.json +26 -8
  13. package/dist/agents/badge.md +11 -6
  14. package/dist/agents/bleed.json +54 -0
  15. package/dist/agents/bleed.md +39 -0
  16. package/dist/agents/blockquote.json +68 -0
  17. package/dist/agents/blockquote.md +42 -0
  18. package/dist/agents/button.json +7 -2
  19. package/dist/agents/button.md +1 -1
  20. package/dist/agents/card.json +21 -1
  21. package/dist/agents/card.md +7 -1
  22. package/dist/agents/checkbox-group.json +108 -0
  23. package/dist/agents/checkbox-group.md +56 -0
  24. package/dist/agents/checkbox.json +6 -1
  25. package/dist/agents/chip.json +73 -0
  26. package/dist/agents/chip.md +44 -0
  27. package/dist/agents/code-block.json +92 -0
  28. package/dist/agents/code-block.md +52 -0
  29. package/dist/agents/code.json +67 -0
  30. package/dist/agents/code.md +42 -0
  31. package/dist/agents/collapsible.json +34 -3
  32. package/dist/agents/collapsible.md +10 -3
  33. package/dist/agents/color-picker.json +78 -0
  34. package/dist/agents/color-picker.md +46 -0
  35. package/dist/agents/color-swatch.json +51 -0
  36. package/dist/agents/color-swatch.md +36 -0
  37. package/dist/agents/combobox.json +95 -0
  38. package/dist/agents/combobox.md +51 -0
  39. package/dist/agents/context-menu.json +109 -0
  40. package/dist/agents/context-menu.md +54 -0
  41. package/dist/agents/coverage.json +25591 -0
  42. package/dist/agents/data-grid.json +127 -0
  43. package/dist/agents/data-grid.md +61 -0
  44. package/dist/agents/data-list.json +63 -0
  45. package/dist/agents/data-list.md +41 -0
  46. package/dist/agents/dialog.json +112 -0
  47. package/dist/agents/dialog.md +53 -0
  48. package/dist/agents/dropdown-menu.json +112 -0
  49. package/dist/agents/dropdown-menu.md +56 -0
  50. package/dist/agents/em.json +57 -0
  51. package/dist/agents/em.md +39 -0
  52. package/dist/agents/feed.json +84 -0
  53. package/dist/agents/feed.md +48 -0
  54. package/dist/agents/field.json +6 -1
  55. package/dist/agents/fieldset.json +6 -1
  56. package/dist/agents/file-upload.json +93 -0
  57. package/dist/agents/file-upload.md +50 -0
  58. package/dist/agents/form.json +11 -2
  59. package/dist/agents/form.md +2 -1
  60. package/dist/agents/grid.json +18 -1
  61. package/dist/agents/grid.md +6 -0
  62. package/dist/agents/group.json +77 -0
  63. package/dist/agents/group.md +48 -0
  64. package/dist/agents/hide.json +14 -0
  65. package/dist/agents/hide.md +3 -0
  66. package/dist/agents/highlight.json +73 -0
  67. package/dist/agents/highlight.md +43 -0
  68. package/dist/agents/hover-card.json +94 -0
  69. package/dist/agents/hover-card.md +51 -0
  70. package/dist/agents/icon-button.json +23 -12
  71. package/dist/agents/icon-button.md +12 -8
  72. package/dist/agents/image.json +33 -7
  73. package/dist/agents/image.md +11 -4
  74. package/dist/agents/input.json +7 -2
  75. package/dist/agents/input.md +1 -1
  76. package/dist/agents/interface-composition.json +224 -18
  77. package/dist/agents/interface-composition.md +10 -0
  78. package/dist/agents/kbd.json +62 -0
  79. package/dist/agents/kbd.md +40 -0
  80. package/dist/agents/layer-selection.json +1294 -11
  81. package/dist/agents/layer-selection.md +94 -1
  82. package/dist/agents/link-box.json +97 -0
  83. package/dist/agents/link-box.md +53 -0
  84. package/dist/agents/link.json +34 -5
  85. package/dist/agents/link.md +12 -2
  86. package/dist/agents/list.json +1 -1
  87. package/dist/agents/list.md +1 -1
  88. package/dist/agents/manifest.json +327 -2
  89. package/dist/agents/mark.json +56 -0
  90. package/dist/agents/mark.md +38 -0
  91. package/dist/agents/menubar.json +109 -0
  92. package/dist/agents/menubar.md +54 -0
  93. package/dist/agents/multi-select.json +93 -0
  94. package/dist/agents/multi-select.md +49 -0
  95. package/dist/agents/nav-list.json +15 -5
  96. package/dist/agents/nav-list.md +6 -4
  97. package/dist/agents/notification-badge.json +88 -0
  98. package/dist/agents/notification-badge.md +49 -0
  99. package/dist/agents/number-input.json +89 -0
  100. package/dist/agents/number-input.md +50 -0
  101. package/dist/agents/otp-field.json +87 -0
  102. package/dist/agents/otp-field.md +48 -0
  103. package/dist/agents/pagination.json +26 -5
  104. package/dist/agents/pagination.md +11 -4
  105. package/dist/agents/password-toggle-field.json +87 -0
  106. package/dist/agents/password-toggle-field.md +48 -0
  107. package/dist/agents/popover.json +114 -0
  108. package/dist/agents/popover.md +56 -0
  109. package/dist/agents/progress-circle.json +85 -0
  110. package/dist/agents/progress-circle.md +46 -0
  111. package/dist/agents/progress.json +91 -0
  112. package/dist/agents/progress.md +48 -0
  113. package/dist/agents/prose.json +82 -0
  114. package/dist/agents/prose.md +50 -0
  115. package/dist/agents/radio-group.json +92 -0
  116. package/dist/agents/radio-group.md +49 -0
  117. package/dist/agents/rating.json +91 -0
  118. package/dist/agents/rating.md +49 -0
  119. package/dist/agents/reorderable-list.json +74 -0
  120. package/dist/agents/reorderable-list.md +45 -0
  121. package/dist/agents/segment-group.json +62 -0
  122. package/dist/agents/segment-group.md +43 -0
  123. package/dist/agents/select.json +95 -0
  124. package/dist/agents/select.md +51 -0
  125. package/dist/agents/show.json +14 -0
  126. package/dist/agents/show.md +3 -0
  127. package/dist/agents/sidebar.json +16 -3
  128. package/dist/agents/sidebar.md +6 -1
  129. package/dist/agents/skeleton.json +73 -0
  130. package/dist/agents/skeleton.md +43 -0
  131. package/dist/agents/slider.json +88 -0
  132. package/dist/agents/slider.md +48 -0
  133. package/dist/agents/stack.json +19 -1
  134. package/dist/agents/stack.md +7 -0
  135. package/dist/agents/status.json +59 -0
  136. package/dist/agents/status.md +40 -0
  137. package/dist/agents/surface.json +32 -3
  138. package/dist/agents/surface.md +9 -2
  139. package/dist/agents/swipeable-item.json +93 -0
  140. package/dist/agents/swipeable-item.md +50 -0
  141. package/dist/agents/switch.json +92 -0
  142. package/dist/agents/switch.md +49 -0
  143. package/dist/agents/table.json +113 -0
  144. package/dist/agents/table.md +59 -0
  145. package/dist/agents/tabs.json +9 -2
  146. package/dist/agents/tabs.md +4 -1
  147. package/dist/agents/text.json +23 -8
  148. package/dist/agents/text.md +10 -7
  149. package/dist/agents/textarea.json +6 -1
  150. package/dist/agents/toast.json +91 -0
  151. package/dist/agents/toast.md +48 -0
  152. package/dist/agents/toggle-group.json +89 -0
  153. package/dist/agents/toggle-group.md +49 -0
  154. package/dist/agents/toggle.json +82 -0
  155. package/dist/agents/toggle.md +47 -0
  156. package/dist/agents/toolbar.json +11 -1
  157. package/dist/agents/toolbar.md +3 -1
  158. package/dist/agents/tooltip.json +96 -0
  159. package/dist/agents/tooltip.md +49 -0
  160. package/dist/agents/tree-grid.json +98 -0
  161. package/dist/agents/tree-grid.md +51 -0
  162. package/dist/agents/tree.json +94 -0
  163. package/dist/agents/tree.md +51 -0
  164. package/dist/agents/visually-hidden.json +70 -0
  165. package/dist/agents/visually-hidden.md +42 -0
  166. package/dist/agents/z-stack.json +21 -1
  167. package/dist/agents/z-stack.md +5 -0
  168. package/dist/bleed.d.ts +2 -0
  169. package/dist/bleed.d.ts.map +1 -0
  170. package/dist/bleed.js +2 -0
  171. package/dist/bleed.js.map +1 -0
  172. package/dist/blockquote.d.ts +2 -0
  173. package/dist/blockquote.d.ts.map +1 -0
  174. package/dist/blockquote.js +2 -0
  175. package/dist/blockquote.js.map +1 -0
  176. package/dist/color-picker.d.ts +2 -0
  177. package/dist/color-picker.d.ts.map +1 -0
  178. package/dist/color-picker.js +2 -0
  179. package/dist/color-picker.js.map +1 -0
  180. package/dist/color-swatch.d.ts +2 -0
  181. package/dist/color-swatch.d.ts.map +1 -0
  182. package/dist/color-swatch.js +2 -0
  183. package/dist/color-swatch.js.map +1 -0
  184. package/dist/components/_responsive-value/ResponsiveValue.d.ts.map +1 -1
  185. package/dist/components/_responsive-value/ResponsiveValue.js +3 -1
  186. package/dist/components/_responsive-value/ResponsiveValue.js.map +1 -1
  187. package/dist/components/_spacing-value/SpacingValue.d.ts +8 -0
  188. package/dist/components/_spacing-value/SpacingValue.d.ts.map +1 -0
  189. package/dist/components/_spacing-value/SpacingValue.js +46 -0
  190. package/dist/components/_spacing-value/SpacingValue.js.map +1 -0
  191. package/dist/components/accordion/Accordion.js +1 -1
  192. package/dist/components/app-bar/AppBar.d.ts +7 -3
  193. package/dist/components/app-bar/AppBar.d.ts.map +1 -1
  194. package/dist/components/app-bar/AppBar.js +2 -2
  195. package/dist/components/app-bar/AppBar.js.map +1 -1
  196. package/dist/components/app-bar/index.d.ts +1 -1
  197. package/dist/components/app-bar/index.d.ts.map +1 -1
  198. package/dist/components/app-bar/index.js.map +1 -1
  199. package/dist/components/avatar/Avatar.d.ts +1 -1
  200. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  201. package/dist/components/avatar/Avatar.js.map +1 -1
  202. package/dist/components/badge/Badge.d.ts +2 -2
  203. package/dist/components/badge/Badge.d.ts.map +1 -1
  204. package/dist/components/bleed/Bleed.d.ts +28 -0
  205. package/dist/components/bleed/Bleed.d.ts.map +1 -0
  206. package/dist/components/bleed/Bleed.js +92 -0
  207. package/dist/components/bleed/Bleed.js.map +1 -0
  208. package/dist/components/bleed/index.d.ts +2 -0
  209. package/dist/components/bleed/index.d.ts.map +1 -0
  210. package/dist/components/bleed/index.js +2 -0
  211. package/dist/components/bleed/index.js.map +1 -0
  212. package/dist/components/blockquote/Blockquote.d.ts +33 -0
  213. package/dist/components/blockquote/Blockquote.d.ts.map +1 -0
  214. package/dist/components/blockquote/Blockquote.js +36 -0
  215. package/dist/components/blockquote/Blockquote.js.map +1 -0
  216. package/dist/components/blockquote/index.d.ts +2 -0
  217. package/dist/components/blockquote/index.d.ts.map +1 -0
  218. package/dist/components/blockquote/index.js +2 -0
  219. package/dist/components/blockquote/index.js.map +1 -0
  220. package/dist/components/code-block/CodeBlock.d.ts +33 -0
  221. package/dist/components/code-block/CodeBlock.d.ts.map +1 -1
  222. package/dist/components/code-block/CodeBlock.js +60 -6
  223. package/dist/components/code-block/CodeBlock.js.map +1 -1
  224. package/dist/components/code-block/context.d.ts +2 -0
  225. package/dist/components/code-block/context.d.ts.map +1 -1
  226. package/dist/components/code-block/context.js.map +1 -1
  227. package/dist/components/code-block/index.d.ts +1 -1
  228. package/dist/components/code-block/index.d.ts.map +1 -1
  229. package/dist/components/code-block/index.js +1 -1
  230. package/dist/components/code-block/index.js.map +1 -1
  231. package/dist/components/collapsible/Collapsible.d.ts +9 -3
  232. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  233. package/dist/components/collapsible/Collapsible.js +3 -3
  234. package/dist/components/collapsible/Collapsible.js.map +1 -1
  235. package/dist/components/color-picker/ColorPicker.d.ts +42 -0
  236. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -0
  237. package/dist/components/color-picker/ColorPicker.js +52 -0
  238. package/dist/components/color-picker/ColorPicker.js.map +1 -0
  239. package/dist/components/color-picker/index.d.ts +2 -0
  240. package/dist/components/color-picker/index.d.ts.map +1 -0
  241. package/dist/components/color-picker/index.js +2 -0
  242. package/dist/components/color-picker/index.js.map +1 -0
  243. package/dist/components/color-swatch/ColorSwatch.d.ts +21 -0
  244. package/dist/components/color-swatch/ColorSwatch.d.ts.map +1 -0
  245. package/dist/components/color-swatch/ColorSwatch.js +25 -0
  246. package/dist/components/color-swatch/ColorSwatch.js.map +1 -0
  247. package/dist/components/color-swatch/index.d.ts +2 -0
  248. package/dist/components/color-swatch/index.d.ts.map +1 -0
  249. package/dist/components/color-swatch/index.js +2 -0
  250. package/dist/components/color-swatch/index.js.map +1 -0
  251. package/dist/components/data-list/DataList.d.ts +48 -0
  252. package/dist/components/data-list/DataList.d.ts.map +1 -0
  253. package/dist/components/data-list/DataList.js +31 -0
  254. package/dist/components/data-list/DataList.js.map +1 -0
  255. package/dist/components/data-list/index.d.ts +2 -0
  256. package/dist/components/data-list/index.d.ts.map +1 -0
  257. package/dist/components/data-list/index.js +2 -0
  258. package/dist/components/data-list/index.js.map +1 -0
  259. package/dist/components/em/Em.d.ts +9 -0
  260. package/dist/components/em/Em.d.ts.map +1 -0
  261. package/dist/components/em/Em.js +10 -0
  262. package/dist/components/em/Em.js.map +1 -0
  263. package/dist/components/em/index.d.ts +2 -0
  264. package/dist/components/em/index.d.ts.map +1 -0
  265. package/dist/components/em/index.js +2 -0
  266. package/dist/components/em/index.js.map +1 -0
  267. package/dist/components/feed/Feed.d.ts +2 -0
  268. package/dist/components/feed/Feed.d.ts.map +1 -1
  269. package/dist/components/feed/Feed.js +2 -2
  270. package/dist/components/feed/Feed.js.map +1 -1
  271. package/dist/components/feed/index.d.ts +1 -1
  272. package/dist/components/feed/index.d.ts.map +1 -1
  273. package/dist/components/grid/Grid.d.ts +3 -1
  274. package/dist/components/grid/Grid.d.ts.map +1 -1
  275. package/dist/components/grid/Grid.js +11 -1
  276. package/dist/components/grid/Grid.js.map +1 -1
  277. package/dist/components/grid/index.d.ts +1 -1
  278. package/dist/components/grid/index.d.ts.map +1 -1
  279. package/dist/components/grid/index.js.map +1 -1
  280. package/dist/components/group/Group.d.ts +19 -0
  281. package/dist/components/group/Group.d.ts.map +1 -0
  282. package/dist/components/group/Group.js +23 -0
  283. package/dist/components/group/Group.js.map +1 -0
  284. package/dist/components/group/index.d.ts +2 -0
  285. package/dist/components/group/index.d.ts.map +1 -0
  286. package/dist/components/group/index.js +2 -0
  287. package/dist/components/group/index.js.map +1 -0
  288. package/dist/components/highlight/Highlight.d.ts +9 -0
  289. package/dist/components/highlight/Highlight.d.ts.map +1 -0
  290. package/dist/components/highlight/Highlight.js +10 -0
  291. package/dist/components/highlight/Highlight.js.map +1 -0
  292. package/dist/components/highlight/index.d.ts +2 -0
  293. package/dist/components/highlight/index.d.ts.map +1 -0
  294. package/dist/components/highlight/index.js +2 -0
  295. package/dist/components/highlight/index.js.map +1 -0
  296. package/dist/components/kbd/Kbd.d.ts +13 -0
  297. package/dist/components/kbd/Kbd.d.ts.map +1 -0
  298. package/dist/components/kbd/Kbd.js +8 -0
  299. package/dist/components/kbd/Kbd.js.map +1 -0
  300. package/dist/components/kbd/index.d.ts +2 -0
  301. package/dist/components/kbd/index.d.ts.map +1 -0
  302. package/dist/components/kbd/index.js +2 -0
  303. package/dist/components/kbd/index.js.map +1 -0
  304. package/dist/components/link/Link.d.ts +1 -1
  305. package/dist/components/link/Link.d.ts.map +1 -1
  306. package/dist/components/link/Link.js +1 -1
  307. package/dist/components/link/Link.js.map +1 -1
  308. package/dist/components/link-box/LinkBox.d.ts +22 -0
  309. package/dist/components/link-box/LinkBox.d.ts.map +1 -0
  310. package/dist/components/link-box/LinkBox.js +30 -0
  311. package/dist/components/link-box/LinkBox.js.map +1 -0
  312. package/dist/components/link-box/index.d.ts +2 -0
  313. package/dist/components/link-box/index.d.ts.map +1 -0
  314. package/dist/components/link-box/index.js +2 -0
  315. package/dist/components/link-box/index.js.map +1 -0
  316. package/dist/components/mark/Mark.d.ts +13 -0
  317. package/dist/components/mark/Mark.d.ts.map +1 -0
  318. package/dist/components/mark/Mark.js +8 -0
  319. package/dist/components/mark/Mark.js.map +1 -0
  320. package/dist/components/mark/index.d.ts +2 -0
  321. package/dist/components/mark/index.d.ts.map +1 -0
  322. package/dist/components/mark/index.js +2 -0
  323. package/dist/components/mark/index.js.map +1 -0
  324. package/dist/components/nav-list/NavList.d.ts +15 -2
  325. package/dist/components/nav-list/NavList.d.ts.map +1 -1
  326. package/dist/components/nav-list/NavList.js +4 -3
  327. package/dist/components/nav-list/NavList.js.map +1 -1
  328. package/dist/components/pagination/Pagination.d.ts +9 -6
  329. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  330. package/dist/components/pagination/Pagination.js +2 -2
  331. package/dist/components/pagination/Pagination.js.map +1 -1
  332. package/dist/components/pagination/index.d.ts +1 -1
  333. package/dist/components/pagination/index.d.ts.map +1 -1
  334. package/dist/components/pagination/index.js.map +1 -1
  335. package/dist/components/popover/Popover.d.ts +3 -0
  336. package/dist/components/popover/Popover.d.ts.map +1 -1
  337. package/dist/components/popover/Popover.js +2 -2
  338. package/dist/components/popover/Popover.js.map +1 -1
  339. package/dist/components/popover/index.d.ts +1 -1
  340. package/dist/components/popover/index.d.ts.map +1 -1
  341. package/dist/components/popover/index.js.map +1 -1
  342. package/dist/components/prose/Prose.d.ts +12 -0
  343. package/dist/components/prose/Prose.d.ts.map +1 -0
  344. package/dist/components/prose/Prose.js +19 -0
  345. package/dist/components/prose/Prose.js.map +1 -0
  346. package/dist/components/prose/index.d.ts +2 -0
  347. package/dist/components/prose/index.d.ts.map +1 -0
  348. package/dist/components/prose/index.js +2 -0
  349. package/dist/components/prose/index.js.map +1 -0
  350. package/dist/components/rating/Rating.d.ts +37 -1
  351. package/dist/components/rating/Rating.d.ts.map +1 -1
  352. package/dist/components/rating/Rating.js +25 -2
  353. package/dist/components/rating/Rating.js.map +1 -1
  354. package/dist/components/rating/index.d.ts +1 -1
  355. package/dist/components/rating/index.d.ts.map +1 -1
  356. package/dist/components/rating/index.js +1 -1
  357. package/dist/components/rating/index.js.map +1 -1
  358. package/dist/components/reorderable-list/ReorderableList.d.ts +89 -0
  359. package/dist/components/reorderable-list/ReorderableList.d.ts.map +1 -0
  360. package/dist/components/reorderable-list/ReorderableList.js +54 -0
  361. package/dist/components/reorderable-list/ReorderableList.js.map +1 -0
  362. package/dist/components/reorderable-list/index.d.ts +2 -0
  363. package/dist/components/reorderable-list/index.d.ts.map +1 -0
  364. package/dist/components/reorderable-list/index.js +2 -0
  365. package/dist/components/reorderable-list/index.js.map +1 -0
  366. package/dist/components/segment-group/SegmentGroup.d.ts +30 -0
  367. package/dist/components/segment-group/SegmentGroup.d.ts.map +1 -0
  368. package/dist/components/segment-group/SegmentGroup.js +67 -0
  369. package/dist/components/segment-group/SegmentGroup.js.map +1 -0
  370. package/dist/components/segment-group/index.d.ts +2 -0
  371. package/dist/components/segment-group/index.d.ts.map +1 -0
  372. package/dist/components/segment-group/index.js +2 -0
  373. package/dist/components/segment-group/index.js.map +1 -0
  374. package/dist/components/show/Show.d.ts.map +1 -1
  375. package/dist/components/show/Show.js +7 -1
  376. package/dist/components/show/Show.js.map +1 -1
  377. package/dist/components/sidebar/Sidebar.d.ts +4 -0
  378. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  379. package/dist/components/sidebar/Sidebar.js +3 -2
  380. package/dist/components/sidebar/Sidebar.js.map +1 -1
  381. package/dist/components/slider/Slider.d.ts.map +1 -1
  382. package/dist/components/slider/Slider.js +3 -1
  383. package/dist/components/slider/Slider.js.map +1 -1
  384. package/dist/components/stack/Stack.d.ts +3 -1
  385. package/dist/components/stack/Stack.d.ts.map +1 -1
  386. package/dist/components/stack/Stack.js +9 -1
  387. package/dist/components/stack/Stack.js.map +1 -1
  388. package/dist/components/stack/index.d.ts +1 -1
  389. package/dist/components/stack/index.d.ts.map +1 -1
  390. package/dist/components/stack/index.js.map +1 -1
  391. package/dist/components/status/Status.d.ts +22 -0
  392. package/dist/components/status/Status.d.ts.map +1 -0
  393. package/dist/components/status/Status.js +23 -0
  394. package/dist/components/status/Status.js.map +1 -0
  395. package/dist/components/status/index.d.ts +2 -0
  396. package/dist/components/status/index.d.ts.map +1 -0
  397. package/dist/components/status/index.js +2 -0
  398. package/dist/components/status/index.js.map +1 -0
  399. package/dist/components/surface/Surface.d.ts +5 -2
  400. package/dist/components/surface/Surface.d.ts.map +1 -1
  401. package/dist/components/surface/Surface.js +4 -2
  402. package/dist/components/surface/Surface.js.map +1 -1
  403. package/dist/components/surface/index.d.ts +1 -1
  404. package/dist/components/surface/index.d.ts.map +1 -1
  405. package/dist/components/surface/index.js.map +1 -1
  406. package/dist/components/text/Text.d.ts +25 -4
  407. package/dist/components/text/Text.d.ts.map +1 -1
  408. package/dist/components/text/Text.js +22 -3
  409. package/dist/components/text/Text.js.map +1 -1
  410. package/dist/components/text/index.d.ts +1 -1
  411. package/dist/components/text/index.d.ts.map +1 -1
  412. package/dist/components/text/index.js +1 -1
  413. package/dist/components/text/index.js.map +1 -1
  414. package/dist/components/toggle/Toggle.d.ts +5 -0
  415. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  416. package/dist/components/toggle/Toggle.js +2 -2
  417. package/dist/components/toggle/Toggle.js.map +1 -1
  418. package/dist/components/toggle/index.d.ts +1 -1
  419. package/dist/components/toggle/index.d.ts.map +1 -1
  420. package/dist/components/toggle/index.js.map +1 -1
  421. package/dist/components/toggle-group/ToggleGroup.d.ts +3 -1
  422. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  423. package/dist/components/toggle-group/ToggleGroup.js +2 -1
  424. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  425. package/dist/components/toolbar/Toolbar.d.ts +9 -2
  426. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  427. package/dist/components/toolbar/Toolbar.js +2 -2
  428. package/dist/components/toolbar/Toolbar.js.map +1 -1
  429. package/dist/components/toolbar/index.d.ts +1 -1
  430. package/dist/components/toolbar/index.d.ts.map +1 -1
  431. package/dist/components/z-stack/ZStack.d.ts +7 -0
  432. package/dist/components/z-stack/ZStack.d.ts.map +1 -1
  433. package/dist/components/z-stack/ZStack.js +14 -3
  434. package/dist/components/z-stack/ZStack.js.map +1 -1
  435. package/dist/components/z-stack/index.d.ts +1 -1
  436. package/dist/components/z-stack/index.d.ts.map +1 -1
  437. package/dist/components/z-stack/index.js.map +1 -1
  438. package/dist/data-list.d.ts +2 -0
  439. package/dist/data-list.d.ts.map +1 -0
  440. package/dist/data-list.js +2 -0
  441. package/dist/data-list.js.map +1 -0
  442. package/dist/em.d.ts +2 -0
  443. package/dist/em.d.ts.map +1 -0
  444. package/dist/em.js +2 -0
  445. package/dist/em.js.map +1 -0
  446. package/dist/feed.d.ts +1 -1
  447. package/dist/feed.d.ts.map +1 -1
  448. package/dist/grid.d.ts +1 -1
  449. package/dist/grid.d.ts.map +1 -1
  450. package/dist/grid.js.map +1 -1
  451. package/dist/group.d.ts +2 -0
  452. package/dist/group.d.ts.map +1 -0
  453. package/dist/group.js +2 -0
  454. package/dist/group.js.map +1 -0
  455. package/dist/highlight.d.ts +2 -0
  456. package/dist/highlight.d.ts.map +1 -0
  457. package/dist/highlight.js +2 -0
  458. package/dist/highlight.js.map +1 -0
  459. package/dist/index.d.ts +25 -9
  460. package/dist/index.d.ts.map +1 -1
  461. package/dist/index.js +17 -2
  462. package/dist/index.js.map +1 -1
  463. package/dist/kbd.d.ts +2 -0
  464. package/dist/kbd.d.ts.map +1 -0
  465. package/dist/kbd.js +2 -0
  466. package/dist/kbd.js.map +1 -0
  467. package/dist/link-box.d.ts +2 -0
  468. package/dist/link-box.d.ts.map +1 -0
  469. package/dist/link-box.js +2 -0
  470. package/dist/link-box.js.map +1 -0
  471. package/dist/mark.d.ts +2 -0
  472. package/dist/mark.d.ts.map +1 -0
  473. package/dist/mark.js +2 -0
  474. package/dist/mark.js.map +1 -0
  475. package/dist/prose.d.ts +2 -0
  476. package/dist/prose.d.ts.map +1 -0
  477. package/dist/prose.js +2 -0
  478. package/dist/prose.js.map +1 -0
  479. package/dist/reorderable-list.d.ts +2 -0
  480. package/dist/reorderable-list.d.ts.map +1 -0
  481. package/dist/reorderable-list.js +2 -0
  482. package/dist/reorderable-list.js.map +1 -0
  483. package/dist/reset.css +1 -1
  484. package/dist/reset.css.map +1 -1
  485. package/dist/segment-group.d.ts +2 -0
  486. package/dist/segment-group.d.ts.map +1 -0
  487. package/dist/segment-group.js +2 -0
  488. package/dist/segment-group.js.map +1 -0
  489. package/dist/stack.d.ts +1 -1
  490. package/dist/stack.d.ts.map +1 -1
  491. package/dist/stack.js.map +1 -1
  492. package/dist/status.d.ts +2 -0
  493. package/dist/status.d.ts.map +1 -0
  494. package/dist/status.js +2 -0
  495. package/dist/status.js.map +1 -0
  496. package/dist/styles/accordion.css +1 -1
  497. package/dist/styles/accordion.css.map +1 -1
  498. package/dist/styles/alert-dialog.css +1 -1
  499. package/dist/styles/alert-dialog.css.map +1 -1
  500. package/dist/styles/app-bar.css +1 -1
  501. package/dist/styles/app-bar.css.map +1 -1
  502. package/dist/styles/avatar.css +1 -1
  503. package/dist/styles/avatar.css.map +1 -1
  504. package/dist/styles/badge.css +1 -1
  505. package/dist/styles/badge.css.map +1 -1
  506. package/dist/styles/bleed.css +2 -0
  507. package/dist/styles/bleed.css.map +1 -0
  508. package/dist/styles/blockquote.css +2 -0
  509. package/dist/styles/blockquote.css.map +1 -0
  510. package/dist/styles/bottom-navigation.css +1 -1
  511. package/dist/styles/bottom-navigation.css.map +1 -1
  512. package/dist/styles/button.css +1 -1
  513. package/dist/styles/button.css.map +1 -1
  514. package/dist/styles/card.css +1 -1
  515. package/dist/styles/card.css.map +1 -1
  516. package/dist/styles/checkbox-group.css +1 -1
  517. package/dist/styles/checkbox-group.css.map +1 -1
  518. package/dist/styles/checkbox.css +1 -1
  519. package/dist/styles/checkbox.css.map +1 -1
  520. package/dist/styles/code-block.css +1 -1
  521. package/dist/styles/code-block.css.map +1 -1
  522. package/dist/styles/collapsible.css +1 -1
  523. package/dist/styles/collapsible.css.map +1 -1
  524. package/dist/styles/color-picker.css +2 -0
  525. package/dist/styles/color-picker.css.map +1 -0
  526. package/dist/styles/color-swatch.css +2 -0
  527. package/dist/styles/color-swatch.css.map +1 -0
  528. package/dist/styles/combobox.css +1 -1
  529. package/dist/styles/combobox.css.map +1 -1
  530. package/dist/styles/context-menu.css +1 -1
  531. package/dist/styles/context-menu.css.map +1 -1
  532. package/dist/styles/core.css +1 -1
  533. package/dist/styles/core.css.map +1 -1
  534. package/dist/styles/data-grid.css +1 -1
  535. package/dist/styles/data-grid.css.map +1 -1
  536. package/dist/styles/data-list.css +2 -0
  537. package/dist/styles/data-list.css.map +1 -0
  538. package/dist/styles/dialog.css +1 -1
  539. package/dist/styles/dialog.css.map +1 -1
  540. package/dist/styles/divider.css +1 -1
  541. package/dist/styles/divider.css.map +1 -1
  542. package/dist/styles/drawer.css +1 -1
  543. package/dist/styles/drawer.css.map +1 -1
  544. package/dist/styles/dropdown-menu.css +1 -1
  545. package/dist/styles/dropdown-menu.css.map +1 -1
  546. package/dist/styles/em.css +2 -0
  547. package/dist/styles/em.css.map +1 -0
  548. package/dist/styles/feed.css +1 -1
  549. package/dist/styles/feed.css.map +1 -1
  550. package/dist/styles/grid.css +1 -1
  551. package/dist/styles/grid.css.map +1 -1
  552. package/dist/styles/group.css +2 -0
  553. package/dist/styles/group.css.map +1 -0
  554. package/dist/styles/hide.css +1 -1
  555. package/dist/styles/hide.css.map +1 -1
  556. package/dist/styles/highlight.css +2 -0
  557. package/dist/styles/highlight.css.map +1 -0
  558. package/dist/styles/icon-button.css +1 -1
  559. package/dist/styles/icon-button.css.map +1 -1
  560. package/dist/styles/input.css +1 -1
  561. package/dist/styles/input.css.map +1 -1
  562. package/dist/styles/kbd.css +2 -0
  563. package/dist/styles/kbd.css.map +1 -0
  564. package/dist/styles/link-box.css +2 -0
  565. package/dist/styles/link-box.css.map +1 -0
  566. package/dist/styles/link.css +1 -1
  567. package/dist/styles/link.css.map +1 -1
  568. package/dist/styles/list.css +1 -1
  569. package/dist/styles/list.css.map +1 -1
  570. package/dist/styles/mark.css +2 -0
  571. package/dist/styles/mark.css.map +1 -0
  572. package/dist/styles/menubar.css +1 -1
  573. package/dist/styles/menubar.css.map +1 -1
  574. package/dist/styles/multi-select.css +1 -1
  575. package/dist/styles/multi-select.css.map +1 -1
  576. package/dist/styles/nav-list.css +1 -1
  577. package/dist/styles/nav-list.css.map +1 -1
  578. package/dist/styles/navigation-menu.css +1 -1
  579. package/dist/styles/navigation-menu.css.map +1 -1
  580. package/dist/styles/pagination.css +1 -1
  581. package/dist/styles/pagination.css.map +1 -1
  582. package/dist/styles/password-toggle-field.css +1 -1
  583. package/dist/styles/password-toggle-field.css.map +1 -1
  584. package/dist/styles/popover.css +1 -1
  585. package/dist/styles/popover.css.map +1 -1
  586. package/dist/styles/prose.css +2 -0
  587. package/dist/styles/prose.css.map +1 -0
  588. package/dist/styles/rating.css +1 -1
  589. package/dist/styles/rating.css.map +1 -1
  590. package/dist/styles/reorderable-list.css +2 -0
  591. package/dist/styles/reorderable-list.css.map +1 -0
  592. package/dist/styles/segment-group.css +2 -0
  593. package/dist/styles/segment-group.css.map +1 -0
  594. package/dist/styles/select.css +1 -1
  595. package/dist/styles/select.css.map +1 -1
  596. package/dist/styles/show.css +1 -1
  597. package/dist/styles/show.css.map +1 -1
  598. package/dist/styles/sidebar.css +1 -1
  599. package/dist/styles/sidebar.css.map +1 -1
  600. package/dist/styles/skeleton.css +1 -1
  601. package/dist/styles/skeleton.css.map +1 -1
  602. package/dist/styles/slider.css +1 -1
  603. package/dist/styles/slider.css.map +1 -1
  604. package/dist/styles/stack.css +1 -1
  605. package/dist/styles/stack.css.map +1 -1
  606. package/dist/styles/status.css +2 -0
  607. package/dist/styles/status.css.map +1 -0
  608. package/dist/styles/surface.css +1 -1
  609. package/dist/styles/surface.css.map +1 -1
  610. package/dist/styles/table.css +1 -1
  611. package/dist/styles/table.css.map +1 -1
  612. package/dist/styles/tabs.css +1 -1
  613. package/dist/styles/tabs.css.map +1 -1
  614. package/dist/styles/text.css +1 -1
  615. package/dist/styles/text.css.map +1 -1
  616. package/dist/styles/toggle-group.css +1 -1
  617. package/dist/styles/toggle-group.css.map +1 -1
  618. package/dist/styles/toggle.css +1 -1
  619. package/dist/styles/toggle.css.map +1 -1
  620. package/dist/styles/toolbar.css +1 -1
  621. package/dist/styles/toolbar.css.map +1 -1
  622. package/dist/styles/z-stack.css +1 -1
  623. package/dist/styles/z-stack.css.map +1 -1
  624. package/dist/styles.css +1 -1
  625. package/dist/styles.css.map +1 -1
  626. package/dist/surface.d.ts +1 -1
  627. package/dist/surface.d.ts.map +1 -1
  628. package/dist/surface.js.map +1 -1
  629. package/dist/text.d.ts +1 -1
  630. package/dist/text.d.ts.map +1 -1
  631. package/dist/text.js +1 -1
  632. package/dist/text.js.map +1 -1
  633. package/dist/theme-contract.json +10519 -6018
  634. package/dist/toggle.d.ts +1 -1
  635. package/dist/toggle.d.ts.map +1 -1
  636. package/dist/toggle.js.map +1 -1
  637. package/dist/tokens.css +1 -1
  638. package/dist/tokens.css.map +1 -1
  639. package/dist/toolbar.d.ts +1 -1
  640. package/dist/toolbar.d.ts.map +1 -1
  641. package/docs/guides/agent-knowledge.md +19 -0
  642. package/docs/guides/appearance-and-tokens.md +5 -0
  643. package/docs/guides/browser-support.md +21 -0
  644. package/docs/guides/control-sizing.md +55 -0
  645. package/docs/guides/installation.md +5 -2
  646. package/docs/guides/theme-contract.md +26 -12
  647. package/package.json +79 -7
@@ -0,0 +1,51 @@
1
+ # TreeGrid agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present finished hierarchical multi-column rows while Atom owns treegrid relationships, active-cell navigation, expansion, row selection, logical coordinates, and actionable-header semantics.
6
+
7
+ ## Use when
8
+
9
+ - Parent-child rows expand and each visible row exposes several independently navigable columns, such as a structured file browser.
10
+
11
+ ## Choose something else when
12
+
13
+ - The hierarchy has one primary column, rows are flat, people only read native tabular relationships, or cells require editing or independent controls. Use Tree, DataGrid, Table, or an application-owned data tool.
14
+
15
+ ## Required composition
16
+
17
+ - Compose explicit TreeGrid.Container for horizontal overflow, then one named Root with truthful rowCount and columnCount, optional Caption, Header and Body rowgroups, optional Footer summaries, and uniquely valued indexed Rows. Give every data Row stable parentValue and level metadata, one column-one RowHeader with decorative Indicator, then indexed Cells.
18
+ - For application sorting, give an indexed ColumnHeader onAction, update records and sortDirection outside TreeGrid, and keep SortIndicator decorative. Compose Toolbar, filters, Pagination, status, and detail surfaces outside Root.
19
+
20
+ ## Rules
21
+
22
+ - **MUST:** Name Root and preserve treegrid, rowgroup, row, rowheader, columnheader, and gridcell relationships with durable Row values, stable parentValue and level, one-based logical indexes, and truthful full totals.
23
+ - **MUST:** Keep Root as the sole Tab stop and preserve active-descendant navigation across visible cells, vertical row movement, Home/End and whole-grid movement, disabled skipping, loop policy, and RTL-aware expansion and collapse in the tree column.
24
+ - **MUST:** Mark only real parent Rows expandable, keep descendants hidden from navigation while any ancestor is collapsed, and let Atom relocate an active descendant to the collapsed ancestor's RowHeader cell.
25
+ - **MUST:** Align scalar, array, or null value with selectionMode, use stable unique Row values, keep active cell independent from selected rows, and distinguish selectable=false from disabled for headers, parents, and summaries.
26
+ - **MUST:** Use ColumnHeader onAction for equivalent pointer and active-header Enter activation, keep sortDirection truthful, and keep sorting, filtering, editing, resizing, data mutation, fetching, pagination, and persistence application-owned.
27
+ - **MUST:** Keep v1 cells free of independent links, buttons, inputs, menus, and editing; keep hierarchy and sort indicators decorative and preserve RowHeader as the tree-column semantic owner.
28
+ - **MUST:** If an application windows hierarchical rows, preserve logical totals, indexes, levels, parent visibility, and durable identities while keeping the active cell and collapse destination mounted; geometry utilities do not own treegrid focus or semantics.
29
+ - **MUST:** Use Container for honest overflow, preserve the content-aware minimum width and all columns at narrow sizes, let the outline Root own one rounded boundary, and keep logical indentation and alignment correct in RTL.
30
+ - **MUST:** Load styles.css or core.css plus tree-grid.css and every stylesheet for external composed controls.
31
+
32
+ ## Common mistakes
33
+
34
+ - **Avoid:** Using TreeGrid for a one-column tree or read-only table, deriving parent/level/index identity from a rendered page, or inserting arbitrary controls into cells. **Instead:** Choose Tree or Table when simpler semantics fit, supply stable full-collection hierarchy and coordinates, and use an application-owned data tool for interactive cells.
35
+ - **Avoid:** Expecting sortDirection to reorder rows, hiding columns on mobile, or adding a second framed clipping wrapper around outline. **Instead:** Keep sorting application-owned, preserve honest overflow, and let Root own its complete border and corner paint.
36
+
37
+ ## Validation checklist
38
+
39
+ - Verify Root naming and complete treegrid relationships, unique Row values, parentValue/level metadata, RowHeader ownership, one-based logical indexes, full totals, active descendant, selection metadata, disabled/read-only state, and sort direction.
40
+ - Exercise LTR/RTL expansion, collapse and parent movement, next-cell arrows, vertical movement, Home/End, whole-grid movement, loop boundaries, disabled cells, collapse relocation, none/single/multiple selection, nonselectable Rows, and header pointer/Enter parity.
41
+ - Verify controlled/uncontrolled expansion and active-cell state; both variants, sizes, densities, captions, numeric/logical alignment, Container overflow, deep hierarchy, 320px, zoom, RTL, long content, light/dark appearance, forced colors, reduced motion, and any windowed active target.
42
+
43
+ ## Related guidance
44
+
45
+ - `@flowstack-ui/atom/agents/tree-grid`
46
+ - `tree`
47
+ - `data-grid`
48
+ - `table`
49
+ - `toolbar`
50
+ - `pagination`
51
+ - `scroll-area`
@@ -0,0 +1,94 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "tree",
4
+ "name": "Tree",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Present a finished one-column hierarchy while Atom owns tree semantics, active-descendant focus, selection, expansion, typeahead, direction, Field state, and form submission.",
9
+ "useWhen": [
10
+ "People browse or optionally select expandable parent-child items with one primary content column, such as nested files, categories, or component groups."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "Hierarchical rows have several navigable columns, sections contain arbitrary disclosure content, data is flat and tabular, or the hierarchy is static reading content.",
15
+ "useInstead": "TreeGrid, Accordion or Collapsible, DataGrid, or List"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Give Tree.Root a stable accessible name and deliberate selection, expansion, direction, and form state. Compose uniquely valued Items containing required Brick ItemContent with decorative Indicator and reliable ItemText; place each nested Group as a sibling of ItemContent inside its actual parent Item.",
20
+ "Choose plain, soft, or outline plus sm or md and optional showGuide on Root. Keep links, commands, loading, filtering, routing, rename, drag and drop, virtualization, and persistence outside Tree."
21
+ ],
22
+ "rules": [
23
+ {
24
+ "id": "tree-name-anatomy",
25
+ "level": "must",
26
+ "statement": "Name Root and preserve tree, treeitem, and group relationships, automatic levels, ItemText labeling, and parent-child nesting; use Brick ItemContent as the one finished row paint owner."
27
+ },
28
+ {
29
+ "id": "tree-identity-state",
30
+ "level": "must",
31
+ "statement": "Give every Item a durable unique value, align scalar or array selection with multiple, and keep selection and expandedValue controlled or uncontrolled without mixing ownership."
32
+ },
33
+ {
34
+ "id": "tree-focus-keyboard",
35
+ "level": "must",
36
+ "statement": "Keep Root as the sole Tab stop and preserve active-descendant focus, visible-item Up/Down, Home/End, direction-aware expand/collapse and parent movement, typeahead, disabled skipping, bounded or looped policy, and scroll reveal."
37
+ },
38
+ {
39
+ "id": "tree-visible-state",
40
+ "level": "must",
41
+ "statement": "Mark only actual parent Items expandable, hide collapsed descendants from navigation, and allow Atom to relocate active state to a visible ancestor or reset when controlled expansion hides it."
42
+ },
43
+ {
44
+ "id": "tree-form-state",
45
+ "level": "must",
46
+ "statement": "Preserve Field naming and descriptions, disabled, read-only, required, invalid, and named submission; read-only may navigate but must not mutate selection or expansion through selection keys."
47
+ },
48
+ {
49
+ "id": "tree-content-boundary",
50
+ "level": "must",
51
+ "statement": "Keep Indicator decorative, ItemText reliable for naming and typeahead, active focus distinct from selected fill, and interactive descendants outside Tree; use application-owned adjacent controls instead of turning Item rows into mixed widgets."
52
+ },
53
+ {
54
+ "id": "tree-virtualization",
55
+ "level": "must",
56
+ "statement": "If an application windows a large tree, it must retain complete logical parent and level metadata and keep the active descendant and expansion target mounted; geometry utilities do not reconstruct tree semantics."
57
+ },
58
+ {
59
+ "id": "tree-css",
60
+ "level": "must",
61
+ "statement": "Load styles.css or core.css plus tree.css and every stylesheet for adjacent composed controls."
62
+ }
63
+ ],
64
+ "commonMistakes": [
65
+ {
66
+ "mistake": "Using Tree for arbitrary disclosures, marking leaves expandable for an icon, placing Group outside its parent, or giving every Item a Tab stop.",
67
+ "correction": "Choose Accordion or Collapsible for content, mark only real parents, keep nested Group inside its Item, and preserve Root-owned composite focus."
68
+ },
69
+ {
70
+ "mistake": "Omitting ItemText for complex rows, using duplicate or visual-index values, or inserting buttons and links into ItemContent.",
71
+ "correction": "Register complete searchable text, use durable identities, and keep row actions in separately owned application UI."
72
+ }
73
+ ],
74
+ "validation": [
75
+ "Verify Root naming; tree/treeitem/group relationships; automatic levels; ItemText names; unique values; parent nesting; collapsed visibility; controlled and uncontrolled single/multiple selection and expansion; read-only; Field state; form submission; and collapse of the active branch.",
76
+ "Exercise initial focus, LTR/RTL expand and parent keys, Up/Down, Home/End, loop boundaries, typeahead cycling and prefixes, pointer selection, disabled Items, scroll reveal, force-mounted hidden Groups, native props, refs, and composition.",
77
+ "Verify all recipes and sizes, showGuide, long wrapping labels, deep indentation, narrow width, zoom, RTL, active versus selected paint, touch density, light/dark appearance, forced colors, reduced motion, and any windowed active target."
78
+ ],
79
+ "related": [
80
+ {
81
+ "kind": "package",
82
+ "package": "@flowstack-ui/atom",
83
+ "id": "tree",
84
+ "versionPolicy": "installed-exact"
85
+ },
86
+ "tree-grid",
87
+ "accordion",
88
+ "collapsible",
89
+ "data-grid",
90
+ "list",
91
+ "field",
92
+ "form"
93
+ ]
94
+ }
@@ -0,0 +1,51 @@
1
+ # Tree agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present a finished one-column hierarchy while Atom owns tree semantics, active-descendant focus, selection, expansion, typeahead, direction, Field state, and form submission.
6
+
7
+ ## Use when
8
+
9
+ - People browse or optionally select expandable parent-child items with one primary content column, such as nested files, categories, or component groups.
10
+
11
+ ## Choose something else when
12
+
13
+ - Hierarchical rows have several navigable columns, sections contain arbitrary disclosure content, data is flat and tabular, or the hierarchy is static reading content. Use TreeGrid, Accordion or Collapsible, DataGrid, or List.
14
+
15
+ ## Required composition
16
+
17
+ - Give Tree.Root a stable accessible name and deliberate selection, expansion, direction, and form state. Compose uniquely valued Items containing required Brick ItemContent with decorative Indicator and reliable ItemText; place each nested Group as a sibling of ItemContent inside its actual parent Item.
18
+ - Choose plain, soft, or outline plus sm or md and optional showGuide on Root. Keep links, commands, loading, filtering, routing, rename, drag and drop, virtualization, and persistence outside Tree.
19
+
20
+ ## Rules
21
+
22
+ - **MUST:** Name Root and preserve tree, treeitem, and group relationships, automatic levels, ItemText labeling, and parent-child nesting; use Brick ItemContent as the one finished row paint owner.
23
+ - **MUST:** Give every Item a durable unique value, align scalar or array selection with multiple, and keep selection and expandedValue controlled or uncontrolled without mixing ownership.
24
+ - **MUST:** Keep Root as the sole Tab stop and preserve active-descendant focus, visible-item Up/Down, Home/End, direction-aware expand/collapse and parent movement, typeahead, disabled skipping, bounded or looped policy, and scroll reveal.
25
+ - **MUST:** Mark only actual parent Items expandable, hide collapsed descendants from navigation, and allow Atom to relocate active state to a visible ancestor or reset when controlled expansion hides it.
26
+ - **MUST:** Preserve Field naming and descriptions, disabled, read-only, required, invalid, and named submission; read-only may navigate but must not mutate selection or expansion through selection keys.
27
+ - **MUST:** Keep Indicator decorative, ItemText reliable for naming and typeahead, active focus distinct from selected fill, and interactive descendants outside Tree; use application-owned adjacent controls instead of turning Item rows into mixed widgets.
28
+ - **MUST:** If an application windows a large tree, it must retain complete logical parent and level metadata and keep the active descendant and expansion target mounted; geometry utilities do not reconstruct tree semantics.
29
+ - **MUST:** Load styles.css or core.css plus tree.css and every stylesheet for adjacent composed controls.
30
+
31
+ ## Common mistakes
32
+
33
+ - **Avoid:** Using Tree for arbitrary disclosures, marking leaves expandable for an icon, placing Group outside its parent, or giving every Item a Tab stop. **Instead:** Choose Accordion or Collapsible for content, mark only real parents, keep nested Group inside its Item, and preserve Root-owned composite focus.
34
+ - **Avoid:** Omitting ItemText for complex rows, using duplicate or visual-index values, or inserting buttons and links into ItemContent. **Instead:** Register complete searchable text, use durable identities, and keep row actions in separately owned application UI.
35
+
36
+ ## Validation checklist
37
+
38
+ - Verify Root naming; tree/treeitem/group relationships; automatic levels; ItemText names; unique values; parent nesting; collapsed visibility; controlled and uncontrolled single/multiple selection and expansion; read-only; Field state; form submission; and collapse of the active branch.
39
+ - Exercise initial focus, LTR/RTL expand and parent keys, Up/Down, Home/End, loop boundaries, typeahead cycling and prefixes, pointer selection, disabled Items, scroll reveal, force-mounted hidden Groups, native props, refs, and composition.
40
+ - Verify all recipes and sizes, showGuide, long wrapping labels, deep indentation, narrow width, zoom, RTL, active versus selected paint, touch density, light/dark appearance, forced colors, reduced motion, and any windowed active target.
41
+
42
+ ## Related guidance
43
+
44
+ - `@flowstack-ui/atom/agents/tree`
45
+ - `tree-grid`
46
+ - `accordion`
47
+ - `collapsible`
48
+ - `data-grid`
49
+ - `list`
50
+ - `field`
51
+ - `form`
@@ -0,0 +1,70 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "visually-hidden",
4
+ "name": "VisuallyHidden",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Keep a short authored name or equivalent context available to assistive technology without adding a visible layout footprint.",
9
+ "useWhen": [
10
+ "A nearby visual already communicates the same short meaning but a control, state, or relationship still needs an accessible text equivalent."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "The text is an essential instruction, visible state, error, focusable control, or asynchronous announcement.",
15
+ "useInstead": "visible Text or the application-owned feedback and live-region pattern"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Place a short equivalent phrase in VisuallyHidden.Root inside the semantic owner whose accessible name or reading context it extends; keep the focusable control itself visible and keep live-region policy outside Root."
20
+ ],
21
+ "rules": [
22
+ {
23
+ "id": "visually-hidden-equivalent",
24
+ "level": "must",
25
+ "statement": "Keep hidden text short, specific, correctly ordered, and equivalent to nearby visual meaning; prefer visible Text whenever information benefits everyone."
26
+ },
27
+ {
28
+ "id": "visually-hidden-no-focus",
29
+ "level": "must",
30
+ "statement": "Do not visually hide keyboard-focusable or interactive content; keep an icon-only Button visible and place VisuallyHidden text inside it."
31
+ },
32
+ {
33
+ "id": "visually-hidden-no-live",
34
+ "level": "must",
35
+ "statement": "Do not use VisuallyHidden as a substitute for visible feedback or deliberate application-owned live-region behavior."
36
+ },
37
+ {
38
+ "id": "visually-hidden-contract",
39
+ "level": "must",
40
+ "statement": "Do not override Atom's authoritative hiding geometry or confuse visually hidden accessible content with aria-hidden decorative content."
41
+ },
42
+ {
43
+ "id": "visually-hidden-css",
44
+ "level": "must",
45
+ "statement": "Load styles.css or core.css plus visually-hidden.css."
46
+ }
47
+ ],
48
+ "commonMistakes": [
49
+ {
50
+ "mistake": "Hiding essential instructions, wrapping a focusable control in Root, using it for decoration, or duplicating an existing name.",
51
+ "correction": "Keep essential content and controls visible, use aria-hidden for decoration, and add concise hidden text once inside the semantic owner."
52
+ }
53
+ ],
54
+ "validation": [
55
+ "Inspect the accessibility tree and computed name or description to confirm hidden wording is present exactly once in the intended reading order.",
56
+ "Confirm Root has no layout footprint, no visually absent focus target, authoritative hiding survives consumer style and composition, decorative content uses aria-hidden, and behavior remains stable across zoom, direction, and appearance."
57
+ ],
58
+ "related": [
59
+ {
60
+ "kind": "package",
61
+ "package": "@flowstack-ui/atom",
62
+ "id": "visually-hidden",
63
+ "versionPolicy": "installed-exact"
64
+ },
65
+ "icon",
66
+ "icon-button",
67
+ "text",
68
+ "status"
69
+ ]
70
+ }
@@ -0,0 +1,42 @@
1
+ # VisuallyHidden agent guide
2
+
3
+ ## Purpose
4
+
5
+ Keep a short authored name or equivalent context available to assistive technology without adding a visible layout footprint.
6
+
7
+ ## Use when
8
+
9
+ - A nearby visual already communicates the same short meaning but a control, state, or relationship still needs an accessible text equivalent.
10
+
11
+ ## Choose something else when
12
+
13
+ - The text is an essential instruction, visible state, error, focusable control, or asynchronous announcement. Use visible Text or the application-owned feedback and live-region pattern.
14
+
15
+ ## Required composition
16
+
17
+ - Place a short equivalent phrase in VisuallyHidden.Root inside the semantic owner whose accessible name or reading context it extends; keep the focusable control itself visible and keep live-region policy outside Root.
18
+
19
+ ## Rules
20
+
21
+ - **MUST:** Keep hidden text short, specific, correctly ordered, and equivalent to nearby visual meaning; prefer visible Text whenever information benefits everyone.
22
+ - **MUST:** Do not visually hide keyboard-focusable or interactive content; keep an icon-only Button visible and place VisuallyHidden text inside it.
23
+ - **MUST:** Do not use VisuallyHidden as a substitute for visible feedback or deliberate application-owned live-region behavior.
24
+ - **MUST:** Do not override Atom's authoritative hiding geometry or confuse visually hidden accessible content with aria-hidden decorative content.
25
+ - **MUST:** Load styles.css or core.css plus visually-hidden.css.
26
+
27
+ ## Common mistakes
28
+
29
+ - **Avoid:** Hiding essential instructions, wrapping a focusable control in Root, using it for decoration, or duplicating an existing name. **Instead:** Keep essential content and controls visible, use aria-hidden for decoration, and add concise hidden text once inside the semantic owner.
30
+
31
+ ## Validation checklist
32
+
33
+ - Inspect the accessibility tree and computed name or description to confirm hidden wording is present exactly once in the intended reading order.
34
+ - Confirm Root has no layout footprint, no visually absent focus target, authoritative hiding survives consumer style and composition, decorative content uses aria-hidden, and behavior remains stable across zoom, direction, and appearance.
35
+
36
+ ## Related guidance
37
+
38
+ - `@flowstack-ui/atom/agents/visually-hidden`
39
+ - `icon`
40
+ - `icon-button`
41
+ - `text`
42
+ - `status`
@@ -20,7 +20,8 @@
20
20
  }
21
21
  ],
22
22
  "composition": [
23
- "Place natural-size layers directly in ZStack.Root and use ZStack.Item only when one layer needs its own nine-position alignment."
23
+ "Place natural-size layers directly in ZStack.Root and use ZStack.Item only when one layer needs its own nine-position alignment.",
24
+ "For a corner action over media, use ZStack.Root isolation=\"open\" and ZStack.Item layer=\"action\" with edgeSpacing instead of recreating stacking, z-index, and inset margins in local CSS."
24
25
  ],
25
26
  "rules": [
26
27
  {
@@ -28,6 +29,11 @@
28
29
  "level": "must",
29
30
  "statement": "Keep DOM order meaningful because later children paint above earlier children."
30
31
  },
32
+ {
33
+ "id": "z-stack-positioned-media-order",
34
+ "level": "must",
35
+ "statement": "Keep media before its overlay in source; ZStack preserves that order even when the media establishes a positioned layer."
36
+ },
31
37
  {
32
38
  "id": "z-stack-input",
33
39
  "level": "must",
@@ -38,6 +44,16 @@
38
44
  "level": "must",
39
45
  "statement": "Use responsive logical alignment only to move the same authored layer; never change source order, depth order, or focus order at a breakpoint."
40
46
  },
47
+ {
48
+ "id": "z-stack-named-depth",
49
+ "level": "must",
50
+ "statement": "Use the closed content and action layers only for authored overlay participation; do not invent arbitrary z-index values or use layer to reorder meaning."
51
+ },
52
+ {
53
+ "id": "z-stack-edge-spacing",
54
+ "level": "must",
55
+ "statement": "Use edgeSpacing for a positioned layer that needs theme-space inset from its aligned edges; it supports the same responsive spacing vocabulary as Stack."
56
+ },
41
57
  {
42
58
  "id": "z-stack-css",
43
59
  "level": "must",
@@ -52,6 +68,10 @@
52
68
  {
53
69
  "mistake": "Rebuilding Surface media anatomy.",
54
70
  "correction": "Prefer Surface for standard media-backed content."
71
+ },
72
+ {
73
+ "mistake": "Adding inline isolation, z-index, or margin styles to make an overlay action clickable and inset.",
74
+ "correction": "Use isolation=\"open\", layer=\"action\", and edgeSpacing on ZStack's public composition API."
55
75
  }
56
76
  ],
57
77
  "validation": [
@@ -16,18 +16,23 @@ Overlap authored children in one depth-aware layout while preserving source, rea
16
16
  ## Required composition
17
17
 
18
18
  - Place natural-size layers directly in ZStack.Root and use ZStack.Item only when one layer needs its own nine-position alignment.
19
+ - For a corner action over media, use ZStack.Root isolation="open" and ZStack.Item layer="action" with edgeSpacing instead of recreating stacking, z-index, and inset margins in local CSS.
19
20
 
20
21
  ## Rules
21
22
 
22
23
  - **MUST:** Keep DOM order meaningful because later children paint above earlier children.
24
+ - **MUST:** Keep media before its overlay in source; ZStack preserves that order even when the media establishes a positioned layer.
23
25
  - **MUST:** Keep decorative layers from intercepting input intended for interactive content.
24
26
  - **MUST:** Use responsive logical alignment only to move the same authored layer; never change source order, depth order, or focus order at a breakpoint.
27
+ - **MUST:** Use the closed content and action layers only for authored overlay participation; do not invent arbitrary z-index values or use layer to reorder meaning.
28
+ - **MUST:** Use edgeSpacing for a positioned layer that needs theme-space inset from its aligned edges; it supports the same responsive spacing vocabulary as Stack.
25
29
  - **MUST:** Load styles.css or core.css plus z-stack.css.
26
30
 
27
31
  ## Common mistakes
28
32
 
29
33
  - **Avoid:** Replacing ordinary linear layout with overlap. **Instead:** Use Stack or Grid unless layers intentionally share space.
30
34
  - **Avoid:** Rebuilding Surface media anatomy. **Instead:** Prefer Surface for standard media-backed content.
35
+ - **Avoid:** Adding inline isolation, z-index, or margin styles to make an overlay action clickable and inset. **Instead:** Use isolation="open", layer="action", and edgeSpacing on ZStack's public composition API.
31
36
 
32
37
  ## Validation checklist
33
38
 
@@ -0,0 +1,2 @@
1
+ export { Bleed, type BleedElement, type BleedProps, } from "./components/bleed/index.js";
2
+ //# sourceMappingURL=bleed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bleed.d.ts","sourceRoot":"","sources":["../src/bleed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,6BAA6B,CAAC"}
package/dist/bleed.js ADDED
@@ -0,0 +1,2 @@
1
+ export { Bleed, } from "./components/bleed/index.js";
2
+ //# sourceMappingURL=bleed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bleed.js","sourceRoot":"","sources":["../src/bleed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAGN,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./components/blockquote/index.js";
2
+ //# sourceMappingURL=blockquote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockquote.d.ts","sourceRoot":"","sources":["../src/blockquote.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./components/blockquote/index.js";
2
+ //# sourceMappingURL=blockquote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockquote.js","sourceRoot":"","sources":["../src/blockquote.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./components/color-picker/index.js";
2
+ //# sourceMappingURL=color-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../src/color-picker.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./components/color-picker/index.js";
2
+ //# sourceMappingURL=color-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.js","sourceRoot":"","sources":["../src/color-picker.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./components/color-swatch/index.js";
2
+ //# sourceMappingURL=color-swatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-swatch.d.ts","sourceRoot":"","sources":["../src/color-swatch.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./components/color-swatch/index.js";
2
+ //# sourceMappingURL=color-swatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-swatch.js","sourceRoot":"","sources":["../src/color-swatch.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResponsiveValue.d.ts","sourceRoot":"","sources":["../../../src/components/_responsive-value/ResponsiveValue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7D,MAAM,MAAM,eAAe,CAAC,CAAC,IACzB,CAAC,GACD,CAAC;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAQhE,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,SAAS,EAAE,QAAQ,MAAM,EAAE,EAC3B,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,2BAqB5D"}
1
+ {"version":3,"file":"ResponsiveValue.d.ts","sourceRoot":"","sources":["../../../src/components/_responsive-value/ResponsiveValue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7D,MAAM,MAAM,eAAe,CAAC,CAAC,IACzB,CAAC,GACD,CAAC;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAUhE,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,SAAS,EAAE,QAAQ,MAAM,EAAE,EAC3B,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,2BAqB5D"}
@@ -1,6 +1,8 @@
1
1
  const breakpoints = ["sm", "md", "lg", "xl"];
2
2
  function serialize(value) {
3
- return typeof value === "boolean" ? String(value) : value;
3
+ return typeof value === "boolean" || typeof value === "number"
4
+ ? String(value)
5
+ : value;
4
6
  }
5
7
  export function responsiveDataAttributes(attribute, value, options = {}) {
6
8
  const values = typeof value === "object" && value !== null && "initial" in value
@@ -1 +1 @@
1
- {"version":3,"file":"ResponsiveValue.js","sourceRoot":"","sources":["../../../src/components/_responsive-value/ResponsiveValue.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,GAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAErE,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAA2B,EAC3B,KAAyB,EACzB,UAAyD,EAAE;IAE3D,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK;QAC/D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzB,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;QAC9D,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAI,MAAmD,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"ResponsiveValue.js","sourceRoot":"","sources":["../../../src/components/_responsive-value/ResponsiveValue.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,GAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAErE,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC5D,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACf,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAA2B,EAC3B,KAAyB,EACzB,UAAyD,EAAE;IAE3D,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK;QAC/D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzB,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;QAC9D,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAI,MAAmD,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { CSSProperties } from "react";
2
+ import type { ResponsiveValue } from "../_responsive-value/ResponsiveValue.js";
3
+ export type SpacingValue = number | string;
4
+ type SpacingStyle = CSSProperties & Record<`--brick-${string}`, string>;
5
+ export declare function resolveSpacingValue(value: SpacingValue): string;
6
+ export declare function responsiveSpacingStyles(variable: `--brick-${string}`, value: ResponsiveValue<SpacingValue>): SpacingStyle;
7
+ export {};
8
+ //# sourceMappingURL=SpacingValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpacingValue.d.ts","sourceRoot":"","sources":["../../../src/components/_spacing-value/SpacingValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,yCAAyC,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,KAAK,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,WAAW,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;AAaxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA2B/D;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,MAAM,EAAE,EAC7B,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,GACnC,YAAY,CAiBd"}
@@ -0,0 +1,46 @@
1
+ const breakpoints = ["sm", "md", "lg", "xl"];
2
+ const legacyTokenPattern = /^[0-6]$/;
3
+ const numericFactorPattern = /^\+?(?:\d+\.?\d*|\.\d+)$/;
4
+ const negativeNumericPattern = /^-(?:\d+\.?\d*|\.\d+)$/;
5
+ function warnInvalidSpacing(value) {
6
+ console.warn(`[Brick layout] Spacing values must be non-negative finite numbers or non-empty CSS values. Received ${String(value)}.`);
7
+ }
8
+ export function resolveSpacingValue(value) {
9
+ if (typeof value === "number") {
10
+ if (!Number.isFinite(value) || value < 0) {
11
+ warnInvalidSpacing(value);
12
+ return "var(--brick-space-0)";
13
+ }
14
+ return value === 0
15
+ ? "var(--brick-space-0)"
16
+ : `calc(var(--brick-space-1) * ${value})`;
17
+ }
18
+ const normalized = value.trim();
19
+ if (!normalized || negativeNumericPattern.test(normalized)) {
20
+ warnInvalidSpacing(value);
21
+ return "var(--brick-space-0)";
22
+ }
23
+ if (legacyTokenPattern.test(normalized)) {
24
+ return `var(--brick-space-${normalized})`;
25
+ }
26
+ if (numericFactorPattern.test(normalized)) {
27
+ return `calc(var(--brick-space-1) * ${Number(normalized)})`;
28
+ }
29
+ return normalized;
30
+ }
31
+ export function responsiveSpacingStyles(variable, value) {
32
+ const values = typeof value === "object" && value !== null && "initial" in value
33
+ ? value
34
+ : { initial: value };
35
+ const styles = {
36
+ [`${variable}-input`]: resolveSpacingValue(values.initial),
37
+ };
38
+ for (const breakpoint of breakpoints) {
39
+ const next = values[breakpoint];
40
+ if (next !== undefined) {
41
+ styles[`${variable}-${breakpoint}-input`] = resolveSpacingValue(next);
42
+ }
43
+ }
44
+ return styles;
45
+ }
46
+ //# sourceMappingURL=SpacingValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpacingValue.js","sourceRoot":"","sources":["../../../src/components/_spacing-value/SpacingValue.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,GAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrE,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AACxD,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAExD,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CAAC,IAAI,CACV,uGAAuG,MAAM,CAAC,KAAK,CAAC,GAAG,CACxH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAmB;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACzC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,sBAAsB,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,KAAK,CAAC;YAChB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,+BAA+B,KAAK,GAAG,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,IAAI,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3D,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,qBAAqB,UAAU,GAAG,CAAC;IAC5C,CAAC;IAED,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,OAAO,+BAA+B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;IAC9D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAA6B,EAC7B,KAAoC;IAEpC,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK;QAC/D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG;QACb,CAAC,GAAG,QAAQ,QAAQ,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;KAC3C,CAAC;IAElB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAI,MAA8D,CAAC,UAAU,CAAC,CAAC;QACzF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,QAAQ,IAAI,UAAU,QAAQ,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -17,7 +17,7 @@ export const AccordionTrigger = forwardRef(function AccordionTrigger({ className
17
17
  return _jsx(AtomAccordion.Trigger, { ...props, className: classes("brick-accordion-trigger", className), "data-slot": slot ?? "accordion-trigger", ref: ref });
18
18
  });
19
19
  export const AccordionIndicator = forwardRef(function AccordionIndicator({ children, className, "data-slot": slot, ...props }, ref) {
20
- return _jsx("span", { ...props, "aria-hidden": "true", className: classes("brick-accordion-indicator", className), "data-slot": slot ?? "accordion-indicator", ref: ref, children: children ?? _jsx("svg", { fill: "none", viewBox: "0 0 16 16", children: _jsx("path", { d: "m6 3.5 4.5 4.5L6 12.5", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }) }) });
20
+ return _jsx("span", { ...props, "aria-hidden": "true", className: classes("brick-accordion-indicator", className), "data-slot": slot ?? "accordion-indicator", ref: ref, children: children ?? _jsx("svg", { fill: "none", viewBox: "0 0 16 16", children: _jsx("path", { d: "m3.5 6 4.5 4.5L12.5 6", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }) }) });
21
21
  });
22
22
  export const AccordionContent = forwardRef(function AccordionContent({ className, "data-slot": slot, ...props }, ref) {
23
23
  return _jsx(AtomAccordion.Content, { ...props, className: classes("brick-accordion-content", className), "data-slot": slot ?? "accordion-content", ref: ref });
@@ -1,6 +1,7 @@
1
1
  import { type AppBarRootProps as AtomAppBarRootProps, type AppBarToolbarProps as AtomAppBarToolbarProps, type AppBarSectionProps as AtomAppBarSectionProps } from "@flowstack-ui/atom/app-bar";
2
2
  export type AppBarVariant = "solid" | "surface" | "transparent";
3
3
  export type AppBarTone = "neutral" | "accent";
4
+ export type AppBarToolbarInset = "default" | "none";
4
5
  export interface AppBarRootProps extends AtomAppBarRootProps {
5
6
  /** Surface treatment. @default "surface" */
6
7
  variant?: AppBarVariant;
@@ -13,16 +14,19 @@ export interface AppBarRootProps extends AtomAppBarRootProps {
13
14
  /** Add backdrop blur and a translucent surface. @default false */
14
15
  blurred?: boolean;
15
16
  }
16
- export type AppBarToolbarProps = AtomAppBarToolbarProps;
17
+ export interface AppBarToolbarProps extends AtomAppBarToolbarProps {
18
+ /** Logical inline content inset. Use none when Container owns the gutter. @default "default" */
19
+ inset?: AppBarToolbarInset;
20
+ }
17
21
  export type AppBarSectionProps = AtomAppBarSectionProps;
18
22
  export declare const AppBarRoot: import("react").ForwardRefExoticComponent<AppBarRootProps & import("react").RefAttributes<HTMLElement>>;
19
- export declare const AppBarToolbar: import("react").ForwardRefExoticComponent<AtomAppBarToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
23
+ export declare const AppBarToolbar: import("react").ForwardRefExoticComponent<AppBarToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
20
24
  export declare const AppBarStart: import("react").ForwardRefExoticComponent<AtomAppBarSectionProps & import("react").RefAttributes<HTMLDivElement>>;
21
25
  export declare const AppBarCenter: import("react").ForwardRefExoticComponent<AtomAppBarSectionProps & import("react").RefAttributes<HTMLDivElement>>;
22
26
  export declare const AppBarEnd: import("react").ForwardRefExoticComponent<AtomAppBarSectionProps & import("react").RefAttributes<HTMLDivElement>>;
23
27
  export declare const AppBar: Readonly<{
24
28
  Root: import("react").ForwardRefExoticComponent<AppBarRootProps & import("react").RefAttributes<HTMLElement>>;
25
- Toolbar: import("react").ForwardRefExoticComponent<AtomAppBarToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
29
+ Toolbar: import("react").ForwardRefExoticComponent<AppBarToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
26
30
  Start: import("react").ForwardRefExoticComponent<AtomAppBarSectionProps & import("react").RefAttributes<HTMLDivElement>>;
27
31
  Center: import("react").ForwardRefExoticComponent<AtomAppBarSectionProps & import("react").RefAttributes<HTMLDivElement>>;
28
32
  End: import("react").ForwardRefExoticComponent<AtomAppBarSectionProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AppBar.d.ts","sourceRoot":"","sources":["../../../src/components/app-bar/AppBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,kBAAkB,IAAI,sBAAsB,EACjD,KAAK,kBAAkB,IAAI,sBAAsB,EAClD,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,4CAA4C;IAC5C,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAMxD,eAAO,MAAM,UAAU,yGA0BtB,CAAC;AAEF,eAAO,MAAM,aAAa,mHAUzB,CAAC;AAsBF,eAAO,MAAM,WAAW,mHAIvB,CAAC;AACF,eAAO,MAAM,YAAY,mHAIxB,CAAC;AACF,eAAO,MAAM,SAAS,mHAIrB,CAAC;AAKF,eAAO,MAAM,MAAM;;;;;;EAMjB,CAAC"}
1
+ {"version":3,"file":"AppBar.d.ts","sourceRoot":"","sources":["../../../src/components/app-bar/AppBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,kBAAkB,IAAI,sBAAsB,EACjD,KAAK,kBAAkB,IAAI,sBAAsB,EAClD,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,4CAA4C;IAC5C,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAChE,gGAAgG;IAChG,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AACD,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAMxD,eAAO,MAAM,UAAU,yGA0BtB,CAAC;AAEF,eAAO,MAAM,aAAa,+GAWzB,CAAC;AAsBF,eAAO,MAAM,WAAW,mHAIvB,CAAC;AACF,eAAO,MAAM,YAAY,mHAIxB,CAAC;AACF,eAAO,MAAM,SAAS,mHAIrB,CAAC;AAKF,eAAO,MAAM,MAAM;;;;;;EAMjB,CAAC"}
@@ -7,8 +7,8 @@ function mergeClassName(base, className) {
7
7
  export const AppBarRoot = forwardRef(function AppBarRoot({ variant = "surface", tone = "neutral", bordered = true, elevated = false, blurred = false, className, ...props }, ref) {
8
8
  return (_jsx(AtomAppBar.Root, { ...props, className: mergeClassName("brick-app-bar", className), "data-blurred": blurred ? "" : undefined, "data-bordered": bordered ? "" : undefined, "data-elevated": elevated ? "" : undefined, "data-tone": tone, "data-variant": variant, ref: ref }));
9
9
  });
10
- export const AppBarToolbar = forwardRef(function AppBarToolbar({ className, ...props }, ref) {
11
- return (_jsx(AtomAppBar.Toolbar, { ...props, className: mergeClassName("brick-app-bar-toolbar", className), ref: ref }));
10
+ export const AppBarToolbar = forwardRef(function AppBarToolbar({ className, inset = "default", ...props }, ref) {
11
+ return (_jsx(AtomAppBar.Toolbar, { ...props, className: mergeClassName("brick-app-bar-toolbar", className), "data-inset": inset, ref: ref }));
12
12
  });
13
13
  function createSection(Part, className, displayName) {
14
14
  const Section = forwardRef(function AppBarSection({ className: consumerClassName, ...props }, ref) {