@flowstack-ui/brick 0.1.9 → 0.1.11

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 (540) 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/button.json +7 -2
  17. package/dist/agents/button.md +1 -1
  18. package/dist/agents/card.json +21 -1
  19. package/dist/agents/card.md +7 -1
  20. package/dist/agents/checkbox-group.json +108 -0
  21. package/dist/agents/checkbox-group.md +56 -0
  22. package/dist/agents/checkbox.json +6 -1
  23. package/dist/agents/chip.json +73 -0
  24. package/dist/agents/chip.md +44 -0
  25. package/dist/agents/code-block.json +76 -0
  26. package/dist/agents/code-block.md +47 -0
  27. package/dist/agents/code.json +67 -0
  28. package/dist/agents/code.md +42 -0
  29. package/dist/agents/collapsible.json +34 -3
  30. package/dist/agents/collapsible.md +10 -3
  31. package/dist/agents/color-picker.json +78 -0
  32. package/dist/agents/color-picker.md +46 -0
  33. package/dist/agents/color-swatch.json +51 -0
  34. package/dist/agents/color-swatch.md +36 -0
  35. package/dist/agents/combobox.json +95 -0
  36. package/dist/agents/combobox.md +51 -0
  37. package/dist/agents/context-menu.json +109 -0
  38. package/dist/agents/context-menu.md +54 -0
  39. package/dist/agents/coverage.json +24579 -0
  40. package/dist/agents/data-grid.json +127 -0
  41. package/dist/agents/data-grid.md +61 -0
  42. package/dist/agents/data-list.json +63 -0
  43. package/dist/agents/data-list.md +41 -0
  44. package/dist/agents/dialog.json +112 -0
  45. package/dist/agents/dialog.md +53 -0
  46. package/dist/agents/dropdown-menu.json +112 -0
  47. package/dist/agents/dropdown-menu.md +56 -0
  48. package/dist/agents/feed.json +84 -0
  49. package/dist/agents/feed.md +48 -0
  50. package/dist/agents/field.json +6 -1
  51. package/dist/agents/fieldset.json +6 -1
  52. package/dist/agents/file-upload.json +93 -0
  53. package/dist/agents/file-upload.md +50 -0
  54. package/dist/agents/form.json +11 -2
  55. package/dist/agents/form.md +2 -1
  56. package/dist/agents/grid.json +18 -1
  57. package/dist/agents/grid.md +6 -0
  58. package/dist/agents/group.json +77 -0
  59. package/dist/agents/group.md +48 -0
  60. package/dist/agents/hide.json +14 -0
  61. package/dist/agents/hide.md +3 -0
  62. package/dist/agents/hover-card.json +94 -0
  63. package/dist/agents/hover-card.md +51 -0
  64. package/dist/agents/icon-button.json +23 -12
  65. package/dist/agents/icon-button.md +12 -8
  66. package/dist/agents/image.json +33 -7
  67. package/dist/agents/image.md +11 -4
  68. package/dist/agents/input.json +7 -2
  69. package/dist/agents/input.md +1 -1
  70. package/dist/agents/interface-composition.json +216 -17
  71. package/dist/agents/interface-composition.md +7 -0
  72. package/dist/agents/layer-selection.json +1174 -11
  73. package/dist/agents/layer-selection.md +84 -1
  74. package/dist/agents/link-box.json +97 -0
  75. package/dist/agents/link-box.md +53 -0
  76. package/dist/agents/link.json +34 -5
  77. package/dist/agents/link.md +12 -2
  78. package/dist/agents/list.json +1 -1
  79. package/dist/agents/list.md +1 -1
  80. package/dist/agents/manifest.json +291 -2
  81. package/dist/agents/menubar.json +109 -0
  82. package/dist/agents/menubar.md +54 -0
  83. package/dist/agents/multi-select.json +93 -0
  84. package/dist/agents/multi-select.md +49 -0
  85. package/dist/agents/nav-list.json +15 -5
  86. package/dist/agents/nav-list.md +6 -4
  87. package/dist/agents/notification-badge.json +88 -0
  88. package/dist/agents/notification-badge.md +49 -0
  89. package/dist/agents/number-input.json +89 -0
  90. package/dist/agents/number-input.md +50 -0
  91. package/dist/agents/otp-field.json +87 -0
  92. package/dist/agents/otp-field.md +48 -0
  93. package/dist/agents/pagination.json +26 -5
  94. package/dist/agents/pagination.md +11 -4
  95. package/dist/agents/password-toggle-field.json +87 -0
  96. package/dist/agents/password-toggle-field.md +48 -0
  97. package/dist/agents/popover.json +114 -0
  98. package/dist/agents/popover.md +56 -0
  99. package/dist/agents/progress-circle.json +85 -0
  100. package/dist/agents/progress-circle.md +46 -0
  101. package/dist/agents/progress.json +91 -0
  102. package/dist/agents/progress.md +48 -0
  103. package/dist/agents/radio-group.json +92 -0
  104. package/dist/agents/radio-group.md +49 -0
  105. package/dist/agents/rating.json +91 -0
  106. package/dist/agents/rating.md +49 -0
  107. package/dist/agents/reorderable-list.json +74 -0
  108. package/dist/agents/reorderable-list.md +45 -0
  109. package/dist/agents/segment-group.json +62 -0
  110. package/dist/agents/segment-group.md +43 -0
  111. package/dist/agents/select.json +95 -0
  112. package/dist/agents/select.md +51 -0
  113. package/dist/agents/show.json +14 -0
  114. package/dist/agents/show.md +3 -0
  115. package/dist/agents/sidebar.json +16 -3
  116. package/dist/agents/sidebar.md +6 -1
  117. package/dist/agents/skeleton.json +73 -0
  118. package/dist/agents/skeleton.md +43 -0
  119. package/dist/agents/slider.json +88 -0
  120. package/dist/agents/slider.md +48 -0
  121. package/dist/agents/stack.json +19 -1
  122. package/dist/agents/stack.md +7 -0
  123. package/dist/agents/status.json +59 -0
  124. package/dist/agents/status.md +40 -0
  125. package/dist/agents/surface.json +32 -3
  126. package/dist/agents/surface.md +9 -2
  127. package/dist/agents/swipeable-item.json +93 -0
  128. package/dist/agents/swipeable-item.md +50 -0
  129. package/dist/agents/switch.json +92 -0
  130. package/dist/agents/switch.md +49 -0
  131. package/dist/agents/table.json +113 -0
  132. package/dist/agents/table.md +59 -0
  133. package/dist/agents/tabs.json +9 -2
  134. package/dist/agents/tabs.md +4 -1
  135. package/dist/agents/text.json +23 -8
  136. package/dist/agents/text.md +10 -7
  137. package/dist/agents/textarea.json +6 -1
  138. package/dist/agents/toast.json +91 -0
  139. package/dist/agents/toast.md +48 -0
  140. package/dist/agents/toggle-group.json +89 -0
  141. package/dist/agents/toggle-group.md +49 -0
  142. package/dist/agents/toggle.json +82 -0
  143. package/dist/agents/toggle.md +47 -0
  144. package/dist/agents/toolbar.json +11 -1
  145. package/dist/agents/toolbar.md +3 -1
  146. package/dist/agents/tooltip.json +96 -0
  147. package/dist/agents/tooltip.md +49 -0
  148. package/dist/agents/tree-grid.json +98 -0
  149. package/dist/agents/tree-grid.md +51 -0
  150. package/dist/agents/tree.json +94 -0
  151. package/dist/agents/tree.md +51 -0
  152. package/dist/agents/visually-hidden.json +70 -0
  153. package/dist/agents/visually-hidden.md +42 -0
  154. package/dist/agents/z-stack.json +21 -1
  155. package/dist/agents/z-stack.md +5 -0
  156. package/dist/bleed.d.ts +2 -0
  157. package/dist/bleed.d.ts.map +1 -0
  158. package/dist/bleed.js +2 -0
  159. package/dist/bleed.js.map +1 -0
  160. package/dist/color-picker.d.ts +2 -0
  161. package/dist/color-picker.d.ts.map +1 -0
  162. package/dist/color-picker.js +2 -0
  163. package/dist/color-picker.js.map +1 -0
  164. package/dist/color-swatch.d.ts +2 -0
  165. package/dist/color-swatch.d.ts.map +1 -0
  166. package/dist/color-swatch.js +2 -0
  167. package/dist/color-swatch.js.map +1 -0
  168. package/dist/components/_responsive-value/ResponsiveValue.d.ts.map +1 -1
  169. package/dist/components/_responsive-value/ResponsiveValue.js +3 -1
  170. package/dist/components/_responsive-value/ResponsiveValue.js.map +1 -1
  171. package/dist/components/_spacing-value/SpacingValue.d.ts +8 -0
  172. package/dist/components/_spacing-value/SpacingValue.d.ts.map +1 -0
  173. package/dist/components/_spacing-value/SpacingValue.js +46 -0
  174. package/dist/components/_spacing-value/SpacingValue.js.map +1 -0
  175. package/dist/components/accordion/Accordion.js +1 -1
  176. package/dist/components/app-bar/AppBar.d.ts +7 -3
  177. package/dist/components/app-bar/AppBar.d.ts.map +1 -1
  178. package/dist/components/app-bar/AppBar.js +2 -2
  179. package/dist/components/app-bar/AppBar.js.map +1 -1
  180. package/dist/components/app-bar/index.d.ts +1 -1
  181. package/dist/components/app-bar/index.d.ts.map +1 -1
  182. package/dist/components/app-bar/index.js.map +1 -1
  183. package/dist/components/avatar/Avatar.d.ts +1 -1
  184. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  185. package/dist/components/avatar/Avatar.js.map +1 -1
  186. package/dist/components/badge/Badge.d.ts +2 -2
  187. package/dist/components/badge/Badge.d.ts.map +1 -1
  188. package/dist/components/bleed/Bleed.d.ts +28 -0
  189. package/dist/components/bleed/Bleed.d.ts.map +1 -0
  190. package/dist/components/bleed/Bleed.js +92 -0
  191. package/dist/components/bleed/Bleed.js.map +1 -0
  192. package/dist/components/bleed/index.d.ts +2 -0
  193. package/dist/components/bleed/index.d.ts.map +1 -0
  194. package/dist/components/bleed/index.js +2 -0
  195. package/dist/components/bleed/index.js.map +1 -0
  196. package/dist/components/collapsible/Collapsible.d.ts +9 -3
  197. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  198. package/dist/components/collapsible/Collapsible.js +3 -3
  199. package/dist/components/collapsible/Collapsible.js.map +1 -1
  200. package/dist/components/color-picker/ColorPicker.d.ts +42 -0
  201. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -0
  202. package/dist/components/color-picker/ColorPicker.js +52 -0
  203. package/dist/components/color-picker/ColorPicker.js.map +1 -0
  204. package/dist/components/color-picker/index.d.ts +2 -0
  205. package/dist/components/color-picker/index.d.ts.map +1 -0
  206. package/dist/components/color-picker/index.js +2 -0
  207. package/dist/components/color-picker/index.js.map +1 -0
  208. package/dist/components/color-swatch/ColorSwatch.d.ts +21 -0
  209. package/dist/components/color-swatch/ColorSwatch.d.ts.map +1 -0
  210. package/dist/components/color-swatch/ColorSwatch.js +25 -0
  211. package/dist/components/color-swatch/ColorSwatch.js.map +1 -0
  212. package/dist/components/color-swatch/index.d.ts +2 -0
  213. package/dist/components/color-swatch/index.d.ts.map +1 -0
  214. package/dist/components/color-swatch/index.js +2 -0
  215. package/dist/components/color-swatch/index.js.map +1 -0
  216. package/dist/components/data-list/DataList.d.ts +48 -0
  217. package/dist/components/data-list/DataList.d.ts.map +1 -0
  218. package/dist/components/data-list/DataList.js +31 -0
  219. package/dist/components/data-list/DataList.js.map +1 -0
  220. package/dist/components/data-list/index.d.ts +2 -0
  221. package/dist/components/data-list/index.d.ts.map +1 -0
  222. package/dist/components/data-list/index.js +2 -0
  223. package/dist/components/data-list/index.js.map +1 -0
  224. package/dist/components/feed/Feed.d.ts +2 -0
  225. package/dist/components/feed/Feed.d.ts.map +1 -1
  226. package/dist/components/feed/Feed.js +2 -2
  227. package/dist/components/feed/Feed.js.map +1 -1
  228. package/dist/components/feed/index.d.ts +1 -1
  229. package/dist/components/feed/index.d.ts.map +1 -1
  230. package/dist/components/grid/Grid.d.ts +3 -1
  231. package/dist/components/grid/Grid.d.ts.map +1 -1
  232. package/dist/components/grid/Grid.js +11 -1
  233. package/dist/components/grid/Grid.js.map +1 -1
  234. package/dist/components/grid/index.d.ts +1 -1
  235. package/dist/components/grid/index.d.ts.map +1 -1
  236. package/dist/components/grid/index.js.map +1 -1
  237. package/dist/components/group/Group.d.ts +19 -0
  238. package/dist/components/group/Group.d.ts.map +1 -0
  239. package/dist/components/group/Group.js +23 -0
  240. package/dist/components/group/Group.js.map +1 -0
  241. package/dist/components/group/index.d.ts +2 -0
  242. package/dist/components/group/index.d.ts.map +1 -0
  243. package/dist/components/group/index.js +2 -0
  244. package/dist/components/group/index.js.map +1 -0
  245. package/dist/components/link/Link.d.ts +1 -1
  246. package/dist/components/link/Link.d.ts.map +1 -1
  247. package/dist/components/link/Link.js +1 -1
  248. package/dist/components/link/Link.js.map +1 -1
  249. package/dist/components/link-box/LinkBox.d.ts +22 -0
  250. package/dist/components/link-box/LinkBox.d.ts.map +1 -0
  251. package/dist/components/link-box/LinkBox.js +30 -0
  252. package/dist/components/link-box/LinkBox.js.map +1 -0
  253. package/dist/components/link-box/index.d.ts +2 -0
  254. package/dist/components/link-box/index.d.ts.map +1 -0
  255. package/dist/components/link-box/index.js +2 -0
  256. package/dist/components/link-box/index.js.map +1 -0
  257. package/dist/components/nav-list/NavList.d.ts +15 -2
  258. package/dist/components/nav-list/NavList.d.ts.map +1 -1
  259. package/dist/components/nav-list/NavList.js +4 -3
  260. package/dist/components/nav-list/NavList.js.map +1 -1
  261. package/dist/components/pagination/Pagination.d.ts +9 -6
  262. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  263. package/dist/components/pagination/Pagination.js +2 -2
  264. package/dist/components/pagination/Pagination.js.map +1 -1
  265. package/dist/components/pagination/index.d.ts +1 -1
  266. package/dist/components/pagination/index.d.ts.map +1 -1
  267. package/dist/components/pagination/index.js.map +1 -1
  268. package/dist/components/popover/Popover.d.ts +3 -0
  269. package/dist/components/popover/Popover.d.ts.map +1 -1
  270. package/dist/components/popover/Popover.js +2 -2
  271. package/dist/components/popover/Popover.js.map +1 -1
  272. package/dist/components/popover/index.d.ts +1 -1
  273. package/dist/components/popover/index.d.ts.map +1 -1
  274. package/dist/components/popover/index.js.map +1 -1
  275. package/dist/components/rating/Rating.d.ts +37 -1
  276. package/dist/components/rating/Rating.d.ts.map +1 -1
  277. package/dist/components/rating/Rating.js +25 -2
  278. package/dist/components/rating/Rating.js.map +1 -1
  279. package/dist/components/rating/index.d.ts +1 -1
  280. package/dist/components/rating/index.d.ts.map +1 -1
  281. package/dist/components/rating/index.js +1 -1
  282. package/dist/components/rating/index.js.map +1 -1
  283. package/dist/components/reorderable-list/ReorderableList.d.ts +89 -0
  284. package/dist/components/reorderable-list/ReorderableList.d.ts.map +1 -0
  285. package/dist/components/reorderable-list/ReorderableList.js +54 -0
  286. package/dist/components/reorderable-list/ReorderableList.js.map +1 -0
  287. package/dist/components/reorderable-list/index.d.ts +2 -0
  288. package/dist/components/reorderable-list/index.d.ts.map +1 -0
  289. package/dist/components/reorderable-list/index.js +2 -0
  290. package/dist/components/reorderable-list/index.js.map +1 -0
  291. package/dist/components/segment-group/SegmentGroup.d.ts +30 -0
  292. package/dist/components/segment-group/SegmentGroup.d.ts.map +1 -0
  293. package/dist/components/segment-group/SegmentGroup.js +67 -0
  294. package/dist/components/segment-group/SegmentGroup.js.map +1 -0
  295. package/dist/components/segment-group/index.d.ts +2 -0
  296. package/dist/components/segment-group/index.d.ts.map +1 -0
  297. package/dist/components/segment-group/index.js +2 -0
  298. package/dist/components/segment-group/index.js.map +1 -0
  299. package/dist/components/show/Show.d.ts.map +1 -1
  300. package/dist/components/show/Show.js +7 -1
  301. package/dist/components/show/Show.js.map +1 -1
  302. package/dist/components/sidebar/Sidebar.d.ts +4 -0
  303. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  304. package/dist/components/sidebar/Sidebar.js +3 -2
  305. package/dist/components/sidebar/Sidebar.js.map +1 -1
  306. package/dist/components/slider/Slider.d.ts.map +1 -1
  307. package/dist/components/slider/Slider.js +3 -1
  308. package/dist/components/slider/Slider.js.map +1 -1
  309. package/dist/components/stack/Stack.d.ts +3 -1
  310. package/dist/components/stack/Stack.d.ts.map +1 -1
  311. package/dist/components/stack/Stack.js +9 -1
  312. package/dist/components/stack/Stack.js.map +1 -1
  313. package/dist/components/stack/index.d.ts +1 -1
  314. package/dist/components/stack/index.d.ts.map +1 -1
  315. package/dist/components/stack/index.js.map +1 -1
  316. package/dist/components/status/Status.d.ts +22 -0
  317. package/dist/components/status/Status.d.ts.map +1 -0
  318. package/dist/components/status/Status.js +23 -0
  319. package/dist/components/status/Status.js.map +1 -0
  320. package/dist/components/status/index.d.ts +2 -0
  321. package/dist/components/status/index.d.ts.map +1 -0
  322. package/dist/components/status/index.js +2 -0
  323. package/dist/components/status/index.js.map +1 -0
  324. package/dist/components/surface/Surface.d.ts +5 -2
  325. package/dist/components/surface/Surface.d.ts.map +1 -1
  326. package/dist/components/surface/Surface.js +4 -2
  327. package/dist/components/surface/Surface.js.map +1 -1
  328. package/dist/components/surface/index.d.ts +1 -1
  329. package/dist/components/surface/index.d.ts.map +1 -1
  330. package/dist/components/surface/index.js.map +1 -1
  331. package/dist/components/text/Text.d.ts +25 -4
  332. package/dist/components/text/Text.d.ts.map +1 -1
  333. package/dist/components/text/Text.js +22 -3
  334. package/dist/components/text/Text.js.map +1 -1
  335. package/dist/components/text/index.d.ts +1 -1
  336. package/dist/components/text/index.d.ts.map +1 -1
  337. package/dist/components/text/index.js +1 -1
  338. package/dist/components/text/index.js.map +1 -1
  339. package/dist/components/toggle/Toggle.d.ts +5 -0
  340. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  341. package/dist/components/toggle/Toggle.js +2 -2
  342. package/dist/components/toggle/Toggle.js.map +1 -1
  343. package/dist/components/toggle/index.d.ts +1 -1
  344. package/dist/components/toggle/index.d.ts.map +1 -1
  345. package/dist/components/toggle/index.js.map +1 -1
  346. package/dist/components/toggle-group/ToggleGroup.d.ts +3 -1
  347. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  348. package/dist/components/toggle-group/ToggleGroup.js +2 -1
  349. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  350. package/dist/components/toolbar/Toolbar.d.ts +9 -2
  351. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  352. package/dist/components/toolbar/Toolbar.js +2 -2
  353. package/dist/components/toolbar/Toolbar.js.map +1 -1
  354. package/dist/components/toolbar/index.d.ts +1 -1
  355. package/dist/components/toolbar/index.d.ts.map +1 -1
  356. package/dist/components/z-stack/ZStack.d.ts +7 -0
  357. package/dist/components/z-stack/ZStack.d.ts.map +1 -1
  358. package/dist/components/z-stack/ZStack.js +14 -3
  359. package/dist/components/z-stack/ZStack.js.map +1 -1
  360. package/dist/components/z-stack/index.d.ts +1 -1
  361. package/dist/components/z-stack/index.d.ts.map +1 -1
  362. package/dist/components/z-stack/index.js.map +1 -1
  363. package/dist/data-list.d.ts +2 -0
  364. package/dist/data-list.d.ts.map +1 -0
  365. package/dist/data-list.js +2 -0
  366. package/dist/data-list.js.map +1 -0
  367. package/dist/feed.d.ts +1 -1
  368. package/dist/feed.d.ts.map +1 -1
  369. package/dist/grid.d.ts +1 -1
  370. package/dist/grid.d.ts.map +1 -1
  371. package/dist/grid.js.map +1 -1
  372. package/dist/group.d.ts +2 -0
  373. package/dist/group.d.ts.map +1 -0
  374. package/dist/group.js +2 -0
  375. package/dist/group.js.map +1 -0
  376. package/dist/index.d.ts +18 -8
  377. package/dist/index.d.ts.map +1 -1
  378. package/dist/index.js +10 -1
  379. package/dist/index.js.map +1 -1
  380. package/dist/link-box.d.ts +2 -0
  381. package/dist/link-box.d.ts.map +1 -0
  382. package/dist/link-box.js +2 -0
  383. package/dist/link-box.js.map +1 -0
  384. package/dist/reorderable-list.d.ts +2 -0
  385. package/dist/reorderable-list.d.ts.map +1 -0
  386. package/dist/reorderable-list.js +2 -0
  387. package/dist/reorderable-list.js.map +1 -0
  388. package/dist/reset.css +1 -1
  389. package/dist/reset.css.map +1 -1
  390. package/dist/segment-group.d.ts +2 -0
  391. package/dist/segment-group.d.ts.map +1 -0
  392. package/dist/segment-group.js +2 -0
  393. package/dist/segment-group.js.map +1 -0
  394. package/dist/stack.d.ts +1 -1
  395. package/dist/stack.d.ts.map +1 -1
  396. package/dist/stack.js.map +1 -1
  397. package/dist/status.d.ts +2 -0
  398. package/dist/status.d.ts.map +1 -0
  399. package/dist/status.js +2 -0
  400. package/dist/status.js.map +1 -0
  401. package/dist/styles/accordion.css +1 -1
  402. package/dist/styles/accordion.css.map +1 -1
  403. package/dist/styles/alert-dialog.css +1 -1
  404. package/dist/styles/alert-dialog.css.map +1 -1
  405. package/dist/styles/app-bar.css +1 -1
  406. package/dist/styles/app-bar.css.map +1 -1
  407. package/dist/styles/avatar.css +1 -1
  408. package/dist/styles/avatar.css.map +1 -1
  409. package/dist/styles/badge.css +1 -1
  410. package/dist/styles/badge.css.map +1 -1
  411. package/dist/styles/bleed.css +2 -0
  412. package/dist/styles/bleed.css.map +1 -0
  413. package/dist/styles/bottom-navigation.css +1 -1
  414. package/dist/styles/bottom-navigation.css.map +1 -1
  415. package/dist/styles/button.css +1 -1
  416. package/dist/styles/button.css.map +1 -1
  417. package/dist/styles/card.css +1 -1
  418. package/dist/styles/card.css.map +1 -1
  419. package/dist/styles/checkbox-group.css +1 -1
  420. package/dist/styles/checkbox-group.css.map +1 -1
  421. package/dist/styles/checkbox.css +1 -1
  422. package/dist/styles/checkbox.css.map +1 -1
  423. package/dist/styles/code-block.css +1 -1
  424. package/dist/styles/code-block.css.map +1 -1
  425. package/dist/styles/collapsible.css +1 -1
  426. package/dist/styles/collapsible.css.map +1 -1
  427. package/dist/styles/color-picker.css +2 -0
  428. package/dist/styles/color-picker.css.map +1 -0
  429. package/dist/styles/color-swatch.css +2 -0
  430. package/dist/styles/color-swatch.css.map +1 -0
  431. package/dist/styles/combobox.css +1 -1
  432. package/dist/styles/combobox.css.map +1 -1
  433. package/dist/styles/context-menu.css +1 -1
  434. package/dist/styles/context-menu.css.map +1 -1
  435. package/dist/styles/core.css +1 -1
  436. package/dist/styles/core.css.map +1 -1
  437. package/dist/styles/data-grid.css +1 -1
  438. package/dist/styles/data-grid.css.map +1 -1
  439. package/dist/styles/data-list.css +2 -0
  440. package/dist/styles/data-list.css.map +1 -0
  441. package/dist/styles/dialog.css +1 -1
  442. package/dist/styles/dialog.css.map +1 -1
  443. package/dist/styles/divider.css +1 -1
  444. package/dist/styles/divider.css.map +1 -1
  445. package/dist/styles/drawer.css +1 -1
  446. package/dist/styles/drawer.css.map +1 -1
  447. package/dist/styles/dropdown-menu.css +1 -1
  448. package/dist/styles/dropdown-menu.css.map +1 -1
  449. package/dist/styles/feed.css +1 -1
  450. package/dist/styles/feed.css.map +1 -1
  451. package/dist/styles/grid.css +1 -1
  452. package/dist/styles/grid.css.map +1 -1
  453. package/dist/styles/group.css +2 -0
  454. package/dist/styles/group.css.map +1 -0
  455. package/dist/styles/hide.css +1 -1
  456. package/dist/styles/hide.css.map +1 -1
  457. package/dist/styles/icon-button.css +1 -1
  458. package/dist/styles/icon-button.css.map +1 -1
  459. package/dist/styles/input.css +1 -1
  460. package/dist/styles/input.css.map +1 -1
  461. package/dist/styles/link-box.css +2 -0
  462. package/dist/styles/link-box.css.map +1 -0
  463. package/dist/styles/link.css +1 -1
  464. package/dist/styles/link.css.map +1 -1
  465. package/dist/styles/list.css +1 -1
  466. package/dist/styles/list.css.map +1 -1
  467. package/dist/styles/menubar.css +1 -1
  468. package/dist/styles/menubar.css.map +1 -1
  469. package/dist/styles/multi-select.css +1 -1
  470. package/dist/styles/multi-select.css.map +1 -1
  471. package/dist/styles/nav-list.css +1 -1
  472. package/dist/styles/nav-list.css.map +1 -1
  473. package/dist/styles/navigation-menu.css +1 -1
  474. package/dist/styles/navigation-menu.css.map +1 -1
  475. package/dist/styles/pagination.css +1 -1
  476. package/dist/styles/pagination.css.map +1 -1
  477. package/dist/styles/password-toggle-field.css +1 -1
  478. package/dist/styles/password-toggle-field.css.map +1 -1
  479. package/dist/styles/popover.css +1 -1
  480. package/dist/styles/popover.css.map +1 -1
  481. package/dist/styles/rating.css +1 -1
  482. package/dist/styles/rating.css.map +1 -1
  483. package/dist/styles/reorderable-list.css +2 -0
  484. package/dist/styles/reorderable-list.css.map +1 -0
  485. package/dist/styles/segment-group.css +2 -0
  486. package/dist/styles/segment-group.css.map +1 -0
  487. package/dist/styles/select.css +1 -1
  488. package/dist/styles/select.css.map +1 -1
  489. package/dist/styles/show.css +1 -1
  490. package/dist/styles/show.css.map +1 -1
  491. package/dist/styles/sidebar.css +1 -1
  492. package/dist/styles/sidebar.css.map +1 -1
  493. package/dist/styles/skeleton.css +1 -1
  494. package/dist/styles/skeleton.css.map +1 -1
  495. package/dist/styles/slider.css +1 -1
  496. package/dist/styles/slider.css.map +1 -1
  497. package/dist/styles/stack.css +1 -1
  498. package/dist/styles/stack.css.map +1 -1
  499. package/dist/styles/status.css +2 -0
  500. package/dist/styles/status.css.map +1 -0
  501. package/dist/styles/surface.css +1 -1
  502. package/dist/styles/surface.css.map +1 -1
  503. package/dist/styles/table.css +1 -1
  504. package/dist/styles/table.css.map +1 -1
  505. package/dist/styles/tabs.css +1 -1
  506. package/dist/styles/tabs.css.map +1 -1
  507. package/dist/styles/text.css +1 -1
  508. package/dist/styles/text.css.map +1 -1
  509. package/dist/styles/toggle-group.css +1 -1
  510. package/dist/styles/toggle-group.css.map +1 -1
  511. package/dist/styles/toggle.css +1 -1
  512. package/dist/styles/toggle.css.map +1 -1
  513. package/dist/styles/toolbar.css +1 -1
  514. package/dist/styles/toolbar.css.map +1 -1
  515. package/dist/styles/z-stack.css +1 -1
  516. package/dist/styles/z-stack.css.map +1 -1
  517. package/dist/styles.css +1 -1
  518. package/dist/styles.css.map +1 -1
  519. package/dist/surface.d.ts +1 -1
  520. package/dist/surface.d.ts.map +1 -1
  521. package/dist/surface.js.map +1 -1
  522. package/dist/text.d.ts +1 -1
  523. package/dist/text.d.ts.map +1 -1
  524. package/dist/text.js +1 -1
  525. package/dist/text.js.map +1 -1
  526. package/dist/theme-contract.json +5288 -2105
  527. package/dist/toggle.d.ts +1 -1
  528. package/dist/toggle.d.ts.map +1 -1
  529. package/dist/toggle.js.map +1 -1
  530. package/dist/tokens.css +1 -1
  531. package/dist/tokens.css.map +1 -1
  532. package/dist/toolbar.d.ts +1 -1
  533. package/dist/toolbar.d.ts.map +1 -1
  534. package/docs/guides/agent-knowledge.md +19 -0
  535. package/docs/guides/appearance-and-tokens.md +5 -0
  536. package/docs/guides/browser-support.md +21 -0
  537. package/docs/guides/control-sizing.md +55 -0
  538. package/docs/guides/installation.md +5 -2
  539. package/docs/guides/theme-contract.md +26 -12
  540. package/package.json +45 -6
