@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,95 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "select",
4
+ "name": "Select",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Present one compact finished choice from a predefined list while Atom owns selection, trigger and listbox semantics, keyboard behavior, positioning, dismissal, validation, and native select form behavior.",
9
+ "useWhen": [
10
+ "A person chooses exactly one value from a predefined list whose options should stay collapsed until opened."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "A short set should remain visible, several values may be selected, editable filtering or free-form entry is required, or rows are commands or destinations.",
15
+ "useInstead": "RadioGroup, MultiSelect, Combobox, DropdownMenu, or Link"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Compose Select.Root with a named Select.Trigger containing Select.Value and optional Select.Icon, then exactly one Select.Content or Select.Listbox. Place stable uniquely valued Items with ItemText inside optional Viewport and Group with Label; add indicators, separators, scroll buttons, Portal, and a direct popup Arrow only when required.",
20
+ "Use the same sm, md, or lg size as adjacent button-like controls. Keep locale loading, routing, persistence, analytics, and every other effect in onValueChange at the application boundary."
21
+ ],
22
+ "rules": [
23
+ {
24
+ "id": "select-single-value",
25
+ "level": "must",
26
+ "statement": "Use Select only for one predefined value and keep controlled value and open state aligned with their matching callbacks."
27
+ },
28
+ {
29
+ "id": "select-trigger-name",
30
+ "level": "must",
31
+ "statement": "Give Trigger a visible Field label or equivalent accessible name; placeholder and selected value are not the control name, and Trigger must retain combobox, expanded, controls, active-descendant, required, read-only, invalid, and disabled relationships."
32
+ },
33
+ {
34
+ "id": "select-item-text",
35
+ "level": "must",
36
+ "statement": "Give every Item a stable unique value and ItemText or label, keep interactive descendants out, and preserve that text for closed display, option naming, typeahead, and the hidden native select."
37
+ },
38
+ {
39
+ "id": "select-keyboard-form",
40
+ "level": "must",
41
+ "statement": "Preserve Trigger-owned opening, Arrow/Home/End, typeahead, Enter/Space selection, Tab, Escape, disabled skipping, focus restoration, native select options and submission, required validity, external form association, and reset."
42
+ },
43
+ {
44
+ "id": "select-popup-anatomy",
45
+ "level": "must",
46
+ "statement": "Render Content or Listbox once, keep Arrow directly inside it, and keep scroll buttons outside the registered Viewport so Atom owns positioning, collision, dismissal, and overflow state."
47
+ },
48
+ {
49
+ "id": "select-application-effect",
50
+ "level": "must",
51
+ "statement": "Keep translation loading, locale detection, persistence, navigation, analytics, and other effects in the application callback rather than inside Select."
52
+ },
53
+ {
54
+ "id": "select-css",
55
+ "level": "must",
56
+ "statement": "Load styles.css or core.css plus select.css and Field CSS when composed."
57
+ }
58
+ ],
59
+ "commonMistakes": [
60
+ {
61
+ "mistake": "Using placeholder or a selected code as the only name, omitting ItemText, rendering both popup owners, or rebuilding options as clickable rows.",
62
+ "correction": "Name Trigger separately and preserve one Atom-owned popup with registered stable Items and ItemText."
63
+ },
64
+ {
65
+ "mistake": "Using Select for multiple or editable choice, commands, navigation rows, or hidden application state and effects.",
66
+ "correction": "Choose MultiSelect, Combobox, DropdownMenu, or Link and connect legitimate value effects through onValueChange."
67
+ }
68
+ ],
69
+ "validation": [
70
+ "Verify Trigger naming and Field relationships, controlled and uncontrolled value and open state, placeholder and closed selected label, pointer/touch and keyboard opening, active descendant, Home/End, typeahead, selection, disabled Items, Tab, Escape, outside activation, and focus return.",
71
+ "Verify hidden native options and submission, required inline/native validity, external form, reset, groups and labels, Viewport and scroll buttons, Portal and non-Portal paths, Arrow placement, direction, collision handling, and nested modal ownership.",
72
+ "Verify all sizes, long localized labels, narrow widths, zoom, RTL, touch targets, light and dark appearance, forced colors, and alignment with adjacent button-like controls."
73
+ ],
74
+ "related": [
75
+ {
76
+ "kind": "package",
77
+ "package": "@flowstack-ui/atom",
78
+ "id": "select",
79
+ "versionPolicy": "installed-exact"
80
+ },
81
+ {
82
+ "kind": "package",
83
+ "package": "@flowstack-ui/atom",
84
+ "id": "listbox",
85
+ "versionPolicy": "installed-exact"
86
+ },
87
+ "field",
88
+ "form",
89
+ "radio-group",
90
+ "combobox",
91
+ "multi-select",
92
+ "dropdown-menu",
93
+ "link"
94
+ ]
95
+ }
@@ -0,0 +1,51 @@
1
+ # Select agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present one compact finished choice from a predefined list while Atom owns selection, trigger and listbox semantics, keyboard behavior, positioning, dismissal, validation, and native select form behavior.
6
+
7
+ ## Use when
8
+
9
+ - A person chooses exactly one value from a predefined list whose options should stay collapsed until opened.
10
+
11
+ ## Choose something else when
12
+
13
+ - A short set should remain visible, several values may be selected, editable filtering or free-form entry is required, or rows are commands or destinations. Use RadioGroup, MultiSelect, Combobox, DropdownMenu, or Link.
14
+
15
+ ## Required composition
16
+
17
+ - Compose Select.Root with a named Select.Trigger containing Select.Value and optional Select.Icon, then exactly one Select.Content or Select.Listbox. Place stable uniquely valued Items with ItemText inside optional Viewport and Group with Label; add indicators, separators, scroll buttons, Portal, and a direct popup Arrow only when required.
18
+ - Use the same sm, md, or lg size as adjacent button-like controls. Keep locale loading, routing, persistence, analytics, and every other effect in onValueChange at the application boundary.
19
+
20
+ ## Rules
21
+
22
+ - **MUST:** Use Select only for one predefined value and keep controlled value and open state aligned with their matching callbacks.
23
+ - **MUST:** Give Trigger a visible Field label or equivalent accessible name; placeholder and selected value are not the control name, and Trigger must retain combobox, expanded, controls, active-descendant, required, read-only, invalid, and disabled relationships.
24
+ - **MUST:** Give every Item a stable unique value and ItemText or label, keep interactive descendants out, and preserve that text for closed display, option naming, typeahead, and the hidden native select.
25
+ - **MUST:** Preserve Trigger-owned opening, Arrow/Home/End, typeahead, Enter/Space selection, Tab, Escape, disabled skipping, focus restoration, native select options and submission, required validity, external form association, and reset.
26
+ - **MUST:** Render Content or Listbox once, keep Arrow directly inside it, and keep scroll buttons outside the registered Viewport so Atom owns positioning, collision, dismissal, and overflow state.
27
+ - **MUST:** Keep translation loading, locale detection, persistence, navigation, analytics, and other effects in the application callback rather than inside Select.
28
+ - **MUST:** Load styles.css or core.css plus select.css and Field CSS when composed.
29
+
30
+ ## Common mistakes
31
+
32
+ - **Avoid:** Using placeholder or a selected code as the only name, omitting ItemText, rendering both popup owners, or rebuilding options as clickable rows. **Instead:** Name Trigger separately and preserve one Atom-owned popup with registered stable Items and ItemText.
33
+ - **Avoid:** Using Select for multiple or editable choice, commands, navigation rows, or hidden application state and effects. **Instead:** Choose MultiSelect, Combobox, DropdownMenu, or Link and connect legitimate value effects through onValueChange.
34
+
35
+ ## Validation checklist
36
+
37
+ - Verify Trigger naming and Field relationships, controlled and uncontrolled value and open state, placeholder and closed selected label, pointer/touch and keyboard opening, active descendant, Home/End, typeahead, selection, disabled Items, Tab, Escape, outside activation, and focus return.
38
+ - Verify hidden native options and submission, required inline/native validity, external form, reset, groups and labels, Viewport and scroll buttons, Portal and non-Portal paths, Arrow placement, direction, collision handling, and nested modal ownership.
39
+ - Verify all sizes, long localized labels, narrow widths, zoom, RTL, touch targets, light and dark appearance, forced colors, and alignment with adjacent button-like controls.
40
+
41
+ ## Related guidance
42
+
43
+ - `@flowstack-ui/atom/agents/select`
44
+ - `@flowstack-ui/atom/agents/listbox`
45
+ - `field`
46
+ - `form`
47
+ - `radio-group`
48
+ - `combobox`
49
+ - `multi-select`
50
+ - `dropdown-menu`
51
+ - `link`
@@ -29,6 +29,16 @@
29
29
  "level": "must",
