@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,102 @@
1
+ # SkipLink
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: skip-link
6
+
7
+ # SkipLink agent guide
8
+
9
+ ## Purpose
10
+
11
+ Provide a visibly focused skip-navigation control and matching main-content target using Atom focus behavior.
12
+
13
+ ## Use when
14
+
15
+ - A page repeats header or navigation content before main content.
16
+
17
+ ## Choose something else when
18
+
19
+ - No repeated content precedes the primary content. Use normal document focus order.
20
+
21
+ ## Required composition
22
+
23
+ - Place Root as the first useful focus target and one matching Target at main content; let Target own the main landmark unless custom-rendered.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Keep Root visible and readable when focused in every theme and viewport.
28
+ - **MUST:** Do not create duplicate main landmarks around Target.
29
+ - **MUST:** Load styles.css or core.css plus skip-link.css.
30
+
31
+ ## Common mistakes
32
+
33
+ - **Avoid:** Hiding the link permanently, clipping its focus ring, or targeting a missing id. **Instead:** Use the matching Root/Target pair and test from the browser chrome.
34
+
35
+ ## Validation checklist
36
+
37
+ - Tab to Root, activate it, and confirm Target receives visible focus and scrolls into view.
38
+ - Check themes, zoom, sticky headers, one main landmark, and CSS delivery.
39
+
40
+ ## Related guidance
41
+
42
+ - `app-bar`
43
+ - `sidebar`
44
+ - `link`
45
+
46
+ ## Machine record
47
+
48
+ ```json
49
+ {
50
+ "schema": "flowstack.agent-component.v1",
51
+ "id": "skip-link",
52
+ "name": "SkipLink",
53
+ "package": "@flowstack-ui/brick",
54
+ "layer": "brick",
55
+ "kind": "component",
56
+ "purpose": "Provide a visibly focused skip-navigation control and matching main-content target using Atom focus behavior.",
57
+ "useWhen": [
58
+ "A page repeats header or navigation content before main content."
59
+ ],
60
+ "avoidWhen": [
61
+ {
62
+ "condition": "No repeated content precedes the primary content.",
63
+ "useInstead": "normal document focus order"
64
+ }
65
+ ],
66
+ "composition": [
67
+ "Place Root as the first useful focus target and one matching Target at main content; let Target own the main landmark unless custom-rendered."
68
+ ],
69
+ "rules": [
70
+ {
71
+ "id": "skip-link-visible-focus",
72
+ "level": "must",
73
+ "statement": "Keep Root visible and readable when focused in every theme and viewport."
74
+ },
75
+ {
76
+ "id": "skip-link-one-main",
77
+ "level": "must",
78
+ "statement": "Do not create duplicate main landmarks around Target."
79
+ },
80
+ {
81
+ "id": "skip-link-css",
82
+ "level": "must",
83
+ "statement": "Load styles.css or core.css plus skip-link.css."
84
+ }
85
+ ],
86
+ "commonMistakes": [
87
+ {
88
+ "mistake": "Hiding the link permanently, clipping its focus ring, or targeting a missing id.",
89
+ "correction": "Use the matching Root/Target pair and test from the browser chrome."
90
+ }
91
+ ],
92
+ "validation": [
93
+ "Tab to Root, activate it, and confirm Target receives visible focus and scrolls into view.",
94
+ "Check themes, zoom, sticky headers, one main landmark, and CSS delivery."
95
+ ],
96
+ "related": [
97
+ "app-bar",
98
+ "sidebar",
99
+ "link"
100
+ ]
101
+ }
102
+ ```
@@ -0,0 +1,147 @@
1
+ # Slider
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: slider
6
+
7
+ # Slider agent guide
8
+
9
+ ## Purpose
10
+
11
+ Provide a styled approximate numeric single-value or range input while Atom owns pointer, touch, keyboard, form, and field behavior.
12
+
13
+ ## Use when
14
+
15
+ - A person chooses an approximate value or bounded range and direct manipulation is more useful than exact text entry.
16
+
17
+ ## Choose something else when
18
+
19
+ - Exact numeric entry, a small named choice set, or read-only completion is the real job. Use NumberInput, Select, or Progress.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Root > Track > Range plus one indexed Thumb for every value; place optional Marker parts in Track and optional ValueLabel inside its Thumb.
24
+ - Use Slider as the sole control in one Field when a visible label, description, error, or required state is needed; otherwise name every standalone Thumb explicitly.
25
+
26
+ ## Rules
27
+
28
+ - **MUST:** Render one indexed Thumb for every value and keep Marker inside Track and ValueLabel inside the owning Thumb.
29
+ - **MUST:** Use Slider only when approximate direct manipulation is appropriate; use NumberInput or Select when exact or named choices matter.
30
+ - **MUST:** Provide one visible Field label for the complete Slider or a complete accessible name for every standalone Thumb.
31
+ - **SHOULD:** Use an external application-owned output when dense ranges or long localized values would collide with a thumb ValueLabel.
32
+ - **MUST:** Use onValueChange for live updates and onValueCommit for completed interactions; true pointer cancellation restores the pointer-down value without commit while lost capture commits the latest value.
33
+ - **MUST:** Preserve one active pointer session, non-slider-axis page scrolling, orientation-aware keys, and horizontal LTR and RTL pointer and Arrow behavior.
34
+ - **SHOULD:** Keep the default Track inset when a parent clips overflow; set the public Track-inset token to zero only when the surrounding composition preserves complete endpoint target and focus paint.
35
+ - **MUST:** Load styles.css or core.css plus slider.css.
36
+
37
+ ## Common mistakes
38
+
39
+ - **Avoid:** Rendering a range with one Thumb, treating decorative markers as labels, or using Slider for a discrete named choice without explaining the values. **Instead:** Match Thumbs to values, label the actual control, and choose Select or RadioGroup when names carry the meaning.
40
+
41
+ ## Validation checklist
42
+
43
+ - Check pointer, touch, keyboard, large steps, range bounds, controlled values, reset, disabled, read-only, invalid, and form submission.
44
+ - Check horizontal and vertical orientation, RTL, narrow containment, complete 44px endpoint targets, any customized Track inset, zoom, reduced motion, forced colors, and label readability.
45
+
46
+ ## Related guidance
47
+
48
+ - `@flowstack-ui/atom/agents/slider`
49
+ - `field`
50
+ - `number-input`
51
+ - `select`
52
+ - `progress`
53
+ - `rating`
54
+ - `form`
55
+
56
+ ## Machine record
57
+
58
+ ```json
59
+ {
60
+ "schema": "flowstack.agent-component.v1",
61
+ "id": "slider",
62
+ "name": "Slider",
63
+ "package": "@flowstack-ui/brick",
64
+ "layer": "brick",
65
+ "kind": "component",
66
+ "purpose": "Provide a styled approximate numeric single-value or range input while Atom owns pointer, touch, keyboard, form, and field behavior.",
67
+ "useWhen": [
68
+ "A person chooses an approximate value or bounded range and direct manipulation is more useful than exact text entry."
69
+ ],
70
+ "avoidWhen": [
71
+ {
72
+ "condition": "Exact numeric entry, a small named choice set, or read-only completion is the real job.",
73
+ "useInstead": "NumberInput, Select, or Progress"
74
+ }
75
+ ],
76
+ "composition": [
77
+ "Compose Root > Track > Range plus one indexed Thumb for every value; place optional Marker parts in Track and optional ValueLabel inside its Thumb.",
78
+ "Use Slider as the sole control in one Field when a visible label, description, error, or required state is needed; otherwise name every standalone Thumb explicitly."
79
+ ],
80
+ "rules": [
81
+ {
82
+ "id": "slider-value-anatomy",
83
+ "level": "must",
84
+ "statement": "Render one indexed Thumb for every value and keep Marker inside Track and ValueLabel inside the owning Thumb."
85
+ },
86
+ {
87
+ "id": "slider-approximate-choice",
88
+ "level": "must",
89
+ "statement": "Use Slider only when approximate direct manipulation is appropriate; use NumberInput or Select when exact or named choices matter."
90
+ },
91
+ {
92
+ "id": "slider-accessible-name",
93
+ "level": "must",
94
+ "statement": "Provide one visible Field label for the complete Slider or a complete accessible name for every standalone Thumb."
95
+ },
96
+ {
97
+ "id": "slider-visible-output",
98
+ "level": "should",
99
+ "statement": "Use an external application-owned output when dense ranges or long localized values would collide with a thumb ValueLabel."
100
+ },
101
+ {
102
+ "id": "slider-change-commit",
103
+ "level": "must",
104
+ "statement": "Use onValueChange for live updates and onValueCommit for completed interactions; true pointer cancellation restores the pointer-down value without commit while lost capture commits the latest value."
105
+ },
106
+ {
107
+ "id": "slider-input-direction",
108
+ "level": "must",
109
+ "statement": "Preserve one active pointer session, non-slider-axis page scrolling, orientation-aware keys, and horizontal LTR and RTL pointer and Arrow behavior."
110
+ },
111
+ {
112
+ "id": "slider-track-inset",
113
+ "level": "should",
114
+ "statement": "Keep the default Track inset when a parent clips overflow; set the public Track-inset token to zero only when the surrounding composition preserves complete endpoint target and focus paint."
115
+ },
116
+ {
117
+ "id": "slider-css",
118
+ "level": "must",
119
+ "statement": "Load styles.css or core.css plus slider.css."
120
+ }
121
+ ],
122
+ "commonMistakes": [
123
+ {
124
+ "mistake": "Rendering a range with one Thumb, treating decorative markers as labels, or using Slider for a discrete named choice without explaining the values.",
125
+ "correction": "Match Thumbs to values, label the actual control, and choose Select or RadioGroup when names carry the meaning."
126
+ }
127
+ ],
128
+ "validation": [
129
+ "Check pointer, touch, keyboard, large steps, range bounds, controlled values, reset, disabled, read-only, invalid, and form submission.",
130
+ "Check horizontal and vertical orientation, RTL, narrow containment, complete 44px endpoint targets, any customized Track inset, zoom, reduced motion, forced colors, and label readability."
131
+ ],
132
+ "related": [
133
+ {
134
+ "kind": "package",
135
+ "package": "@flowstack-ui/atom",
136
+ "id": "slider",
137
+ "versionPolicy": "installed-exact"
138
+ },
139
+ "field",
140
+ "number-input",
141
+ "select",
142
+ "progress",
143
+ "rating",
144
+ "form"
145
+ ]
146
+ }
147
+ ```
@@ -0,0 +1,155 @@
1
+ # Stack
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: stack
6
+
7
+ # Stack agent guide
8
+
9
+ ## Purpose
10
+
11
+ Arrange children on one primary axis with responsive direction, tokenized spacing, alignment, wrapping, and explicit child sizing.
12
+
13
+ ## Use when
14
+
15
+ - Content needs one-dimensional vertical or horizontal layout.
16
+
17
+ ## Choose something else when
18
+
19
+ - Both rows and columns need explicit track control. Use Grid.
20
+ - Content overlaps in depth. Use ZStack or Surface media anatomy.
21
+
22
+ ## Required composition
23
+
24
+ - Choose VStack when the axis is always vertical, HStack when it is always horizontal, and Stack when the same content changes axis at a breakpoint.
25
+ - Use as="ul" or as="ol" when the one-dimensional peers form a semantic list; Stack removes native list geometry while preserving the relationship.
26
+ - Use Stack.Item when one direct child must remain content-sized, fixed, or consume a proportional share.
27
+ - When the parent changes axis, review each Item flex recipe too; a proportional desktop column usually becomes content-sized in a mobile column.
28
+ - Keep the Item wrapper when equal outer tracks contain children with different padding or borders; use asChild only when the child's own box should participate in flex allocation.
29
+ - When Stack.Item composes a control with asChild, rely on the control's own size recipe; Stack preserves its declared minimum block size while adding flex participation.
30
+
31
+ ## Rules
32
+
33
+ - **MUST:** Use Stack for one primary layout axis and allow wrapping only when the resulting order remains clear.
34
+ - **MUST:** Use non-negative numeric spacing factors for ordinary gap and logical edge spacing; use an explicit CSS value only for a measured exception or application spacing token, and preserve legacy string tokens when maintaining existing geometry.
35
+ - **MUST:** Use a semantic list host when Stack children form a real set; do not add consumer CSS to cancel native ul or ol margins or markers because Stack owns that host geometry.
36
+ - **MUST:** Use responsive Stack values for arrangement changes; use Show/Hide only when the actual interface changes.
37
+ - **MUST:** Preserve reading and focus order; do not simulate reverse direction or visual ordering.
38
+ - **MUST:** Load styles.css or core.css plus stack.css.
39
+
40
+ ## Common mistakes
41
+
42
+ - **Avoid:** Duplicating the same content through Show/Hide only to switch row and column. **Instead:** Use responsive Stack direction.
43
+ - **Avoid:** Writing grow/shrink CSS for ordinary columns. **Instead:** Use Stack.Item flex recipes.
44
+ - **Avoid:** Adding a local class only because the desired gap is outside the legacy zero-through-six token scale. **Instead:** Use a numeric factor such as gap={8}, an explicit CSS length, or an application custom property through the supported spacing prop.
45
+
46
+ ## Validation checklist
47
+
48
+ - Check source and visual order at narrow widths and zoom.
49
+ - Confirm numeric, explicit, and responsive spacing values create the intended computed geometry; reject negative, non-finite, and empty values.
50
+ - For ul and ol hosts, confirm zero native margin, no visual marker, and preserved list semantics.
51
+ - Check every authored breakpoint, logical edge spacing, wrapping, alignment, and RTL behavior.
52
+
53
+ ## Related guidance
54
+
55
+ - `grid`
56
+ - `z-stack`
57
+ - `show`
58
+ - `hide`
59
+ - `surface`
60
+ - `card`
61
+
62
+ ## Machine record
63
+
64
+ ```json
65
+ {
66
+ "schema": "flowstack.agent-component.v1",
67
+ "id": "stack",
68
+ "name": "Stack",
69
+ "package": "@flowstack-ui/brick",
70
+ "layer": "brick",
71
+ "kind": "component",
72
+ "purpose": "Arrange children on one primary axis with responsive direction, tokenized spacing, alignment, wrapping, and explicit child sizing.",
73
+ "useWhen": [
74
+ "Content needs one-dimensional vertical or horizontal layout."
75
+ ],
76
+ "avoidWhen": [
77
+ {
78
+ "condition": "Both rows and columns need explicit track control.",
79
+ "useInstead": "Grid"
80
+ },
81
+ {
82
+ "condition": "Content overlaps in depth.",
83
+ "useInstead": "ZStack or Surface media anatomy"
84
+ }
85
+ ],
86
+ "composition": [
87
+ "Choose VStack when the axis is always vertical, HStack when it is always horizontal, and Stack when the same content changes axis at a breakpoint.",
88
+ "Use as=\"ul\" or as=\"ol\" when the one-dimensional peers form a semantic list; Stack removes native list geometry while preserving the relationship.",
89
+ "Use Stack.Item when one direct child must remain content-sized, fixed, or consume a proportional share.",
90
+ "When the parent changes axis, review each Item flex recipe too; a proportional desktop column usually becomes content-sized in a mobile column.",
91
+ "Keep the Item wrapper when equal outer tracks contain children with different padding or borders; use asChild only when the child's own box should participate in flex allocation.",
92
+ "When Stack.Item composes a control with asChild, rely on the control's own size recipe; Stack preserves its declared minimum block size while adding flex participation."
93
+ ],
94
+ "rules": [
95
+ {
96
+ "id": "stack-one-dimension",
97
+ "level": "must",
98
+ "statement": "Use Stack for one primary layout axis and allow wrapping only when the resulting order remains clear."
99
+ },
100
+ {
101
+ "id": "stack-gap-scale",
102
+ "level": "must",
103
+ "statement": "Use non-negative numeric spacing factors for ordinary gap and logical edge spacing; use an explicit CSS value only for a measured exception or application spacing token, and preserve legacy string tokens when maintaining existing geometry."
104
+ },
105
+ {
106
+ "id": "stack-semantic-list",
107
+ "level": "must",
108
+ "statement": "Use a semantic list host when Stack children form a real set; do not add consumer CSS to cancel native ul or ol margins or markers because Stack owns that host geometry."
109
+ },
110
+ {
111
+ "id": "stack-responsive-arrangement",
112
+ "level": "must",
113
+ "statement": "Use responsive Stack values for arrangement changes; use Show/Hide only when the actual interface changes."
114
+ },
115
+ {
116
+ "id": "stack-source-order",
117
+ "level": "must",
118
+ "statement": "Preserve reading and focus order; do not simulate reverse direction or visual ordering."
119
+ },
120
+ {
121
+ "id": "stack-css",
122
+ "level": "must",
123
+ "statement": "Load styles.css or core.css plus stack.css."
124
+ }
125
+ ],
126
+ "commonMistakes": [
127
+ {
128
+ "mistake": "Duplicating the same content through Show/Hide only to switch row and column.",
129
+ "correction": "Use responsive Stack direction."
130
+ },
131
+ {
132
+ "mistake": "Writing grow/shrink CSS for ordinary columns.",
133
+ "correction": "Use Stack.Item flex recipes."
134
+ },
135
+ {
136
+ "mistake": "Adding a local class only because the desired gap is outside the legacy zero-through-six token scale.",
137
+ "correction": "Use a numeric factor such as gap={8}, an explicit CSS length, or an application custom property through the supported spacing prop."
138
+ }
139
+ ],
140
+ "validation": [
141
+ "Check source and visual order at narrow widths and zoom.",
142
+ "Confirm numeric, explicit, and responsive spacing values create the intended computed geometry; reject negative, non-finite, and empty values.",
143
+ "For ul and ol hosts, confirm zero native margin, no visual marker, and preserved list semantics.",
144
+ "Check every authored breakpoint, logical edge spacing, wrapping, alignment, and RTL behavior."
145
+ ],
146
+ "related": [
147
+ "grid",
148
+ "z-stack",
149
+ "show",
150
+ "hide",
151
+ "surface",
152
+ "card"
153
+ ]
154
+ }
155
+ ```
@@ -0,0 +1,110 @@
1
+ # Status
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: status
6
+
7
+ # Status agent guide
8
+
9
+ ## Purpose
10
+
11
+ Present a compact passive state with a semantic indicator and readable label, or a decorative indicator beside text that already carries the state.
12
+
13
+ ## Use when
14
+
15
+ - A process, entity, availability, health, or review state needs a dot-plus-label presentation.
16
+
17
+ ## Choose something else when
18
+
19
+ - The content is a category, accolade, count, progress value, consequential message, or avatar-only presence ring. Use Badge, NotificationBadge, Progress, Alert, or Avatar status.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Root with one decorative Indicator and one visible Label by default. Omit Label only when adjacent visible or visually hidden text already carries the complete state and the indicator-only Root is aria-hidden.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Always provide state text. Render it through Label by default; indicator-only composition is allowed only when adjacent visible or visually hidden text already carries the complete meaning and the Root is decorative.
28
+ - **MUST:** Choose success, warning, danger, info, accent, or neutral from the state meaning, not from decorative preference.
29
+ - **MUST:** Do not assume Status announces changes; author role=status or live-region attributes only when the application owns and validates that announcement policy.
30
+ - **MUST:** Load styles.css or core.css plus status.css.
31
+
32
+ ## Common mistakes
33
+
34
+ - **Avoid:** Using success for a Call button, warning for a gold accolade, or Badge merely to draw a status dot. **Instead:** Use action hierarchy for operations, accent/neutral Badge for accolades, and Status for actual dot-plus-label state.
35
+
36
+ ## Validation checklist
37
+
38
+ - Check visible state text, semantic tone, decorative indicator, primary label color, light/dark, forced colors, zoom, RTL, and deliberate live-region ownership.
39
+
40
+ ## Related guidance
41
+
42
+ - `badge`
43
+ - `notification-badge`
44
+ - `avatar`
45
+ - `progress`
46
+ - `toast`
47
+
48
+ ## Machine record
49
+
50
+ ```json
51
+ {
52
+ "schema": "flowstack.agent-component.v1",
53
+ "id": "status",
54
+ "name": "Status",
55
+ "package": "@flowstack-ui/brick",
56
+ "layer": "brick",
57
+ "kind": "component",
58
+ "purpose": "Present a compact passive state with a semantic indicator and readable label, or a decorative indicator beside text that already carries the state.",
59
+ "useWhen": [
60
+ "A process, entity, availability, health, or review state needs a dot-plus-label presentation."
61
+ ],
62
+ "avoidWhen": [
63
+ {
64
+ "condition": "The content is a category, accolade, count, progress value, consequential message, or avatar-only presence ring.",
65
+ "useInstead": "Badge, NotificationBadge, Progress, Alert, or Avatar status"
66
+ }
67
+ ],
68
+ "composition": [
69
+ "Compose Root with one decorative Indicator and one visible Label by default. Omit Label only when adjacent visible or visually hidden text already carries the complete state and the indicator-only Root is aria-hidden."
70
+ ],
71
+ "rules": [
72
+ {
73
+ "id": "status-visible-label",
74
+ "level": "must",
75
+ "statement": "Always provide state text. Render it through Label by default; indicator-only composition is allowed only when adjacent visible or visually hidden text already carries the complete meaning and the Root is decorative."
76
+ },
77
+ {
78
+ "id": "status-semantic-tone",
79
+ "level": "must",
80
+ "statement": "Choose success, warning, danger, info, accent, or neutral from the state meaning, not from decorative preference."
81
+ },
82
+ {
83
+ "id": "status-live-region",
84
+ "level": "must",
85
+ "statement": "Do not assume Status announces changes; author role=status or live-region attributes only when the application owns and validates that announcement policy."
86
+ },
87
+ {
88
+ "id": "status-css",
89
+ "level": "must",
90
+ "statement": "Load styles.css or core.css plus status.css."
91
+ }
92
+ ],
93
+ "commonMistakes": [
94
+ {
95
+ "mistake": "Using success for a Call button, warning for a gold accolade, or Badge merely to draw a status dot.",
96
+ "correction": "Use action hierarchy for operations, accent/neutral Badge for accolades, and Status for actual dot-plus-label state."
97
+ }
98
+ ],
99
+ "validation": [
100
+ "Check visible state text, semantic tone, decorative indicator, primary label color, light/dark, forced colors, zoom, RTL, and deliberate live-region ownership."
101
+ ],
102
+ "related": [
103
+ "badge",
104
+ "notification-badge",
105
+ "avatar",
106
+ "progress",
107
+ "toast"
108
+ ]
109
+ }
110
+ ```