@flowstack-ui/brick 0.1.9 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (647) hide show
  1. package/README.md +9 -6
  2. package/dist/agents/accordion.json +8 -2
  3. package/dist/agents/accordion.md +3 -1
  4. package/dist/agents/alert-dialog.json +111 -0
  5. package/dist/agents/alert-dialog.md +53 -0
  6. package/dist/agents/app-bar.json +5 -4
  7. package/dist/agents/app-bar.md +4 -3
  8. package/dist/agents/aspect-ratio.json +80 -0
  9. package/dist/agents/aspect-ratio.md +45 -0
  10. package/dist/agents/avatar.json +92 -0
  11. package/dist/agents/avatar.md +49 -0
  12. package/dist/agents/badge.json +26 -8
  13. package/dist/agents/badge.md +11 -6
  14. package/dist/agents/bleed.json +54 -0
  15. package/dist/agents/bleed.md +39 -0
  16. package/dist/agents/blockquote.json +68 -0
  17. package/dist/agents/blockquote.md +42 -0
  18. package/dist/agents/button.json +7 -2
  19. package/dist/agents/button.md +1 -1
  20. package/dist/agents/card.json +21 -1
  21. package/dist/agents/card.md +7 -1
  22. package/dist/agents/checkbox-group.json +108 -0
  23. package/dist/agents/checkbox-group.md +56 -0
  24. package/dist/agents/checkbox.json +6 -1
  25. package/dist/agents/chip.json +73 -0
  26. package/dist/agents/chip.md +44 -0
  27. package/dist/agents/code-block.json +92 -0
  28. package/dist/agents/code-block.md +52 -0
  29. package/dist/agents/code.json +67 -0
  30. package/dist/agents/code.md +42 -0
  31. package/dist/agents/collapsible.json +34 -3
  32. package/dist/agents/collapsible.md +10 -3
  33. package/dist/agents/color-picker.json +78 -0
  34. package/dist/agents/color-picker.md +46 -0
  35. package/dist/agents/color-swatch.json +51 -0
  36. package/dist/agents/color-swatch.md +36 -0
  37. package/dist/agents/combobox.json +95 -0
  38. package/dist/agents/combobox.md +51 -0
  39. package/dist/agents/context-menu.json +109 -0
  40. package/dist/agents/context-menu.md +54 -0
  41. package/dist/agents/coverage.json +25591 -0
  42. package/dist/agents/data-grid.json +127 -0
  43. package/dist/agents/data-grid.md +61 -0
  44. package/dist/agents/data-list.json +63 -0
  45. package/dist/agents/data-list.md +41 -0
  46. package/dist/agents/dialog.json +112 -0
  47. package/dist/agents/dialog.md +53 -0
  48. package/dist/agents/dropdown-menu.json +112 -0
  49. package/dist/agents/dropdown-menu.md +56 -0
  50. package/dist/agents/em.json +57 -0
  51. package/dist/agents/em.md +39 -0
  52. package/dist/agents/feed.json +84 -0
  53. package/dist/agents/feed.md +48 -0
  54. package/dist/agents/field.json +6 -1
  55. package/dist/agents/fieldset.json +6 -1
  56. package/dist/agents/file-upload.json +93 -0
  57. package/dist/agents/file-upload.md +50 -0
  58. package/dist/agents/form.json +11 -2
  59. package/dist/agents/form.md +2 -1
  60. package/dist/agents/grid.json +18 -1
  61. package/dist/agents/grid.md +6 -0
  62. package/dist/agents/group.json +77 -0
  63. package/dist/agents/group.md +48 -0
  64. package/dist/agents/hide.json +14 -0
  65. package/dist/agents/hide.md +3 -0
  66. package/dist/agents/highlight.json +73 -0
  67. package/dist/agents/highlight.md +43 -0
  68. package/dist/agents/hover-card.json +94 -0
  69. package/dist/agents/hover-card.md +51 -0
  70. package/dist/agents/icon-button.json +23 -12
  71. package/dist/agents/icon-button.md +12 -8
  72. package/dist/agents/image.json +33 -7
  73. package/dist/agents/image.md +11 -4
  74. package/dist/agents/input.json +7 -2
  75. package/dist/agents/input.md +1 -1
  76. package/dist/agents/interface-composition.json +224 -18
  77. package/dist/agents/interface-composition.md +10 -0
  78. package/dist/agents/kbd.json +62 -0
  79. package/dist/agents/kbd.md +40 -0
  80. package/dist/agents/layer-selection.json +1294 -11
  81. package/dist/agents/layer-selection.md +94 -1
  82. package/dist/agents/link-box.json +97 -0
  83. package/dist/agents/link-box.md +53 -0
  84. package/dist/agents/link.json +34 -5
  85. package/dist/agents/link.md +12 -2
  86. package/dist/agents/list.json +1 -1
  87. package/dist/agents/list.md +1 -1
  88. package/dist/agents/manifest.json +327 -2
  89. package/dist/agents/mark.json +56 -0
  90. package/dist/agents/mark.md +38 -0
  91. package/dist/agents/menubar.json +109 -0
  92. package/dist/agents/menubar.md +54 -0
  93. package/dist/agents/multi-select.json +93 -0
  94. package/dist/agents/multi-select.md +49 -0
  95. package/dist/agents/nav-list.json +15 -5
  96. package/dist/agents/nav-list.md +6 -4
  97. package/dist/agents/notification-badge.json +88 -0
  98. package/dist/agents/notification-badge.md +49 -0
  99. package/dist/agents/number-input.json +89 -0
  100. package/dist/agents/number-input.md +50 -0
  101. package/dist/agents/otp-field.json +87 -0
  102. package/dist/agents/otp-field.md +48 -0
  103. package/dist/agents/pagination.json +26 -5
  104. package/dist/agents/pagination.md +11 -4
  105. package/dist/agents/password-toggle-field.json +87 -0
  106. package/dist/agents/password-toggle-field.md +48 -0
  107. package/dist/agents/popover.json +114 -0
  108. package/dist/agents/popover.md +56 -0
  109. package/dist/agents/progress-circle.json +85 -0
  110. package/dist/agents/progress-circle.md +46 -0
  111. package/dist/agents/progress.json +91 -0
  112. package/dist/agents/progress.md +48 -0
  113. package/dist/agents/prose.json +82 -0
  114. package/dist/agents/prose.md +50 -0
  115. package/dist/agents/radio-group.json +92 -0
  116. package/dist/agents/radio-group.md +49 -0
  117. package/dist/agents/rating.json +91 -0
  118. package/dist/agents/rating.md +49 -0
  119. package/dist/agents/reorderable-list.json +74 -0
  120. package/dist/agents/reorderable-list.md +45 -0
  121. package/dist/agents/segment-group.json +62 -0
  122. package/dist/agents/segment-group.md +43 -0
  123. package/dist/agents/select.json +95 -0
  124. package/dist/agents/select.md +51 -0
  125. package/dist/agents/show.json +14 -0
  126. package/dist/agents/show.md +3 -0
  127. package/dist/agents/sidebar.json +16 -3
  128. package/dist/agents/sidebar.md +6 -1
  129. package/dist/agents/skeleton.json +73 -0
  130. package/dist/agents/skeleton.md +43 -0
  131. package/dist/agents/slider.json +88 -0
  132. package/dist/agents/slider.md +48 -0
  133. package/dist/agents/stack.json +19 -1
  134. package/dist/agents/stack.md +7 -0
  135. package/dist/agents/status.json +59 -0
  136. package/dist/agents/status.md +40 -0
  137. package/dist/agents/surface.json +32 -3
  138. package/dist/agents/surface.md +9 -2
  139. package/dist/agents/swipeable-item.json +93 -0
  140. package/dist/agents/swipeable-item.md +50 -0
  141. package/dist/agents/switch.json +92 -0
  142. package/dist/agents/switch.md +49 -0
  143. package/dist/agents/table.json +113 -0
  144. package/dist/agents/table.md +59 -0
  145. package/dist/agents/tabs.json +9 -2
  146. package/dist/agents/tabs.md +4 -1
  147. package/dist/agents/text.json +23 -8
  148. package/dist/agents/text.md +10 -7
  149. package/dist/agents/textarea.json +6 -1
  150. package/dist/agents/toast.json +91 -0
  151. package/dist/agents/toast.md +48 -0
  152. package/dist/agents/toggle-group.json +89 -0
  153. package/dist/agents/toggle-group.md +49 -0
  154. package/dist/agents/toggle.json +82 -0
  155. package/dist/agents/toggle.md +47 -0
  156. package/dist/agents/toolbar.json +11 -1
  157. package/dist/agents/toolbar.md +3 -1
  158. package/dist/agents/tooltip.json +96 -0
  159. package/dist/agents/tooltip.md +49 -0
  160. package/dist/agents/tree-grid.json +98 -0
  161. package/dist/agents/tree-grid.md +51 -0
  162. package/dist/agents/tree.json +94 -0
  163. package/dist/agents/tree.md +51 -0
  164. package/dist/agents/visually-hidden.json +70 -0
  165. package/dist/agents/visually-hidden.md +42 -0
  166. package/dist/agents/z-stack.json +21 -1
  167. package/dist/agents/z-stack.md +5 -0
  168. package/dist/bleed.d.ts +2 -0
  169. package/dist/bleed.d.ts.map +1 -0
  170. package/dist/bleed.js +2 -0
  171. package/dist/bleed.js.map +1 -0
  172. package/dist/blockquote.d.ts +2 -0
  173. package/dist/blockquote.d.ts.map +1 -0
  174. package/dist/blockquote.js +2 -0
  175. package/dist/blockquote.js.map +1 -0
  176. package/dist/color-picker.d.ts +2 -0
  177. package/dist/color-picker.d.ts.map +1 -0
  178. package/dist/color-picker.js +2 -0
  179. package/dist/color-picker.js.map +1 -0
  180. package/dist/color-swatch.d.ts +2 -0
  181. package/dist/color-swatch.d.ts.map +1 -0
  182. package/dist/color-swatch.js +2 -0
  183. package/dist/color-swatch.js.map +1 -0
  184. package/dist/components/_responsive-value/ResponsiveValue.d.ts.map +1 -1
  185. package/dist/components/_responsive-value/ResponsiveValue.js +3 -1
  186. package/dist/components/_responsive-value/ResponsiveValue.js.map +1 -1
  187. package/dist/components/_spacing-value/SpacingValue.d.ts +8 -0
  188. package/dist/components/_spacing-value/SpacingValue.d.ts.map +1 -0
  189. package/dist/components/_spacing-value/SpacingValue.js +46 -0
  190. package/dist/components/_spacing-value/SpacingValue.js.map +1 -0
  191. package/dist/components/accordion/Accordion.js +1 -1
  192. package/dist/components/app-bar/AppBar.d.ts +7 -3
  193. package/dist/components/app-bar/AppBar.d.ts.map +1 -1
  194. package/dist/components/app-bar/AppBar.js +2 -2
  195. package/dist/components/app-bar/AppBar.js.map +1 -1
  196. package/dist/components/app-bar/index.d.ts +1 -1
  197. package/dist/components/app-bar/index.d.ts.map +1 -1
  198. package/dist/components/app-bar/index.js.map +1 -1
  199. package/dist/components/avatar/Avatar.d.ts +1 -1
  200. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  201. package/dist/components/avatar/Avatar.js.map +1 -1
  202. package/dist/components/badge/Badge.d.ts +2 -2
  203. package/dist/components/badge/Badge.d.ts.map +1 -1
  204. package/dist/components/bleed/Bleed.d.ts +28 -0
  205. package/dist/components/bleed/Bleed.d.ts.map +1 -0
  206. package/dist/components/bleed/Bleed.js +92 -0
  207. package/dist/components/bleed/Bleed.js.map +1 -0
  208. package/dist/components/bleed/index.d.ts +2 -0
  209. package/dist/components/bleed/index.d.ts.map +1 -0
  210. package/dist/components/bleed/index.js +2 -0
  211. package/dist/components/bleed/index.js.map +1 -0
  212. package/dist/components/blockquote/Blockquote.d.ts +33 -0
  213. package/dist/components/blockquote/Blockquote.d.ts.map +1 -0
  214. package/dist/components/blockquote/Blockquote.js +36 -0
  215. package/dist/components/blockquote/Blockquote.js.map +1 -0
  216. package/dist/components/blockquote/index.d.ts +2 -0
  217. package/dist/components/blockquote/index.d.ts.map +1 -0
  218. package/dist/components/blockquote/index.js +2 -0
  219. package/dist/components/blockquote/index.js.map +1 -0
  220. package/dist/components/code-block/CodeBlock.d.ts +33 -0
  221. package/dist/components/code-block/CodeBlock.d.ts.map +1 -1
  222. package/dist/components/code-block/CodeBlock.js +60 -6
  223. package/dist/components/code-block/CodeBlock.js.map +1 -1
  224. package/dist/components/code-block/context.d.ts +2 -0
  225. package/dist/components/code-block/context.d.ts.map +1 -1
  226. package/dist/components/code-block/context.js.map +1 -1
  227. package/dist/components/code-block/index.d.ts +1 -1
  228. package/dist/components/code-block/index.d.ts.map +1 -1
  229. package/dist/components/code-block/index.js +1 -1
  230. package/dist/components/code-block/index.js.map +1 -1
  231. package/dist/components/collapsible/Collapsible.d.ts +9 -3
  232. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  233. package/dist/components/collapsible/Collapsible.js +3 -3
  234. package/dist/components/collapsible/Collapsible.js.map +1 -1
  235. package/dist/components/color-picker/ColorPicker.d.ts +42 -0
  236. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -0
  237. package/dist/components/color-picker/ColorPicker.js +52 -0
  238. package/dist/components/color-picker/ColorPicker.js.map +1 -0
  239. package/dist/components/color-picker/index.d.ts +2 -0
  240. package/dist/components/color-picker/index.d.ts.map +1 -0
  241. package/dist/components/color-picker/index.js +2 -0
  242. package/dist/components/color-picker/index.js.map +1 -0
  243. package/dist/components/color-swatch/ColorSwatch.d.ts +21 -0
  244. package/dist/components/color-swatch/ColorSwatch.d.ts.map +1 -0
  245. package/dist/components/color-swatch/ColorSwatch.js +25 -0
  246. package/dist/components/color-swatch/ColorSwatch.js.map +1 -0
  247. package/dist/components/color-swatch/index.d.ts +2 -0
  248. package/dist/components/color-swatch/index.d.ts.map +1 -0
  249. package/dist/components/color-swatch/index.js +2 -0
  250. package/dist/components/color-swatch/index.js.map +1 -0
  251. package/dist/components/data-list/DataList.d.ts +48 -0
  252. package/dist/components/data-list/DataList.d.ts.map +1 -0
  253. package/dist/components/data-list/DataList.js +31 -0
  254. package/dist/components/data-list/DataList.js.map +1 -0
  255. package/dist/components/data-list/index.d.ts +2 -0
  256. package/dist/components/data-list/index.d.ts.map +1 -0
  257. package/dist/components/data-list/index.js +2 -0
  258. package/dist/components/data-list/index.js.map +1 -0
  259. package/dist/components/em/Em.d.ts +9 -0
  260. package/dist/components/em/Em.d.ts.map +1 -0
  261. package/dist/components/em/Em.js +10 -0
  262. package/dist/components/em/Em.js.map +1 -0
  263. package/dist/components/em/index.d.ts +2 -0
  264. package/dist/components/em/index.d.ts.map +1 -0
  265. package/dist/components/em/index.js +2 -0
  266. package/dist/components/em/index.js.map +1 -0
  267. package/dist/components/feed/Feed.d.ts +2 -0
  268. package/dist/components/feed/Feed.d.ts.map +1 -1
  269. package/dist/components/feed/Feed.js +2 -2
  270. package/dist/components/feed/Feed.js.map +1 -1
  271. package/dist/components/feed/index.d.ts +1 -1
  272. package/dist/components/feed/index.d.ts.map +1 -1
  273. package/dist/components/grid/Grid.d.ts +3 -1
  274. package/dist/components/grid/Grid.d.ts.map +1 -1
  275. package/dist/components/grid/Grid.js +11 -1
  276. package/dist/components/grid/Grid.js.map +1 -1
  277. package/dist/components/grid/index.d.ts +1 -1
  278. package/dist/components/grid/index.d.ts.map +1 -1
  279. package/dist/components/grid/index.js.map +1 -1
  280. package/dist/components/group/Group.d.ts +19 -0
  281. package/dist/components/group/Group.d.ts.map +1 -0
  282. package/dist/components/group/Group.js +23 -0
  283. package/dist/components/group/Group.js.map +1 -0
  284. package/dist/components/group/index.d.ts +2 -0
  285. package/dist/components/group/index.d.ts.map +1 -0
  286. package/dist/components/group/index.js +2 -0
  287. package/dist/components/group/index.js.map +1 -0
  288. package/dist/components/highlight/Highlight.d.ts +9 -0
  289. package/dist/components/highlight/Highlight.d.ts.map +1 -0
  290. package/dist/components/highlight/Highlight.js +10 -0
  291. package/dist/components/highlight/Highlight.js.map +1 -0
  292. package/dist/components/highlight/index.d.ts +2 -0
  293. package/dist/components/highlight/index.d.ts.map +1 -0
  294. package/dist/components/highlight/index.js +2 -0
  295. package/dist/components/highlight/index.js.map +1 -0
  296. package/dist/components/kbd/Kbd.d.ts +13 -0
  297. package/dist/components/kbd/Kbd.d.ts.map +1 -0
  298. package/dist/components/kbd/Kbd.js +8 -0
  299. package/dist/components/kbd/Kbd.js.map +1 -0
  300. package/dist/components/kbd/index.d.ts +2 -0
  301. package/dist/components/kbd/index.d.ts.map +1 -0
  302. package/dist/components/kbd/index.js +2 -0
  303. package/dist/components/kbd/index.js.map +1 -0
  304. package/dist/components/link/Link.d.ts +1 -1
  305. package/dist/components/link/Link.d.ts.map +1 -1
  306. package/dist/components/link/Link.js +1 -1
  307. package/dist/components/link/Link.js.map +1 -1
  308. package/dist/components/link-box/LinkBox.d.ts +22 -0
  309. package/dist/components/link-box/LinkBox.d.ts.map +1 -0
  310. package/dist/components/link-box/LinkBox.js +30 -0
  311. package/dist/components/link-box/LinkBox.js.map +1 -0
  312. package/dist/components/link-box/index.d.ts +2 -0
  313. package/dist/components/link-box/index.d.ts.map +1 -0
  314. package/dist/components/link-box/index.js +2 -0
  315. package/dist/components/link-box/index.js.map +1 -0
  316. package/dist/components/mark/Mark.d.ts +13 -0
  317. package/dist/components/mark/Mark.d.ts.map +1 -0
  318. package/dist/components/mark/Mark.js +8 -0
  319. package/dist/components/mark/Mark.js.map +1 -0
  320. package/dist/components/mark/index.d.ts +2 -0
  321. package/dist/components/mark/index.d.ts.map +1 -0
  322. package/dist/components/mark/index.js +2 -0
  323. package/dist/components/mark/index.js.map +1 -0
  324. package/dist/components/nav-list/NavList.d.ts +15 -2
  325. package/dist/components/nav-list/NavList.d.ts.map +1 -1
  326. package/dist/components/nav-list/NavList.js +4 -3
  327. package/dist/components/nav-list/NavList.js.map +1 -1
  328. package/dist/components/pagination/Pagination.d.ts +9 -6
  329. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  330. package/dist/components/pagination/Pagination.js +2 -2
  331. package/dist/components/pagination/Pagination.js.map +1 -1
  332. package/dist/components/pagination/index.d.ts +1 -1
  333. package/dist/components/pagination/index.d.ts.map +1 -1
  334. package/dist/components/pagination/index.js.map +1 -1
  335. package/dist/components/popover/Popover.d.ts +3 -0
  336. package/dist/components/popover/Popover.d.ts.map +1 -1
  337. package/dist/components/popover/Popover.js +2 -2
  338. package/dist/components/popover/Popover.js.map +1 -1
  339. package/dist/components/popover/index.d.ts +1 -1
  340. package/dist/components/popover/index.d.ts.map +1 -1
  341. package/dist/components/popover/index.js.map +1 -1
  342. package/dist/components/prose/Prose.d.ts +12 -0
  343. package/dist/components/prose/Prose.d.ts.map +1 -0
  344. package/dist/components/prose/Prose.js +19 -0
  345. package/dist/components/prose/Prose.js.map +1 -0
  346. package/dist/components/prose/index.d.ts +2 -0
  347. package/dist/components/prose/index.d.ts.map +1 -0
  348. package/dist/components/prose/index.js +2 -0
  349. package/dist/components/prose/index.js.map +1 -0
  350. package/dist/components/rating/Rating.d.ts +37 -1
  351. package/dist/components/rating/Rating.d.ts.map +1 -1
  352. package/dist/components/rating/Rating.js +25 -2
  353. package/dist/components/rating/Rating.js.map +1 -1
  354. package/dist/components/rating/index.d.ts +1 -1
  355. package/dist/components/rating/index.d.ts.map +1 -1
  356. package/dist/components/rating/index.js +1 -1
  357. package/dist/components/rating/index.js.map +1 -1
  358. package/dist/components/reorderable-list/ReorderableList.d.ts +89 -0
  359. package/dist/components/reorderable-list/ReorderableList.d.ts.map +1 -0
  360. package/dist/components/reorderable-list/ReorderableList.js +54 -0
  361. package/dist/components/reorderable-list/ReorderableList.js.map +1 -0
  362. package/dist/components/reorderable-list/index.d.ts +2 -0
  363. package/dist/components/reorderable-list/index.d.ts.map +1 -0
  364. package/dist/components/reorderable-list/index.js +2 -0
  365. package/dist/components/reorderable-list/index.js.map +1 -0
  366. package/dist/components/segment-group/SegmentGroup.d.ts +30 -0
  367. package/dist/components/segment-group/SegmentGroup.d.ts.map +1 -0
  368. package/dist/components/segment-group/SegmentGroup.js +67 -0
  369. package/dist/components/segment-group/SegmentGroup.js.map +1 -0
  370. package/dist/components/segment-group/index.d.ts +2 -0
  371. package/dist/components/segment-group/index.d.ts.map +1 -0
  372. package/dist/components/segment-group/index.js +2 -0
  373. package/dist/components/segment-group/index.js.map +1 -0
  374. package/dist/components/show/Show.d.ts.map +1 -1
  375. package/dist/components/show/Show.js +7 -1
  376. package/dist/components/show/Show.js.map +1 -1
  377. package/dist/components/sidebar/Sidebar.d.ts +4 -0
  378. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  379. package/dist/components/sidebar/Sidebar.js +3 -2
  380. package/dist/components/sidebar/Sidebar.js.map +1 -1
  381. package/dist/components/slider/Slider.d.ts.map +1 -1
  382. package/dist/components/slider/Slider.js +3 -1
  383. package/dist/components/slider/Slider.js.map +1 -1
  384. package/dist/components/stack/Stack.d.ts +3 -1
  385. package/dist/components/stack/Stack.d.ts.map +1 -1
  386. package/dist/components/stack/Stack.js +9 -1
  387. package/dist/components/stack/Stack.js.map +1 -1
  388. package/dist/components/stack/index.d.ts +1 -1
  389. package/dist/components/stack/index.d.ts.map +1 -1
  390. package/dist/components/stack/index.js.map +1 -1
  391. package/dist/components/status/Status.d.ts +22 -0
  392. package/dist/components/status/Status.d.ts.map +1 -0
  393. package/dist/components/status/Status.js +23 -0
  394. package/dist/components/status/Status.js.map +1 -0
  395. package/dist/components/status/index.d.ts +2 -0
  396. package/dist/components/status/index.d.ts.map +1 -0
  397. package/dist/components/status/index.js +2 -0
  398. package/dist/components/status/index.js.map +1 -0
  399. package/dist/components/surface/Surface.d.ts +5 -2
  400. package/dist/components/surface/Surface.d.ts.map +1 -1
  401. package/dist/components/surface/Surface.js +4 -2
  402. package/dist/components/surface/Surface.js.map +1 -1
  403. package/dist/components/surface/index.d.ts +1 -1
  404. package/dist/components/surface/index.d.ts.map +1 -1
  405. package/dist/components/surface/index.js.map +1 -1
  406. package/dist/components/text/Text.d.ts +25 -4
  407. package/dist/components/text/Text.d.ts.map +1 -1
  408. package/dist/components/text/Text.js +22 -3
  409. package/dist/components/text/Text.js.map +1 -1
  410. package/dist/components/text/index.d.ts +1 -1
  411. package/dist/components/text/index.d.ts.map +1 -1
  412. package/dist/components/text/index.js +1 -1
  413. package/dist/components/text/index.js.map +1 -1
  414. package/dist/components/toggle/Toggle.d.ts +5 -0
  415. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  416. package/dist/components/toggle/Toggle.js +2 -2
  417. package/dist/components/toggle/Toggle.js.map +1 -1
  418. package/dist/components/toggle/index.d.ts +1 -1
  419. package/dist/components/toggle/index.d.ts.map +1 -1
  420. package/dist/components/toggle/index.js.map +1 -1
  421. package/dist/components/toggle-group/ToggleGroup.d.ts +3 -1
  422. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  423. package/dist/components/toggle-group/ToggleGroup.js +2 -1
  424. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  425. package/dist/components/toolbar/Toolbar.d.ts +9 -2
  426. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  427. package/dist/components/toolbar/Toolbar.js +2 -2
  428. package/dist/components/toolbar/Toolbar.js.map +1 -1
  429. package/dist/components/toolbar/index.d.ts +1 -1
  430. package/dist/components/toolbar/index.d.ts.map +1 -1
  431. package/dist/components/z-stack/ZStack.d.ts +7 -0
  432. package/dist/components/z-stack/ZStack.d.ts.map +1 -1
  433. package/dist/components/z-stack/ZStack.js +14 -3
  434. package/dist/components/z-stack/ZStack.js.map +1 -1
  435. package/dist/components/z-stack/index.d.ts +1 -1
  436. package/dist/components/z-stack/index.d.ts.map +1 -1
  437. package/dist/components/z-stack/index.js.map +1 -1
  438. package/dist/data-list.d.ts +2 -0
  439. package/dist/data-list.d.ts.map +1 -0
  440. package/dist/data-list.js +2 -0
  441. package/dist/data-list.js.map +1 -0
  442. package/dist/em.d.ts +2 -0
  443. package/dist/em.d.ts.map +1 -0
  444. package/dist/em.js +2 -0
  445. package/dist/em.js.map +1 -0
  446. package/dist/feed.d.ts +1 -1
  447. package/dist/feed.d.ts.map +1 -1
  448. package/dist/grid.d.ts +1 -1
  449. package/dist/grid.d.ts.map +1 -1
  450. package/dist/grid.js.map +1 -1
  451. package/dist/group.d.ts +2 -0
  452. package/dist/group.d.ts.map +1 -0
  453. package/dist/group.js +2 -0
  454. package/dist/group.js.map +1 -0
  455. package/dist/highlight.d.ts +2 -0
  456. package/dist/highlight.d.ts.map +1 -0
  457. package/dist/highlight.js +2 -0
  458. package/dist/highlight.js.map +1 -0
  459. package/dist/index.d.ts +25 -9
  460. package/dist/index.d.ts.map +1 -1
  461. package/dist/index.js +17 -2
  462. package/dist/index.js.map +1 -1
  463. package/dist/kbd.d.ts +2 -0
  464. package/dist/kbd.d.ts.map +1 -0
  465. package/dist/kbd.js +2 -0
  466. package/dist/kbd.js.map +1 -0
  467. package/dist/link-box.d.ts +2 -0
  468. package/dist/link-box.d.ts.map +1 -0
  469. package/dist/link-box.js +2 -0
  470. package/dist/link-box.js.map +1 -0
  471. package/dist/mark.d.ts +2 -0
  472. package/dist/mark.d.ts.map +1 -0
  473. package/dist/mark.js +2 -0
  474. package/dist/mark.js.map +1 -0
  475. package/dist/prose.d.ts +2 -0
  476. package/dist/prose.d.ts.map +1 -0
  477. package/dist/prose.js +2 -0
  478. package/dist/prose.js.map +1 -0
  479. package/dist/reorderable-list.d.ts +2 -0
  480. package/dist/reorderable-list.d.ts.map +1 -0
  481. package/dist/reorderable-list.js +2 -0
  482. package/dist/reorderable-list.js.map +1 -0
  483. package/dist/reset.css +1 -1
  484. package/dist/reset.css.map +1 -1
  485. package/dist/segment-group.d.ts +2 -0
  486. package/dist/segment-group.d.ts.map +1 -0
  487. package/dist/segment-group.js +2 -0
  488. package/dist/segment-group.js.map +1 -0
  489. package/dist/stack.d.ts +1 -1
  490. package/dist/stack.d.ts.map +1 -1
  491. package/dist/stack.js.map +1 -1
  492. package/dist/status.d.ts +2 -0
  493. package/dist/status.d.ts.map +1 -0
  494. package/dist/status.js +2 -0
  495. package/dist/status.js.map +1 -0
  496. package/dist/styles/accordion.css +1 -1
  497. package/dist/styles/accordion.css.map +1 -1
  498. package/dist/styles/alert-dialog.css +1 -1
  499. package/dist/styles/alert-dialog.css.map +1 -1
  500. package/dist/styles/app-bar.css +1 -1
  501. package/dist/styles/app-bar.css.map +1 -1
  502. package/dist/styles/avatar.css +1 -1
  503. package/dist/styles/avatar.css.map +1 -1
  504. package/dist/styles/badge.css +1 -1
  505. package/dist/styles/badge.css.map +1 -1
  506. package/dist/styles/bleed.css +2 -0
  507. package/dist/styles/bleed.css.map +1 -0
  508. package/dist/styles/blockquote.css +2 -0
  509. package/dist/styles/blockquote.css.map +1 -0
  510. package/dist/styles/bottom-navigation.css +1 -1
  511. package/dist/styles/bottom-navigation.css.map +1 -1
  512. package/dist/styles/button.css +1 -1
  513. package/dist/styles/button.css.map +1 -1
  514. package/dist/styles/card.css +1 -1
  515. package/dist/styles/card.css.map +1 -1
  516. package/dist/styles/checkbox-group.css +1 -1
  517. package/dist/styles/checkbox-group.css.map +1 -1
  518. package/dist/styles/checkbox.css +1 -1
  519. package/dist/styles/checkbox.css.map +1 -1
  520. package/dist/styles/code-block.css +1 -1
  521. package/dist/styles/code-block.css.map +1 -1
  522. package/dist/styles/collapsible.css +1 -1
  523. package/dist/styles/collapsible.css.map +1 -1
  524. package/dist/styles/color-picker.css +2 -0
  525. package/dist/styles/color-picker.css.map +1 -0
  526. package/dist/styles/color-swatch.css +2 -0
  527. package/dist/styles/color-swatch.css.map +1 -0
  528. package/dist/styles/combobox.css +1 -1
  529. package/dist/styles/combobox.css.map +1 -1
  530. package/dist/styles/context-menu.css +1 -1
  531. package/dist/styles/context-menu.css.map +1 -1
  532. package/dist/styles/core.css +1 -1
  533. package/dist/styles/core.css.map +1 -1
  534. package/dist/styles/data-grid.css +1 -1
  535. package/dist/styles/data-grid.css.map +1 -1
  536. package/dist/styles/data-list.css +2 -0
  537. package/dist/styles/data-list.css.map +1 -0
  538. package/dist/styles/dialog.css +1 -1
  539. package/dist/styles/dialog.css.map +1 -1
  540. package/dist/styles/divider.css +1 -1
  541. package/dist/styles/divider.css.map +1 -1
  542. package/dist/styles/drawer.css +1 -1
  543. package/dist/styles/drawer.css.map +1 -1
  544. package/dist/styles/dropdown-menu.css +1 -1
  545. package/dist/styles/dropdown-menu.css.map +1 -1
  546. package/dist/styles/em.css +2 -0
  547. package/dist/styles/em.css.map +1 -0
  548. package/dist/styles/feed.css +1 -1
  549. package/dist/styles/feed.css.map +1 -1
  550. package/dist/styles/grid.css +1 -1
  551. package/dist/styles/grid.css.map +1 -1
  552. package/dist/styles/group.css +2 -0
  553. package/dist/styles/group.css.map +1 -0
  554. package/dist/styles/hide.css +1 -1
  555. package/dist/styles/hide.css.map +1 -1
  556. package/dist/styles/highlight.css +2 -0
  557. package/dist/styles/highlight.css.map +1 -0
  558. package/dist/styles/icon-button.css +1 -1
  559. package/dist/styles/icon-button.css.map +1 -1
  560. package/dist/styles/input.css +1 -1
  561. package/dist/styles/input.css.map +1 -1
  562. package/dist/styles/kbd.css +2 -0
  563. package/dist/styles/kbd.css.map +1 -0
  564. package/dist/styles/link-box.css +2 -0
  565. package/dist/styles/link-box.css.map +1 -0
  566. package/dist/styles/link.css +1 -1
  567. package/dist/styles/link.css.map +1 -1
  568. package/dist/styles/list.css +1 -1
  569. package/dist/styles/list.css.map +1 -1
  570. package/dist/styles/mark.css +2 -0
  571. package/dist/styles/mark.css.map +1 -0
  572. package/dist/styles/menubar.css +1 -1
  573. package/dist/styles/menubar.css.map +1 -1
  574. package/dist/styles/multi-select.css +1 -1
  575. package/dist/styles/multi-select.css.map +1 -1
  576. package/dist/styles/nav-list.css +1 -1
  577. package/dist/styles/nav-list.css.map +1 -1
  578. package/dist/styles/navigation-menu.css +1 -1
  579. package/dist/styles/navigation-menu.css.map +1 -1
  580. package/dist/styles/pagination.css +1 -1
  581. package/dist/styles/pagination.css.map +1 -1
  582. package/dist/styles/password-toggle-field.css +1 -1
  583. package/dist/styles/password-toggle-field.css.map +1 -1
  584. package/dist/styles/popover.css +1 -1
  585. package/dist/styles/popover.css.map +1 -1
  586. package/dist/styles/prose.css +2 -0
  587. package/dist/styles/prose.css.map +1 -0
  588. package/dist/styles/rating.css +1 -1
  589. package/dist/styles/rating.css.map +1 -1
  590. package/dist/styles/reorderable-list.css +2 -0
  591. package/dist/styles/reorderable-list.css.map +1 -0
  592. package/dist/styles/segment-group.css +2 -0
  593. package/dist/styles/segment-group.css.map +1 -0
  594. package/dist/styles/select.css +1 -1
  595. package/dist/styles/select.css.map +1 -1
  596. package/dist/styles/show.css +1 -1
  597. package/dist/styles/show.css.map +1 -1
  598. package/dist/styles/sidebar.css +1 -1
  599. package/dist/styles/sidebar.css.map +1 -1
  600. package/dist/styles/skeleton.css +1 -1
  601. package/dist/styles/skeleton.css.map +1 -1
  602. package/dist/styles/slider.css +1 -1
  603. package/dist/styles/slider.css.map +1 -1
  604. package/dist/styles/stack.css +1 -1
  605. package/dist/styles/stack.css.map +1 -1
  606. package/dist/styles/status.css +2 -0
  607. package/dist/styles/status.css.map +1 -0
  608. package/dist/styles/surface.css +1 -1
  609. package/dist/styles/surface.css.map +1 -1
  610. package/dist/styles/table.css +1 -1
  611. package/dist/styles/table.css.map +1 -1
  612. package/dist/styles/tabs.css +1 -1
  613. package/dist/styles/tabs.css.map +1 -1
  614. package/dist/styles/text.css +1 -1
  615. package/dist/styles/text.css.map +1 -1
  616. package/dist/styles/toggle-group.css +1 -1
  617. package/dist/styles/toggle-group.css.map +1 -1
  618. package/dist/styles/toggle.css +1 -1
  619. package/dist/styles/toggle.css.map +1 -1
  620. package/dist/styles/toolbar.css +1 -1
  621. package/dist/styles/toolbar.css.map +1 -1
  622. package/dist/styles/z-stack.css +1 -1
  623. package/dist/styles/z-stack.css.map +1 -1
  624. package/dist/styles.css +1 -1
  625. package/dist/styles.css.map +1 -1
  626. package/dist/surface.d.ts +1 -1
  627. package/dist/surface.d.ts.map +1 -1
  628. package/dist/surface.js.map +1 -1
  629. package/dist/text.d.ts +1 -1
  630. package/dist/text.d.ts.map +1 -1
  631. package/dist/text.js +1 -1
  632. package/dist/text.js.map +1 -1
  633. package/dist/theme-contract.json +10519 -6018
  634. package/dist/toggle.d.ts +1 -1
  635. package/dist/toggle.d.ts.map +1 -1
  636. package/dist/toggle.js.map +1 -1
  637. package/dist/tokens.css +1 -1
  638. package/dist/tokens.css.map +1 -1
  639. package/dist/toolbar.d.ts +1 -1
  640. package/dist/toolbar.d.ts.map +1 -1
  641. package/docs/guides/agent-knowledge.md +19 -0
  642. package/docs/guides/appearance-and-tokens.md +5 -0
  643. package/docs/guides/browser-support.md +21 -0
  644. package/docs/guides/control-sizing.md +55 -0
  645. package/docs/guides/installation.md +5 -2
  646. package/docs/guides/theme-contract.md +26 -12
  647. package/package.json +79 -7
