@flowstack-ui/agent-tools 0.1.0-bootstrap.0

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 (239) hide show
  1. package/.codex-plugin/plugin.json +37 -0
  2. package/CHANGELOG.md +21 -0
  3. package/LICENSE +21 -0
  4. package/README.md +125 -0
  5. package/docs/architecture.md +77 -0
  6. package/docs/releasing.md +26 -0
  7. package/docs/testing.md +32 -0
  8. package/package.json +63 -0
  9. package/public/index.json +2073 -0
  10. package/public/llms.txt +19 -0
  11. package/public/packages/atom/0.24.0/components/accordion.txt +131 -0
  12. package/public/packages/atom/0.24.0/components/alert-dialog.txt +112 -0
  13. package/public/packages/atom/0.24.0/components/app-bar.txt +96 -0
  14. package/public/packages/atom/0.24.0/components/aspect-ratio.txt +111 -0
  15. package/public/packages/atom/0.24.0/components/avatar.txt +119 -0
  16. package/public/packages/atom/0.24.0/components/badge.txt +123 -0
  17. package/public/packages/atom/0.24.0/components/bottom-navigation.txt +96 -0
  18. package/public/packages/atom/0.24.0/components/breadcrumb.txt +96 -0
  19. package/public/packages/atom/0.24.0/components/button.txt +98 -0
  20. package/public/packages/atom/0.24.0/components/carousel.txt +128 -0
  21. package/public/packages/atom/0.24.0/components/checkbox-group.txt +118 -0
  22. package/public/packages/atom/0.24.0/components/checkbox.txt +100 -0
  23. package/public/packages/atom/0.24.0/components/clipboard.txt +112 -0
  24. package/public/packages/atom/0.24.0/components/collapsible.txt +112 -0
  25. package/public/packages/atom/0.24.0/components/color-picker.txt +117 -0
  26. package/public/packages/atom/0.24.0/components/combobox.txt +126 -0
  27. package/public/packages/atom/0.24.0/components/context-menu.txt +114 -0
  28. package/public/packages/atom/0.24.0/components/data-grid.txt +136 -0
  29. package/public/packages/atom/0.24.0/components/dialog.txt +116 -0
  30. package/public/packages/atom/0.24.0/components/direction.txt +132 -0
  31. package/public/packages/atom/0.24.0/components/divider.txt +94 -0
  32. package/public/packages/atom/0.24.0/components/drag-drop.txt +141 -0
  33. package/public/packages/atom/0.24.0/components/drawer.txt +96 -0
  34. package/public/packages/atom/0.24.0/components/dropdown-menu.txt +112 -0
  35. package/public/packages/atom/0.24.0/components/feed.txt +132 -0
  36. package/public/packages/atom/0.24.0/components/field.txt +108 -0
  37. package/public/packages/atom/0.24.0/components/fieldset.txt +96 -0
  38. package/public/packages/atom/0.24.0/components/file-upload.txt +120 -0
  39. package/public/packages/atom/0.24.0/components/form.txt +98 -0
  40. package/public/packages/atom/0.24.0/components/hover-card.txt +114 -0
  41. package/public/packages/atom/0.24.0/components/image.txt +94 -0
  42. package/public/packages/atom/0.24.0/components/input.txt +96 -0
  43. package/public/packages/atom/0.24.0/components/label.txt +121 -0
  44. package/public/packages/atom/0.24.0/components/link.txt +100 -0
  45. package/public/packages/atom/0.24.0/components/list.txt +131 -0
  46. package/public/packages/atom/0.24.0/components/listbox.txt +120 -0
  47. package/public/packages/atom/0.24.0/components/menu.txt +126 -0
  48. package/public/packages/atom/0.24.0/components/menubar.txt +120 -0
  49. package/public/packages/atom/0.24.0/components/modal.txt +118 -0
  50. package/public/packages/atom/0.24.0/components/multi-select.txt +120 -0
  51. package/public/packages/atom/0.24.0/components/nav-list.txt +104 -0
  52. package/public/packages/atom/0.24.0/components/navigation-menu.txt +104 -0
  53. package/public/packages/atom/0.24.0/components/number-input.txt +124 -0
  54. package/public/packages/atom/0.24.0/components/otp-field.txt +122 -0
  55. package/public/packages/atom/0.24.0/components/pagination.txt +111 -0
  56. package/public/packages/atom/0.24.0/components/password-toggle-field.txt +116 -0
  57. package/public/packages/atom/0.24.0/components/popover.txt +122 -0
  58. package/public/packages/atom/0.24.0/components/pressable.txt +94 -0
  59. package/public/packages/atom/0.24.0/components/progress.txt +130 -0
  60. package/public/packages/atom/0.24.0/components/radio-group.txt +118 -0
  61. package/public/packages/atom/0.24.0/components/rating.txt +122 -0
  62. package/public/packages/atom/0.24.0/components/reorder.txt +141 -0
  63. package/public/packages/atom/0.24.0/components/scroll-area.txt +96 -0
  64. package/public/packages/atom/0.24.0/components/select.txt +126 -0
  65. package/public/packages/atom/0.24.0/components/sidebar.txt +96 -0
  66. package/public/packages/atom/0.24.0/components/skip-link.txt +96 -0
  67. package/public/packages/atom/0.24.0/components/slider.txt +124 -0
  68. package/public/packages/atom/0.24.0/components/swipeable-item.txt +118 -0
  69. package/public/packages/atom/0.24.0/components/switch.txt +116 -0
  70. package/public/packages/atom/0.24.0/components/table.txt +128 -0
  71. package/public/packages/atom/0.24.0/components/tabs.txt +96 -0
  72. package/public/packages/atom/0.24.0/components/textarea.txt +96 -0
  73. package/public/packages/atom/0.24.0/components/toast.txt +124 -0
  74. package/public/packages/atom/0.24.0/components/toggle-group.txt +118 -0
  75. package/public/packages/atom/0.24.0/components/toggle.txt +110 -0
  76. package/public/packages/atom/0.24.0/components/toolbar.txt +98 -0
  77. package/public/packages/atom/0.24.0/components/tooltip.txt +112 -0
  78. package/public/packages/atom/0.24.0/components/tree-grid.txt +138 -0
  79. package/public/packages/atom/0.24.0/components/tree.txt +138 -0
  80. package/public/packages/atom/0.24.0/components/visually-hidden.txt +119 -0
  81. package/public/packages/atom/0.24.0/docs/guides/agent-knowledge.txt +55 -0
  82. package/public/packages/atom/0.24.0/docs/guides/getting-started.txt +65 -0
  83. package/public/packages/atom/0.24.0/docs/guides/imports.txt +26 -0
  84. package/public/packages/atom/0.24.0/docs/guides/public-api.txt +100 -0
  85. package/public/packages/atom/0.24.0/guides/behavior-composition.txt +277 -0
  86. package/public/packages/atom/0.24.0/guides/layer-selection.txt +807 -0
  87. package/public/packages/atom/0.24.0/index.txt +89 -0
  88. package/public/packages/brick/0.1.11/components/accordion.txt +158 -0
  89. package/public/packages/brick/0.1.11/components/alert-dialog.txt +175 -0
  90. package/public/packages/brick/0.1.11/components/app-bar.txt +134 -0
  91. package/public/packages/brick/0.1.11/components/appearance.txt +143 -0
  92. package/public/packages/brick/0.1.11/components/aspect-ratio.txt +136 -0
  93. package/public/packages/brick/0.1.11/components/avatar.txt +152 -0
  94. package/public/packages/brick/0.1.11/components/badge.txt +139 -0
  95. package/public/packages/brick/0.1.11/components/bleed.txt +104 -0
  96. package/public/packages/brick/0.1.11/components/bottom-navigation.txt +106 -0
  97. package/public/packages/brick/0.1.11/components/breadcrumb.txt +96 -0
  98. package/public/packages/brick/0.1.11/components/button.txt +103 -0
  99. package/public/packages/brick/0.1.11/components/card.txt +132 -0
  100. package/public/packages/brick/0.1.11/components/carousel.txt +206 -0
  101. package/public/packages/brick/0.1.11/components/checkbox-group.txt +175 -0
  102. package/public/packages/brick/0.1.11/components/checkbox.txt +103 -0
  103. package/public/packages/brick/0.1.11/components/chip.txt +128 -0
  104. package/public/packages/brick/0.1.11/components/code-block.txt +134 -0
  105. package/public/packages/brick/0.1.11/components/code.txt +120 -0
  106. package/public/packages/brick/0.1.11/components/collapsible.txt +179 -0
  107. package/public/packages/brick/0.1.11/components/color-picker.txt +135 -0
  108. package/public/packages/brick/0.1.11/components/color-swatch.txt +98 -0
  109. package/public/packages/brick/0.1.11/components/combobox.txt +157 -0
  110. package/public/packages/brick/0.1.11/components/container.txt +112 -0
  111. package/public/packages/brick/0.1.11/components/context-menu.txt +174 -0
  112. package/public/packages/brick/0.1.11/components/data-grid.txt +199 -0
  113. package/public/packages/brick/0.1.11/components/data-list.txt +115 -0
  114. package/public/packages/brick/0.1.11/components/dialog.txt +176 -0
  115. package/public/packages/brick/0.1.11/components/divider.txt +104 -0
  116. package/public/packages/brick/0.1.11/components/drawer.txt +146 -0
  117. package/public/packages/brick/0.1.11/components/dropdown-menu.txt +179 -0
  118. package/public/packages/brick/0.1.11/components/feed.txt +143 -0
  119. package/public/packages/brick/0.1.11/components/field.txt +115 -0
  120. package/public/packages/brick/0.1.11/components/fieldset.txt +103 -0
  121. package/public/packages/brick/0.1.11/components/file-upload.txt +154 -0
  122. package/public/packages/brick/0.1.11/components/form.txt +108 -0
  123. package/public/packages/brick/0.1.11/components/frame.txt +132 -0
  124. package/public/packages/brick/0.1.11/components/grid.txt +141 -0
  125. package/public/packages/brick/0.1.11/components/group.txt +136 -0
  126. package/public/packages/brick/0.1.11/components/hide.txt +121 -0
  127. package/public/packages/brick/0.1.11/components/hover-card.txt +156 -0
  128. package/public/packages/brick/0.1.11/components/icon-button.txt +119 -0
  129. package/public/packages/brick/0.1.11/components/icon.txt +160 -0
  130. package/public/packages/brick/0.1.11/components/image.txt +163 -0
  131. package/public/packages/brick/0.1.11/components/input.txt +101 -0
  132. package/public/packages/brick/0.1.11/components/link-box.txt +161 -0
  133. package/public/packages/brick/0.1.11/components/link.txt +133 -0
  134. package/public/packages/brick/0.1.11/components/list.txt +139 -0
  135. package/public/packages/brick/0.1.11/components/menubar.txt +174 -0
  136. package/public/packages/brick/0.1.11/components/multi-select.txt +153 -0
  137. package/public/packages/brick/0.1.11/components/nav-list.txt +130 -0
  138. package/public/packages/brick/0.1.11/components/navigation-menu.txt +150 -0
  139. package/public/packages/brick/0.1.11/components/notification-badge.txt +148 -0
  140. package/public/packages/brick/0.1.11/components/number-input.txt +150 -0
  141. package/public/packages/brick/0.1.11/components/otp-field.txt +146 -0
  142. package/public/packages/brick/0.1.11/components/pagination.txt +124 -0
  143. package/public/packages/brick/0.1.11/components/password-toggle-field.txt +146 -0
  144. package/public/packages/brick/0.1.11/components/popover.txt +181 -0
  145. package/public/packages/brick/0.1.11/components/progress-circle.txt +142 -0
  146. package/public/packages/brick/0.1.11/components/progress.txt +150 -0
  147. package/public/packages/brick/0.1.11/components/radio-group.txt +152 -0
  148. package/public/packages/brick/0.1.11/components/rating.txt +151 -0
  149. package/public/packages/brick/0.1.11/components/reorderable-list.txt +130 -0
  150. package/public/packages/brick/0.1.11/components/scroll-area.txt +110 -0
  151. package/public/packages/brick/0.1.11/components/section.txt +118 -0
  152. package/public/packages/brick/0.1.11/components/segment-group.txt +116 -0
  153. package/public/packages/brick/0.1.11/components/select.txt +157 -0
  154. package/public/packages/brick/0.1.11/components/show.txt +121 -0
  155. package/public/packages/brick/0.1.11/components/sidebar.txt +126 -0
  156. package/public/packages/brick/0.1.11/components/skeleton.txt +127 -0
  157. package/public/packages/brick/0.1.11/components/skip-link.txt +102 -0
  158. package/public/packages/brick/0.1.11/components/slider.txt +147 -0
  159. package/public/packages/brick/0.1.11/components/stack.txt +155 -0
  160. package/public/packages/brick/0.1.11/components/status.txt +110 -0
  161. package/public/packages/brick/0.1.11/components/surface.txt +194 -0
  162. package/public/packages/brick/0.1.11/components/swipeable-item.txt +154 -0
  163. package/public/packages/brick/0.1.11/components/switch.txt +152 -0
  164. package/public/packages/brick/0.1.11/components/table.txt +183 -0
  165. package/public/packages/brick/0.1.11/components/tabs.txt +136 -0
  166. package/public/packages/brick/0.1.11/components/text.txt +148 -0
  167. package/public/packages/brick/0.1.11/components/textarea.txt +101 -0
  168. package/public/packages/brick/0.1.11/components/toast.txt +150 -0
  169. package/public/packages/brick/0.1.11/components/toggle-group.txt +149 -0
  170. package/public/packages/brick/0.1.11/components/toggle.txt +140 -0
  171. package/public/packages/brick/0.1.11/components/toolbar.txt +118 -0
  172. package/public/packages/brick/0.1.11/components/tooltip.txt +156 -0
  173. package/public/packages/brick/0.1.11/components/tree-grid.txt +160 -0
  174. package/public/packages/brick/0.1.11/components/tree.txt +156 -0
  175. package/public/packages/brick/0.1.11/components/visually-hidden.txt +123 -0
  176. package/public/packages/brick/0.1.11/components/z-stack.txt +143 -0
  177. package/public/packages/brick/0.1.11/docs/guides/agent-knowledge.txt +67 -0
  178. package/public/packages/brick/0.1.11/docs/guides/appearance-and-tokens.txt +179 -0
  179. package/public/packages/brick/0.1.11/docs/guides/browser-support.txt +25 -0
  180. package/public/packages/brick/0.1.11/docs/guides/control-sizing.txt +59 -0
  181. package/public/packages/brick/0.1.11/docs/guides/installation.txt +79 -0
  182. package/public/packages/brick/0.1.11/docs/guides/theme-contract.txt +90 -0
  183. package/public/packages/brick/0.1.11/guides/interface-composition.txt +665 -0
  184. package/public/packages/brick/0.1.11/guides/layer-selection.txt +1437 -0
  185. package/public/packages/brick/0.1.11/index.txt +110 -0
  186. package/public/packages/colors/0.1.1/docs/agent-knowledge.txt +63 -0
  187. package/public/packages/colors/0.1.1/docs/architecture.txt +74 -0
  188. package/public/packages/colors/0.1.1/docs/color-foundations.txt +128 -0
  189. package/public/packages/colors/0.1.1/docs/compatibility.txt +75 -0
  190. package/public/packages/colors/0.1.1/docs/dependency-qualification.txt +117 -0
  191. package/public/packages/colors/0.1.1/docs/installation.txt +48 -0
  192. package/public/packages/colors/0.1.1/docs/palette-generation.txt +151 -0
  193. package/public/packages/colors/0.1.1/docs/releasing.txt +34 -0
  194. package/public/packages/colors/0.1.1/docs/testing.txt +51 -0
  195. package/public/packages/colors/0.1.1/guides/colors-system.txt +282 -0
  196. package/public/packages/colors/0.1.1/index.txt +29 -0
  197. package/public/packages/colors/0.1.1/operations/color-conversion.txt +14 -0
  198. package/public/packages/colors/0.1.1/operations/color-inspection.txt +23 -0
  199. package/public/packages/colors/0.1.1/operations/color-measurement.txt +18 -0
  200. package/public/packages/colors/0.1.1/operations/color-provenance.txt +14 -0
  201. package/public/packages/colors/0.1.1/operations/named-palette-reference.txt +15 -0
  202. package/public/packages/colors/0.1.1/operations/palette-candidate.txt +37 -0
  203. package/public/packages/theme/0.1.1/docs/agent-knowledge.txt +44 -0
  204. package/public/packages/theme/0.1.1/docs/appearances-and-portals.txt +41 -0
  205. package/public/packages/theme/0.1.1/docs/architecture.txt +121 -0
  206. package/public/packages/theme/0.1.1/docs/authoring.txt +141 -0
  207. package/public/packages/theme/0.1.1/docs/colors-interchange.txt +82 -0
  208. package/public/packages/theme/0.1.1/docs/fonts.txt +40 -0
  209. package/public/packages/theme/0.1.1/docs/installation.txt +45 -0
  210. package/public/packages/theme/0.1.1/docs/migration.txt +40 -0
  211. package/public/packages/theme/0.1.1/docs/testing.txt +64 -0
  212. package/public/packages/theme/0.1.1/docs/troubleshooting.txt +53 -0
  213. package/public/packages/theme/0.1.1/guides/theme-system.txt +340 -0
  214. package/public/packages/theme/0.1.1/index.txt +31 -0
  215. package/public/packages/theme/0.1.1/operations/brick-contract-compatibility.txt +35 -0
  216. package/public/packages/theme/0.1.1/operations/colors-interchange.txt +35 -0
  217. package/public/packages/theme/0.1.1/operations/theme-artifacts.txt +19 -0
  218. package/public/packages/theme/0.1.1/operations/theme-cli.txt +10 -0
  219. package/public/packages/theme/0.1.1/operations/theme-compilation.txt +23 -0
  220. package/public/packages/theme/0.1.1/operations/theme-definition.txt +36 -0
  221. package/public/packages/theme/0.1.1/operations/theme-validation.txt +19 -0
  222. package/public/tasks/data.txt +39 -0
  223. package/public/tasks/forms.txt +65 -0
  224. package/public/tasks/layout.txt +37 -0
  225. package/public/tasks/navigation.txt +51 -0
  226. package/public/tasks/overlays.txt +39 -0
  227. package/public/tasks/theming.txt +37 -0
  228. package/skills/flowstack-ui-builder/SKILL.md +35 -0
  229. package/skills/flowstack-ui-builder/agents/openai.yaml +4 -0
  230. package/skills/flowstack-ui-builder/scripts/resolve-agent-knowledge.mjs +399 -0
  231. package/skills/flowstack-ui-compose/SKILL.md +32 -0
  232. package/skills/flowstack-ui-compose/agents/openai.yaml +4 -0
  233. package/skills/flowstack-ui-compose/scripts/resolve-agent-knowledge.mjs +399 -0
  234. package/skills/flowstack-ui-maintainer/SKILL.md +40 -0
  235. package/skills/flowstack-ui-maintainer/agents/openai.yaml +4 -0
  236. package/skills/flowstack-ui-maintainer/scripts/resolve-agent-knowledge.mjs +399 -0
  237. package/skills/flowstack-ui-review/SKILL.md +29 -0
  238. package/skills/flowstack-ui-review/agents/openai.yaml +4 -0
  239. package/skills/flowstack-ui-review/scripts/resolve-agent-knowledge.mjs +399 -0