30
30
  "statement": "Keep IDs, landmarks, form relationships, and focus order valid in every visible alternative."
31
31
  },
32
+ {
33
+ "id": "show-transparent-layout",
34
+ "level": "must",
35
+ "statement": "Rely on Show's layout-transparent visible state inside parent layouts and put paint or geometry on a child layout component."
36
+ },
37
+ {
38
+ "id": "show-default-props",
39
+ "level": "must",
40
+ "statement": "Omit default-valued props such as as=div; use as only for deliberate HTML semantics or valid document structure."
41
+ },
32
42
  {
33
43
  "id": "show-css",
34
44
  "level": "must",
@@ -36,6 +46,10 @@
36
46
  }
37
47
  ],
38
48
  "commonMistakes": [
49
+ {
50
+ "mistake": "Adding application CSS to repair Show spacing or writing as=div even though div is the default.",
51
+ "correction": "Rely on Show's layout-transparent default and specify as only when semantics require another host."
52
+ },
39
53
  {
40
54
  "mistake": "Forgetting show.css or rendering duplicate visible navigation because Show and Hide use the wrong thresholds.",
41
55
  "correction": "Load the modular CSS and verify exact breakpoint boundaries."
@@ -20,10 +20,13 @@ Show content only at selected Brick breakpoints through CSS, avoiding JavaScript
20
20
 
21
21
  - **MUST:** Use Show's CSS breakpoint contract rather than client viewport detection for responsive first paint.
22
22
  - **MUST:** Keep IDs, landmarks, form relationships, and focus order valid in every visible alternative.
23
+ - **MUST:** Rely on Show's layout-transparent visible state inside parent layouts and put paint or geometry on a child layout component.
24
+ - **MUST:** Omit default-valued props such as as=div; use as only for deliberate HTML semantics or valid document structure.
23
25
  - **MUST:** Load styles.css or core.css plus show.css.
24
26
 
25
27
  ## Common mistakes
26
28
 
29
+ - **Avoid:** Adding application CSS to repair Show spacing or writing as=div even though div is the default. **Instead:** Rely on Show's layout-transparent default and specify as only when semantics require another host.
27
30
  - **Avoid:** Forgetting show.css or rendering duplicate visible navigation because Show and Hide use the wrong thresholds. **Instead:** Load the modular CSS and verify exact breakpoint boundaries.
28
31
 
29
32
  ## Validation checklist
@@ -16,7 +16,8 @@
16
16
  }
17
17
  ],
