@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,123 @@
1
+ # Badge
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: badge
6
+
7
+ # Badge agent guide
8
+
9
+ ## Purpose
10
+
11
+ Wrap a short contextual label, count, or status as normal inline semantic content without adding interaction or automatic announcement behavior.
12
+
13
+ ## Use when
14
+
15
+ - A compact count or status word supplements nearby content and can be understood from its visible owning context.
16
+
17
+ ## Choose something else when
18
+
19
+ - The element performs an action, communicates task completion, represents identity, or a changing update must be announced automatically. Use Button, Progress, Avatar, or a deliberately chosen live-region pattern.
20
+
21
+ ## Required composition
22
+
23
+ - Place concise Badge text beside the content it qualifies. Include a visual count attached to a control in that control's accessible naming or owning context, and add live-region semantics outside Badge only when the update's urgency and frequency justify announcement.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Keep Badge noninteractive; use a real Button or Link when the content activates an action or navigation.
28
+ - **MUST:** Provide enough nearby text or owning-control context for a count or status to be understood without relying on color, shape, or position alone.
29
+ - **MUST:** When Badge is visually attached to a control, ensure the meaningful count or status is included in that control's accessible name or description because a sibling Badge is not incorporated automatically.
30
+ - **MUST:** Do not assume Badge announces changes; add an appropriate live region deliberately only when an update needs announcement and avoid noisy duplicate paths.
31
+ - **MUST:** Do not rely on aria-label to give the default generic span meaning; use understandable text and surrounding semantics.
32
+
33
+ ## Common mistakes
34
+
35
+ - **Avoid:** Making Badge clickable or using a color-only dot as an essential status. **Instead:** Use an actual interactive primitive for actions and include concise textual status in an understandable context.
36
+ - **Avoid:** Assuming a notification count beside an icon button is part of the button name or will announce when it changes. **Instead:** Author the control name or description and live behavior explicitly.
37
+
38
+ ## Validation checklist
39
+
40
+ - Verify concise count and text-status variants are understandable in reading order and without color, and that no unintended role, Tab stop, or keyboard behavior exists.
41
+ - Inspect controls with attached Badges to confirm their accessible names or descriptions contain the meaningful status independently of visual proximity.
42
+ - For dynamic updates, verify the chosen announcement owner, priority, and frequency and confirm Badge does not create a duplicate live path; verify server-safe subpath and composition behavior.
43
+
44
+ ## Related guidance
45
+
46
+ - `button`
47
+ - `progress`
48
+ - `avatar`
49
+ - `toast`
50
+
51
+ ## Machine record
52
+
53
+ ```json
54
+ {
55
+ "schema": "flowstack.agent-component.v1",
56
+ "id": "badge",
57
+ "name": "Badge",
58
+ "package": "@flowstack-ui/atom",
59
+ "layer": "atom",
60
+ "kind": "component",
61
+ "purpose": "Wrap a short contextual label, count, or status as normal inline semantic content without adding interaction or automatic announcement behavior.",
62
+ "useWhen": [
63
+ "A compact count or status word supplements nearby content and can be understood from its visible owning context."
64
+ ],
65
+ "avoidWhen": [
66
+ {
67
+ "condition": "The element performs an action, communicates task completion, represents identity, or a changing update must be announced automatically.",
68
+ "useInstead": "Button, Progress, Avatar, or a deliberately chosen live-region pattern"
69
+ }
70
+ ],
71
+ "composition": [
72
+ "Place concise Badge text beside the content it qualifies. Include a visual count attached to a control in that control's accessible naming or owning context, and add live-region semantics outside Badge only when the update's urgency and frequency justify announcement."
73
+ ],
74
+ "rules": [
75
+ {
76
+ "id": "badge-passive",
77
+ "level": "must",
78
+ "statement": "Keep Badge noninteractive; use a real Button or Link when the content activates an action or navigation."
79
+ },
80
+ {
81
+ "id": "badge-context",
82
+ "level": "must",
83
+ "statement": "Provide enough nearby text or owning-control context for a count or status to be understood without relying on color, shape, or position alone."
84
+ },
85
+ {
86
+ "id": "badge-control-name",
87
+ "level": "must",
88
+ "statement": "When Badge is visually attached to a control, ensure the meaningful count or status is included in that control's accessible name or description because a sibling Badge is not incorporated automatically."
89
+ },
90
+ {
91
+ "id": "badge-live-boundary",
92
+ "level": "must",
93
+ "statement": "Do not assume Badge announces changes; add an appropriate live region deliberately only when an update needs announcement and avoid noisy duplicate paths."
94
+ },
95
+ {
96
+ "id": "badge-generic-span",
97
+ "level": "must",
98
+ "statement": "Do not rely on aria-label to give the default generic span meaning; use understandable text and surrounding semantics."
99
+ }
100
+ ],
101
+ "commonMistakes": [
102
+ {
103
+ "mistake": "Making Badge clickable or using a color-only dot as an essential status.",
104
+ "correction": "Use an actual interactive primitive for actions and include concise textual status in an understandable context."
105
+ },
106
+ {
107
+ "mistake": "Assuming a notification count beside an icon button is part of the button name or will announce when it changes.",
108
+ "correction": "Author the control name or description and live behavior explicitly."
109
+ }
110
+ ],
111
+ "validation": [
112
+ "Verify concise count and text-status variants are understandable in reading order and without color, and that no unintended role, Tab stop, or keyboard behavior exists.",
113
+ "Inspect controls with attached Badges to confirm their accessible names or descriptions contain the meaningful status independently of visual proximity.",
114
+ "For dynamic updates, verify the chosen announcement owner, priority, and frequency and confirm Badge does not create a duplicate live path; verify server-safe subpath and composition behavior."
115
+ ],
116
+ "related": [
117
+ "button",
118
+ "progress",
119
+ "avatar",
120
+ "toast"
121
+ ]
122
+ }
123
+ ```
@@ -0,0 +1,96 @@
1
+ # BottomNavigation
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: bottom-navigation
6
+
7
+ # BottomNavigation agent guide
8
+
9
+ ## Purpose
10
+
11
+ Provide a named navigation landmark with active state for a short, stable set of primary application destinations.
12
+
13
+ ## Use when
14
+
15
+ - A compact application has a small stable set of top-level destinations commonly presented at the bottom.
16
+
17
+ ## Choose something else when
18
+
19
+ - The items are long, grouped, or switch panels within one page. Use NavList or Tabs.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Item parts with unique values inside Root; provide href for real destinations and omit it only for application-controlled view changes.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Use link Items for URL destinations and button Items only for view changes.
28
+ - **MUST:** Keep authored label text available as each Item's accessible name even when the styled layer hides it.
29
+
30
+ ## Common mistakes
31
+
32
+ - **Avoid:** Using BottomNavigation for a large menu or hiding labels from assistive technology. **Instead:** Use NavList for larger navigation and preserve every Item name.
33
+
34
+ ## Validation checklist
35
+
36
+ - Confirm the landmark name distinguishes it from other navigation.
37
+ - Confirm the active destination exposes aria-current and disabled Items cannot navigate.
38
+
39
+ ## Related guidance
40
+
41
+ - `nav-list`
42
+ - `tabs`
43
+ - `link`
44
+
45
+ ## Machine record
46
+
47
+ ```json
48
+ {
49
+ "schema": "flowstack.agent-component.v1",
50
+ "id": "bottom-navigation",
51
+ "name": "BottomNavigation",
52
+ "package": "@flowstack-ui/atom",
53
+ "layer": "atom",
54
+ "kind": "component",
55
+ "purpose": "Provide a named navigation landmark with active state for a short, stable set of primary application destinations.",
56
+ "useWhen": [
57
+ "A compact application has a small stable set of top-level destinations commonly presented at the bottom."
58
+ ],
59
+ "avoidWhen": [
60
+ {
61
+ "condition": "The items are long, grouped, or switch panels within one page.",
62
+ "useInstead": "NavList or Tabs"
63
+ }
64
+ ],
65
+ "composition": [
66
+ "Compose Item parts with unique values inside Root; provide href for real destinations and omit it only for application-controlled view changes."
67
+ ],
68
+ "rules": [
69
+ {
70
+ "id": "bottom-nav-destination-semantics",
71
+ "level": "must",
72
+ "statement": "Use link Items for URL destinations and button Items only for view changes."
73
+ },
74
+ {
75
+ "id": "bottom-nav-label",
76
+ "level": "must",
77
+ "statement": "Keep authored label text available as each Item's accessible name even when the styled layer hides it."
78
+ }
79
+ ],
80
+ "commonMistakes": [
81
+ {
82
+ "mistake": "Using BottomNavigation for a large menu or hiding labels from assistive technology.",
83
+ "correction": "Use NavList for larger navigation and preserve every Item name."
84
+ }
85
+ ],
86
+ "validation": [
87
+ "Confirm the landmark name distinguishes it from other navigation.",
88
+ "Confirm the active destination exposes aria-current and disabled Items cannot navigate."
89
+ ],
90
+ "related": [
91
+ "nav-list",
92
+ "tabs",
93
+ "link"
94
+ ]
95
+ }
96
+ ```
@@ -0,0 +1,96 @@
1
+ # Breadcrumb
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: breadcrumb
6
+
7
+ # Breadcrumb agent guide
8
+
9
+ ## Purpose
10
+
11
+ Represent the current page's ancestry as a named navigation landmark and ordered hierarchy.
12
+
13
+ ## Use when
14
+
15
+ - The current page belongs to a hierarchy and users may navigate to ancestor pages.
16
+
17
+ ## Choose something else when
18
+
19
+ - The choices are result pages or a general destination list. Use Pagination or NavList.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Root > List > Item containing ancestor Link or the single current Page, with decorative Separator parts between items.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Render one non-link Page for the current location and use links only for ancestors.
28
+ - **MUST:** When Ellipsis opens hidden pages, compose it with a real named button.
29
+
30
+ ## Common mistakes
31
+
32
+ - **Avoid:** Making the current page another link or placing separators outside the ordered list. **Instead:** Use Page once and keep Item and Separator parts inside List.
33
+
34
+ ## Validation checklist
35
+
36
+ - Confirm the nav has a useful accessible name and one aria-current page.
37
+ - Confirm separators are absent from the accessibility tree.
38
+
39
+ ## Related guidance
40
+
41
+ - `link`
42
+ - `pagination`
43
+ - `nav-list`
44
+
45
+ ## Machine record
46
+
47
+ ```json
48
+ {
49
+ "schema": "flowstack.agent-component.v1",
50
+ "id": "breadcrumb",
51
+ "name": "Breadcrumb",
52
+ "package": "@flowstack-ui/atom",
53
+ "layer": "atom",
54
+ "kind": "component",
55
+ "purpose": "Represent the current page's ancestry as a named navigation landmark and ordered hierarchy.",
56
+ "useWhen": [
57
+ "The current page belongs to a hierarchy and users may navigate to ancestor pages."
58
+ ],
59
+ "avoidWhen": [
60
+ {
61
+ "condition": "The choices are result pages or a general destination list.",
62
+ "useInstead": "Pagination or NavList"
63
+ }
64
+ ],
65
+ "composition": [
66
+ "Compose Root > List > Item containing ancestor Link or the single current Page, with decorative Separator parts between items."
67
+ ],
68
+ "rules": [
69
+ {
70
+ "id": "breadcrumb-one-current",
71
+ "level": "must",
72
+ "statement": "Render one non-link Page for the current location and use links only for ancestors."
73
+ },
74
+ {
75
+ "id": "breadcrumb-interactive-ellipsis",
76
+ "level": "must",
77
+ "statement": "When Ellipsis opens hidden pages, compose it with a real named button."
78
+ }
79
+ ],
80
+ "commonMistakes": [
81
+ {
82
+ "mistake": "Making the current page another link or placing separators outside the ordered list.",
83
+ "correction": "Use Page once and keep Item and Separator parts inside List."
84
+ }
85
+ ],
86
+ "validation": [
87
+ "Confirm the nav has a useful accessible name and one aria-current page.",
88
+ "Confirm separators are absent from the accessibility tree."
89
+ ],
90
+ "related": [
91
+ "link",
92
+ "pagination",
93
+ "nav-list"
94
+ ]
95
+ }
96
+ ```
@@ -0,0 +1,98 @@
1
+ # Button
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: button
6
+
7
+ # Button agent guide
8
+
9
+ ## Purpose
10
+
11
+ Provide native action behavior or safe emphasized-link behavior while preserving the correct button or link semantics through custom rendering.
12
+
13
+ ## Use when
14
+
15
+ - The user triggers an action such as submit, save, open, dismiss, or retry.
16
+ - A destination is intentionally presented as an emphasized action control and Button receives its href.
17
+
18
+ ## Choose something else when
19
+
20
+ - A destination should read as ordinary inline or standalone navigation. Use Link.
21
+
22
+ ## Required composition
23
+
24
+ - Use Button.Root without href for an action and with href for an emphasized destination; compose through asChild or render only when the replacement preserves the resolved semantics.
25
+
26
+ ## Rules
27
+
28
+ - **MUST:** Omit href for actions and provide href for emphasized destinations so Button resolves the correct native semantics.
29
+ - **SHOULD:** Set type explicitly inside a form unless submit is intended.
30
+
31
+ ## Common mistakes
32
+
33
+ - **Avoid:** Navigating from onPress without exposing a destination. **Instead:** Provide href for Button link mode, or use Link when the destination should read as ordinary navigation.
34
+
35
+ ## Validation checklist
36
+
37
+ - Confirm the rendered element has an accessible name.
38
+ - Confirm keyboard activation and disabled behavior match the intended action.
39
+
40
+ ## Related guidance
41
+
42
+ - `link`
43
+ - `pressable`
44
+ - `form`
45
+
46
+ ## Machine record
47
+
48
+ ```json
49
+ {
50
+ "schema": "flowstack.agent-component.v1",
51
+ "id": "button",
52
+ "name": "Button",
53
+ "package": "@flowstack-ui/atom",
54
+ "layer": "atom",
55
+ "kind": "component",
56
+ "purpose": "Provide native action behavior or safe emphasized-link behavior while preserving the correct button or link semantics through custom rendering.",
57
+ "useWhen": [
58
+ "The user triggers an action such as submit, save, open, dismiss, or retry.",
59
+ "A destination is intentionally presented as an emphasized action control and Button receives its href."
60
+ ],
61
+ "avoidWhen": [
62
+ {
63
+ "condition": "A destination should read as ordinary inline or standalone navigation.",
64
+ "useInstead": "Link"
65
+ }
66
+ ],
67
+ "composition": [
68
+ "Use Button.Root without href for an action and with href for an emphasized destination; compose through asChild or render only when the replacement preserves the resolved semantics."
69
+ ],
70
+ "rules": [
71
+ {
72
+ "id": "button-resolved-semantics",
73
+ "level": "must",
74
+ "statement": "Omit href for actions and provide href for emphasized destinations so Button resolves the correct native semantics."
75
+ },
76
+ {
77
+ "id": "button-explicit-type",
78
+ "level": "should",
79
+ "statement": "Set type explicitly inside a form unless submit is intended."
80
+ }
81
+ ],
82
+ "commonMistakes": [
83
+ {
84
+ "mistake": "Navigating from onPress without exposing a destination.",
85
+ "correction": "Provide href for Button link mode, or use Link when the destination should read as ordinary navigation."
86
+ }
87
+ ],
88
+ "validation": [
89
+ "Confirm the rendered element has an accessible name.",
90
+ "Confirm keyboard activation and disabled behavior match the intended action."
91
+ ],
92
+ "related": [
93
+ "link",
94
+ "pressable",
95
+ "form"
96
+ ]
97
+ }
98
+ ```
@@ -0,0 +1,128 @@
1
+ # Carousel
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: carousel
6
+
7
+ # Carousel agent guide
8
+
9
+ ## Purpose
10
+
11
+ Coordinate one-active-slide content rotation, optional automatic playback, direct selection, native swipe scrolling, and accessible inactive-slide semantics.
12
+
13
+ ## Use when
14
+
15
+ - A small sequence of authored content should occupy one viewport and support previous, next, direct, touch, or optional timed selection.
16
+
17
+ ## Choose something else when
18
+
19
+ - All items should remain visible, named document panels are selected, or a row reveals actions. Use ordinary layout or scrolling, Tabs, or SwipeableItem.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Root, Viewport, Track, and uniquely valued Slide parts; add Previous, Next, Picker with PickerItem, and RotationControl only when the experience needs those controls.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Provide value or defaultValue matching one Slide and give every Slide a short unique accessible label.
28
+ - **MUST:** When automatic rotation is enabled, include visible RotationControl, Previous, and Next controls; Picker controls remain optional.
29
+ - **SHOULD:** Keep grouped PickerItem controls to a small set because each native picker button is a tab stop.
30
+ - **MUST:** Supply viewport overflow, one-slide track geometry, and scroll snap in the styled layer; do not replace Atom selection, pause, or inactive semantics.
31
+ - **MUST:** Keep styled viewport motion instant until Root exposes data-initialized, then enable the ordinary motion recipe so SSR hydration cannot start a competing native snap animation.
32
+ - **MUST:** Style carousel-loop-boundary spacers and data-loop-position Slides as one-viewport boundary positions so Next and Previous preserve their requested direction; never clone authored slide content.
33
+ - **MUST:** Do not place essential content only in a slide that users cannot reach without waiting for automatic rotation.
34
+
35
+ ## Common mistakes
36
+
37
+ - **Avoid:** Using Tabs for decorative dots, enabling autoplay without a stop control, reusing SwipeableItem, or adding custom timers and aria-hidden logic around Carousel. **Instead:** Use Carousel's optional grouped Picker, complete autoplay controls, and Atom-owned state, pause, scrolling, and inactive-slide contract.
38
+
39
+ ## Validation checklist
40
+
41
+ - Verify controlled and uncontrolled selection, Previous/Next boundaries, last-to-first forward motion, first-to-last backward motion, picker selection, native touch scrolling, LTR and RTL, and external value changes.
42
+ - Verify autoplay timing, focus stop without automatic restart, temporary hover and document-visibility pause, visible rotation control, live-region mode, inactive inert state, labels, and reduced-motion handling in the styled layer.
43
+
44
+ ## Related guidance
45
+
46
+ - `tabs`
47
+ - `swipeable-item`
48
+ - `pagination`
49
+ - `scroll-area`
50
+
51
+ ## Machine record
52
+
53
+ ```json
54
+ {
55
+ "schema": "flowstack.agent-component.v1",
56
+ "id": "carousel",
57
+ "name": "Carousel",
58
+ "package": "@flowstack-ui/atom",
59
+ "layer": "atom",
60
+ "kind": "component",
61
+ "purpose": "Coordinate one-active-slide content rotation, optional automatic playback, direct selection, native swipe scrolling, and accessible inactive-slide semantics.",
62
+ "useWhen": [
63
+ "A small sequence of authored content should occupy one viewport and support previous, next, direct, touch, or optional timed selection."
64
+ ],
65
+ "avoidWhen": [
66
+ {
67
+ "condition": "All items should remain visible, named document panels are selected, or a row reveals actions.",
68
+ "useInstead": "ordinary layout or scrolling, Tabs, or SwipeableItem"
69
+ }
70
+ ],
71
+ "composition": [
72
+ "Compose Root, Viewport, Track, and uniquely valued Slide parts; add Previous, Next, Picker with PickerItem, and RotationControl only when the experience needs those controls."
73
+ ],
74
+ "rules": [
75
+ {
76
+ "id": "carousel-initial-value",
77
+ "level": "must",
78
+ "statement": "Provide value or defaultValue matching one Slide and give every Slide a short unique accessible label."
79
+ },
80
+ {
81
+ "id": "carousel-autoplay-controls",
82
+ "level": "must",
83
+ "statement": "When automatic rotation is enabled, include visible RotationControl, Previous, and Next controls; Picker controls remain optional."
84
+ },
85
+ {
86
+ "id": "carousel-small-picker",
87
+ "level": "should",
88
+ "statement": "Keep grouped PickerItem controls to a small set because each native picker button is a tab stop."
89
+ },
90
+ {
91
+ "id": "carousel-layout-owner",
92
+ "level": "must",
93
+ "statement": "Supply viewport overflow, one-slide track geometry, and scroll snap in the styled layer; do not replace Atom selection, pause, or inactive semantics."
94
+ },
95
+ {
96
+ "id": "carousel-initial-motion-gate",
97
+ "level": "must",
98
+ "statement": "Keep styled viewport motion instant until Root exposes data-initialized, then enable the ordinary motion recipe so SSR hydration cannot start a competing native snap animation."
99
+ },
100
+ {
101
+ "id": "carousel-directional-loop-layout",
102
+ "level": "must",
103
+ "statement": "Style carousel-loop-boundary spacers and data-loop-position Slides as one-viewport boundary positions so Next and Previous preserve their requested direction; never clone authored slide content."
104
+ },
105
+ {
106
+ "id": "carousel-content-access",
107
+ "level": "must",
108
+ "statement": "Do not place essential content only in a slide that users cannot reach without waiting for automatic rotation."
109
+ }
110
+ ],
111
+ "commonMistakes": [
112
+ {
113
+ "mistake": "Using Tabs for decorative dots, enabling autoplay without a stop control, reusing SwipeableItem, or adding custom timers and aria-hidden logic around Carousel.",
114
+ "correction": "Use Carousel's optional grouped Picker, complete autoplay controls, and Atom-owned state, pause, scrolling, and inactive-slide contract."
115
+ }
116
+ ],
117
+ "validation": [
118
+ "Verify controlled and uncontrolled selection, Previous/Next boundaries, last-to-first forward motion, first-to-last backward motion, picker selection, native touch scrolling, LTR and RTL, and external value changes.",
119
+ "Verify autoplay timing, focus stop without automatic restart, temporary hover and document-visibility pause, visible rotation control, live-region mode, inactive inert state, labels, and reduced-motion handling in the styled layer."
120
+ ],
121
+ "related": [
122
+ "tabs",
123
+ "swipeable-item",
124
+ "pagination",
125
+ "scroll-area"
126
+ ]
127
+ }
128
+ ```
@@ -0,0 +1,118 @@
1
+ # CheckboxGroup
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: component
5
+ ID: checkbox-group
6
+
7
+ # CheckboxGroup agent guide
8
+
9
+ ## Purpose
10
+
11
+ Manage a named set of independent checkbox choices with multi-value state, group validation, form submission, structured item relationships, and deterministic select-all behavior.
12
+
13
+ ## Use when
14
+
15
+ - A user may select any number of related form choices and the choices share naming, state, validation, or submission behavior.
16
+
17
+ ## Choose something else when
18
+
19
+ - There is one yes-or-no choice, exactly one option must be chosen, or the controls represent pressed commands instead of form choices. Use Checkbox, RadioGroup, or ToggleGroup.
20
+
21
+ ## Required composition
22
+
23
+ - Give Root an accessible group name and compose uniquely valued Item parts. Plain Item children may name concise options; use ItemLabel and ItemDescription for structured relationships. Add Parent only with an explicit complete allValues set, and use a native fieldset and legend when a visible legend is required.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Give Root a concise accessible name with native ARIA or an inherited Fieldset Legend; do not use unsupported aria-required on role=group.
28
+ - **MUST:** Give every Item a stable unique value and keep controlled value arrays synchronized through onValueChange; use name and form when the checked values must submit.
29
+ - **MUST:** Render Parent only when Root allValues explicitly names the complete currently selectable set; omit disabled values while disabled and preserve selected values outside that declared set.
30
+ - **MUST:** Use plain children as an Item name or pair one ItemLabel and optional ItemDescription; preserve native aria-label, aria-labelledby, and aria-describedby precedence.
31
+ - **MUST:** Preserve disabled, read-only, invalid, and required behavior, including one-or-more group validity, first-enabled validation focus, form reset, and hidden per-item submission inputs.
32
+
33
+ ## Common mistakes
34
+
35
+ - **Avoid:** Treating required as every checkbox being required, computing Parent from only mounted or selected values, or using CheckboxGroup for exclusive or pressed-button choices. **Instead:** Required means at least one selected; declare Parent's full selectable set with allValues and choose RadioGroup or ToggleGroup for different interaction models.
36
+
37
+ ## Validation checklist
38
+
39
+ - Verify controlled and uncontrolled arrays, unique values, independent Enter and Space toggling, disabled and read-only items, group and item naming, structured descriptions, orientation metadata, and asChild/render prop and ref merging.
40
+ - Verify named form submission, group-level required validity with and without a name, inline and native validation, first-enabled focus, Fieldset integration, reset, Parent unchecked/mixed/checked transitions, disabled-value exclusion, and preservation of outside values.
41
+
42
+ ## Related guidance
43
+
44
+ - `checkbox`
45
+ - `radio-group`
46
+ - `toggle-group`
47
+ - `fieldset`
48
+ - `form`
49
+
50
+ ## Machine record
51
+
52
+ ```json
53
+ {
54
+ "schema": "flowstack.agent-component.v1",
55
+ "id": "checkbox-group",
56
+ "name": "CheckboxGroup",
57
+ "package": "@flowstack-ui/atom",
58
+ "layer": "atom",
59
+ "kind": "component",
60
+ "purpose": "Manage a named set of independent checkbox choices with multi-value state, group validation, form submission, structured item relationships, and deterministic select-all behavior.",
61
+ "useWhen": [
62
+ "A user may select any number of related form choices and the choices share naming, state, validation, or submission behavior."
63
+ ],
64
+ "avoidWhen": [
65
+ {
66
+ "condition": "There is one yes-or-no choice, exactly one option must be chosen, or the controls represent pressed commands instead of form choices.",
67
+ "useInstead": "Checkbox, RadioGroup, or ToggleGroup"
68
+ }
69
+ ],
70
+ "composition": [
71
+ "Give Root an accessible group name and compose uniquely valued Item parts. Plain Item children may name concise options; use ItemLabel and ItemDescription for structured relationships. Add Parent only with an explicit complete allValues set, and use a native fieldset and legend when a visible legend is required."
72
+ ],
73
+ "rules": [
74
+ {
75
+ "id": "checkbox-group-name",
76
+ "level": "must",
77
+ "statement": "Give Root a concise accessible name with native ARIA or an inherited Fieldset Legend; do not use unsupported aria-required on role=group."
78
+ },
79
+ {
80
+ "id": "checkbox-group-values",
81
+ "level": "must",
82
+ "statement": "Give every Item a stable unique value and keep controlled value arrays synchronized through onValueChange; use name and form when the checked values must submit."
83
+ },
84
+ {
85
+ "id": "checkbox-group-parent",
86
+ "level": "must",
87
+ "statement": "Render Parent only when Root allValues explicitly names the complete currently selectable set; omit disabled values while disabled and preserve selected values outside that declared set."
88
+ },
89
+ {
90
+ "id": "checkbox-group-labeling",
91
+ "level": "must",
92
+ "statement": "Use plain children as an Item name or pair one ItemLabel and optional ItemDescription; preserve native aria-label, aria-labelledby, and aria-describedby precedence."
93
+ },
94
+ {
95
+ "id": "checkbox-group-state",
96
+ "level": "must",
97
+ "statement": "Preserve disabled, read-only, invalid, and required behavior, including one-or-more group validity, first-enabled validation focus, form reset, and hidden per-item submission inputs."
98
+ }
99
+ ],
100
+ "commonMistakes": [
101
+ {
102
+ "mistake": "Treating required as every checkbox being required, computing Parent from only mounted or selected values, or using CheckboxGroup for exclusive or pressed-button choices.",
103
+ "correction": "Required means at least one selected; declare Parent's full selectable set with allValues and choose RadioGroup or ToggleGroup for different interaction models."
104
+ }
105
+ ],
106
+ "validation": [
107
+ "Verify controlled and uncontrolled arrays, unique values, independent Enter and Space toggling, disabled and read-only items, group and item naming, structured descriptions, orientation metadata, and asChild/render prop and ref merging.",
108
+ "Verify named form submission, group-level required validity with and without a name, inline and native validation, first-enabled focus, Fieldset integration, reset, Parent unchecked/mixed/checked transitions, disabled-value exclusion, and preservation of outside values."
109
+ ],
110
+ "related": [
111
+ "checkbox",
112
+ "radio-group",
113
+ "toggle-group",
114
+ "fieldset",
115
+ "form"
116
+ ]
117
+ }
118
+ ```