@flowstack-ui/brick 0.1.6 → 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 (602) hide show
  1. package/README.md +13 -7
  2. package/dist/agents/accordion.json +17 -2
  3. package/dist/agents/accordion.md +5 -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 +42 -3
  126. package/dist/agents/surface.md +12 -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/appearance.css +1 -1
  408. package/dist/styles/appearance.css.map +1 -1
  409. package/dist/styles/aspect-ratio.css +1 -1
  410. package/dist/styles/aspect-ratio.css.map +1 -1
  411. package/dist/styles/avatar.css +1 -1
  412. package/dist/styles/avatar.css.map +1 -1
  413. package/dist/styles/badge.css +1 -1
  414. package/dist/styles/badge.css.map +1 -1
  415. package/dist/styles/bleed.css +2 -0
  416. package/dist/styles/bleed.css.map +1 -0
  417. package/dist/styles/bottom-navigation.css +1 -1
  418. package/dist/styles/bottom-navigation.css.map +1 -1
  419. package/dist/styles/breadcrumb.css +1 -1
  420. package/dist/styles/breadcrumb.css.map +1 -1
  421. package/dist/styles/button.css +1 -1
  422. package/dist/styles/button.css.map +1 -1
  423. package/dist/styles/card.css +1 -1
  424. package/dist/styles/card.css.map +1 -1
  425. package/dist/styles/carousel.css +1 -1
  426. package/dist/styles/carousel.css.map +1 -1
  427. package/dist/styles/checkbox-group.css +1 -1
  428. package/dist/styles/checkbox-group.css.map +1 -1
  429. package/dist/styles/checkbox.css +1 -1
  430. package/dist/styles/checkbox.css.map +1 -1
  431. package/dist/styles/chip.css +1 -1
  432. package/dist/styles/chip.css.map +1 -1
  433. package/dist/styles/code-block.css +1 -1
  434. package/dist/styles/code-block.css.map +1 -1
  435. package/dist/styles/code.css +1 -1
  436. package/dist/styles/code.css.map +1 -1
  437. package/dist/styles/collapsible.css +1 -1
  438. package/dist/styles/collapsible.css.map +1 -1
  439. package/dist/styles/color-picker.css +2 -0
  440. package/dist/styles/color-picker.css.map +1 -0
  441. package/dist/styles/color-swatch.css +2 -0
  442. package/dist/styles/color-swatch.css.map +1 -0
  443. package/dist/styles/combobox.css +1 -1
  444. package/dist/styles/combobox.css.map +1 -1
  445. package/dist/styles/container.css +1 -1
  446. package/dist/styles/container.css.map +1 -1
  447. package/dist/styles/context-menu.css +1 -1
  448. package/dist/styles/context-menu.css.map +1 -1
  449. package/dist/styles/core.css +1 -1
  450. package/dist/styles/core.css.map +1 -1
  451. package/dist/styles/data-grid.css +1 -1
  452. package/dist/styles/data-grid.css.map +1 -1
  453. package/dist/styles/data-list.css +2 -0
  454. package/dist/styles/data-list.css.map +1 -0
  455. package/dist/styles/dialog.css +1 -1
  456. package/dist/styles/dialog.css.map +1 -1
  457. package/dist/styles/divider.css +1 -1
  458. package/dist/styles/divider.css.map +1 -1
  459. package/dist/styles/drawer.css +1 -1
  460. package/dist/styles/drawer.css.map +1 -1
  461. package/dist/styles/dropdown-menu.css +1 -1
  462. package/dist/styles/dropdown-menu.css.map +1 -1
  463. package/dist/styles/feed.css +1 -1
  464. package/dist/styles/feed.css.map +1 -1
  465. package/dist/styles/field.css +1 -1
  466. package/dist/styles/field.css.map +1 -1
  467. package/dist/styles/fieldset.css +1 -1
  468. package/dist/styles/fieldset.css.map +1 -1
  469. package/dist/styles/file-upload.css +1 -1
  470. package/dist/styles/file-upload.css.map +1 -1
  471. package/dist/styles/form.css +1 -1
  472. package/dist/styles/form.css.map +1 -1
  473. package/dist/styles/frame.css +1 -1
  474. package/dist/styles/frame.css.map +1 -1
  475. package/dist/styles/grid.css +1 -1
  476. package/dist/styles/grid.css.map +1 -1
  477. package/dist/styles/group.css +2 -0
  478. package/dist/styles/group.css.map +1 -0
  479. package/dist/styles/hide.css +1 -1
  480. package/dist/styles/hide.css.map +1 -1
  481. package/dist/styles/hover-card.css +1 -1
  482. package/dist/styles/hover-card.css.map +1 -1
  483. package/dist/styles/icon-button.css +1 -1
  484. package/dist/styles/icon-button.css.map +1 -1
  485. package/dist/styles/icon.css +1 -1
  486. package/dist/styles/icon.css.map +1 -1
  487. package/dist/styles/image.css +1 -1
  488. package/dist/styles/image.css.map +1 -1
  489. package/dist/styles/input.css +1 -1
  490. package/dist/styles/input.css.map +1 -1
  491. package/dist/styles/link-box.css +2 -0
  492. package/dist/styles/link-box.css.map +1 -0
  493. package/dist/styles/link.css +1 -1
  494. package/dist/styles/link.css.map +1 -1
  495. package/dist/styles/list.css +1 -1
  496. package/dist/styles/list.css.map +1 -1
  497. package/dist/styles/menubar.css +1 -1
  498. package/dist/styles/menubar.css.map +1 -1
  499. package/dist/styles/multi-select.css +1 -1
  500. package/dist/styles/multi-select.css.map +1 -1
  501. package/dist/styles/nav-list.css +1 -1
  502. package/dist/styles/nav-list.css.map +1 -1
  503. package/dist/styles/navigation-menu.css +1 -1
  504. package/dist/styles/navigation-menu.css.map +1 -1
  505. package/dist/styles/number-input.css +1 -1
  506. package/dist/styles/number-input.css.map +1 -1
  507. package/dist/styles/otp-field.css +1 -1
  508. package/dist/styles/otp-field.css.map +1 -1
  509. package/dist/styles/pagination.css +1 -1
  510. package/dist/styles/pagination.css.map +1 -1
  511. package/dist/styles/password-toggle-field.css +1 -1
  512. package/dist/styles/password-toggle-field.css.map +1 -1
  513. package/dist/styles/popover.css +1 -1
  514. package/dist/styles/popover.css.map +1 -1
  515. package/dist/styles/progress-circle.css +1 -1
  516. package/dist/styles/progress-circle.css.map +1 -1
  517. package/dist/styles/progress.css +1 -1
  518. package/dist/styles/progress.css.map +1 -1
  519. package/dist/styles/radio-group.css +1 -1
  520. package/dist/styles/radio-group.css.map +1 -1
  521. package/dist/styles/rating.css +1 -1
  522. package/dist/styles/rating.css.map +1 -1
  523. package/dist/styles/reorderable-list.css +2 -0
  524. package/dist/styles/reorderable-list.css.map +1 -0
  525. package/dist/styles/scroll-area.css +1 -1
  526. package/dist/styles/scroll-area.css.map +1 -1
  527. package/dist/styles/section.css +1 -1
  528. package/dist/styles/section.css.map +1 -1
  529. package/dist/styles/segment-group.css +2 -0
  530. package/dist/styles/segment-group.css.map +1 -0
  531. package/dist/styles/select.css +1 -1
  532. package/dist/styles/select.css.map +1 -1
  533. package/dist/styles/show.css +1 -1
  534. package/dist/styles/show.css.map +1 -1
  535. package/dist/styles/sidebar.css +1 -1
  536. package/dist/styles/sidebar.css.map +1 -1
  537. package/dist/styles/skeleton.css +1 -1
  538. package/dist/styles/skeleton.css.map +1 -1
  539. package/dist/styles/skip-link.css +1 -1
  540. package/dist/styles/skip-link.css.map +1 -1
  541. package/dist/styles/slider.css +1 -1
  542. package/dist/styles/slider.css.map +1 -1
  543. package/dist/styles/stack.css +1 -1
  544. package/dist/styles/stack.css.map +1 -1
  545. package/dist/styles/status.css +2 -0
  546. package/dist/styles/status.css.map +1 -0
  547. package/dist/styles/surface.css +1 -1
  548. package/dist/styles/surface.css.map +1 -1
  549. package/dist/styles/swipeable-item.css +1 -1
  550. package/dist/styles/swipeable-item.css.map +1 -1
  551. package/dist/styles/switch.css +1 -1
  552. package/dist/styles/switch.css.map +1 -1
  553. package/dist/styles/table.css +1 -1
  554. package/dist/styles/table.css.map +1 -1
  555. package/dist/styles/tabs.css +1 -1
  556. package/dist/styles/tabs.css.map +1 -1
  557. package/dist/styles/text.css +1 -1
  558. package/dist/styles/text.css.map +1 -1
  559. package/dist/styles/textarea.css +1 -1
  560. package/dist/styles/textarea.css.map +1 -1
  561. package/dist/styles/toast.css +1 -1
  562. package/dist/styles/toast.css.map +1 -1
  563. package/dist/styles/toggle-group.css +1 -1
  564. package/dist/styles/toggle-group.css.map +1 -1
  565. package/dist/styles/toggle.css +1 -1
  566. package/dist/styles/toggle.css.map +1 -1
  567. package/dist/styles/toolbar.css +1 -1
  568. package/dist/styles/toolbar.css.map +1 -1
  569. package/dist/styles/tooltip.css +1 -1
  570. package/dist/styles/tooltip.css.map +1 -1
  571. package/dist/styles/tree-grid.css +1 -1
  572. package/dist/styles/tree-grid.css.map +1 -1
  573. package/dist/styles/tree.css +1 -1
  574. package/dist/styles/tree.css.map +1 -1
  575. package/dist/styles/visually-hidden.css +1 -1
  576. package/dist/styles/visually-hidden.css.map +1 -1
  577. package/dist/styles/z-stack.css +1 -1
  578. package/dist/styles/z-stack.css.map +1 -1
  579. package/dist/styles.css +1 -1
  580. package/dist/styles.css.map +1 -1
  581. package/dist/surface.d.ts +1 -1
  582. package/dist/surface.d.ts.map +1 -1
  583. package/dist/surface.js.map +1 -1
  584. package/dist/text.d.ts +1 -1
  585. package/dist/text.d.ts.map +1 -1
  586. package/dist/text.js +1 -1
  587. package/dist/text.js.map +1 -1
  588. package/dist/theme-contract.json +26846 -0
  589. package/dist/toggle.d.ts +1 -1
  590. package/dist/toggle.d.ts.map +1 -1
  591. package/dist/toggle.js.map +1 -1
  592. package/dist/tokens.css +1 -1
  593. package/dist/tokens.css.map +1 -1
  594. package/dist/toolbar.d.ts +1 -1
  595. package/dist/toolbar.d.ts.map +1 -1
  596. package/docs/guides/agent-knowledge.md +19 -0
  597. package/docs/guides/appearance-and-tokens.md +16 -5
  598. package/docs/guides/browser-support.md +21 -0
  599. package/docs/guides/control-sizing.md +55 -0
  600. package/docs/guides/installation.md +5 -2
  601. package/docs/guides/theme-contract.md +86 -0
  602. package/package.json +51 -7