@@ -0,0 +1,127 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "data-grid",
4
+ "name": "Data Grid",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Present flat interactive tabular data with Atom-owned active-cell navigation and optional row selection while applications own data, sorting, filtering, and pagination.",
9
+ "useWhen": [
10
+ "People must navigate tabular cells with arrow keys, select rows, or activate sortable column headers."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "People only need to read and compare static row-and-column data.",
15
+ "useInstead": "Table"
16
+ },
17
+ {
18
+ "condition": "The content is a visual card collection or ordinary two-dimensional page layout.",
19
+ "useInstead": "Grid, List, or Card composition"
20
+ },
21
+ {
22
+ "condition": "Cells must contain independent controls, support editing, resize or pin columns, virtualize rows, or expose a schema-driven enterprise data engine.",
23
+ "useInstead": "An application-owned data tool or a separately qualified future component"
24
+ }
25
+ ],
26
+ "composition": [
27
+ "Compose explicit Container when wide content needs horizontal overflow, then Root with Caption or another stable accessible name, Header, Body, optional Footer, indexed Rows, indexed ColumnHeaders, and Cells.",
28
+ "Keep all row and column indexes one-based and provide truthful logical rowCount and columnCount, including when only one page or window is rendered.",
29
+ "Place external Toolbar, filtering controls, result count, and Pagination around the grid; Data Grid never creates or executes those systems.",
30
+ "For application-controlled sorting, give the ColumnHeader onAction, update the data and sortDirection outside Data Grid, and keep SortIndicator decorative."
31
+ ],
32
+ "rules": [
33
+ {
34
+ "id": "data-grid-interactive-boundary",
35
+ "level": "must",
36
+ "statement": "Choose Data Grid only when composite keyboard navigation, row selection, or sortable-header activation has real value; use Table for static comparison."
37
+ },
38
+ {
39
+ "id": "data-grid-name-index-count",
40
+ "level": "must",
41
+ "statement": "Provide one stable accessible name, one-based row and column indexes, and truthful logical counts for the complete represented data set."
42
+ },
43
+ {
44
+ "id": "data-grid-data-ownership",
45
+ "level": "must",
46
+ "statement": "Keep data transformation, filtering, sorting direction changes, fetching, caching, URL state, pagination, stale-request cancellation, and persistence in the application."
47
+ },
48
+ {
49
+ "id": "data-grid-external-controls",
50
+ "level": "must",
51
+ "statement": "Compose independently named Brick controls and Pagination outside Root; do not place arbitrary interactive controls inside v1 cells or make the grid itself own surrounding workflow state."
52
+ },
53
+ {
54
+ "id": "data-grid-overflow",
55
+ "level": "must",
56
+ "statement": "Author DataGrid.Container explicitly when honest columns need horizontal overflow; Root never inserts containment and narrow layouts must preserve the tabular relationships."
57
+ },
58
+ {
59
+ "id": "data-grid-outline-owner",
60
+ "level": "must",
61
+ "statement": "Let the outline Root own its border, radius, and exposed cell corners; do not add a second framed or clipping wrapper to repair the outline recipe."
62
+ },
63
+ {
64
+ "id": "data-grid-selection-identity",
65
+ "level": "must",
66
+ "statement": "Use stable row IDs as selection values, keep active cell and row selection as independent states, and do not derive identity from the current visual index."
67
+ },
68
+ {
69
+ "id": "data-grid-sort-composition",
70
+ "level": "must",
71
+ "statement": "Give an actionable sortable ColumnHeader pointer and Enter parity, expose sortDirection only on the active sorted header, and treat SortIndicator as decorative."
72
+ },
73
+ {
74
+ "id": "data-grid-virtualization",
75
+ "level": "must",
76
+ "statement": "If an application windows rows, preserve full logical one-based indexes and totals and keep the active cell mounted or move active state before it leaves the DOM; geometry utilities do not own grid semantics or focus."
77
+ },
78
+ {
79
+ "id": "data-grid-css",
80
+ "level": "must",
81
+ "statement": "Load styles.css or core.css plus data-grid.css."
82
+ }
83
+ ],
84
+ "commonMistakes": [
85
+ {
86
+ "mistake": "Using Data Grid because a static table has many rows.",
87
+ "correction": "Use Table until arrow-key cell navigation, row selection, or sortable-header activation is a genuine task requirement."
88
+ },
89
+ {
90
+ "mistake": "Putting search, filters, pagination, fetches, and data mutation inside Data Grid.",
91
+ "correction": "Compose those application-owned systems around the public Data Grid anatomy."
92
+ },
93
+ {
94
+ "mistake": "Placing buttons, links, editable fields, or menus in v1 cells without an interaction mode.",
95
+ "correction": "Keep cells non-editing and use an application-owned data tool when independent cell controls are required."
96
+ },
97
+ {
98
+ "mistake": "Using zero-based or page-local indexes while claiming a larger logical set.",
99
+ "correction": "Pass one-based logical indexes and truthful counts so active-descendant announcements remain coherent."
100
+ },
101
+ {
102
+ "mistake": "Wrapping an outline Data Grid in another bordered or rounded clipping surface to hide sharp cell corners.",
103
+ "correction": "Keep Container responsible only for overflow and let the outline Root own one complete rounded boundary."
104
+ }
105
+ ],
106
+ "validation": [
107
+ "Inspect the accessible name, roles, one-based indexes, logical counts, active descendant, selection metadata, disabled/read-only states, and sort direction.",
108
+ "Test one Tab entry, arrows, Home and End, PageUp and PageDown, Ctrl or Meta plus Home and End, RTL mapping, disabled skipping, and pointer or Enter sortable-header parity.",
109
+ "Verify stable selection IDs and focus after application sorting, filtering, page changes, or reordered data.",
110
+ "Check explicit Container overflow, complete outline corners with and without Header or Footer, 320 CSS pixels, 200% text, 400% zoom, long content, dark appearance, forced colors, and no page-level horizontal overflow.",
111
+ "Confirm editing, arbitrary cell controls, virtualization, schemas, fetching, filtering, pagination, and persistence remain excluded."
112
+ ],
113
+ "related": [
114
+ {
115
+ "kind": "package",
116
+ "package": "@flowstack-ui/atom",
117
+ "id": "data-grid",
118
+ "versionPolicy": "installed-exact"
119
+ },
120
+ "table",
121
+ "tree-grid",
122
+ "toolbar",
123
+ "pagination",
124
+ "badge",
125
+ "scroll-area"
126
+ ]
127
+ }
@@ -0,0 +1,61 @@
1
+ # Data Grid agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present flat interactive tabular data with Atom-owned active-cell navigation and optional row selection while applications own data, sorting, filtering, and pagination.
6
+
7
+ ## Use when
8
+
9
+ - People must navigate tabular cells with arrow keys, select rows, or activate sortable column headers.
10
+
11
+ ## Choose something else when
12
+
13
+ - People only need to read and compare static row-and-column data. Use Table.
14
+ - The content is a visual card collection or ordinary two-dimensional page layout. Use Grid, List, or Card composition.
15
+ - Cells must contain independent controls, support editing, resize or pin columns, virtualize rows, or expose a schema-driven enterprise data engine. Use An application-owned data tool or a separately qualified future component.
16
+
17
+ ## Required composition
18
+
19
+ - Compose explicit Container when wide content needs horizontal overflow, then Root with Caption or another stable accessible name, Header, Body, optional Footer, indexed Rows, indexed ColumnHeaders, and Cells.
20
+ - Keep all row and column indexes one-based and provide truthful logical rowCount and columnCount, including when only one page or window is rendered.
21
+ - Place external Toolbar, filtering controls, result count, and Pagination around the grid; Data Grid never creates or executes those systems.
22
+ - For application-controlled sorting, give the ColumnHeader onAction, update the data and sortDirection outside Data Grid, and keep SortIndicator decorative.
23
+
24
+ ## Rules
25
+
26
+ - **MUST:** Choose Data Grid only when composite keyboard navigation, row selection, or sortable-header activation has real value; use Table for static comparison.
27
+ - **MUST:** Provide one stable accessible name, one-based row and column indexes, and truthful logical counts for the complete represented data set.
28
+ - **MUST:** Keep data transformation, filtering, sorting direction changes, fetching, caching, URL state, pagination, stale-request cancellation, and persistence in the application.
29
+ - **MUST:** Compose independently named Brick controls and Pagination outside Root; do not place arbitrary interactive controls inside v1 cells or make the grid itself own surrounding workflow state.
30
+ - **MUST:** Author DataGrid.Container explicitly when honest columns need horizontal overflow; Root never inserts containment and narrow layouts must preserve the tabular relationships.
31
+ - **MUST:** Let the outline Root own its border, radius, and exposed cell corners; do not add a second framed or clipping wrapper to repair the outline recipe.
32
+ - **MUST:** Use stable row IDs as selection values, keep active cell and row selection as independent states, and do not derive identity from the current visual index.
33
+ - **MUST:** Give an actionable sortable ColumnHeader pointer and Enter parity, expose sortDirection only on the active sorted header, and treat SortIndicator as decorative.
34
+ - **MUST:** If an application windows rows, preserve full logical one-based indexes and totals and keep the active cell mounted or move active state before it leaves the DOM; geometry utilities do not own grid semantics or focus.
35
+ - **MUST:** Load styles.css or core.css plus data-grid.css.
36
+
37
+ ## Common mistakes
38
+
39
+ - **Avoid:** Using Data Grid because a static table has many rows. **Instead:** Use Table until arrow-key cell navigation, row selection, or sortable-header activation is a genuine task requirement.
40
+ - **Avoid:** Putting search, filters, pagination, fetches, and data mutation inside Data Grid. **Instead:** Compose those application-owned systems around the public Data Grid anatomy.
41
+ - **Avoid:** Placing buttons, links, editable fields, or menus in v1 cells without an interaction mode. **Instead:** Keep cells non-editing and use an application-owned data tool when independent cell controls are required.
42
+ - **Avoid:** Using zero-based or page-local indexes while claiming a larger logical set. **Instead:** Pass one-based logical indexes and truthful counts so active-descendant announcements remain coherent.
43
+ - **Avoid:** Wrapping an outline Data Grid in another bordered or rounded clipping surface to hide sharp cell corners. **Instead:** Keep Container responsible only for overflow and let the outline Root own one complete rounded boundary.
44
+
45
+ ## Validation checklist
46
+
47
+ - Inspect the accessible name, roles, one-based indexes, logical counts, active descendant, selection metadata, disabled/read-only states, and sort direction.
48
+ - Test one Tab entry, arrows, Home and End, PageUp and PageDown, Ctrl or Meta plus Home and End, RTL mapping, disabled skipping, and pointer or Enter sortable-header parity.
49
+ - Verify stable selection IDs and focus after application sorting, filtering, page changes, or reordered data.
50
+ - Check explicit Container overflow, complete outline corners with and without Header or Footer, 320 CSS pixels, 200% text, 400% zoom, long content, dark appearance, forced colors, and no page-level horizontal overflow.
51
+ - Confirm editing, arbitrary cell controls, virtualization, schemas, fetching, filtering, pagination, and persistence remain excluded.
52
+
53
+ ## Related guidance
54
+
55
+ - `@flowstack-ui/atom/agents/data-grid`
56
+ - `table`
57
+ - `tree-grid`
58
+ - `toolbar`
59
+ - `pagination`
60
+ - `badge`
61
+ - `scroll-area`
@@ -0,0 +1,63 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "data-list",
4
+ "name": "Data List",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Present repeated term/value metadata with native description-list semantics and a finished responsive recipe.",
9
+ "useWhen": [
10
+ "Several related labels and values describe one record, profile, object, or specification set."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "Items are peers rather than terms and descriptions, or the content is a columnar dataset.",
15
+ "useInstead": "List for peers or Table/Data Grid for columnar data"
16
+ },
17
+ {
18
+ "condition": "The values are editable form controls.",
19
+ "useInstead": "Field or Fieldset"
20
+ }
21
+ ],
22
+ "composition": [
23
+ "Compose Root with Item groups; place one or more Label parts before one or more Value parts inside every Item."
24
+ ],
25
+ "rules": [
26
+ {
27
+ "id": "data-list-native-anatomy",
28
+ "level": "must",
29
+ "statement": "Use Root, Item, Label, and Value so the rendered dl/div/dt/dd grammar remains valid; do not recreate the relationship with ul/li or generic Stack children."
30
+ },
31
+ {
32
+ "id": "data-list-responsive-source",
33
+ "level": "must",
34
+ "statement": "Keep one label-then-value source order and use responsive orientation rather than duplicating mobile and desktop metadata trees."
35
+ },
36
+ {
37
+ "id": "data-list-labels",
38
+ "level": "must",
39
+ "statement": "Write visible meaningful labels; do not add empty Label parts solely to force alignment."
40
+ },
41
+ {
42
+ "id": "data-list-css",
43
+ "level": "must",
44
+ "statement": "Load styles.css or core.css plus data-list.css."
45
+ }
46
+ ],
47
+ "commonMistakes": [
48
+ {
49
+ "mistake": "Using List for phone/email/title facts or adding ARIA term/definition roles to native Data List parts.",
50
+ "correction": "Use DataList native anatomy and rely on its native semantics without redundant ARIA."
51
+ }
52
+ ],
53
+ "validation": [
54
+ "Check dl/div/dt/dd anatomy, complete visible labels, source order, horizontal and vertical orientation, long values, links inside Value, zoom, RTL, forced colors, and CSS loading."
55
+ ],
56
+ "related": [
57
+ "list",
58
+ "table",
59
+ "data-grid",
60
+ "field",
61
+ "stack"
62
+ ]
63
+ }
@@ -0,0 +1,41 @@
1
+ # Data List agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present repeated term/value metadata with native description-list semantics and a finished responsive recipe.
6
+
7
+ ## Use when
8
+
9
+ - Several related labels and values describe one record, profile, object, or specification set.
10
+
11
+ ## Choose something else when
12
+
13
+ - Items are peers rather than terms and descriptions, or the content is a columnar dataset. Use List for peers or Table/Data Grid for columnar data.
14
+ - The values are editable form controls. Use Field or Fieldset.
15
+
16
+ ## Required composition
17
+
18
+ - Compose Root with Item groups; place one or more Label parts before one or more Value parts inside every Item.
19
+
20
+ ## Rules
21
+
22
+ - **MUST:** Use Root, Item, Label, and Value so the rendered dl/div/dt/dd grammar remains valid; do not recreate the relationship with ul/li or generic Stack children.
23
+ - **MUST:** Keep one label-then-value source order and use responsive orientation rather than duplicating mobile and desktop metadata trees.
24
+ - **MUST:** Write visible meaningful labels; do not add empty Label parts solely to force alignment.
25
+ - **MUST:** Load styles.css or core.css plus data-list.css.
26
+
27
+ ## Common mistakes
28
+
29
+ - **Avoid:** Using List for phone/email/title facts or adding ARIA term/definition roles to native Data List parts. **Instead:** Use DataList native anatomy and rely on its native semantics without redundant ARIA.
30
+
31
+ ## Validation checklist
32
+
33
+ - Check dl/div/dt/dd anatomy, complete visible labels, source order, horizontal and vertical orientation, long values, links inside Value, zoom, RTL, forced colors, and CSS loading.
34
+
35
+ ## Related guidance
36
+
37
+ - `list`
38
+ - `table`
39
+ - `data-grid`
40
+ - `field`
41
+ - `stack`
@@ -0,0 +1,112 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "dialog",
4
+ "name": "Dialog",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Present a finished modal task, form, settings flow, or focused information surface while Atom owns focus, dismissal, portal, background-isolation, and scroll-lock behavior.",
9
+ "useWhen": [
10
+ "A user must focus on a temporary blocking task, form, settings flow, or detailed information surface before returning to the underlying application."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "The user must make an urgent consequential choice, the surface belongs at a screen edge, or the panel is compact and anchored to a trigger.",
15
+ "useInstead": "AlertDialog, Drawer, or Popover"
16
+ },
17
+ {
18
+ "condition": "The content is an in-page disclosure, a command menu, or passive transient feedback.",
19
+ "useInstead": "Collapsible or Accordion, Menu, or Toast"
20
+ }
21
+ ],
22
+ "composition": [
23
+ "Compose Dialog.Root with Dialog.Trigger and Dialog.Portal; inside Portal keep Dialog.Overlay and Dialog.Content as siblings. Inside Content, arrange Dialog.Header with Dialog.Title and an optional Dialog.Description, put scrollable task content in Dialog.Body, and place actions and Dialog.Close in Dialog.Footer as the workflow requires.",
24
+ "Use Dialog.Branch only for an unavoidable consumer-owned third-party portal that cannot mount inside Content. When a local Appearance scope owns the trigger, portal into that scope or apply the same Appearance to the portalled visual root."
25
+ ],
26
+ "rules": [
27
+ {
28
+ "id": "dialog-modal-task",
29
+ "level": "must",
30
+ "statement": "Use Dialog for an ordinary blocking task or information surface; use AlertDialog for an urgent consequential decision and Popover for compact anchored work."
31
+ },
32
+ {
33
+ "id": "dialog-overlay-content-siblings",
34
+ "level": "must",
35
+ "statement": "Render Overlay and Content as siblings inside Portal; never place Content beneath the aria-hidden Overlay."
36
+ },
37
+ {
38
+ "id": "dialog-accessible-name",
39
+ "level": "must",
40
+ "statement": "Give Content an accessible name with one visible Title or an explicit native aria-label or aria-labelledby; add Description only when it supplies useful context."
41
+ },
42
+ {
43
+ "id": "dialog-atom-behavior",
44
+ "level": "must",
45
+ "statement": "Use Dialog-owned focus containment and restoration, background isolation, scroll locking, Escape handling, direct-target backdrop dismissal, and nested top-layer behavior instead of recreating them."
46
+ },
47
+ {
48
+ "id": "dialog-body-scroll",
49
+ "level": "must",
50
+ "statement": "Put long or variable task content in Body so the header and footer remain available while the body owns overflow within the safe viewport bounds."
51
+ },
52
+ {
53
+ "id": "dialog-footer-actions",
54
+ "level": "must",
55
+ "statement": "Use Footer justify for simple action distribution and Brick layout components for complex grouping; preserve a clear primary action and a visible close or cancellation path when the workflow requires one."
56
+ },
57
+ {
58
+ "id": "dialog-branch-scope",
59
+ "level": "must",
60
+ "statement": "Mount descendant interactive portals inside Content when possible; otherwise wrap only the unavoidable same-document third-party portal owner with Branch."
61
+ },
62
+ {
63
+ "id": "dialog-size-responsive",
64
+ "level": "should",
65
+ "statement": "Choose sm, md, or lg from the content measure rather than importance, and verify safe-area bounds, Body overflow, footer reflow, zoom, and narrow or short effective viewports."
66
+ },
67
+ {
68
+ "id": "dialog-theme-scope",
69
+ "level": "must",
70
+ "statement": "When Portal leaves a local Appearance scope, reproduce that scope on the portalled visual root or target a portal container inside it."
71
+ },
72
+ {
73
+ "id": "dialog-css",
74
+ "level": "must",
75
+ "statement": "Load styles.css or core.css plus dialog.css."
76
+ }
77
+ ],
78
+ "commonMistakes": [
79
+ {
80
+ "mistake": "Nesting Content inside Overlay, hand-building focus or document listeners, or using Dialog for an anchored utility panel.",
81
+ "correction": "Keep Overlay and Content siblings, rely on Dialog and Atom Modal behavior, and choose Popover for compact anchored work."
82
+ },
83
+ {
84
+ "mistake": "Letting long content scroll the whole surface or assuming an unrelated third-party portal is automatically inside the modal.",
85
+ "correction": "Put overflow in Body and mount the descendant portal inside Content or register its owner with Branch."
86
+ }
87
+ ],
88
+ "validation": [
89
+ "Verify trigger semantics, accessible name and optional description, keyboard, pointer, touch, and programmatic initial focus, Tab containment, Close, top-layer Escape, direct-target backdrop dismissal, and focus restoration.",
90
+ "Verify controlled state, nested dialogs and every Branch, background isolation, document scroll lock, long Body scrolling, footer reflow, exit presence, zoom, reduced motion, forced colors, and narrow and short viewports.",
91
+ "Check light and dark appearance on the actual portalled Content and confirm Dialog CSS plus every composed child component stylesheet is loaded."
92
+ ],
93
+ "related": [
94
+ {
95
+ "kind": "package",
96
+ "package": "@flowstack-ui/atom",
97
+ "id": "dialog",
98
+ "versionPolicy": "installed-exact"
99
+ },
100
+ {
101
+ "kind": "package",
102
+ "package": "@flowstack-ui/atom",
103
+ "id": "modal",
104
+ "versionPolicy": "installed-exact"
105
+ },
106
+ "alert-dialog",
107
+ "drawer",
108
+ "popover",
109
+ "button",
110
+ "appearance"
111
+ ]
112
+ }
@@ -0,0 +1,53 @@
1
+ # Dialog agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present a finished modal task, form, settings flow, or focused information surface while Atom owns focus, dismissal, portal, background-isolation, and scroll-lock behavior.
6
+
7
+ ## Use when
8
+
9
+ - A user must focus on a temporary blocking task, form, settings flow, or detailed information surface before returning to the underlying application.
10
+
11
+ ## Choose something else when
12
+
13
+ - The user must make an urgent consequential choice, the surface belongs at a screen edge, or the panel is compact and anchored to a trigger. Use AlertDialog, Drawer, or Popover.
14
+ - The content is an in-page disclosure, a command menu, or passive transient feedback. Use Collapsible or Accordion, Menu, or Toast.
15
+
16
+ ## Required composition
17
+
18
+ - Compose Dialog.Root with Dialog.Trigger and Dialog.Portal; inside Portal keep Dialog.Overlay and Dialog.Content as siblings. Inside Content, arrange Dialog.Header with Dialog.Title and an optional Dialog.Description, put scrollable task content in Dialog.Body, and place actions and Dialog.Close in Dialog.Footer as the workflow requires.
19
+ - Use Dialog.Branch only for an unavoidable consumer-owned third-party portal that cannot mount inside Content. When a local Appearance scope owns the trigger, portal into that scope or apply the same Appearance to the portalled visual root.
20
+
21
+ ## Rules
22
+
23
+ - **MUST:** Use Dialog for an ordinary blocking task or information surface; use AlertDialog for an urgent consequential decision and Popover for compact anchored work.
24
+ - **MUST:** Render Overlay and Content as siblings inside Portal; never place Content beneath the aria-hidden Overlay.
25
+ - **MUST:** Give Content an accessible name with one visible Title or an explicit native aria-label or aria-labelledby; add Description only when it supplies useful context.
26
+ - **MUST:** Use Dialog-owned focus containment and restoration, background isolation, scroll locking, Escape handling, direct-target backdrop dismissal, and nested top-layer behavior instead of recreating them.
27
+ - **MUST:** Put long or variable task content in Body so the header and footer remain available while the body owns overflow within the safe viewport bounds.
28
+ - **MUST:** Use Footer justify for simple action distribution and Brick layout components for complex grouping; preserve a clear primary action and a visible close or cancellation path when the workflow requires one.
29
+ - **MUST:** Mount descendant interactive portals inside Content when possible; otherwise wrap only the unavoidable same-document third-party portal owner with Branch.
30
+ - **SHOULD:** Choose sm, md, or lg from the content measure rather than importance, and verify safe-area bounds, Body overflow, footer reflow, zoom, and narrow or short effective viewports.
31
+ - **MUST:** When Portal leaves a local Appearance scope, reproduce that scope on the portalled visual root or target a portal container inside it.
32
+ - **MUST:** Load styles.css or core.css plus dialog.css.
33
+
34
+ ## Common mistakes
35
+
36
+ - **Avoid:** Nesting Content inside Overlay, hand-building focus or document listeners, or using Dialog for an anchored utility panel. **Instead:** Keep Overlay and Content siblings, rely on Dialog and Atom Modal behavior, and choose Popover for compact anchored work.
37
+ - **Avoid:** Letting long content scroll the whole surface or assuming an unrelated third-party portal is automatically inside the modal. **Instead:** Put overflow in Body and mount the descendant portal inside Content or register its owner with Branch.
38
+
39
+ ## Validation checklist
40
+
41
+ - Verify trigger semantics, accessible name and optional description, keyboard, pointer, touch, and programmatic initial focus, Tab containment, Close, top-layer Escape, direct-target backdrop dismissal, and focus restoration.
42
+ - Verify controlled state, nested dialogs and every Branch, background isolation, document scroll lock, long Body scrolling, footer reflow, exit presence, zoom, reduced motion, forced colors, and narrow and short viewports.
43
+ - Check light and dark appearance on the actual portalled Content and confirm Dialog CSS plus every composed child component stylesheet is loaded.
44
+
45
+ ## Related guidance
46
+
47
+ - `@flowstack-ui/atom/agents/dialog`
48
+ - `@flowstack-ui/atom/agents/modal`
49
+ - `alert-dialog`
50
+ - `drawer`
51
+ - `popover`
52
+ - `button`
53
+ - `appearance`
@@ -0,0 +1,112 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "dropdown-menu",
4
+ "name": "DropdownMenu",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Present a finished compact command or settings menu from a visible button while Atom owns menu semantics, real item focus, keyboard navigation, selection, dismissal, portals, and collision-aware placement.",
9
+ "useWhen": [
10
+ "A visible named button should reveal a short list of commands, independent settings, exclusive settings, secondary destinations, or nested commands."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "Commands belong to a contextual gesture, several persistent application command categories, a form value, or ordinary site navigation.",
15
+ "useInstead": "ContextMenu, Menubar, Select, or NavigationMenu or NavList"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Compose DropdownMenu.Root with DropdownMenu.Trigger asChild around a finished named Button or IconButton, plus DropdownMenu.Portal and DropdownMenu.Content. Build Content from uniquely valued Item, CheckboxItem, RadioGroup and RadioItem, Group and Label, Separator, and paired Sub, SubTrigger, and SubContent parts; use Leading, ItemLabel, Description, Shortcut, and ItemIndicator for finished rows.",
20
+ "For a genuine secondary destination, compose Item asChild around one Brick Link and preserve its href; command rows use onSelect. Reproduce any local Appearance scope on portalled Content and SubContent."
21
+ ],
22
+ "rules": [
23
+ {
24
+ "id": "dropdown-menu-selection",
25
+ "level": "must",
26
+ "statement": "Use DropdownMenu for commands or settings opened by a visible button; use Select for a form value, ContextMenu for contextual invocation, Menubar for persistent command categories, and navigation owners for route lists."
27
+ },
28
+ {
29
+ "id": "dropdown-menu-trigger",
30
+ "level": "must",
31
+ "statement": "Compose Trigger around a visible finished Button or IconButton with a complete accessible name and preserve Atom's button, popup, expanded, controls, disabled, and input-aware opening semantics."
32
+ },
33
+ {
34
+ "id": "dropdown-menu-item-model",
35
+ "level": "must",
36
+ "statement": "Use uniquely valued Item, CheckboxItem, and RadioItem for their matching roles, provide textValue when rendered children are not searchable text, and preserve real focus, typeahead, and disabled-item navigation without activation."
37
+ },
38
+ {
39
+ "id": "dropdown-menu-selection-close",
40
+ "level": "must",
41
+ "statement": "Choose closeOnSelect by job: commands normally close while checkbox and radio settings normally remain open; do not close the tree with competing handlers or document listeners."
42
+ },
43
+ {
44
+ "id": "dropdown-menu-submenu",
45
+ "level": "must",
46
+ "statement": "Keep SubTrigger and SubContent inside one Sub and preserve direction-aware cascade keys, hover intent, whole-tree dismissal, and collision-resolved placement instead of inventing responsive drill-in behavior."
47
+ },
48
+ {
49
+ "id": "dropdown-menu-destination",
50
+ "level": "must",
51
+ "statement": "Compose a genuine destination Item around one Brick Link so href and menuitem semantics share the same interactive owner; do not attach routing to a command-only div."
52
+ },
53
+ {
54
+ "id": "dropdown-menu-row-anatomy",
55
+ "level": "must",
56
+ "statement": "Use Leading, ItemLabel, Description, Shortcut, ItemIndicator, and tone=danger for their documented jobs instead of rebuilding columns, selection glyphs, icon sizing, or destructive emphasis."
57
+ },
58
+ {
59
+ "id": "dropdown-menu-responsive",
60
+ "level": "should",
61
+ "statement": "Let Content use its collision-aware available height and native internal scrolling; verify three densities, long labels, zoom, narrow viewports, LTR and RTL, and reachable nested commands without semantic transformation."
62
+ },
63
+ {
64
+ "id": "dropdown-menu-theme-scope",
65
+ "level": "must",
66
+ "statement": "When Portal leaves a local Appearance scope, reproduce that scope on Content and SubContent or target a portal container inside it."
67
+ },
68
+ {
69
+ "id": "dropdown-menu-css",
70
+ "level": "must",
71
+ "statement": "Load styles.css or core.css plus dropdown-menu.css and every composed child component stylesheet."
72
+ }
73
+ ],
74
+ "commonMistakes": [
75
+ {
76
+ "mistake": "Using an unlabeled icon trigger, Popover for menu commands, DropdownMenu for form selection or primary navigation, or custom key and document dismissal handlers.",
77
+ "correction": "Use a named Button or IconButton, choose the semantic owner, and rely on DropdownMenu and shared Menu behavior."
78
+ },
79
+ {
80
+ "mistake": "Nesting a Button inside Item, rebuilding row columns, or treating Shortcut text as registered keyboard behavior.",
81
+ "correction": "Keep one interactive owner, compose the public row anatomy, and register application shortcuts outside DropdownMenu."
82
+ }
83
+ ],
84
+ "validation": [
85
+ "Verify Trigger name and semantics, click, tap, Enter, Space, ArrowDown, and ArrowUp opening, initial real item focus, Home/End, typeahead, controlled and disabled state, Tab exit, Escape, outside dismissal, and focus return.",
86
+ "Verify command, destination-link, checkbox mixed, radio, group, indicator, separator, and submenu behavior; unique values and textValue; close policies; modal and parent-modal ownership; and LTR and RTL cascade keys.",
87
+ "Verify three densities, Leading geometry, danger meaning, constrained scrolling, collision placement, zoom, narrow viewports, reduced motion, forced colors, light and dark portalled appearance, and complete CSS."
88
+ ],
89
+ "related": [
90
+ {
91
+ "kind": "package",
92
+ "package": "@flowstack-ui/atom",
93
+ "id": "dropdown-menu",
94
+ "versionPolicy": "installed-exact"
95
+ },
96
+ {
97
+ "kind": "package",
98
+ "package": "@flowstack-ui/atom",
99
+ "id": "menu",
100
+ "versionPolicy": "installed-exact"
101
+ },
102
+ "context-menu",
103
+ "menubar",
104
+ "select",
105
+ "navigation-menu",
106
+ "nav-list",
107
+ "button",
108
+ "icon-button",
109
+ "link",
110
+ "appearance"
111
+ ]
112
+ }
@@ -0,0 +1,56 @@
1
+ # DropdownMenu agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present a finished compact command or settings menu from a visible button while Atom owns menu semantics, real item focus, keyboard navigation, selection, dismissal, portals, and collision-aware placement.
6
+
7
+ ## Use when
8
+
9
+ - A visible named button should reveal a short list of commands, independent settings, exclusive settings, secondary destinations, or nested commands.
10
+
11
+ ## Choose something else when
12
+
13
+ - Commands belong to a contextual gesture, several persistent application command categories, a form value, or ordinary site navigation. Use ContextMenu, Menubar, Select, or NavigationMenu or NavList.
14
+
15
+ ## Required composition
16
+
17
+ - Compose DropdownMenu.Root with DropdownMenu.Trigger asChild around a finished named Button or IconButton, plus DropdownMenu.Portal and DropdownMenu.Content. Build Content from uniquely valued Item, CheckboxItem, RadioGroup and RadioItem, Group and Label, Separator, and paired Sub, SubTrigger, and SubContent parts; use Leading, ItemLabel, Description, Shortcut, and ItemIndicator for finished rows.
18
+ - For a genuine secondary destination, compose Item asChild around one Brick Link and preserve its href; command rows use onSelect. Reproduce any local Appearance scope on portalled Content and SubContent.
19
+
20
+ ## Rules
21
+
22
+ - **MUST:** Use DropdownMenu for commands or settings opened by a visible button; use Select for a form value, ContextMenu for contextual invocation, Menubar for persistent command categories, and navigation owners for route lists.
23
+ - **MUST:** Compose Trigger around a visible finished Button or IconButton with a complete accessible name and preserve Atom's button, popup, expanded, controls, disabled, and input-aware opening semantics.
24
+ - **MUST:** Use uniquely valued Item, CheckboxItem, and RadioItem for their matching roles, provide textValue when rendered children are not searchable text, and preserve real focus, typeahead, and disabled-item navigation without activation.
25
+ - **MUST:** Choose closeOnSelect by job: commands normally close while checkbox and radio settings normally remain open; do not close the tree with competing handlers or document listeners.
26
+ - **MUST:** Keep SubTrigger and SubContent inside one Sub and preserve direction-aware cascade keys, hover intent, whole-tree dismissal, and collision-resolved placement instead of inventing responsive drill-in behavior.
27
+ - **MUST:** Compose a genuine destination Item around one Brick Link so href and menuitem semantics share the same interactive owner; do not attach routing to a command-only div.
28
+ - **MUST:** Use Leading, ItemLabel, Description, Shortcut, ItemIndicator, and tone=danger for their documented jobs instead of rebuilding columns, selection glyphs, icon sizing, or destructive emphasis.
29
+ - **SHOULD:** Let Content use its collision-aware available height and native internal scrolling; verify three densities, long labels, zoom, narrow viewports, LTR and RTL, and reachable nested commands without semantic transformation.
30
+ - **MUST:** When Portal leaves a local Appearance scope, reproduce that scope on Content and SubContent or target a portal container inside it.
31
+ - **MUST:** Load styles.css or core.css plus dropdown-menu.css and every composed child component stylesheet.
32
+
33
+ ## Common mistakes
34
+
35
+ - **Avoid:** Using an unlabeled icon trigger, Popover for menu commands, DropdownMenu for form selection or primary navigation, or custom key and document dismissal handlers. **Instead:** Use a named Button or IconButton, choose the semantic owner, and rely on DropdownMenu and shared Menu behavior.
36
+ - **Avoid:** Nesting a Button inside Item, rebuilding row columns, or treating Shortcut text as registered keyboard behavior. **Instead:** Keep one interactive owner, compose the public row anatomy, and register application shortcuts outside DropdownMenu.
37
+
38
+ ## Validation checklist
39
+
40
+ - Verify Trigger name and semantics, click, tap, Enter, Space, ArrowDown, and ArrowUp opening, initial real item focus, Home/End, typeahead, controlled and disabled state, Tab exit, Escape, outside dismissal, and focus return.
41
+ - Verify command, destination-link, checkbox mixed, radio, group, indicator, separator, and submenu behavior; unique values and textValue; close policies; modal and parent-modal ownership; and LTR and RTL cascade keys.
42
+ - Verify three densities, Leading geometry, danger meaning, constrained scrolling, collision placement, zoom, narrow viewports, reduced motion, forced colors, light and dark portalled appearance, and complete CSS.
43
+
44
+ ## Related guidance
45
+
46
+ - `@flowstack-ui/atom/agents/dropdown-menu`
47
+ - `@flowstack-ui/atom/agents/menu`
48
+ - `context-menu`
49
+ - `menubar`
50
+ - `select`
51
+ - `navigation-menu`
52
+ - `nav-list`
53
+ - `button`
54
+ - `icon-button`
55
+ - `link`
56
+ - `appearance`