@@ -0,0 +1,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
@@ -0,0 +1,59 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "status",
4
+ "name": "Status",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Present a compact passive state with a semantic indicator and readable label, or a decorative indicator beside text that already carries the state.",
9
+ "useWhen": [
10
+ "A process, entity, availability, health, or review state needs a dot-plus-label presentation."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "The content is a category, accolade, count, progress value, consequential message, or avatar-only presence ring.",
15
+ "useInstead": "Badge, NotificationBadge, Progress, Alert, or Avatar status"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Compose Root with one decorative Indicator and one visible Label by default. Omit Label only when adjacent visible or visually hidden text already carries the complete state and the indicator-only Root is aria-hidden."
20
+ ],
21
+ "rules": [
22
+ {
23
+ "id": "status-visible-label",
24
+ "level": "must",
25
+ "statement": "Always provide state text. Render it through Label by default; indicator-only composition is allowed only when adjacent visible or visually hidden text already carries the complete meaning and the Root is decorative."
26
+ },
27
+ {
28
+ "id": "status-semantic-tone",
29
+ "level": "must",
30
+ "statement": "Choose success, warning, danger, info, accent, or neutral from the state meaning, not from decorative preference."
31
+ },
32
+ {
33
+ "id": "status-live-region",
34
+ "level": "must",
35
+ "statement": "Do not assume Status announces changes; author role=status or live-region attributes only when the application owns and validates that announcement policy."
36
+ },
37
+ {
38
+ "id": "status-css",
39
+ "level": "must",
40
+ "statement": "Load styles.css or core.css plus status.css."
41
+ }
42
+ ],
43
+ "commonMistakes": [
44
+ {
45
+ "mistake": "Using success for a Call button, warning for a gold accolade, or Badge merely to draw a status dot.",
46
+ "correction": "Use action hierarchy for operations, accent/neutral Badge for accolades, and Status for actual dot-plus-label state."
47
+ }
48
+ ],
49
+ "validation": [
50
+ "Check visible state text, semantic tone, decorative indicator, primary label color, light/dark, forced colors, zoom, RTL, and deliberate live-region ownership."
51
+ ],
52
+ "related": [
53
+ "badge",
54
+ "notification-badge",
55
+ "avatar",
56
+ "progress",
57
+ "toast"
58
+ ]
59
+ }
@@ -0,0 +1,40 @@
1
+ # Status agent guide
2
+
3
+ ## Purpose
4
+
5
+ Present a compact passive state with a semantic indicator and readable label, or a decorative indicator beside text that already carries the state.
6
+
7
+ ## Use when
8
+
9
+ - A process, entity, availability, health, or review state needs a dot-plus-label presentation.
10
+
11
+ ## Choose something else when
12
+
13
+ - The content is a category, accolade, count, progress value, consequential message, or avatar-only presence ring. Use Badge, NotificationBadge, Progress, Alert, or Avatar status.
14
+
15
+ ## Required composition
16
+
17
+ - Compose Root with one decorative Indicator and one visible Label by default. Omit Label only when adjacent visible or visually hidden text already carries the complete state and the indicator-only Root is aria-hidden.
18
+
19
+ ## Rules
20
+
21
+ - **MUST:** Always provide state text. Render it through Label by default; indicator-only composition is allowed only when adjacent visible or visually hidden text already carries the complete meaning and the Root is decorative.
22
+ - **MUST:** Choose success, warning, danger, info, accent, or neutral from the state meaning, not from decorative preference.
23
+ - **MUST:** Do not assume Status announces changes; author role=status or live-region attributes only when the application owns and validates that announcement policy.
24
+ - **MUST:** Load styles.css or core.css plus status.css.
25
+
26
+ ## Common mistakes
27
+
28
+ - **Avoid:** Using success for a Call button, warning for a gold accolade, or Badge merely to draw a status dot. **Instead:** Use action hierarchy for operations, accent/neutral Badge for accolades, and Status for actual dot-plus-label state.
29
+
30
+ ## Validation checklist
31
+
32
+ - Check visible state text, semantic tone, decorative indicator, primary label color, light/dark, forced colors, zoom, RTL, and deliberate live-region ownership.
33
+
34
+ ## Related guidance
35
+
36
+ - `badge`
37
+ - `notification-badge`
38
+ - `avatar`
39
+ - `progress`
40
+ - `toast`
@@ -5,7 +5,7 @@
5
5
  "package": "@flowstack-ui/brick",