@@ -14,14 +14,57 @@ Choose the correct FLOWSTACK layer and require Brick-first composition when buil
14
14
 
15
15
  ## Selection map
16
16
 
17
- - **text with Brick typography:** use Text. Choose the semantic rendered element through its public API.
17
+ - **headings, paragraphs, captions, and eyebrows:** use Heading, Paragraph, Caption, or Eyebrow. Give Heading an explicit semantic level and choose its visual variant independently.
18
+ - **other text with Brick typography:** use Text. Choose the semantic rendered element through its public API and author the intended letter case in content.
19
+ - **extended quotation with visible attribution:** use native blockquote with Brick text content. Keep attribution outside blockquote; when the quotation and attribution form one self-contained unit, use native figure with direct blockquote and figcaption children. Cite names a referenced work, not the person quoted.
18
20
  - **one-dimensional alignment:** use Stack, HStack, or VStack. Use Grid for two-dimensional track relationships.
19
21
  - **bounded page width:** use Container. Use Surface or Card when the region also needs a visual boundary.
20
22
  - **top application or page bar:** use AppBar. Compose navigation and action components inside its sections.
21
23
  - **responsive presence:** use Show or Hide. Use CSS media visibility rather than rendering two JavaScript-controlled trees.
22
24
  - **image with resilient loading:** use Image. Use an adapter only when a framework image optimizer provides a measured capability Brick lacks.