18
18
  "composition": [
19
- "Compose Root with Trigger, Panel, and Main; place NavList and other Brick content inside Panel and keep one page-level main landmark."
19
+ "Compose Root with Trigger, Panel, and Main; place NavList and other Brick content inside Panel and keep one page-level main landmark.",
20
+ "When Panel content can exceed its constrained block size, place ScrollArea.Root and ScrollArea.Viewport inside Sidebar.Content; Sidebar.Content is a flexible region, not a scroll owner."
20
21
  ],
21
22
  "rules": [
22
23
  {
@@ -29,6 +30,16 @@
29
30
  "level": "must",
30
31
  "statement": "Avoid duplicate main landmarks when composing Sidebar.Main into an existing shell."
31
32
  },
33
+ {
34
+ "id": "sidebar-surface",
35
+ "level": "must",
36
+ "statement": "Choose panel paint with surface; use transparent when an ancestor Surface owns the shell background instead of overriding Sidebar background selectors."
37
+ },
38
+ {
39
+ "id": "sidebar-scroll-ownership",
40
+ "level": "must",
41
+ "statement": "Keep Sidebar.Content flexible and compose a bounded ScrollArea when long panel content must remain reachable; do not clip or assign ad hoc overflow to navigation children."
42
+ },
32
43
  {
33
44
  "id": "sidebar-css",
34
45
  "level": "must",
@@ -37,16 +48,18 @@
37
48
  ],
38
49
  "commonMistakes": [
39
50
  {
40
- "mistake": "Using Sidebar as a modal drawer or letting highlighted rail items overflow into Main.",
41
- "correction": "Use Drawer for modal use and validate Sidebar's expanded, rail, and offcanvas geometry."
51
+ "mistake": "Using Sidebar as a modal drawer, overriding panel background selectors, letting highlighted rail items overflow into Main, or assuming Sidebar.Content scrolls automatically.",
52
+ "correction": "Use Drawer for modal use, choose the public surface recipe, compose ScrollArea for bounded long content, and validate Sidebar's expanded, rail, and offcanvas geometry."
42
53
  }
43
54
  ],
44
55
  "validation": [
45
56
  "Check every state, both sides, current navigation item, long labels, icons, counts, trigger, focus, inert offcanvas state, zoom, narrow widths, and RTL.",
57
+ "When content can overflow, verify the composed ScrollArea reaches the first and last panel destinations without moving Sidebar.Main.",
46
58
  "Confirm landmark names and CSS delivery."
47
59
  ],
48
60
  "related": [
49
61
  "nav-list",
62
+ "scroll-area",
50
63
  "drawer",
51
64
  "app-bar",
52
65
  "container",
@@ -15,25 +15,30 @@ Provide a finished application-shell side region with expanded, rail, and offcan
15
15
  ## Required composition
16
16
 
17
17
  - Compose Root with Trigger, Panel, and Main; place NavList and other Brick content inside Panel and keep one page-level main landmark.
18
+ - When Panel content can exceed its constrained block size, place ScrollArea.Root and ScrollArea.Viewport inside Sidebar.Content; Sidebar.Content is a flexible region, not a scroll owner.
18
19
 
19
20
  ## Rules
20
21
 
21
22
  - **MUST:** Use Sidebar state and public layout hooks instead of manually translating a generic aside and overlapping its active items.
22
23
  - **MUST:** Avoid duplicate main landmarks when composing Sidebar.Main into an existing shell.
24
+ - **MUST:** Choose panel paint with surface; use transparent when an ancestor Surface owns the shell background instead of overriding Sidebar background selectors.
25
+ - **MUST:** Keep Sidebar.Content flexible and compose a bounded ScrollArea when long panel content must remain reachable; do not clip or assign ad hoc overflow to navigation children.
23
26
  - **MUST:** Load styles.css or core.css plus sidebar.css and every composed child stylesheet.
24
27
 
25
28
  ## Common mistakes
26
29
 
27
- - **Avoid:** Using Sidebar as a modal drawer or letting highlighted rail items overflow into Main. **Instead:** Use Drawer for modal use and validate Sidebar's expanded, rail, and offcanvas geometry.
30
+ - **Avoid:** Using Sidebar as a modal drawer, overriding panel background selectors, letting highlighted rail items overflow into Main, or assuming Sidebar.Content scrolls automatically. **Instead:** Use Drawer for modal use, choose the public surface recipe, compose ScrollArea for bounded long content, and validate Sidebar's expanded, rail, and offcanvas geometry.
28
31
 
29
32
  ## Validation checklist
30
33
 
31
34
  - Check every state, both sides, current navigation item, long labels, icons, counts, trigger, focus, inert offcanvas state, zoom, narrow widths, and RTL.
35
+ - When content can overflow, verify the composed ScrollArea reaches the first and last panel destinations without moving Sidebar.Main.
32
36
  - Confirm landmark names and CSS delivery.
33
37
 
34
38
  ## Related guidance
35
39
 
36
40
  - `nav-list`
41
+ - `scroll-area`
37
42
  - `drawer`
38
43
  - `app-bar`
39
44
  - `container`
@@ -0,0 +1,73 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "skeleton",
4
+ "name": "Skeleton",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Preserve expected content geometry during a short application-owned load without exposing placeholder content as meaningful UI.",
9
+ "useWhen": [
10
+ "The final geometry is known and a short loading operation would otherwise cause disruptive layout shift."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "Progress duration is known, the operation failed, or the layout is not yet predictable.",
15
+ "useInstead": "Progress, an error recovery state, or a stable generic loading message according to the state"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Match each Skeleton shape and dimension to the expected final content, mark the owning region busy, and keep any required application status copy outside the aria-hidden placeholder."
20
+ ],
21
+ "rules": [
22
+ {
23
+ "id": "skeleton-geometry",
24
+ "level": "must",
25
+ "statement": "Use supported shape, line, width, and height inputs to preserve the expected final geometry rather than decorating an arbitrary empty region."
26
+ },
27
+ {
28
+ "id": "skeleton-busy-owner",
29
+ "level": "must",
30
+ "statement": "Mark the owning region aria-busy while loading; Skeleton is aria-hidden and is not a status or live region."
31
+ },
32
+ {
33
+ "id": "skeleton-no-fake-content",
34
+ "level": "must",
35
+ "statement": "Do not place fake names, notifications, controls, or other meaningful placeholder content in the accessibility tree."
36
+ },
37
+ {
38
+ "id": "skeleton-appearance",
39
+ "level": "must",
40
+ "statement": "Keep the contextual default paint or another semantic Theme role visibly distinct from the actual containing surface in light and dark appearance."
41
+ },
42
+ {
43
+ "id": "skeleton-motion",
44
+ "level": "must",
45
+ "statement": "Preserve reduced-motion and forced-colors behavior and avoid application animation overrides."
46
+ },
47
+ {
48
+ "id": "skeleton-css",
49
+ "level": "must",
50
+ "statement": "Load styles.css or core.css plus skeleton.css."
51
+ }
52
+ ],
53
+ "commonMistakes": [
54
+ {
55
+ "mistake": "Using Skeleton as generic decoration or relying on its animation as the only loading announcement.",
56
+ "correction": "Use Skeleton only for known geometry, mark the owning region busy, and provide application-owned status text only when an announcement is actually required."
57
+ },
58
+ {
59
+ "mistake": "Selecting a semantic surface token that resolves to the same paint as the containing overlay in one appearance.",
60
+ "correction": "Keep the contextual primary-text tint or verify any semantic override against every containing surface in both appearances."
61
+ }
62
+ ],
63
+ "validation": [
64
+ "Check stable geometry before and after load, aria-hidden placeholder output, owning-region busy state, and absence of focusable fake content.",
65
+ "Check placeholder visibility on base, raised, and overlay surfaces across light/dark appearance, narrow widths, zoom, increased text size, reduced motion, and forced colors."
66
+ ],
67
+ "related": [
68
+ "progress",
69
+ "frame",
70
+ "stack",
71
+ "feed"
72
+ ]
73
+ }
@@ -0,0 +1,43 @@
1
+ # Skeleton agent guide
2
+
3
+ ## Purpose
4
+
5
+ Preserve expected content geometry during a short application-owned load without exposing placeholder content as meaningful UI.
6
+
7
+ ## Use when
8
+
9
+ - The final geometry is known and a short loading operation would otherwise cause disruptive layout shift.
10
+
11
+ ## Choose something else when
12
+
13
+ - Progress duration is known, the operation failed, or the layout is not yet predictable. Use Progress, an error recovery state, or a stable generic loading message according to the state.
14
+
15
+ ## Required composition
16
+
17
+ - Match each Skeleton shape and dimension to the expected final content, mark the owning region busy, and keep any required application status copy outside the aria-hidden placeholder.
18
+
19
+ ## Rules
20
+
21
+ - **MUST:** Use supported shape, line, width, and height inputs to preserve the expected final geometry rather than decorating an arbitrary empty region.
22
+ - **MUST:** Mark the owning region aria-busy while loading; Skeleton is aria-hidden and is not a status or live region.
23
+ - **MUST:** Do not place fake names, notifications, controls, or other meaningful placeholder content in the accessibility tree.
24
+ - **MUST:** Keep the contextual default paint or another semantic Theme role visibly distinct from the actual containing surface in light and dark appearance.
25
+ - **MUST:** Preserve reduced-motion and forced-colors behavior and avoid application animation overrides.
26
+ - **MUST:** Load styles.css or core.css plus skeleton.css.
27
+
28
+ ## Common mistakes
29
+
30
+ - **Avoid:** Using Skeleton as generic decoration or relying on its animation as the only loading announcement. **Instead:** Use Skeleton only for known geometry, mark the owning region busy, and provide application-owned status text only when an announcement is actually required.
31
+ - **Avoid:** Selecting a semantic surface token that resolves to the same paint as the containing overlay in one appearance. **Instead:** Keep the contextual primary-text tint or verify any semantic override against every containing surface in both appearances.
32
+
33
+ ## Validation checklist
34
+
35
+ - Check stable geometry before and after load, aria-hidden placeholder output, owning-region busy state, and absence of focusable fake content.
36
+ - Check placeholder visibility on base, raised, and overlay surfaces across light/dark appearance, narrow widths, zoom, increased text size, reduced motion, and forced colors.
37
+
38
+ ## Related guidance
39
+
40
+ - `progress`
41
+ - `frame`
42
+ - `stack`
43
+ - `feed`
@@ -0,0 +1,88 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "slider",
4
+ "name": "Slider",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Provide a styled approximate numeric single-value or range input while Atom owns pointer, touch, keyboard, form, and field behavior.",
9
+ "useWhen": [
10
+ "A person chooses an approximate value or bounded range and direct manipulation is more useful than exact text entry."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "Exact numeric entry, a small named choice set, or read-only completion is the real job.",
15
+ "useInstead": "NumberInput, Select, or Progress"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Compose Root > Track > Range plus one indexed Thumb for every value; place optional Marker parts in Track and optional ValueLabel inside its Thumb.",
20
+ "Use Slider as the sole control in one Field when a visible label, description, error, or required state is needed; otherwise name every standalone Thumb explicitly."
21
+ ],
22
+ "rules": [
23
+ {
24
+ "id": "slider-value-anatomy",
25
+ "level": "must",
26
+ "statement": "Render one indexed Thumb for every value and keep Marker inside Track and ValueLabel inside the owning Thumb."
27
+ },
28
+ {
29
+ "id": "slider-approximate-choice",
30
+ "level": "must",
31
+ "statement": "Use Slider only when approximate direct manipulation is appropriate; use NumberInput or Select when exact or named choices matter."
32
+ },
33
+ {
34
+ "id": "slider-accessible-name",
35
+ "level": "must",
36
+ "statement": "Provide one visible Field label for the complete Slider or a complete accessible name for every standalone Thumb."
37
+ },
38
+ {
39
+ "id": "slider-visible-output",
40
+ "level": "should",
41
+ "statement": "Use an external application-owned output when dense ranges or long localized values would collide with a thumb ValueLabel."
42
+ },
43
+ {
44
+ "id": "slider-change-commit",
45
+ "level": "must",
46
+ "statement": "Use onValueChange for live updates and onValueCommit for completed interactions; true pointer cancellation restores the pointer-down value without commit while lost capture commits the latest value."
47
+ },
48
+ {
49
+ "id": "slider-input-direction",
50
+ "level": "must",
51
+ "statement": "Preserve one active pointer session, non-slider-axis page scrolling, orientation-aware keys, and horizontal LTR and RTL pointer and Arrow behavior."
52
+ },
53
+ {
54
+ "id": "slider-track-inset",
55
+ "level": "should",
56
+ "statement": "Keep the default Track inset when a parent clips overflow; set the public Track-inset token to zero only when the surrounding composition preserves complete endpoint target and focus paint."
57
+ },
58
+ {
59
+ "id": "slider-css",
60
+ "level": "must",
61
+ "statement": "Load styles.css or core.css plus slider.css."
62
+ }
63
+ ],
64
+ "commonMistakes": [
65
+ {
66
+ "mistake": "Rendering a range with one Thumb, treating decorative markers as labels, or using Slider for a discrete named choice without explaining the values.",
67
+ "correction": "Match Thumbs to values, label the actual control, and choose Select or RadioGroup when names carry the meaning."
68
+ }
69
+ ],
70
+ "validation": [
71
+ "Check pointer, touch, keyboard, large steps, range bounds, controlled values, reset, disabled, read-only, invalid, and form submission.",
72
+ "Check horizontal and vertical orientation, RTL, narrow containment, complete 44px endpoint targets, any customized Track inset, zoom, reduced motion, forced colors, and label readability."
73
+ ],
74
+ "related": [
75
+ {
76
+ "kind": "package",
77
+ "package": "@flowstack-ui/atom",
78
+ "id": "slider",
79
+ "versionPolicy": "installed-exact"
80
+ },
81
+ "field",
82
+ "number-input",
83
+ "select",
84
+ "progress",
85
+ "rating",
86
+ "form"
87
+ ]
88
+ }
@@ -0,0 +1,48 @@
1
+ # Slider agent guide
2
+
3
+ ## Purpose
4
+
5
+ Provide a styled approximate numeric single-value or range input while Atom owns pointer, touch, keyboard, form, and field behavior.
6
+
7
+ ## Use when
8
+
9
+ - A person chooses an approximate value or bounded range and direct manipulation is more useful than exact text entry.
10
+
11
+ ## Choose something else when
12
+
13
+ - Exact numeric entry, a small named choice set, or read-only completion is the real job. Use NumberInput, Select, or Progress.
14
+
15
+ ## Required composition
16
+
17
+ - Compose Root > Track > Range plus one indexed Thumb for every value; place optional Marker parts in Track and optional ValueLabel inside its Thumb.
18
+ - Use Slider as the sole control in one Field when a visible label, description, error, or required state is needed; otherwise name every standalone Thumb explicitly.
19
+
20
+ ## Rules
21
+
22
+ - **MUST:** Render one indexed Thumb for every value and keep Marker inside Track and ValueLabel inside the owning Thumb.
23
+ - **MUST:** Use Slider only when approximate direct manipulation is appropriate; use NumberInput or Select when exact or named choices matter.
24
+ - **MUST:** Provide one visible Field label for the complete Slider or a complete accessible name for every standalone Thumb.
25
+ - **SHOULD:** Use an external application-owned output when dense ranges or long localized values would collide with a thumb ValueLabel.
26
+ - **MUST:** Use onValueChange for live updates and onValueCommit for completed interactions; true pointer cancellation restores the pointer-down value without commit while lost capture commits the latest value.
27
+ - **MUST:** Preserve one active pointer session, non-slider-axis page scrolling, orientation-aware keys, and horizontal LTR and RTL pointer and Arrow behavior.
28
+ - **SHOULD:** Keep the default Track inset when a parent clips overflow; set the public Track-inset token to zero only when the surrounding composition preserves complete endpoint target and focus paint.
29
+ - **MUST:** Load styles.css or core.css plus slider.css.
30
+
31
+ ## Common mistakes
32
+
33
+ - **Avoid:** Rendering a range with one Thumb, treating decorative markers as labels, or using Slider for a discrete named choice without explaining the values. **Instead:** Match Thumbs to values, label the actual control, and choose Select or RadioGroup when names carry the meaning.
34
+
35
+ ## Validation checklist
36
+
37
+ - Check pointer, touch, keyboard, large steps, range bounds, controlled values, reset, disabled, read-only, invalid, and form submission.
38
+ - Check horizontal and vertical orientation, RTL, narrow containment, complete 44px endpoint targets, any customized Track inset, zoom, reduced motion, forced colors, and label readability.
39
+
40
+ ## Related guidance
41
+
42
+ - `@flowstack-ui/atom/agents/slider`
43
+ - `field`
44
+ - `number-input`
45
+ - `select`
46
+ - `progress`
47
+ - `rating`
48
+ - `form`
@@ -21,9 +21,11 @@
21
21
  ],