6
6
  "layer": "brick",
7
7
  "kind": "component",
8
- "purpose": "Apply semantic background layers, boundaries, elevation, radius, inset, and optional decorative media layering without implying a specific content object.",
8
+ "purpose": "Apply semantic background tones and layers, boundaries, elevation, radius, inset, and optional decorative media layering without implying a specific content object.",
9
9
  "useWhen": [
10
10
  "A region needs a semantic visual plane but Card, Dialog, or another purposeful component would add the wrong anatomy.",
11
11
  "Decorative image, video, canvas, or authored artwork needs to sit behind foreground content with an optional contrast scrim."
@@ -17,7 +17,7 @@
17
17
  }
18
18
  ],
19
19
  "composition": [
20
- "Choose Surface level and boundary by hierarchy, then compose public layout and content components inside. Use asChild around Section when paint must cover the Section rhythm without another host. For background media, author Media, optional Scrim, and Content in that order. When layered foreground content needs four-sided breathing room, set inset on the Surface root; Content owns foreground layering, not padding."
20
+ "Choose Surface level and boundary by hierarchy, then compose public layout and content components inside. Use asChild around Section when paint must cover the Section rhythm without another host. For background media, author Media, optional Scrim, and Content in that order. When layered foreground content needs four-sided breathing room, set inset on the Surface root; Content owns foreground layering, not padding. Use xl and 2xl for page-sized panels or heroes, and the responsive value shape when that inset should grow with the viewport."
21
21
  ],