25
+ - **stable media or embed geometry before its content loads:** use AspectRatio. Choose Image when the asset owns resilient loading, Surface for a general visual boundary, and Skeleton for a temporary loading placeholder.
26
+ - **preserved multi-line technical source:** use Code Block. Keep syntax tokenization in a consumer adapter and pass the exact plain source separately for copy behavior.
23
27
  - **navigation destination:** use Link or Button with href. Use Link for ordinary navigation and Button only for an emphasized destination.
24
28
  - **grouped disclosure sections:** use Accordion. Choose Collapsible for one independent disclosure and Tabs for one shared switching panel.
29
+ - **ordinary blocking task, form, settings flow, or focused information:** use Dialog. Choose AlertDialog for one urgent consequential decision and Drawer when the temporary task belongs at a screen edge.
30
+ - **urgent or consequential decision that requires an explicit response:** use AlertDialog. Keep a safe Cancel before Action; choose Dialog for ordinary forms and information.
31
+ - **compact anchored interactive panel:** use Popover. Choose Tooltip or HoverCard for noninteractive context, DropdownMenu for commands, Select or Combobox for option selection, and Dialog for a larger blocking task.
32
+ - **commands or settings opened from one visible button:** use DropdownMenu. Choose ContextMenu for contextual invocation, Menubar for persistent application command categories, Select for a form value, and NavigationMenu or NavList for navigation.
33
+ - **target-specific commands invoked by secondary click, keyboard context action, or supported long press:** use ContextMenu. Keep a visible Button or DropdownMenu route to every important command.
34
+ - **persistent desktop-like application command categories:** use Menubar. Choose DropdownMenu for one temporary command menu, NavigationMenu or NavList for routes, Toolbar for immediately executable controls, and Drawer only as an application-selected mobile alternative.
35
+ - **redundant passive preview for a genuine link or focusable subject:** use HoverCard. Choose Tooltip for one short hint, Popover for interaction, Dialog for a larger task, and visible Text when the information is essential.
36
+ - **brief supplemental description for an already named control:** use Tooltip. Choose HoverCard for a richer passive preview, Popover for interaction, and visible Text for essential information.
37
+ - **exactly one form choice from a short visible set:** use RadioGroup. Choose CheckboxGroup for independent choices, Select for a compact longer list, and ToggleGroup for pressed commands.
38
+ - **any number of related form choices:** use CheckboxGroup. Choose Checkbox for one independent choice, RadioGroup for exactly one choice, and ToggleGroup for pressed commands.
39
+ - **immediately applied on or off setting:** use Switch. Choose Checkbox for a deferred form answer and Toggle for a persistent pressed command.
40
+ - **one command with persistent pressed state:** use Toggle. Choose Button for a momentary action, Switch for an immediate setting, Checkbox for a submitted choice, and ToggleGroup for related pressed commands.
41
+ - **related keyboard-navigable pressed commands:** use ToggleGroup. Choose Toggle for one command, RadioGroup or CheckboxGroup for form choices, Switch for immediate settings, and Tabs for switching panels.
42
+ - **exact numeric value with typing and step actions:** use NumberInput. Choose Slider for approximate spatial adjustment, Input for numeric-looking identifiers, Select or RadioGroup for a small fixed set, and Progress for read-only completion.
43
+ - **one predefined form value from a compact collapsed collection:** use Select. Choose RadioGroup for a short visible set, Combobox for editable filtering, MultiSelect for several values, DropdownMenu for commands, and Link for navigation.
44
+ - **several predefined form values from a compact collapsed collection:** use MultiSelect. Choose CheckboxGroup for a short visible set, Select for one value, and Combobox only when its single-value editable model fits; record a Brick gap for unsupported tag creation or other specialized multi-value behavior.
45
+ - **editable filtering and one committed option value:** use Combobox. Choose Input when any text is valid without options, Select for a compact noneditable list, RadioGroup for a short visible set, MultiSelect for several predefined values, and DropdownMenu for commands.
46
+ - **persistently visible composite option collection:** use record a Brick gap before application-owned implementation. Brick has no public owner for this job. Do not import Atom directly; first reconsider RadioGroup or CheckboxGroup for visible form choices, Select or MultiSelect for collapsed choices, and Combobox for editable filtering.
47
+ - **short one-time verification, recovery, or pairing code:** use OTPField. Choose PasswordToggleField for a reusable secret, NumberInput for a quantity, and Input for an ordinary identifier or variable-length value.
48
+ - **password entry with an allowed reveal action:** use PasswordToggleField. Choose Input with type=password when reveal is forbidden or unwanted and OTPField for a one-time code.
49
+ - **local file picking, optional drop, review, and removal before application processing:** use FileUpload. Choose Input for a textual path or URL, Progress for transfer progress, Toast for a transient result, and Image for a rendered asset; keep server validation and upload transport in the application.
50
+ - **short non-blocking application outcome or process update:** use Toast. Choose Field or Form feedback for validation, Progress for numeric completion, AlertDialog for a required response, and persistent application content for essential or durable information.
51
+ - **touch-enhanced quick actions for a list-like row with an obvious click alternative:** use SwipeableItem. Choose DropdownMenu for a larger command set, Button or IconButton for continuously visible actions, and Link when the row navigates.
52
+ - **one independent in-flow disclosure region:** use Collapsible. Choose Accordion for coordinated peer sections, Dialog or Drawer for a modal task, Popover for an anchored layer, and Show or Hide for responsive presence.
53
+ - **one-column hierarchical navigation and optional selection:** use Tree. Choose TreeGrid for hierarchical rows with navigable columns, Accordion or Collapsible for arbitrary disclosure content, DataGrid for flat interactive tabular data, and List for static hierarchy.
54
+ - **hierarchical rows with several navigable columns:** use TreeGrid. Choose Tree for one primary hierarchy column, DataGrid for flat interactive rows, Table for read-oriented tabular relationships, and an application-owned data tool for editing or independent cell controls.
55
+ - **flat tabular data with composite cell navigation or row selection:** use DataGrid. Choose Table for read-oriented comparison, TreeGrid for hierarchical rows, and an application-owned data tool for editing, column management, or an enterprise data engine.
56
+ - **read-oriented row and column comparison:** use Table. Choose DataGrid for composite cell navigation or row selection, TreeGrid for hierarchical interactive rows, and List when meaningful column relationships are absent.
57
+ - **changing stream of focusable articles with article-to-article keyboard movement:** use Feed. Choose List for a static sequence, Table or DataGrid for tabular relationships, Tree for hierarchy, and Stack or Grid for purely visual arrangement.
58
+ - **linear read-only task completion or indeterminate work:** use Progress. Choose ProgressCircle when compact circular geometry is important, Slider for editable values, Toast for a transient outcome, and Skeleton for unknown content loading.
59
+ - **compact circular read-only task completion or indeterminate work:** use ProgressCircle. Choose Progress for linear completion, Slider for editable values, and Skeleton for unknown content loading.
60
+ - **visual count or presence dot over one owning element:** use NotificationBadge. Choose Badge for an in-flow passive label or count, Status for a named state, Button for an actionable count, and visible Text when the value must be announced or understood without the owner; NotificationBadge does not announce changes.
61
+ - **compact identity for a named person, organization, or entity:** use Avatar. Choose Image for a larger editorial portrait and NotificationBadge only when the owning Avatar needs a separate visual count or presence indicator.
62
+ - **short passive in-flow label, category, status, or count:** use Badge. Choose NotificationBadge for an overlaid count or dot, Status for richer named state semantics, and Button when the label is actionable.
63
+ - **editable, selectable, or submitted opaque hexadecimal color:** use ColorPicker. Choose ColorSwatch for a passive preview; richer alpha, gradient, channel, eyedropper, and color-space editing remains an Atom-first gap.
64
+ - **passive preview of one color or a compact color mix:** use ColorSwatch. Choose ColorPicker when the user must edit, select, or submit the value; keep interaction on a semantic owner.
65
+ - **short assistive-only equivalent for meaning already conveyed visually:** use VisuallyHidden. Choose visible Text for essential instructions, state, errors, or announcements, and keep an IconButton or Button itself visible while placing the hidden equivalent inside it.
66
+ - **approximate numeric value or ordered range through spatial manipulation:** use Slider. Choose NumberInput for exact entry, Progress for read-only completion, and Rating for a short ordered score.
67
+ - **short ordered score input or recognizable passive score aggregate:** use Rating. Choose Slider for a general numeric setting and RadioGroup when choices have distinct categorical meanings.
25
68
  - **ordered or unordered content:** use List. Choose NavList, an interactive collection, Table, or DataGrid when rows navigate, select, activate, or expose data relationships.