22
22
  "composition": [
23
23
  "Choose VStack when the axis is always vertical, HStack when it is always horizontal, and Stack when the same content changes axis at a breakpoint.",
24
+ "Use as=\"ul\" or as=\"ol\" when the one-dimensional peers form a semantic list; Stack removes native list geometry while preserving the relationship.",
24
25
  "Use Stack.Item when one direct child must remain content-sized, fixed, or consume a proportional share.",
25
26
  "When the parent changes axis, review each Item flex recipe too; a proportional desktop column usually becomes content-sized in a mobile column.",
26
- "Keep the Item wrapper when equal outer tracks contain children with different padding or borders; use asChild only when the child's own box should participate in flex allocation."
27
+ "Keep the Item wrapper when equal outer tracks contain children with different padding or borders; use asChild only when the child's own box should participate in flex allocation.",
28
+ "When Stack.Item composes a control with asChild, rely on the control's own size recipe; Stack preserves its declared minimum block size while adding flex participation."
27
29
  ],
28
30
  "rules": [
29
31
  {
@@ -31,6 +33,16 @@
31
33
  "level": "must",
32
34
  "statement": "Use Stack for one primary layout axis and allow wrapping only when the resulting order remains clear."
33
35
  },
36
+ {
37
+ "id": "stack-gap-scale",
38
+ "level": "must",
39
+ "statement": "Use non-negative numeric spacing factors for ordinary gap and logical edge spacing; use an explicit CSS value only for a measured exception or application spacing token, and preserve legacy string tokens when maintaining existing geometry."
40
+ },
41
+ {
42
+ "id": "stack-semantic-list",
43
+ "level": "must",
44
+ "statement": "Use a semantic list host when Stack children form a real set; do not add consumer CSS to cancel native ul or ol margins or markers because Stack owns that host geometry."
45
+ },
34
46
  {
35
47
  "id": "stack-responsive-arrangement",
36
48
  "level": "must",
@@ -55,10 +67,16 @@
55
67
  {
56
68
  "mistake": "Writing grow/shrink CSS for ordinary columns.",
57
69
  "correction": "Use Stack.Item flex recipes."
70
+ },
71
+ {
72
+ "mistake": "Adding a local class only because the desired gap is outside the legacy zero-through-six token scale.",
73
+ "correction": "Use a numeric factor such as gap={8}, an explicit CSS length, or an application custom property through the supported spacing prop."
58
74
  }
59
75
  ],
60
76
  "validation": [
61
77
  "Check source and visual order at narrow widths and zoom.",
78
+ "Confirm numeric, explicit, and responsive spacing values create the intended computed geometry; reject negative, non-finite, and empty values.",
79
+ "For ul and ol hosts, confirm zero native margin, no visual marker, and preserved list semantics.",
62
80
  "Check every authored breakpoint, logical edge spacing, wrapping, alignment, and RTL behavior."
63
81
  ],
64
82
  "related": [
@@ -16,13 +16,17 @@ Arrange children on one primary axis with responsive direction, tokenized spacin
16
16
  ## Required composition
17
17
 
18
18
  - Choose VStack when the axis is always vertical, HStack when it is always horizontal, and Stack when the same content changes axis at a breakpoint.
19
+ - Use as="ul" or as="ol" when the one-dimensional peers form a semantic list; Stack removes native list geometry while preserving the relationship.
19
20
  - Use Stack.Item when one direct child must remain content-sized, fixed, or consume a proportional share.
20
21
  - When the parent changes axis, review each Item flex recipe too; a proportional desktop column usually becomes content-sized in a mobile column.
21
22
  - Keep the Item wrapper when equal outer tracks contain children with different padding or borders; use asChild only when the child's own box should participate in flex allocation.
23
+ - When Stack.Item composes a control with asChild, rely on the control's own size recipe; Stack preserves its declared minimum block size while adding flex participation.
22
24
 
23
25
  ## Rules
24
26
 
25
27
  - **MUST:** Use Stack for one primary layout axis and allow wrapping only when the resulting order remains clear.
28
+ - **MUST:** Use non-negative numeric spacing factors for ordinary gap and logical edge spacing; use an explicit CSS value only for a measured exception or application spacing token, and preserve legacy string tokens when maintaining existing geometry.
29
+ - **MUST:** Use a semantic list host when Stack children form a real set; do not add consumer CSS to cancel native ul or ol margins or markers because Stack owns that host geometry.
26
30
  - **MUST:** Use responsive Stack values for arrangement changes; use Show/Hide only when the actual interface changes.
27
31
  - **MUST:** Preserve reading and focus order; do not simulate reverse direction or visual ordering.
28
32
  - **MUST:** Load styles.css or core.css plus stack.css.
@@ -31,10 +35,13 @@ Arrange children on one primary axis with responsive direction, tokenized spacin
31
35
 
32
36
  - **Avoid:** Duplicating the same content through Show/Hide only to switch row and column. **Instead:** Use responsive Stack direction.
33
37
  - **Avoid:** Writing grow/shrink CSS for ordinary columns. **Instead:** Use Stack.Item flex recipes.
38
+ - **Avoid:** Adding a local class only because the desired gap is outside the legacy zero-through-six token scale. **Instead:** Use a numeric factor such as gap={8}, an explicit CSS length, or an application custom property through the supported spacing prop.
34
39
 
35
40
  ## Validation checklist
36
41
 
37
42
  - Check source and visual order at narrow widths and zoom.
43
+ - Confirm numeric, explicit, and responsive spacing values create the intended computed geometry; reject negative, non-finite, and empty values.
44
+ - For ul and ol hosts, confirm zero native margin, no visual marker, and preserved list semantics.
38
45
  - Check every authored breakpoint, logical edge spacing, wrapping, alignment, and RTL behavior.
39
46
 
40
47
  ## Related guidance