22
22
  "rules": [
23
23
  {
@@ -25,6 +25,11 @@
25
25
  "level": "should",
26
26
  "statement": "Choose surface level by information hierarchy, not decoration alone."
27
27
  },
28
+ {
29
+ "id": "surface-accent-tone",
30
+ "level": "should",
31
+ "statement": "Use accent tone only for a branded or conversion plane, never as a generic status surface."
32
+ },
28
33
  {
29
34
  "id": "surface-as-child",
30
35
  "level": "must",
@@ -40,6 +45,21 @@
40
45
  "level": "must",
41
46
  "statement": "Use the Surface inset recipe for four-sided internal spacing; Surface.Content provides z-order only, and Stack startSpacing/endSpacing remain axis-specific."
42
47
  },
48
+ {
49
+ "id": "surface-inset-scale",
50
+ "level": "should",
51
+ "statement": "Use sm through lg for local panels and reserve xl or 2xl for page-sized panels, heroes, and split layouts."
52
+ },
53
+ {
54
+ "id": "surface-responsive-inset",
55
+ "level": "must",
56
+ "statement": "Write responsive inset mobile first with a required initial value and only the breakpoint overrides that change; omit a scalar inset none because none is already the default."
57
+ },
58
+ {
59
+ "id": "surface-inset-measure",
60
+ "level": "must",
61
+ "statement": "Change a centered child's Frame or Container measure when the visible issue is line length or available width; Surface inset moves every child edge and does not replace content measure."
62
+ },
43
63
  {
44
64
  "id": "surface-media-decoration",
45
65
  "level": "must",
@@ -78,13 +98,22 @@
78
98
  {
79
99
  "mistake": "Expecting Surface.Content or Stack edge spacing to create padding on every foreground edge.",
80
100
  "correction": "Set inset on the Surface root, then use Stack only for child arrangement and primary-axis spacing."
101
+ },
102
+ {
103
+ "mistake": "Repeating page-panel padding in Block CSS.",
104
+ "correction": "Use a larger or responsive Surface inset; use the public padding token only for one deliberate asymmetric relationship that the closed recipe cannot express."
105
+ },
106
+ {
107
+ "mistake": "Increasing inset to make a narrow centered child look wider.",
108
+ "correction": "Adjust the child's Frame or Container measure independently."
81
109
  }
82
110
  ],
83
111
  "validation": [
84
112
  "Check foreground contrast against the selected surface in every appearance.",
85
113
  "Confirm nested surfaces communicate hierarchy without excessive borders or elevation.",
86
114
  "Confirm Media and Scrim fill the root, remain hidden from assistive technology and pointer input, and Content stays above both.",
87
- "Check that layered foreground content has intentional spacing on all four logical edges at narrow and wide sizes."
115
+ "Check that layered foreground content has intentional spacing on all four logical edges at narrow and wide sizes.",
116
+ "Check that responsive inset changes at the intended shared breakpoint while media and scrim remain edge-to-edge."
88
117
  ],
89
118
  "related": [
90
119
  "card",
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Purpose
4
4
 
5
- Apply semantic background layers, boundaries, elevation, radius, inset, and optional decorative media layering without implying a specific content object.
5
+ Apply semantic background tones and layers, boundaries, elevation, radius, inset, and optional decorative media layering without implying a specific content object.
6
6
 
7
7
  ## Use when
8
8
 
@@ -15,14 +15,18 @@ Apply semantic background layers, boundaries, elevation, radius, inset, and opti
15
15
 
16
16
  ## Required composition
17
17
 
18
- - Choose Surface level and boundary by hierarchy, then compose public layout and content components inside. Use asChild around Section when paint must cover the Section rhythm without another host. For background media, author Media, optional Scrim, and Content in that order. When layered foreground content needs four-sided breathing room, set inset on the Surface root; Content owns foreground layering, not padding.
18
+ - Choose Surface level and boundary by hierarchy, then compose public layout and content components inside. Use asChild around Section when paint must cover the Section rhythm without another host. For background media, author Media, optional Scrim, and Content in that order. When layered foreground content needs four-sided breathing room, set inset on the Surface root; Content owns foreground layering, not padding. Use xl and 2xl for page-sized panels or heroes, and the responsive value shape when that inset should grow with the viewport.
19
19
 
20
20
  ## Rules
21
21
 
22
22
  - **SHOULD:** Choose surface level by information hierarchy, not decoration alone.
23
+ - **SHOULD:** Use accent tone only for a branded or conversion plane, never as a generic status surface.
23
24
  - **MUST:** Use asChild only with one existing non-Fragment host that already owns the required semantics or layout; preserve that child's meaning and keep Surface responsible only for paint.
24
25
  - **MUST:** Load styles.css or core.css plus surface.css.
25
26
  - **MUST:** Use the Surface inset recipe for four-sided internal spacing; Surface.Content provides z-order only, and Stack startSpacing/endSpacing remain axis-specific.
27
+ - **SHOULD:** Use sm through lg for local panels and reserve xl or 2xl for page-sized panels, heroes, and split layouts.
28
+ - **MUST:** Write responsive inset mobile first with a required initial value and only the breakpoint overrides that change; omit a scalar inset none because none is already the default.
29
+ - **MUST:** Change a centered child's Frame or Container measure when the visible issue is line length or available width; Surface inset moves every child edge and does not replace content measure.
26
30
  - **MUST:** Treat Surface.Media as decorative and noninteractive; keep meaningful media and controls in Content or ordinary document flow.
27
31
  - **MUST:** Give Brick Image explicit fill inside Surface.Media so its actual Content and Fallback consume the complete media layer.
28
32
  - **MUST:** Put every foreground child inside Surface.Content when Media or Scrim is used.
@@ -34,6 +38,8 @@ Apply semantic background layers, boundaries, elevation, radius, inset, and opti
34
38
  - **Avoid:** Using arbitrary background colors to recreate a surface. **Instead:** Use Surface and theme its semantic tokens.
35
39
  - **Avoid:** Adding absolute-positioning and z-index CSS for ordinary background media. **Instead:** Use Surface.Media, Surface.Scrim, and Surface.Content.
36
40
  - **Avoid:** Expecting Surface.Content or Stack edge spacing to create padding on every foreground edge. **Instead:** Set inset on the Surface root, then use Stack only for child arrangement and primary-axis spacing.
41
+ - **Avoid:** Repeating page-panel padding in Block CSS. **Instead:** Use a larger or responsive Surface inset; use the public padding token only for one deliberate asymmetric relationship that the closed recipe cannot express.
42
+ - **Avoid:** Increasing inset to make a narrow centered child look wider. **Instead:** Adjust the child's Frame or Container measure independently.
37
43
 
38
44
  ## Validation checklist
39
45
 
@@ -41,6 +47,7 @@ Apply semantic background layers, boundaries, elevation, radius, inset, and opti
41
47
  - Confirm nested surfaces communicate hierarchy without excessive borders or elevation.
42
48
  - Confirm Media and Scrim fill the root, remain hidden from assistive technology and pointer input, and Content stays above both.
43
49
  - Check that layered foreground content has intentional spacing on all four logical edges at narrow and wide sizes.
50
+ - Check that responsive inset changes at the intended shared breakpoint while media and scrim remain edge-to-edge.
44
51
 
45
52
  ## Related guidance
46
53
 
@@ -0,0 +1,93 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "swipeable-item",
4
+ "name": "SwipeableItem",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Enhance a finished list-like row with logical start or end quick-action panels revealed by horizontal drag or keyboard while Atom owns state, measurement, gesture intent, scrolling preservation, and keyboard behavior.",
9
+ "useWhen": [
10
+ "A row has one or two frequent commands that benefit from touch reveal and every important command also remains available through an obvious tap or click route."
11
+ ],
12
+ "avoidWhen": [
13
+ {
14
+ "condition": "There are many commands, discovery is critical, the row navigates or selects, or swipe would be surprising or the only pointer path.",
15
+ "useInstead": "DropdownMenu, visible Button or IconButton controls, Link, or the appropriate selection component"
16
+ }
17
+ ],
18
+ "composition": [
19
+ "Compose Root with one focusable Content surface and a labelled Actions group for each supported logical start or end side. Put real named Button or Link controls inside Actions and keep an obvious non-swipe route, normally a visible overflow trigger, inside Content.",
20
+ "Choose plain inside an existing row boundary or outline for a standalone boundary. Preserve surrounding List or Feed semantics and keep confirmation, undo, persistence, and coordination between rows in the application."
21
+ ],
22
+ "rules": [
23
+ {
24
+ "id": "swipeable-enhancement",
25
+ "level": "must",
26
+ "statement": "Treat swipe and keyboard reveal as enhancements; neither replaces the required obvious tap or click route to every important action."
27
+ },
28
+ {
29
+ "id": "swipeable-actions",
30
+ "level": "must",
31
+ "statement": "Give every Actions panel a localized accessible group name and every child complete native semantics; keep closed panels inert and accessibility-hidden."
32
+ },
33
+ {
34
+ "id": "swipeable-scroll-gesture",
35
+ "level": "must",
36
+ "statement": "Preserve pan-y vertical scrolling, horizontal intent detection, pointer capture, cancellation rollback, measured logical-side widths, threshold settlement, and one owned pointer interaction."
37
+ },
38
+ {
39
+ "id": "swipeable-keyboard",
40
+ "level": "must",
41
+ "statement": "Keep Content focusable and preserve direction-aware Arrow reveal, opposite-Arrow close, and Escape close only when Content owns the key; nested controls retain their own keyboard behavior."
42
+ },
43
+ {
44
+ "id": "swipeable-no-full-swipe",
45
+ "level": "must",
46
+ "statement": "Do not implement gesture execution around Brick SwipeableItem: Brick intentionally omits Atom's onFullSwipe and fullSwipeThreshold props so destructive or consequential commands require an explicit control."
47
+ },
48
+ {
49
+ "id": "swipeable-state",
50
+ "level": "must",
51
+ "statement": "Use openSide with onOpenSideChange or defaultOpenSide, preserve disabled versus focusable read-only behavior, and treat start and end as logical sides that follow LTR and RTL."
52
+ },
53
+ {
54
+ "id": "swipeable-responsive",
55
+ "level": "must",
56
+ "statement": "Keep authored Content wrapping, visible alternatives reachable, actions measured, and the shared clipped radius intact at narrow widths, zoom, RTL, forced colors, and reduced motion."
57
+ },
58
+ {
59
+ "id": "swipeable-css",
60
+ "level": "must",
61
+ "statement": "Load styles.css or core.css plus swipeable-item.css and the CSS for every composed action or row component."
62
+ }
63
+ ],
64
+ "commonMistakes": [
65
+ {
66
+ "mistake": "Making swipe the only route to Delete, blocking vertical scroll, firing a destructive threshold gesture, or letting Arrow keys from nested controls reveal actions.",
67
+ "correction": "Provide an obvious explicit control, preserve pan-y and gesture intent, use Brick's no-full-swipe API, and retain keyboard target isolation."
68
+ },
69
+ {
70
+ "mistake": "Using SwipeableItem as List, Feed, navigation, selection, confirmation, or multi-row coordination ownership.",
71
+ "correction": "Keep semantic row ownership and application effects outside the three-part enhancement boundary."
72
+ }
73
+ ],
74
+ "validation": [
75
+ "Verify controlled/uncontrolled start/end/null state, LTR and RTL mapping, measured widths and offsets, pointer down/move/up settlement, threshold boundaries, cancellation, capture, vertical pan, disabled/read-only state, and action closeOnClick.",
76
+ "Verify Content focus, Arrow reveal/close, Escape, descendant keyboard isolation, inert hidden panels, group and control names, obvious pointer fallback, absence of full-swipe execution, native props, refs, and real-browser mouse/touch scrolling.",
77
+ "Verify plain and outline boundaries, long content, narrow widths, zoom, RTL, shared radii, focus, light/dark appearance, forced colors, reduced motion, and surrounding List or Feed semantics."
78
+ ],
79
+ "related": [
80
+ {
81
+ "kind": "package",
82
+ "package": "@flowstack-ui/atom",
83
+ "id": "swipeable-item",
84
+ "versionPolicy": "installed-exact"
85
+ },
86
+ "dropdown-menu",
87
+ "button",
88
+ "icon-button",
89
+ "link",
90
+ "list",
91
+ "feed"
92
+ ]
93
+ }
@@ -0,0 +1,50 @@
1
+ # SwipeableItem agent guide
2
+
3
+ ## Purpose
4
+
5
+ Enhance a finished list-like row with logical start or end quick-action panels revealed by horizontal drag or keyboard while Atom owns state, measurement, gesture intent, scrolling preservation, and keyboard behavior.
6
+
7
+ ## Use when
8
+
9
+ - A row has one or two frequent commands that benefit from touch reveal and every important command also remains available through an obvious tap or click route.
10
+
11
+ ## Choose something else when
12
+
13
+ - There are many commands, discovery is critical, the row navigates or selects, or swipe would be surprising or the only pointer path. Use DropdownMenu, visible Button or IconButton controls, Link, or the appropriate selection component.
14
+
15
+ ## Required composition
16
+
17
+ - Compose Root with one focusable Content surface and a labelled Actions group for each supported logical start or end side. Put real named Button or Link controls inside Actions and keep an obvious non-swipe route, normally a visible overflow trigger, inside Content.
18
+ - Choose plain inside an existing row boundary or outline for a standalone boundary. Preserve surrounding List or Feed semantics and keep confirmation, undo, persistence, and coordination between rows in the application.
19
+
20
+ ## Rules
21
+
22
+ - **MUST:** Treat swipe and keyboard reveal as enhancements; neither replaces the required obvious tap or click route to every important action.
23
+ - **MUST:** Give every Actions panel a localized accessible group name and every child complete native semantics; keep closed panels inert and accessibility-hidden.
24
+ - **MUST:** Preserve pan-y vertical scrolling, horizontal intent detection, pointer capture, cancellation rollback, measured logical-side widths, threshold settlement, and one owned pointer interaction.
25
+ - **MUST:** Keep Content focusable and preserve direction-aware Arrow reveal, opposite-Arrow close, and Escape close only when Content owns the key; nested controls retain their own keyboard behavior.
26
+ - **MUST:** Do not implement gesture execution around Brick SwipeableItem: Brick intentionally omits Atom's onFullSwipe and fullSwipeThreshold props so destructive or consequential commands require an explicit control.
27
+ - **MUST:** Use openSide with onOpenSideChange or defaultOpenSide, preserve disabled versus focusable read-only behavior, and treat start and end as logical sides that follow LTR and RTL.
28
+ - **MUST:** Keep authored Content wrapping, visible alternatives reachable, actions measured, and the shared clipped radius intact at narrow widths, zoom, RTL, forced colors, and reduced motion.
29
+ - **MUST:** Load styles.css or core.css plus swipeable-item.css and the CSS for every composed action or row component.
30
+
31
+ ## Common mistakes
32
+
33
+ - **Avoid:** Making swipe the only route to Delete, blocking vertical scroll, firing a destructive threshold gesture, or letting Arrow keys from nested controls reveal actions. **Instead:** Provide an obvious explicit control, preserve pan-y and gesture intent, use Brick's no-full-swipe API, and retain keyboard target isolation.
34
+ - **Avoid:** Using SwipeableItem as List, Feed, navigation, selection, confirmation, or multi-row coordination ownership. **Instead:** Keep semantic row ownership and application effects outside the three-part enhancement boundary.
35
+
36
+ ## Validation checklist
37
+
38
+ - Verify controlled/uncontrolled start/end/null state, LTR and RTL mapping, measured widths and offsets, pointer down/move/up settlement, threshold boundaries, cancellation, capture, vertical pan, disabled/read-only state, and action closeOnClick.
39
+ - Verify Content focus, Arrow reveal/close, Escape, descendant keyboard isolation, inert hidden panels, group and control names, obvious pointer fallback, absence of full-swipe execution, native props, refs, and real-browser mouse/touch scrolling.
40
+ - Verify plain and outline boundaries, long content, narrow widths, zoom, RTL, shared radii, focus, light/dark appearance, forced colors, reduced motion, and surrounding List or Feed semantics.
41
+
42
+ ## Related guidance
43
+
44
+ - `@flowstack-ui/atom/agents/swipeable-item`
45
+ - `dropdown-menu`
46
+ - `button`
47
+ - `icon-button`
48
+ - `link`
49
+ - `list`
50
+ - `feed`