26
69
 
27
70
  ## Rules
@@ -55,7 +98,47 @@ Choose the correct FLOWSTACK layer and require Brick-first composition when buil
55
98
  - `grid`
56
99
  - `text`
57
100
  - `image`
101
+ - `aspect-ratio`
102
+ - `code-block`
58
103
  - `show`
59
104
  - `hide`
60
105
  - `accordion`
106
+ - `collapsible`
61
107
  - `list`
108
+ - `feed`
109
+ - `tree`
110
+ - `tree-grid`
111
+ - `table`
112
+ - `data-grid`
113
+ - `dialog`
114
+ - `alert-dialog`
115
+ - `popover`
116
+ - `dropdown-menu`
117
+ - `context-menu`
118
+ - `menubar`
119
+ - `hover-card`
120
+ - `tooltip`
121
+ - `radio-group`
122
+ - `checkbox-group`
123
+ - `switch`
124
+ - `toggle`
125
+ - `toggle-group`
126
+ - `number-input`
127
+ - `select`
128
+ - `multi-select`
129
+ - `combobox`
130
+ - `otp-field`
131
+ - `password-toggle-field`
132
+ - `file-upload`
133
+ - `toast`
134
+ - `swipeable-item`
135
+ - `progress`
136
+ - `progress-circle`
137
+ - `notification-badge`
138
+ - `avatar`
139
+ - `badge`
140
+ - `color-picker`
141
+ - `color-swatch`
142
+ - `visually-hidden`
143
+ - `slider`
144
+ - `rating`
@@ -0,0 +1,97 @@
1
+ {
2
+ "schema": "flowstack.agent-component.v1",
3
+ "id": "link-box",
4
+ "name": "Link Box",
5
+ "package": "@flowstack-ui/brick",
6
+ "layer": "brick",
7
+ "kind": "component",
8
+ "purpose": "Expand one real destination across a containing region while keeping secondary controls independent.",
9
+ "useWhen": [
10
+ "A card, result, article, or other bounded item has one primary destination and needs a larger pointer target.",
11
+ "The same item may contain a separate save, compare, menu, or other action."
12
+ ],
13
+ "avoidWhen": [
14
+ {
15
+ "condition": "The complete region performs an operation instead of navigating.",
16
+ "useInstead": "Button or Pressable"
17
+ },
18
+ {
19
+ "condition": "Only the visible text should be clickable or pointer text selection is important.",
20
+ "useInstead": "Link"
21
+ }
22
+ ],
23
+ "composition": [
24
+ "Wrap the complete visual item in LinkBox.Root and put LinkBox.Link around concise destination text, usually the item title.",
25
+ "Wrap every independently interactive sibling in LinkBox.Action; never place buttons or additional links inside LinkBox.Link.",
26
+ "When an Action overlays media through ZStack, compose ZStack.Item asChild with LinkBox.Action and use ZStack.Root isolation=\"open\" plus ZStack.Item layer=\"action\"; use edgeSpacing when the control needs a theme-space inset.",
27
+ "Give Root the semantic host for the item, such as article or li, and keep the inner Card.Root as its default div to avoid duplicate semantic containers."
28
+ ],
29
+ "rules": [
30
+ {
31
+ "id": "link-box-one-destination",
32
+ "level": "must",
33
+ "statement": "Provide exactly one primary LinkBox.Link with a real destination and concise accessible name."
34
+ },
35
+ {
36
+ "id": "link-box-actions",
37
+ "level": "must",
38
+ "statement": "Keep secondary controls outside the primary anchor and inside LinkBox.Action."
39
+ },
40
+ {
41
+ "id": "link-box-overlay-actions",
42
+ "level": "must",
43
+ "statement": "For an Action nested in a ZStack overlay, use ZStack's public isolation and named-layer API, then prove the independent action and expanded link both activate correctly in a real browser."
44
+ },
45
+ {
46
+ "id": "link-box-no-press",
47
+ "level": "must",
48
+ "statement": "Do not add role, tabIndex, click handlers, or Pressable behavior to LinkBox.Root."
49
+ },
50
+ {
51
+ "id": "link-box-css",
52
+ "level": "must",
53
+ "statement": "Load styles.css or core.css plus link-box.css; the modular entry includes Link styling."
54
+ },
55
+ {
56
+ "id": "link-box-plain-editorial",
57
+ "level": "should",
58
+ "statement": "Use Root variant plain for an unbounded editorial preview whose edge media and unpadded copy should not receive a hover boundary; focus-visible remains intact."
59
+ }
60
+ ],
61
+ "commonMistakes": [
62
+ {
63
+ "mistake": "Wrapping the entire Card in Link and then adding favorite or menu buttons inside it.",
64
+ "correction": "Use LinkBox.Root, keep one title LinkBox.Link, and layer each separate control through LinkBox.Action."
65
+ },
66
+ {
67
+ "mistake": "Making Root focusable in addition to Link.",
68
+ "correction": "Root is only a visual containing region; the real Link owns focus and navigation."
69
+ },
70
+ {
71
+ "mistake": "Placing LinkBox.Action inside an isolated overlay layout without checking stacking contexts.",
72
+ "correction": "Merge ZStack.Item onto LinkBox.Action with asChild, set ZStack.Root isolation=\"open\", set the item layer=\"action\", and verify pointer activation rather than recreating the relationship with inline styles."
73
+ },
74
+ {
75
+ "mistake": "Using LinkBox for a card that only performs an operation.",
76
+ "correction": "Use Button or Pressable so action semantics and keyboard behavior remain truthful."
77
+ }
78
+ ],
79
+ "validation": [
80
+ "Inspect the final DOM for one primary a[href] and no nested interactive elements.",
81
+ "Click empty visual areas, then keyboard-focus and activate the named link with Enter.",
82
+ "Verify secondary controls activate independently with both pointer and keyboard input and do not navigate.",
83
+ "Check the whole-region hover and focus ring in light, dark, forced colors, narrow layouts, and zoom."
84
+ ],
85
+ "related": [
86
+ {
87
+ "kind": "package",
88
+ "package": "@flowstack-ui/atom",
89
+ "id": "link",
90
+ "versionPolicy": "installed-exact"
91
+ },
92
+ "link",
93
+ "card",
94
+ "button",
95
+ "icon-button"
96
+ ]
97
+ }
@@ -0,0 +1,53 @@
1
+ # Link Box agent guide
2
+
3
+ ## Purpose
4
+
5
+ Expand one real destination across a containing region while keeping secondary controls independent.
6
+
7
+ ## Use when
8
+
9
+ - A card, result, article, or other bounded item has one primary destination and needs a larger pointer target.
10
+ - The same item may contain a separate save, compare, menu, or other action.
11
+
12
+ ## Choose something else when
13
+
14
+ - The complete region performs an operation instead of navigating. Use Button or Pressable.
15
+ - Only the visible text should be clickable or pointer text selection is important. Use Link.
16
+
17
+ ## Required composition
18
+
19
+ - Wrap the complete visual item in LinkBox.Root and put LinkBox.Link around concise destination text, usually the item title.
20
+ - Wrap every independently interactive sibling in LinkBox.Action; never place buttons or additional links inside LinkBox.Link.
21
+ - When an Action overlays media through ZStack, compose ZStack.Item asChild with LinkBox.Action and use ZStack.Root isolation="open" plus ZStack.Item layer="action"; use edgeSpacing when the control needs a theme-space inset.
22
+ - Give Root the semantic host for the item, such as article or li, and keep the inner Card.Root as its default div to avoid duplicate semantic containers.
23
+
24
+ ## Rules
25
+
26
+ - **MUST:** Provide exactly one primary LinkBox.Link with a real destination and concise accessible name.
27
+ - **MUST:** Keep secondary controls outside the primary anchor and inside LinkBox.Action.
28
+ - **MUST:** For an Action nested in a ZStack overlay, use ZStack's public isolation and named-layer API, then prove the independent action and expanded link both activate correctly in a real browser.
29
+ - **MUST:** Do not add role, tabIndex, click handlers, or Pressable behavior to LinkBox.Root.
30
+ - **MUST:** Load styles.css or core.css plus link-box.css; the modular entry includes Link styling.
31
+ - **SHOULD:** Use Root variant plain for an unbounded editorial preview whose edge media and unpadded copy should not receive a hover boundary; focus-visible remains intact.
32
+
33
+ ## Common mistakes
34
+
35
+ - **Avoid:** Wrapping the entire Card in Link and then adding favorite or menu buttons inside it. **Instead:** Use LinkBox.Root, keep one title LinkBox.Link, and layer each separate control through LinkBox.Action.
36
+ - **Avoid:** Making Root focusable in addition to Link. **Instead:** Root is only a visual containing region; the real Link owns focus and navigation.
37
+ - **Avoid:** Placing LinkBox.Action inside an isolated overlay layout without checking stacking contexts. **Instead:** Merge ZStack.Item onto LinkBox.Action with asChild, set ZStack.Root isolation="open", set the item layer="action", and verify pointer activation rather than recreating the relationship with inline styles.
38
+ - **Avoid:** Using LinkBox for a card that only performs an operation. **Instead:** Use Button or Pressable so action semantics and keyboard behavior remain truthful.
39
+
40
+ ## Validation checklist
41
+
42
+ - Inspect the final DOM for one primary a[href] and no nested interactive elements.
43
+ - Click empty visual areas, then keyboard-focus and activate the named link with Enter.
44
+ - Verify secondary controls activate independently with both pointer and keyboard input and do not navigate.
45
+ - Check the whole-region hover and focus ring in light, dark, forced colors, narrow layouts, and zoom.
46
+
47
+ ## Related guidance
48
+
49
+ - `@flowstack-ui/atom/agents/link`
50
+ - `link`
51
+ - `card`
52
+ - `button`
53
+ - `icon-button`
@@ -16,7 +16,8 @@
16
16
  }