@@ -0,0 +1,101 @@
1
+ # Input
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: input
6
+
7
+ # Input agent guide
8
+
9
+ ## Purpose
10
+
11
+ Render finished native single-line text entry with Brick sizing, states, and Atom field integration.
12
+
13
+ ## Use when
14
+
15
+ - The user enters a single-line text, email, search, URL, telephone, or supported native input value.
16
+
17
+ ## Choose something else when
18
+
19
+ - The value needs multiple lines. Use Textarea.
20
+
21
+ ## Required composition
22
+
23
+ - Place Input inside one Field.Root after Field.Label; provide name, type, and autocomplete appropriate to the data. Use outline when the containing surface should remain visible and soft when Input should own a filled plane.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Use a persistent accessible label; placeholder is not a replacement.
28
+ - **MUST:** Load styles.css or core.css plus input.css and field.css when composed with Field.
29
+
30
+ ## Common mistakes
31
+
32
+ - **Avoid:** Using placeholder as the only visible label. **Instead:** Compose Input with Field.Label and use placeholder only as optional example text.
33
+
34
+ ## Validation checklist
35
+
36
+ - Inspect label, name, type, autocomplete, and messaging relationships.
37
+ - Test focus, entry, autofill, invalid/disabled states, zoom, and both appearances.
38
+
39
+ ## Related guidance
40
+
41
+ - `@flowstack-ui/atom/agents/input`
42
+ - `field`
43
+ - `textarea`
44
+
45
+ ## Machine record
46
+
47
+ ```json
48
+ {
49
+ "schema": "flowstack.agent-component.v1",
50
+ "id": "input",
51
+ "name": "Input",
52
+ "package": "@flowstack-ui/brick",
53
+ "layer": "brick",
54
+ "kind": "component",
55
+ "purpose": "Render finished native single-line text entry with Brick sizing, states, and Atom field integration.",
56
+ "useWhen": [
57
+ "The user enters a single-line text, email, search, URL, telephone, or supported native input value."
58
+ ],
59
+ "avoidWhen": [
60
+ {
61
+ "condition": "The value needs multiple lines.",
62
+ "useInstead": "Textarea"
63
+ }
64
+ ],
65
+ "composition": [
66
+ "Place Input inside one Field.Root after Field.Label; provide name, type, and autocomplete appropriate to the data. Use outline when the containing surface should remain visible and soft when Input should own a filled plane."
67
+ ],
68
+ "rules": [
69
+ {
70
+ "id": "input-label",
71
+ "level": "must",
72
+ "statement": "Use a persistent accessible label; placeholder is not a replacement."
73
+ },
74
+ {
75
+ "id": "input-css",
76
+ "level": "must",
77
+ "statement": "Load styles.css or core.css plus input.css and field.css when composed with Field."
78
+ }
79
+ ],
80
+ "commonMistakes": [
81
+ {
82
+ "mistake": "Using placeholder as the only visible label.",
83
+ "correction": "Compose Input with Field.Label and use placeholder only as optional example text."
84
+ }
85
+ ],
86
+ "validation": [
87
+ "Inspect label, name, type, autocomplete, and messaging relationships.",
88
+ "Test focus, entry, autofill, invalid/disabled states, zoom, and both appearances."
89
+ ],
90
+ "related": [
91
+ {
92
+ "kind": "package",
93
+ "package": "@flowstack-ui/atom",
94
+ "id": "input",
95
+ "versionPolicy": "installed-exact"
96
+ },
97
+ "field",
98
+ "textarea"
99
+ ]
100
+ }
101
+ ```
@@ -0,0 +1,161 @@
1
+ # Link Box
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: link-box
6
+
7
+ # Link Box agent guide
8
+
9
+ ## Purpose
10
+
11
+ Expand one real destination across a containing region while keeping secondary controls independent.
12
+
13
+ ## Use when
14
+
15
+ - A card, result, article, or other bounded item has one primary destination and needs a larger pointer target.
16
+ - The same item may contain a separate save, compare, menu, or other action.
17
+
18
+ ## Choose something else when
19
+
20
+ - The complete region performs an operation instead of navigating. Use Button or Pressable.
21
+ - Only the visible text should be clickable or pointer text selection is important. Use Link.
22
+
23
+ ## Required composition
24
+
25
+ - Wrap the complete visual item in LinkBox.Root and put LinkBox.Link around concise destination text, usually the item title.
26
+ - Wrap every independently interactive sibling in LinkBox.Action; never place buttons or additional links inside LinkBox.Link.
27
+ - 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.
28
+ - 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.
29
+
30
+ ## Rules
31
+
32
+ - **MUST:** Provide exactly one primary LinkBox.Link with a real destination and concise accessible name.
33
+ - **MUST:** Keep secondary controls outside the primary anchor and inside LinkBox.Action.
34
+ - **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.
35
+ - **MUST:** Do not add role, tabIndex, click handlers, or Pressable behavior to LinkBox.Root.
36
+ - **MUST:** Load styles.css or core.css plus link-box.css; the modular entry includes Link styling.
37
+ - **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.
38
+
39
+ ## Common mistakes
40
+
41
+ - **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.
42
+ - **Avoid:** Making Root focusable in addition to Link. **Instead:** Root is only a visual containing region; the real Link owns focus and navigation.
43
+ - **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.
44
+ - **Avoid:** Using LinkBox for a card that only performs an operation. **Instead:** Use Button or Pressable so action semantics and keyboard behavior remain truthful.
45
+
46
+ ## Validation checklist
47
+
48
+ - Inspect the final DOM for one primary a[href] and no nested interactive elements.
49
+ - Click empty visual areas, then keyboard-focus and activate the named link with Enter.
50
+ - Verify secondary controls activate independently with both pointer and keyboard input and do not navigate.
51
+ - Check the whole-region hover and focus ring in light, dark, forced colors, narrow layouts, and zoom.
52
+
53
+ ## Related guidance
54
+
55
+ - `@flowstack-ui/atom/agents/link`
56
+ - `link`
57
+ - `card`
58
+ - `button`
59
+ - `icon-button`
60
+
61
+ ## Machine record
62
+
63
+ ```json
64
+ {
65
+ "schema": "flowstack.agent-component.v1",
66
+ "id": "link-box",
67
+ "name": "Link Box",
68
+ "package": "@flowstack-ui/brick",
69
+ "layer": "brick",
70
+ "kind": "component",
71
+ "purpose": "Expand one real destination across a containing region while keeping secondary controls independent.",
72
+ "useWhen": [
73
+ "A card, result, article, or other bounded item has one primary destination and needs a larger pointer target.",
74
+ "The same item may contain a separate save, compare, menu, or other action."
75
+ ],
76
+ "avoidWhen": [
77
+ {
78
+ "condition": "The complete region performs an operation instead of navigating.",
79
+ "useInstead": "Button or Pressable"
80
+ },
81
+ {
82
+ "condition": "Only the visible text should be clickable or pointer text selection is important.",
83
+ "useInstead": "Link"
84
+ }
85
+ ],
86
+ "composition": [
87
+ "Wrap the complete visual item in LinkBox.Root and put LinkBox.Link around concise destination text, usually the item title.",
88
+ "Wrap every independently interactive sibling in LinkBox.Action; never place buttons or additional links inside LinkBox.Link.",
89
+ "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.",
90
+ "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."
91
+ ],
92
+ "rules": [
93
+ {
94
+ "id": "link-box-one-destination",
95
+ "level": "must",
96
+ "statement": "Provide exactly one primary LinkBox.Link with a real destination and concise accessible name."
97
+ },
98
+ {
99
+ "id": "link-box-actions",
100
+ "level": "must",
101
+ "statement": "Keep secondary controls outside the primary anchor and inside LinkBox.Action."
102
+ },
103
+ {
104
+ "id": "link-box-overlay-actions",
105
+ "level": "must",
106
+ "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."
107
+ },
108
+ {
109
+ "id": "link-box-no-press",
110
+ "level": "must",
111
+ "statement": "Do not add role, tabIndex, click handlers, or Pressable behavior to LinkBox.Root."
112
+ },
113
+ {
114
+ "id": "link-box-css",
115
+ "level": "must",
116
+ "statement": "Load styles.css or core.css plus link-box.css; the modular entry includes Link styling."
117
+ },
118
+ {
119
+ "id": "link-box-plain-editorial",
120
+ "level": "should",
121
+ "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."
122
+ }
123
+ ],
124
+ "commonMistakes": [
125
+ {
126
+ "mistake": "Wrapping the entire Card in Link and then adding favorite or menu buttons inside it.",
127
+ "correction": "Use LinkBox.Root, keep one title LinkBox.Link, and layer each separate control through LinkBox.Action."
128
+ },
129
+ {
130
+ "mistake": "Making Root focusable in addition to Link.",
131
+ "correction": "Root is only a visual containing region; the real Link owns focus and navigation."
132
+ },
133
+ {
134
+ "mistake": "Placing LinkBox.Action inside an isolated overlay layout without checking stacking contexts.",
135
+ "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."
136
+ },
137
+ {
138
+ "mistake": "Using LinkBox for a card that only performs an operation.",
139
+ "correction": "Use Button or Pressable so action semantics and keyboard behavior remain truthful."
140
+ }
141
+ ],
142
+ "validation": [
143
+ "Inspect the final DOM for one primary a[href] and no nested interactive elements.",
144
+ "Click empty visual areas, then keyboard-focus and activate the named link with Enter.",
145
+ "Verify secondary controls activate independently with both pointer and keyboard input and do not navigate.",
146
+ "Check the whole-region hover and focus ring in light, dark, forced colors, narrow layouts, and zoom."
147
+ ],
148
+ "related": [
149
+ {
150
+ "kind": "package",
151
+ "package": "@flowstack-ui/atom",
152
+ "id": "link",
153
+ "versionPolicy": "installed-exact"
154
+ },
155
+ "link",
156
+ "card",
157
+ "button",
158
+ "icon-button"
159
+ ]
160
+ }
161
+ ```
@@ -0,0 +1,133 @@
1
+ # Link
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: link
6
+
7
+ # Link agent guide
8
+
9
+ ## Purpose
10
+
11
+ Render finished native navigation as inline, standalone, or button-like content without changing its link semantics.
12
+
13
+ ## Use when
14
+
15
+ - The user moves to a route, URL, document, download, email address, or telephone destination.
16
+
17
+ ## Choose something else when
18
+
19
+ - The interaction changes current state without navigating. Use Button.
20
+
21
+ ## Required composition
22
+
23
+ - 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.
24
+ - 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.
25
+
26
+ ## Rules
27
+
28
+ - **MUST:** Preserve anchor semantics and a real destination even when the link looks like a button.
29
+ - **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.
30
+ - **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.
31
+ - **MUST:** Load styles.css or core.css plus link.css.
32
+
33
+ ## Common mistakes
34
+
35
+ - **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.
36
+ - **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.
37
+ - **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.
38
+
39
+ ## Validation checklist
40
+
41
+ - Inspect href and accessible name.
42
+ - For inline prose links, confirm the Link remains inside the owning sentence or paragraph, inherits its typography, and wraps as one text flow.
43
+ - Test focus, Enter navigation, visited/external behavior when relevant, and contrast.
44
+ - For no-resting-underline themes, verify the compiled 3:1 text-distinction result and the interactive underline.
45
+ - 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.
46
+
47
+ ## Related guidance
48
+
49
+ - `@flowstack-ui/atom/agents/link`
50
+ - `text`
51
+ - `stack`
52
+ - `button`
53
+
54
+ ## Machine record
55
+
56
+ ```json
57
+ {
58
+ "schema": "flowstack.agent-component.v1",
59
+ "id": "link",
60
+ "name": "Link",
61
+ "package": "@flowstack-ui/brick",
62
+ "layer": "brick",
63
+ "kind": "component",
64
+ "purpose": "Render finished native navigation as inline, standalone, or button-like content without changing its link semantics.",
65
+ "useWhen": [
66
+ "The user moves to a route, URL, document, download, email address, or telephone destination."
67
+ ],
68
+ "avoidWhen": [
69
+ {
70
+ "condition": "The interaction changes current state without navigating.",
71
+ "useInstead": "Button"
72
+ }
73
+ ],
74
+ "composition": [
75
+ "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.",
76
+ "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."
77
+ ],
78
+ "rules": [
79
+ {
80
+ "id": "link-destination",
81
+ "level": "must",
82
+ "statement": "Preserve anchor semantics and a real destination even when the link looks like a button."
83
+ },
84
+ {
85
+ "id": "link-inline-sentence",
86
+ "level": "must",
87
+ "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."
88
+ },
89
+ {
90
+ "id": "link-plain-distinction",
91
+ "level": "must",
92
+ "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."
93
+ },
94
+ {
95
+ "id": "link-css",
96
+ "level": "must",
97
+ "statement": "Load styles.css or core.css plus link.css."
98
+ }
99
+ ],
100
+ "commonMistakes": [
101
+ {
102
+ "mistake": "Replacing ordinary inline or standalone navigation with Button only to increase emphasis.",
103
+ "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."
104
+ },
105
+ {
106
+ "mistake": "Rendering prose and the Link that completes it as separate Stack children, or explicitly restating Link's default inherited size.",
107
+ "correction": "Render one semantic Text sentence with an inline Link and leave its inherited size implicit; reserve Stack for independent peers."
108
+ },
109
+ {
110
+ "mistake": "Removing resting underlines globally without validating links against surrounding text.",
111
+ "correction": "Use the Theme Link input so compilation validates the required text distinction, or keep underlines."
112
+ }
113
+ ],
114
+ "validation": [
115
+ "Inspect href and accessible name.",
116
+ "For inline prose links, confirm the Link remains inside the owning sentence or paragraph, inherits its typography, and wraps as one text flow.",
117
+ "Test focus, Enter navigation, visited/external behavior when relevant, and contrast.",
118
+ "For no-resting-underline themes, verify the compiled 3:1 text-distinction result and the interactive underline.",
119
+ "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."
120
+ ],
121
+ "related": [
122
+ {
123
+ "kind": "package",
124
+ "package": "@flowstack-ui/atom",
125
+ "id": "link",
126
+ "versionPolicy": "installed-exact"
127
+ },
128
+ "text",
129
+ "stack",
130
+ "button"
131
+ ]
132
+ }
133
+ ```
@@ -0,0 +1,139 @@
1
+ # List
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: list
6
+
7
+ # List agent guide
8
+
9
+ ## Purpose
10
+
11
+ Render finished ordered or unordered content with native list semantics, optional structured rows, markers, density, and boundaries.
12
+
13
+ ## Use when
14
+
15
+ - Content is naturally a set of peer items or a sequence and needs Brick's finished list presentation.
16
+
17
+ ## Choose something else when
18
+
19
+ - Rows are persistent route destinations or need current-route state. Use NavList.
20
+ - Rows form a keyboard-operated choice, action collection, data table, or two-dimensional grid. Use Listbox, Menu, Table, or DataGrid according to the interaction.
21
+ - Content only needs visual spacing and has no list relationship. Use Stack or Grid.
22
+
23
+ ## Required composition
24
+
25
+ - Compose Root > Item; for structured rows use Leading, Content with Title and Description, then Trailing in that order.
26
+ - Use ordered only when sequence changes meaning and preserve native list hosts when composing with asChild or render.
27
+ - Keep Trailing for compact metadata or controls; when a long action would narrow supporting copy, place the action with the title inside Content using Brick layout instead.
28
+
29
+ ## Rules
30
+
31
+ - **MUST:** Use List only for a real item or sequence relationship and preserve native list semantics.
32
+ - **MUST:** Keep structured row parts in Leading, Content, Trailing order and use one Content and one Trailing maximum per Item.
33
+ - **MUST:** Keep Trailing compact; move long actions into a Content-owned layout when a fixed trailing column would damage narrow-screen reading.
34
+ - **MUST:** Do not add row selection, activation, focus movement, or navigation behavior to List; choose the component that owns that interaction.
35
+ - **MUST:** Load styles.css or core.css plus list.css.
36
+
37
+ ## Common mistakes
38
+
39
+ - **Avoid:** Using List as a generic row layout, making an Item itself clickable, or placing a long action in Trailing until supporting text becomes a narrow column. **Instead:** Use Stack or Grid for non-list layout, NavList or another interaction owner for clickable rows, and move long actions into Content's own layout.
40
+ - **Avoid:** Assuming an Item's disabled presentation disables controls inside it. **Instead:** Apply the proper disabled contract to every interactive descendant; List's disabled state is descriptive and visual only.
41
+
42
+ ## Validation checklist
43
+
44
+ - Inspect ul or ol and li output, ordered meaning, marker behavior, structured-part order, nesting, roles, and CSS delivery.
45
+ - 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.
46
+ - Confirm Trailing content does not squeeze Content, controls have names and touch targets, disabled descendants are handled explicitly, and List adds no keyboard model.
47
+
48
+ ## Related guidance
49
+
50
+ - `nav-list`
51
+ - `stack`
52
+ - `grid`
53
+ - `text`
54
+ - `divider`
55
+
56
+ ## Machine record
57
+
58
+ ```json
59
+ {
60
+ "schema": "flowstack.agent-component.v1",
61
+ "id": "list",
62
+ "name": "List",
63
+ "package": "@flowstack-ui/brick",
64
+ "layer": "brick",
65
+ "kind": "component",
66
+ "purpose": "Render finished ordered or unordered content with native list semantics, optional structured rows, markers, density, and boundaries.",
67
+ "useWhen": [
68
+ "Content is naturally a set of peer items or a sequence and needs Brick's finished list presentation."
69
+ ],
70
+ "avoidWhen": [
71
+ {
72
+ "condition": "Rows are persistent route destinations or need current-route state.",
73
+ "useInstead": "NavList"
74
+ },
75
+ {
76
+ "condition": "Rows form a keyboard-operated choice, action collection, data table, or two-dimensional grid.",
77
+ "useInstead": "Listbox, Menu, Table, or DataGrid according to the interaction"
78
+ },
79
+ {
80
+ "condition": "Content only needs visual spacing and has no list relationship.",
81
+ "useInstead": "Stack or Grid"
82
+ }
83
+ ],
84
+ "composition": [
85
+ "Compose Root > Item; for structured rows use Leading, Content with Title and Description, then Trailing in that order.",
86
+ "Use ordered only when sequence changes meaning and preserve native list hosts when composing with asChild or render.",
87
+ "Keep Trailing for compact metadata or controls; when a long action would narrow supporting copy, place the action with the title inside Content using Brick layout instead."
88
+ ],
89
+ "rules": [
90
+ {
91
+ "id": "list-native-relationship",
92
+ "level": "must",
93
+ "statement": "Use List only for a real item or sequence relationship and preserve native list semantics."
94
+ },
95
+ {
96
+ "id": "list-structured-order",
97
+ "level": "must",
98
+ "statement": "Keep structured row parts in Leading, Content, Trailing order and use one Content and one Trailing maximum per Item."
99
+ },
100
+ {
101
+ "id": "list-trailing-width",
102
+ "level": "must",
103
+ "statement": "Keep Trailing compact; move long actions into a Content-owned layout when a fixed trailing column would damage narrow-screen reading."
104
+ },
105
+ {
106
+ "id": "list-no-interaction",
107
+ "level": "must",
108
+ "statement": "Do not add row selection, activation, focus movement, or navigation behavior to List; choose the component that owns that interaction."
109
+ },
110
+ {
111
+ "id": "list-css",
112
+ "level": "must",
113
+ "statement": "Load styles.css or core.css plus list.css."
114
+ }
115
+ ],
116
+ "commonMistakes": [
117
+ {
118
+ "mistake": "Using List as a generic row layout, making an Item itself clickable, or placing a long action in Trailing until supporting text becomes a narrow column.",
119
+ "correction": "Use Stack or Grid for non-list layout, NavList or another interaction owner for clickable rows, and move long actions into Content's own layout."
120
+ },
121
+ {
122
+ "mistake": "Assuming an Item's disabled presentation disables controls inside it.",
123
+ "correction": "Apply the proper disabled contract to every interactive descendant; List's disabled state is descriptive and visual only."
124
+ }
125
+ ],
126
+ "validation": [
127
+ "Inspect ul or ol and li output, ordered meaning, marker behavior, structured-part order, nesting, roles, and CSS delivery.",
128
+ "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.",
129
+ "Confirm Trailing content does not squeeze Content, controls have names and touch targets, disabled descendants are handled explicitly, and List adds no keyboard model."
130
+ ],
131
+ "related": [
132
+ "nav-list",
133
+ "stack",
134
+ "grid",
135
+ "text",
136
+ "divider"
137
+ ]
138
+ }
139
+ ```