@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,121 @@
1
+ # Label
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: label
6
+
7
+ # Label agent guide
8
+
9
+ ## Purpose
10
+
11
+ Provide a server-safe native label for one form control, with optional consumer-owned state metadata and no independent behavior contract.
12
+
13
+ ## Use when
14
+
15
+ - One native form control needs a standalone visible text label and does not require coordinated description, error, or Field state wiring.
16
+
17
+ ## Choose something else when
18
+
19
+ - The control also needs coordinated required, disabled, invalid, description, or error relationships, or the text labels a group of controls. Use Field.Label or Fieldset.
20
+
21
+ ## Required composition
22
+
23
+ - Render clear visible text in Root and either match htmlFor to exactly one labelable control id or wrap that control. Mirror optional metadata props only when useful for selectors, while applying real disabled, required, readOnly, and invalid state to the control itself.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Associate Root with one labelable control through matching htmlFor and id or valid native wrapped-control labeling.
28
+ - **MUST:** Use clear visible label text; do not replace an ordinary form label with placeholder text or an unlabeled icon.
29
+ - **MUST:** Treat disabled, required, readOnly, and invalid props as data metadata only and apply the corresponding native or ARIA state to the associated control.
30
+ - **MUST:** Use Field.Label when label, control, description, error, and shared state need coordinated IDs and relationships.
31
+ - **MUST:** Do not use one Label for several controls; use Fieldset and Legend or the component's group labeling contract.
32
+
33
+ ## Common mistakes
34
+
35
+ - **Avoid:** Setting Label required or invalid and assuming the control announces or enforces that state. **Instead:** Apply actual required and invalid semantics to the control and keep Label metadata synchronized.
36
+ - **Avoid:** Using htmlFor that does not match an id, wrapping multiple controls, or using Label as general text styling. **Instead:** Maintain one valid native label-control association and use ordinary text elements for non-form content.
37
+
38
+ ## Validation checklist
39
+
40
+ - Verify explicit htmlFor/id and wrapped-control variants focus or activate the intended native control and expose the correct accessible name.
41
+ - Verify disabled, required, read-only, and invalid data attributes reflect consumer state while the control independently exposes and enforces its real state.
42
+ - Confirm complex fields use Field, control groups use Fieldset or their group primitive, and asChild or render overrides preserve valid labeling semantics, props, and refs.
43
+
44
+ ## Related guidance
45
+
46
+ - `field`
47
+ - `fieldset`
48
+ - `input`
49
+
50
+ ## Machine record
51
+
52
+ ```json
53
+ {
54
+ "schema": "flowstack.agent-component.v1",
55
+ "id": "label",
56
+ "name": "Label",
57
+ "package": "@flowstack-ui/atom",
58
+ "layer": "atom",
59
+ "kind": "component",
60
+ "purpose": "Provide a server-safe native label for one form control, with optional consumer-owned state metadata and no independent behavior contract.",
61
+ "useWhen": [
62
+ "One native form control needs a standalone visible text label and does not require coordinated description, error, or Field state wiring."
63
+ ],
64
+ "avoidWhen": [
65
+ {
66
+ "condition": "The control also needs coordinated required, disabled, invalid, description, or error relationships, or the text labels a group of controls.",
67
+ "useInstead": "Field.Label or Fieldset"
68
+ }
69
+ ],
70
+ "composition": [
71
+ "Render clear visible text in Root and either match htmlFor to exactly one labelable control id or wrap that control. Mirror optional metadata props only when useful for selectors, while applying real disabled, required, readOnly, and invalid state to the control itself."
72
+ ],
73
+ "rules": [
74
+ {
75
+ "id": "label-native-association",
76
+ "level": "must",
77
+ "statement": "Associate Root with one labelable control through matching htmlFor and id or valid native wrapped-control labeling."
78
+ },
79
+ {
80
+ "id": "label-visible-name",
81
+ "level": "must",
82
+ "statement": "Use clear visible label text; do not replace an ordinary form label with placeholder text or an unlabeled icon."
83
+ },
84
+ {
85
+ "id": "label-state-boundary",
86
+ "level": "must",
87
+ "statement": "Treat disabled, required, readOnly, and invalid props as data metadata only and apply the corresponding native or ARIA state to the associated control."
88
+ },
89
+ {
90
+ "id": "label-field-boundary",
91
+ "level": "must",
92
+ "statement": "Use Field.Label when label, control, description, error, and shared state need coordinated IDs and relationships."
93
+ },
94
+ {
95
+ "id": "label-group-boundary",
96
+ "level": "must",
97
+ "statement": "Do not use one Label for several controls; use Fieldset and Legend or the component's group labeling contract."
98
+ }
99
+ ],
100
+ "commonMistakes": [
101
+ {
102
+ "mistake": "Setting Label required or invalid and assuming the control announces or enforces that state.",
103
+ "correction": "Apply actual required and invalid semantics to the control and keep Label metadata synchronized."
104
+ },
105
+ {
106
+ "mistake": "Using htmlFor that does not match an id, wrapping multiple controls, or using Label as general text styling.",
107
+ "correction": "Maintain one valid native label-control association and use ordinary text elements for non-form content."
108
+ }
109
+ ],
110
+ "validation": [
111
+ "Verify explicit htmlFor/id and wrapped-control variants focus or activate the intended native control and expose the correct accessible name.",
112
+ "Verify disabled, required, read-only, and invalid data attributes reflect consumer state while the control independently exposes and enforces its real state.",
113
+ "Confirm complex fields use Field, control groups use Fieldset or their group primitive, and asChild or render overrides preserve valid labeling semantics, props, and refs."
114
+ ],
115
+ "related": [
116
+ "field",
117
+ "fieldset",
118
+ "input"
119
+ ]
120
+ }
121
+ ```
@@ -0,0 +1,100 @@
1
+ # Link
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: link
6
+
7
+ # Link agent guide
8
+
9
+ ## Purpose
10
+
11
+ Provide native destination navigation with composition support for router-owned anchors.
12
+
13
+ ## Use when
14
+
15
+ - The user moves to a URL, route, document, download, email address, or telephone destination.
16
+
17
+ ## Choose something else when
18
+
19
+ - The interaction changes current application state without navigating. Use Button.
20
+
21
+ ## Required composition
22
+
23
+ - Render an anchor with a real href, or compose a router link that preserves anchor semantics and href output.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Provide a real navigable destination.
28
+ - **MUST:** Make the accessible name describe the destination or result.
29
+
30
+ ## Common mistakes
31
+
32
+ - **Avoid:** Using a click handler on a non-link element for navigation. **Instead:** Render Link or a router anchor through the public composition API.
33
+
34
+ ## Validation checklist
35
+
36
+ - Inspect the rendered href.
37
+ - Confirm Enter activates navigation and the link appears in the accessibility tree.
38
+
39
+ ## Related guidance
40
+
41
+ - `button`
42
+ - `pressable`
43
+ - `breadcrumb`
44
+ - `nav-list`
45
+ - `navigation-menu`
46
+
47
+ ## Machine record
48
+
49
+ ```json
50
+ {
51
+ "schema": "flowstack.agent-component.v1",
52
+ "id": "link",
53
+ "name": "Link",
54
+ "package": "@flowstack-ui/atom",
55
+ "layer": "atom",
56
+ "kind": "component",
57
+ "purpose": "Provide native destination navigation with composition support for router-owned anchors.",
58
+ "useWhen": [
59
+ "The user moves to a URL, route, document, download, email address, or telephone destination."
60
+ ],
61
+ "avoidWhen": [
62
+ {
63
+ "condition": "The interaction changes current application state without navigating.",
64
+ "useInstead": "Button"
65
+ }
66
+ ],
67
+ "composition": [
68
+ "Render an anchor with a real href, or compose a router link that preserves anchor semantics and href output."
69
+ ],
70
+ "rules": [
71
+ {
72
+ "id": "link-real-destination",
73
+ "level": "must",
74
+ "statement": "Provide a real navigable destination."
75
+ },
76
+ {
77
+ "id": "link-purpose",
78
+ "level": "must",
79
+ "statement": "Make the accessible name describe the destination or result."
80
+ }
81
+ ],
82
+ "commonMistakes": [
83
+ {
84
+ "mistake": "Using a click handler on a non-link element for navigation.",
85
+ "correction": "Render Link or a router anchor through the public composition API."
86
+ }
87
+ ],
88
+ "validation": [
89
+ "Inspect the rendered href.",
90
+ "Confirm Enter activates navigation and the link appears in the accessibility tree."
91
+ ],
92
+ "related": [
93
+ "button",
94
+ "pressable",
95
+ "breadcrumb",
96
+ "nav-list",
97
+ "navigation-menu"
98
+ ]
99
+ }
100
+ ```
@@ -0,0 +1,131 @@
1
+ # List
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: list
6
+
7
+ # List agent guide
8
+
9
+ ## Purpose
10
+
11
+ Render server-safe native ordered or unordered list structure without adding selection, activation, focus, or navigation behavior.
12
+
13
+ ## Use when
14
+
15
+ - Content is naturally a set of peer items or a sequence whose order may carry meaning.
16
+
17
+ ## Choose something else when
18
+
19
+ - Items are persistent route destinations. Use NavList.
20
+ - Items form a keyboard-operated choice or action collection. Use Listbox, Menu, RadioGroup, or another matching interactive primitive.
21
+ - Content only needs visual spacing and has no list relationship. Use the styled layer's layout primitive.
22
+
23
+ ## Required composition
24
+
25
+ - Compose List.Root with List.Item children and set ordered only when item sequence changes meaning.
26
+ - Preserve ul or ol and li semantics when using render or asChild.
27
+ - Treat Item disabled state as descriptive metadata; separately disable or remove every interactive descendant when required.
28
+
29
+ ## Rules
30
+
31
+ - **MUST:** Preserve a native list root and list-item descendants unless an equivalent composed host retains the same semantics.
32
+ - **MUST:** Use ordered=true only when sequence changes meaning; visual numbering alone is not enough.
33
+ - **MUST:** Do not add selection, activation, roving focus, or route-current behavior to List; choose the primitive that owns that interaction.
34
+ - **SHOULD:** Keep static List composition server-safe unless authored descendants introduce a genuine client behavior requirement.
35
+
36
+ ## Common mistakes
37
+
38
+ - **Avoid:** Using List as a generic row layout or adding click and keyboard behavior to its items. **Instead:** Use native list semantics only for real item relationships and select NavList, Listbox, Menu, or another behavior owner for interaction.
39
+ - **Avoid:** Assuming Item disabled metadata disables nested controls. **Instead:** Apply the correct disabled contract to each interactive descendant because List only exposes descriptive item metadata.
40
+
41
+ ## Validation checklist
42
+
43
+ - Inspect the rendered ul or ol and li anatomy and confirm ordered meaning, start, reversed, and item values where used.
44
+ - Check list announcement in assistive technology, nested-list ownership, long content, zoom, and custom-render semantics.
45
+ - Confirm List adds no keyboard model and every interactive descendant owns its own accessible name and disabled state.
46
+
47
+ ## Related guidance
48
+
49
+ - `nav-list`
50
+ - `listbox`
51
+ - `menu`
52
+ - `feed`
53
+
54
+ ## Machine record
55
+
56
+ ```json
57
+ {
58
+ "schema": "flowstack.agent-component.v1",
59
+ "id": "list",
60
+ "name": "List",
61
+ "package": "@flowstack-ui/atom",
62
+ "layer": "atom",
63
+ "kind": "component",
64
+ "purpose": "Render server-safe native ordered or unordered list structure without adding selection, activation, focus, or navigation behavior.",
65
+ "useWhen": [
66
+ "Content is naturally a set of peer items or a sequence whose order may carry meaning."
67
+ ],
68
+ "avoidWhen": [
69
+ {
70
+ "condition": "Items are persistent route destinations.",
71
+ "useInstead": "NavList"
72
+ },
73
+ {
74
+ "condition": "Items form a keyboard-operated choice or action collection.",
75
+ "useInstead": "Listbox, Menu, RadioGroup, or another matching interactive primitive"
76
+ },
77
+ {
78
+ "condition": "Content only needs visual spacing and has no list relationship.",
79
+ "useInstead": "the styled layer's layout primitive"
80
+ }
81
+ ],
82
+ "composition": [
83
+ "Compose List.Root with List.Item children and set ordered only when item sequence changes meaning.",
84
+ "Preserve ul or ol and li semantics when using render or asChild.",
85
+ "Treat Item disabled state as descriptive metadata; separately disable or remove every interactive descendant when required."
86
+ ],
87
+ "rules": [
88
+ {
89
+ "id": "list-native-semantics",
90
+ "level": "must",
91
+ "statement": "Preserve a native list root and list-item descendants unless an equivalent composed host retains the same semantics."
92
+ },
93
+ {
94
+ "id": "list-order-meaning",
95
+ "level": "must",
96
+ "statement": "Use ordered=true only when sequence changes meaning; visual numbering alone is not enough."
97
+ },
98
+ {
99
+ "id": "list-no-interaction",
100
+ "level": "must",
101
+ "statement": "Do not add selection, activation, roving focus, or route-current behavior to List; choose the primitive that owns that interaction."
102
+ },
103
+ {
104
+ "id": "list-server-safe",
105
+ "level": "should",
106
+ "statement": "Keep static List composition server-safe unless authored descendants introduce a genuine client behavior requirement."
107
+ }
108
+ ],
109
+ "commonMistakes": [
110
+ {
111
+ "mistake": "Using List as a generic row layout or adding click and keyboard behavior to its items.",
112
+ "correction": "Use native list semantics only for real item relationships and select NavList, Listbox, Menu, or another behavior owner for interaction."
113
+ },
114
+ {
115
+ "mistake": "Assuming Item disabled metadata disables nested controls.",
116
+ "correction": "Apply the correct disabled contract to each interactive descendant because List only exposes descriptive item metadata."
117
+ }
118
+ ],
119
+ "validation": [
120
+ "Inspect the rendered ul or ol and li anatomy and confirm ordered meaning, start, reversed, and item values where used.",
121
+ "Check list announcement in assistive technology, nested-list ownership, long content, zoom, and custom-render semantics.",
122
+ "Confirm List adds no keyboard model and every interactive descendant owns its own accessible name and disabled state."
123
+ ],
124
+ "related": [
125
+ "nav-list",
126
+ "listbox",
127
+ "menu",
128
+ "feed"
129
+ ]
130
+ }
131
+ ```
@@ -0,0 +1,120 @@
1
+ # Listbox
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: listbox
6
+
7
+ # Listbox agent guide
8
+
9
+ ## Purpose
10
+
11
+ Present a persistently visible single- or multiple-selection option collection with listbox semantics, active-descendant focus, typeahead, grouping, and optional form submission.
12
+
13
+ ## Use when
14
+
15
+ - A visible option list should let users choose one or several values while remaining one composite keyboard control.
16
+
17
+ ## Choose something else when
18
+
19
+ - Choices should stay collapsed, users must type to filter, entries are commands, or every choice should be a separate native form control. Use Select or MultiSelect, Combobox, Menu, or RadioGroup or CheckboxGroup.
20
+
21
+ ## Required composition
22
+
23
+ - Give Root an accessible name, choose multiple deliberately, and compose uniquely valued Option parts. Add OptionText when option content is complex or needs explicit typeahead text, and pair Group with Label only for announced option sections.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Give the focusable Root an accessible name through native ARIA or Field labeling and preserve its listbox role and active-descendant relationship.
28
+ - **MUST:** Use scalar or null state for single selection and array state for multiple selection; keep value, defaultValue, and onValueChange shapes aligned with multiple.
29
+ - **MUST:** Give every Option a stable unique value and accessible text, using label or OptionText when rendered children do not provide reliable searchable text.
30
+ - **MUST:** Keep DOM focus on Root and preserve aria-activedescendant, orientation-specific Arrow movement, Home/End, loop policy, typeahead, disabled-option skipping, and Enter/Space selection.
31
+ - **MUST:** Preserve disabled, read-only, required, invalid, Field descriptions, named hidden value submission, and controlled/uncontrolled behavior without turning Options into independent form controls.
32
+
33
+ ## Common mistakes
34
+
35
+ - **Avoid:** Using Listbox for commands, giving every Option a Tab stop, mixing scalar and array values, or relying on decorative content for typeahead and naming. **Instead:** Choose Menu for commands, keep Root as the composite focus owner, align state to multiple, and provide explicit option text where needed.
36
+
37
+ ## Validation checklist
38
+
39
+ - Verify Root and Option names, single and multiple controlled/uncontrolled state, unique values, active-descendant focus, orientation Arrow keys, Home/End, loop boundaries, typeahead, Enter/Space, pointer selection, and disabled options.
40
+ - Verify read-only navigation without selection, required and invalid exposure, Field relationships, named single and repeated multiple hidden inputs, group-label relationships, OptionText registration, and asChild/render prop and ref merging.
41
+
42
+ ## Related guidance
43
+
44
+ - `select`
45
+ - `multi-select`
46
+ - `combobox`
47
+ - `menu`
48
+ - `radio-group`
49
+ - `checkbox-group`
50
+
51
+ ## Machine record
52
+
53
+ ```json
54
+ {
55
+ "schema": "flowstack.agent-component.v1",
56
+ "id": "listbox",
57
+ "name": "Listbox",
58
+ "package": "@flowstack-ui/atom",
59
+ "layer": "atom",
60
+ "kind": "component",
61
+ "purpose": "Present a persistently visible single- or multiple-selection option collection with listbox semantics, active-descendant focus, typeahead, grouping, and optional form submission.",
62
+ "useWhen": [
63
+ "A visible option list should let users choose one or several values while remaining one composite keyboard control."
64
+ ],
65
+ "avoidWhen": [
66
+ {
67
+ "condition": "Choices should stay collapsed, users must type to filter, entries are commands, or every choice should be a separate native form control.",
68
+ "useInstead": "Select or MultiSelect, Combobox, Menu, or RadioGroup or CheckboxGroup"
69
+ }
70
+ ],
71
+ "composition": [
72
+ "Give Root an accessible name, choose multiple deliberately, and compose uniquely valued Option parts. Add OptionText when option content is complex or needs explicit typeahead text, and pair Group with Label only for announced option sections."
73
+ ],
74
+ "rules": [
75
+ {
76
+ "id": "listbox-name",
77
+ "level": "must",
78
+ "statement": "Give the focusable Root an accessible name through native ARIA or Field labeling and preserve its listbox role and active-descendant relationship."
79
+ },
80
+ {
81
+ "id": "listbox-selection-shape",
82
+ "level": "must",
83
+ "statement": "Use scalar or null state for single selection and array state for multiple selection; keep value, defaultValue, and onValueChange shapes aligned with multiple."
84
+ },
85
+ {
86
+ "id": "listbox-option-values",
87
+ "level": "must",
88
+ "statement": "Give every Option a stable unique value and accessible text, using label or OptionText when rendered children do not provide reliable searchable text."
89
+ },
90
+ {
91
+ "id": "listbox-focus",
92
+ "level": "must",
93
+ "statement": "Keep DOM focus on Root and preserve aria-activedescendant, orientation-specific Arrow movement, Home/End, loop policy, typeahead, disabled-option skipping, and Enter/Space selection."
94
+ },
95
+ {
96
+ "id": "listbox-state-form",
97
+ "level": "must",
98
+ "statement": "Preserve disabled, read-only, required, invalid, Field descriptions, named hidden value submission, and controlled/uncontrolled behavior without turning Options into independent form controls."
99
+ }
100
+ ],
101
+ "commonMistakes": [
102
+ {
103
+ "mistake": "Using Listbox for commands, giving every Option a Tab stop, mixing scalar and array values, or relying on decorative content for typeahead and naming.",
104
+ "correction": "Choose Menu for commands, keep Root as the composite focus owner, align state to multiple, and provide explicit option text where needed."
105
+ }
106
+ ],
107
+ "validation": [
108
+ "Verify Root and Option names, single and multiple controlled/uncontrolled state, unique values, active-descendant focus, orientation Arrow keys, Home/End, loop boundaries, typeahead, Enter/Space, pointer selection, and disabled options.",
109
+ "Verify read-only navigation without selection, required and invalid exposure, Field relationships, named single and repeated multiple hidden inputs, group-label relationships, OptionText registration, and asChild/render prop and ref merging."
110
+ ],
111
+ "related": [
112
+ "select",
113
+ "multi-select",
114
+ "combobox",
115
+ "menu",
116
+ "radio-group",
117
+ "checkbox-group"
118
+ ]
119
+ }
120
+ ```
@@ -0,0 +1,126 @@
1
+ # Menu
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: menu
6
+
7
+ # Menu agent guide
8
+
9
+ ## Purpose
10
+
11
+ Provide the shared command and settings menu engine with real item focus, selection roles, typeahead, submenus, positioning, dismissal, and optional modal behavior.
12
+
13
+ ## Use when
14
+
15
+ - A temporary list of commands or settings opens directly or a custom trigger primitive must reuse Atom's complete menu behavior.
16
+
17
+ ## Choose something else when
18
+
19
+ - A visible button, contextual gesture, or persistent application command bar owns invocation, or the main job is choosing a form value or navigating links. Use DropdownMenu, ContextMenu, Menubar, Select, Listbox, or NavigationMenu.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Root around Content and uniquely valued Item parts; use ariaLabel when no trigger labels Content. Add Portal and Arrow only when needed, Group with Label for announced grouping, CheckboxItem for independent settings, RadioGroup with RadioItem for exclusive settings, and Sub with its paired SubTrigger and SubContent for a cascade.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Give standalone or context-driven Content an accessible name with ariaLabel; trigger-based compositions may use the generated trigger relationship.
28
+ - **MUST:** Use Item, CheckboxItem, and RadioItem for their matching menuitem roles, provide unique values within each item registry, and provide textValue when rendered children do not expose searchable text.
29
+ - **MUST:** Preserve Menu's real DOM item focus, disabled-item navigation without activation, typeahead, owner-aware Tab exit, Escape stack, and reason-aware focus restoration.
30
+ - **MUST:** Choose closeOnSelect by interaction: commands normally close, while checkbox and radio settings normally remain open; do not close the tree with competing item handlers.
31
+ - **MUST:** Keep SubTrigger and SubContent within one Sub, preserve direction-aware open and close keys, and do not silently replace the cascade with a viewport-inferred drill-in model.
32
+ - **MUST:** Use the preventable onInteractOutside contract instead of document listeners so only completed top-layer activations dismiss the correct submenu or complete tree.
33
+
34
+ ## Common mistakes
35
+
36
+ - **Avoid:** Using Menu for form selection or site navigation, manually roving aria-activedescendant, removing disabled items from keyboard movement, or treating a submenu as responsive drill-in navigation. **Instead:** Choose the semantic owner first and preserve Menu's real-focus item registry, selection roles, and explicit cascade; build a separate application-level drill-in flow when required.
37
+
38
+ ## Validation checklist
39
+
40
+ - Verify accessible naming, controlled and uncontrolled open state, modal and non-modal focus behavior, Arrow keys, Home/End, typeahead, Enter/Space, disabled items, Tab exit, Escape, selection close policy, outside activation, and focus restoration.
41
+ - Verify checkbox mixed state, radio-group scoping, group labels, indicators, nested submenu pointer and keyboard behavior, whole-tree dismissal, LTR and RTL, collision placement, long-content scrolling, portals, and parent-modal ownership.
42
+
43
+ ## Related guidance
44
+
45
+ - `dropdown-menu`
46
+ - `context-menu`
47
+ - `menubar`
48
+ - `select`
49
+ - `listbox`
50
+ - `navigation-menu`
51
+
52
+ ## Machine record
53
+
54
+ ```json
55
+ {
56
+ "schema": "flowstack.agent-component.v1",
57
+ "id": "menu",
58
+ "name": "Menu",
59
+ "package": "@flowstack-ui/atom",
60
+ "layer": "atom",
61
+ "kind": "component",
62
+ "purpose": "Provide the shared command and settings menu engine with real item focus, selection roles, typeahead, submenus, positioning, dismissal, and optional modal behavior.",
63
+ "useWhen": [
64
+ "A temporary list of commands or settings opens directly or a custom trigger primitive must reuse Atom's complete menu behavior."
65
+ ],
66
+ "avoidWhen": [
67
+ {
68
+ "condition": "A visible button, contextual gesture, or persistent application command bar owns invocation, or the main job is choosing a form value or navigating links.",
69
+ "useInstead": "DropdownMenu, ContextMenu, Menubar, Select, Listbox, or NavigationMenu"
70
+ }
71
+ ],
72
+ "composition": [
73
+ "Compose Root around Content and uniquely valued Item parts; use ariaLabel when no trigger labels Content. Add Portal and Arrow only when needed, Group with Label for announced grouping, CheckboxItem for independent settings, RadioGroup with RadioItem for exclusive settings, and Sub with its paired SubTrigger and SubContent for a cascade."
74
+ ],
75
+ "rules": [
76
+ {
77
+ "id": "menu-content-name",
78
+ "level": "must",
79
+ "statement": "Give standalone or context-driven Content an accessible name with ariaLabel; trigger-based compositions may use the generated trigger relationship."
80
+ },
81
+ {
82
+ "id": "menu-item-model",
83
+ "level": "must",
84
+ "statement": "Use Item, CheckboxItem, and RadioItem for their matching menuitem roles, provide unique values within each item registry, and provide textValue when rendered children do not expose searchable text."
85
+ },
86
+ {
87
+ "id": "menu-owned-focus",
88
+ "level": "must",
89
+ "statement": "Preserve Menu's real DOM item focus, disabled-item navigation without activation, typeahead, owner-aware Tab exit, Escape stack, and reason-aware focus restoration."
90
+ },
91
+ {
92
+ "id": "menu-selection-close",
93
+ "level": "must",
94
+ "statement": "Choose closeOnSelect by interaction: commands normally close, while checkbox and radio settings normally remain open; do not close the tree with competing item handlers."
95
+ },
96
+ {
97
+ "id": "menu-submenu-contract",
98
+ "level": "must",
99
+ "statement": "Keep SubTrigger and SubContent within one Sub, preserve direction-aware open and close keys, and do not silently replace the cascade with a viewport-inferred drill-in model."
100
+ },
101
+ {
102
+ "id": "menu-outside-interaction",
103
+ "level": "must",
104
+ "statement": "Use the preventable onInteractOutside contract instead of document listeners so only completed top-layer activations dismiss the correct submenu or complete tree."
105
+ }
106
+ ],
107
+ "commonMistakes": [
108
+ {
109
+ "mistake": "Using Menu for form selection or site navigation, manually roving aria-activedescendant, removing disabled items from keyboard movement, or treating a submenu as responsive drill-in navigation.",
110
+ "correction": "Choose the semantic owner first and preserve Menu's real-focus item registry, selection roles, and explicit cascade; build a separate application-level drill-in flow when required."
111
+ }
112
+ ],
113
+ "validation": [
114
+ "Verify accessible naming, controlled and uncontrolled open state, modal and non-modal focus behavior, Arrow keys, Home/End, typeahead, Enter/Space, disabled items, Tab exit, Escape, selection close policy, outside activation, and focus restoration.",
115
+ "Verify checkbox mixed state, radio-group scoping, group labels, indicators, nested submenu pointer and keyboard behavior, whole-tree dismissal, LTR and RTL, collision placement, long-content scrolling, portals, and parent-modal ownership."
116
+ ],
117
+ "related": [
118
+ "dropdown-menu",
119
+ "context-menu",
120
+ "menubar",
121
+ "select",
122
+ "listbox",
123
+ "navigation-menu"
124
+ ]
125
+ }
126
+ ```