17
17
  ],
18
18
  "composition": [
19
- "Provide a real href or compose a router-owned anchor, then choose a visual variant independently from navigation semantics."
19
+ "Provide a real href or compose a router-owned anchor. Leave the default theme variant to follow the project decoration policy, choose underline for a persistent local affordance, or choose plain only inside unmistakable navigation whose container, current state, hover/pressed treatment, and focus ring preserve the destination affordance without decoration. Neutral navigation stays primary at rest and gains semantic accent emphasis on hover and press.",
20
+ "When a Link completes a sentence or paragraph, keep it inside that semantic Text owner and leave its default inherited size so typography and wrapping remain one coherent text flow; use layout components only for independently meaningful peer items."
20
21
  ],
21
22
  "rules": [
22
23
  {
@@ -24,6 +25,16 @@
24
25
  "level": "must",
25
26
  "statement": "Preserve anchor semantics and a real destination even when the link looks like a button."
26
27
  },
28
+ {
29
+ "id": "link-inline-sentence",
30
+ "level": "must",
31
+ "statement": "Keep a Link that completes surrounding prose inside the owning sentence or paragraph and inherit its typography; do not split one sentence into layout siblings merely to align it."
32
+ },
33
+ {
34
+ "id": "link-plain-distinction",
35
+ "level": "must",
36
+ "statement": "When a theme removes the resting underline, keep accent link text at least 3:1 distinct from adjacent primary text and restore the underline on interaction."
37
+ },
27
38
  {
28
39
  "id": "link-css",
29
40
  "level": "must",
@@ -32,16 +43,34 @@
32
43
  ],
33
44
  "commonMistakes": [
34
45
  {
35
- "mistake": "Replacing a destination with Button because the design is prominent.",
36
- "correction": "Use Link and select the appropriate Brick variant."
46
+ "mistake": "Replacing ordinary inline or standalone navigation with Button only to increase emphasis.",
47
+ "correction": "Use Link for ordinary navigation; use Button with a real href only when the destination intentionally needs a filled, soft, outlined, or ghost action treatment."
48
+ },
49
+ {
50
+ "mistake": "Rendering prose and the Link that completes it as separate Stack children, or explicitly restating Link's default inherited size.",
51
+ "correction": "Render one semantic Text sentence with an inline Link and leave its inherited size implicit; reserve Stack for independent peers."
52
+ },
53
+ {
54
+ "mistake": "Removing resting underlines globally without validating links against surrounding text.",
55
+ "correction": "Use the Theme Link input so compilation validates the required text distinction, or keep underlines."
37
56
  }
38
57
  ],
39
58
  "validation": [
40
59
  "Inspect href and accessible name.",
41
- "Test focus, Enter navigation, visited/external behavior when relevant, and contrast."
60
+ "For inline prose links, confirm the Link remains inside the owning sentence or paragraph, inherits its typography, and wraps as one text flow.",
61
+ "Test focus, Enter navigation, visited/external behavior when relevant, and contrast.",
62
+ "For no-resting-underline themes, verify the compiled 3:1 text-distinction result and the interactive underline.",
63
+ "For explicit plain navigation, verify no interaction underline appears, neutral destinations gain semantic accent hover/press emphasis, and container, current, and focus treatments still communicate the destination."
42
64
  ],
43
65
  "related": [
44
- "@flowstack-ui/atom/agents/link",
66
+ {
67
+ "kind": "package",
68
+ "package": "@flowstack-ui/atom",
69
+ "id": "link",
70
+ "versionPolicy": "installed-exact"
71
+ },
72
+ "text",
73
+ "stack",
45
74
  "button"
46
75
  ]
47
76
  }
@@ -14,23 +14,33 @@ Render finished native navigation as inline, standalone, or button-like content
14
14
 
15
15
  ## Required composition
16
16
 
17
- - Provide a real href or compose a router-owned anchor, then choose a visual variant independently from navigation semantics.
17
+ - Provide a real href or compose a router-owned anchor. Leave the default theme variant to follow the project decoration policy, choose underline for a persistent local affordance, or choose plain only inside unmistakable navigation whose container, current state, hover/pressed treatment, and focus ring preserve the destination affordance without decoration. Neutral navigation stays primary at rest and gains semantic accent emphasis on hover and press.
18
+ - When a Link completes a sentence or paragraph, keep it inside that semantic Text owner and leave its default inherited size so typography and wrapping remain one coherent text flow; use layout components only for independently meaningful peer items.
18
19
 
19
20
  ## Rules
20
21
 
21
22
  - **MUST:** Preserve anchor semantics and a real destination even when the link looks like a button.
23
+ - **MUST:** Keep a Link that completes surrounding prose inside the owning sentence or paragraph and inherit its typography; do not split one sentence into layout siblings merely to align it.
24
+ - **MUST:** When a theme removes the resting underline, keep accent link text at least 3:1 distinct from adjacent primary text and restore the underline on interaction.
22
25
  - **MUST:** Load styles.css or core.css plus link.css.
23
26
 
24
27
  ## Common mistakes
25
28
 
26
- - **Avoid:** Replacing a destination with Button because the design is prominent. **Instead:** Use Link and select the appropriate Brick variant.
29
+ - **Avoid:** Replacing ordinary inline or standalone navigation with Button only to increase emphasis. **Instead:** Use Link for ordinary navigation; use Button with a real href only when the destination intentionally needs a filled, soft, outlined, or ghost action treatment.
30
+ - **Avoid:** Rendering prose and the Link that completes it as separate Stack children, or explicitly restating Link's default inherited size. **Instead:** Render one semantic Text sentence with an inline Link and leave its inherited size implicit; reserve Stack for independent peers.
31
+ - **Avoid:** Removing resting underlines globally without validating links against surrounding text. **Instead:** Use the Theme Link input so compilation validates the required text distinction, or keep underlines.
27
32
 
28
33
  ## Validation checklist
29
34
 
30
35
  - Inspect href and accessible name.
36
+ - For inline prose links, confirm the Link remains inside the owning sentence or paragraph, inherits its typography, and wraps as one text flow.
31
37
  - Test focus, Enter navigation, visited/external behavior when relevant, and contrast.
38
+ - For no-resting-underline themes, verify the compiled 3:1 text-distinction result and the interactive underline.
39
+ - For explicit plain navigation, verify no interaction underline appears, neutral destinations gain semantic accent hover/press emphasis, and container, current, and focus treatments still communicate the destination.
32
40
 
33
41
  ## Related guidance
34
42
 
35
43
  - `@flowstack-ui/atom/agents/link`
44
+ - `text`
45
+ - `stack`
36
46
  - `button`
@@ -67,7 +67,7 @@
67
67
  ],
68
68
  "validation": [
69
69
  "Inspect ul or ol and li output, ordered meaning, marker behavior, structured-part order, nesting, roles, and CSS delivery.",
70
- "Test long titles and descriptions, compact and comfortable density, all variants and markers, 320 CSS px, 200 and 400 percent zoom, RTL, and forced colors.",
70
+ "Test long titles and descriptions, compact and comfortable density, all variants and markers, first-line marker alignment in bordered simple and structured rows, 320 CSS px, 200 and 400 percent zoom, RTL, and forced colors.",
71
71
  "Confirm Trailing content does not squeeze Content, controls have names and touch targets, disabled descendants are handled explicitly, and List adds no keyboard model."
72
72
  ],
73
73
  "related": [
@@ -36,7 +36,7 @@ Render finished ordered or unordered content with native list semantics, optiona
36
36
  ## Validation checklist
37
37
 
38
38
  - Inspect ul or ol and li output, ordered meaning, marker behavior, structured-part order, nesting, roles, and CSS delivery.
39
- - Test long titles and descriptions, compact and comfortable density, all variants and markers, 320 CSS px, 200 and 400 percent zoom, RTL, and forced colors.
39
+ - Test long titles and descriptions, compact and comfortable density, all variants and markers, first-line marker alignment in bordered simple and structured rows, 320 CSS px, 200 and 400 percent zoom, RTL, and forced colors.
40
40
  - Confirm Trailing content does not squeeze Content, controls have names and touch targets, disabled descendants are handled explicitly, and List adds no keyboard model.
41
41
 
42
42
  ## Related guidance