@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,106 @@
1
+ # BottomNavigation
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: bottom-navigation
6
+
7
+ # BottomNavigation agent guide
8
+
9
+ ## Purpose
10
+
11
+ Style a short, stable set of primary compact-application destinations with active state and label-visibility recipes.
12
+
13
+ ## Use when
14
+
15
+ - A compact application needs a small fixed set of primary destinations at the bottom edge.
16
+
17
+ ## Choose something else when
18
+
19
+ - Navigation is longer, grouped, top-level disclosure navigation, or local panel switching. Use NavList, NavigationMenu, or Tabs.
20
+
21
+ ## Required composition
22
+
23
+ - Place named Items with unique values inside Root; provide href for destinations and include text labels even when the selected visual recipe hides them.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Keep every icon destination's text accessible in every label-visibility mode.
28
+ - **MUST:** When fixed or sticky, coordinate application content and safe-area spacing outside the component.
29
+ - **MUST:** Load styles.css or core.css plus bottom-navigation.css.
30
+
31
+ ## Common mistakes
32
+
33
+ - **Avoid:** Using BottomNavigation as a generic mobile menu or removing labels from the DOM. **Instead:** Use Drawer/NavList for a menu and preserve each Item label.
34
+
35
+ ## Validation checklist
36
+
37
+ - Check active, disabled, label visibility, safe areas, narrow widths, touch targets, focus, and RTL.
38
+ - Confirm URL destinations render links and CSS is loaded.
39
+
40
+ ## Related guidance
41
+
42
+ - `nav-list`
43
+ - `tabs`
44
+ - `icon-button`
45
+ - `show`
46
+ - `hide`
47
+
48
+ ## Machine record
49
+
50
+ ```json
51
+ {
52
+ "schema": "flowstack.agent-component.v1",
53
+ "id": "bottom-navigation",
54
+ "name": "BottomNavigation",
55
+ "package": "@flowstack-ui/brick",
56
+ "layer": "brick",
57
+ "kind": "component",
58
+ "purpose": "Style a short, stable set of primary compact-application destinations with active state and label-visibility recipes.",
59
+ "useWhen": [
60
+ "A compact application needs a small fixed set of primary destinations at the bottom edge."
61
+ ],
62
+ "avoidWhen": [
63
+ {
64
+ "condition": "Navigation is longer, grouped, top-level disclosure navigation, or local panel switching.",
65
+ "useInstead": "NavList, NavigationMenu, or Tabs"
66
+ }
67
+ ],
68
+ "composition": [
69
+ "Place named Items with unique values inside Root; provide href for destinations and include text labels even when the selected visual recipe hides them."
70
+ ],
71
+ "rules": [
72
+ {
73
+ "id": "bottom-navigation-labels",
74
+ "level": "must",
75
+ "statement": "Keep every icon destination's text accessible in every label-visibility mode."
76
+ },
77
+ {
78
+ "id": "bottom-navigation-overlay",
79
+ "level": "must",
80
+ "statement": "When fixed or sticky, coordinate application content and safe-area spacing outside the component."
81
+ },
82
+ {
83
+ "id": "bottom-navigation-css",
84
+ "level": "must",
85
+ "statement": "Load styles.css or core.css plus bottom-navigation.css."
86
+ }
87
+ ],
88
+ "commonMistakes": [
89
+ {
90
+ "mistake": "Using BottomNavigation as a generic mobile menu or removing labels from the DOM.",
91
+ "correction": "Use Drawer/NavList for a menu and preserve each Item label."
92
+ }
93
+ ],
94
+ "validation": [
95
+ "Check active, disabled, label visibility, safe areas, narrow widths, touch targets, focus, and RTL.",
96
+ "Confirm URL destinations render links and CSS is loaded."
97
+ ],
98
+ "related": [
99
+ "nav-list",
100
+ "tabs",
101
+ "icon-button",
102
+ "show",
103
+ "hide"
104
+ ]
105
+ }
106
+ ```
@@ -0,0 +1,96 @@
1
+ # Breadcrumb
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: breadcrumb
6
+
7
+ # Breadcrumb agent guide
8
+
9
+ ## Purpose
10
+
11
+ Present page ancestry as a finished named navigation trail while preserving Atom breadcrumb semantics.
12
+
13
+ ## Use when
14
+
15
+ - Users need to see the current page's place in a hierarchy and navigate to ancestors.
16
+
17
+ ## Choose something else when
18
+
19
+ - The relationship is result pagination, local panels, or general navigation. Use Pagination, Tabs, or NavList.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Root > List with Item containing ancestor Link or the one current Page, separated by decorative Separator; use an accessible button when Ellipsis is interactive.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Render one current Page and keep ancestor destinations as Links.
28
+ - **MUST:** Load styles.css or core.css plus breadcrumb.css.
29
+
30
+ ## Common mistakes
31
+
32
+ - **Avoid:** Recreating the trail with spans and manual separators or making the current page a link. **Instead:** Use the complete Breadcrumb anatomy and its current Page part.
33
+
34
+ ## Validation checklist
35
+
36
+ - Check landmark naming, current state, collapsed hierarchy, focus rings, overflow, zoom, and RTL.
37
+ - Confirm separators are decorative and CSS is loaded.
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/brick",
53
+ "layer": "brick",
54
+ "kind": "component",
55
+ "purpose": "Present page ancestry as a finished named navigation trail while preserving Atom breadcrumb semantics.",
56
+ "useWhen": [
57
+ "Users need to see the current page's place in a hierarchy and navigate to ancestors."
58
+ ],
59
+ "avoidWhen": [
60
+ {
61
+ "condition": "The relationship is result pagination, local panels, or general navigation.",
62
+ "useInstead": "Pagination, Tabs, or NavList"
63
+ }
64
+ ],
65
+ "composition": [
66
+ "Compose Root > List with Item containing ancestor Link or the one current Page, separated by decorative Separator; use an accessible button when Ellipsis is interactive."
67
+ ],
68
+ "rules": [
69
+ {
70
+ "id": "breadcrumb-current",
71
+ "level": "must",
72
+ "statement": "Render one current Page and keep ancestor destinations as Links."
73
+ },
74
+ {
75
+ "id": "breadcrumb-css",
76
+ "level": "must",
77
+ "statement": "Load styles.css or core.css plus breadcrumb.css."
78
+ }
79
+ ],
80
+ "commonMistakes": [
81
+ {
82
+ "mistake": "Recreating the trail with spans and manual separators or making the current page a link.",
83
+ "correction": "Use the complete Breadcrumb anatomy and its current Page part."
84
+ }
85
+ ],
86
+ "validation": [
87
+ "Check landmark naming, current state, collapsed hierarchy, focus rings, overflow, zoom, and RTL.",
88
+ "Confirm separators are decorative and CSS is loaded."
89
+ ],
90
+ "related": [
91
+ "link",
92
+ "pagination",
93
+ "nav-list"
94
+ ]
95
+ }
96
+ ```
@@ -0,0 +1,103 @@
1
+ # Button
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: button
6
+
7
+ # Button agent guide
8
+
9
+ ## Purpose
10
+
11
+ Render a finished accessible action or emphasized native link with Brick size, tone, variant, loading, and composition contracts.
12
+
13
+ ## Use when
14
+
15
+ - The user triggers an action such as submit, save, open, dismiss, or retry.
16
+ - A destination intentionally needs a filled, soft, outlined, or ghost action treatment.
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
+ - Omit href for actions and supply href for emphasized destinations; choose tone, variant, and size from intent and add an icon only when it improves recognition.
25
+
26
+ ## Rules
27
+
28
+ - **MUST:** Use action mode for operations and href link mode for emphasized destinations; visual prominence never justifies hiding navigation in onPress.
29
+ - **MUST:** Load styles.css or core.css plus button.css.
30
+
31
+ ## Common mistakes
32
+
33
+ - **Avoid:** Navigating from onPress without a real href. **Instead:** Use Button href mode for emphasized navigation or Link for ordinary navigation.
34
+
35
+ ## Validation checklist
36
+
37
+ - Confirm an accessible name and action semantics.
38
+ - Test focus, keyboard activation, disabled/loading behavior, and contrast in every supported appearance; disabled labels must remain readable while ghost and outline controls stay transparent.
39
+
40
+ ## Related guidance
41
+
42
+ - `@flowstack-ui/atom/agents/button`
43
+ - `link`
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/brick",
54
+ "layer": "brick",
55
+ "kind": "component",
56
+ "purpose": "Render a finished accessible action or emphasized native link with Brick size, tone, variant, loading, and composition contracts.",
57
+ "useWhen": [
58
+ "The user triggers an action such as submit, save, open, dismiss, or retry.",
59
+ "A destination intentionally needs a filled, soft, outlined, or ghost action treatment."
60
+ ],
61
+ "avoidWhen": [
62
+ {
63
+ "condition": "A destination should read as ordinary inline or standalone navigation.",
64
+ "useInstead": "Link"
65
+ }
66
+ ],
67
+ "composition": [
68
+ "Omit href for actions and supply href for emphasized destinations; choose tone, variant, and size from intent and add an icon only when it improves recognition."
69
+ ],
70
+ "rules": [
71
+ {
72
+ "id": "button-semantics",
73
+ "level": "must",
74
+ "statement": "Use action mode for operations and href link mode for emphasized destinations; visual prominence never justifies hiding navigation in onPress."
75
+ },
76
+ {
77
+ "id": "button-css",
78
+ "level": "must",
79
+ "statement": "Load styles.css or core.css plus button.css."
80
+ }
81
+ ],
82
+ "commonMistakes": [
83
+ {
84
+ "mistake": "Navigating from onPress without a real href.",
85
+ "correction": "Use Button href mode for emphasized navigation or Link for ordinary navigation."
86
+ }
87
+ ],
88
+ "validation": [
89
+ "Confirm an accessible name and action semantics.",
90
+ "Test focus, keyboard activation, disabled/loading behavior, and contrast in every supported appearance; disabled labels must remain readable while ghost and outline controls stay transparent."
91
+ ],
92
+ "related": [
93
+ {
94
+ "kind": "package",
95
+ "package": "@flowstack-ui/atom",
96
+ "id": "button",
97
+ "versionPolicy": "installed-exact"
98
+ },
99
+ "link",
100
+ "form"
101
+ ]
102
+ }
103
+ ```
@@ -0,0 +1,132 @@
1
+ # Card
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: card
6
+
7
+ # Card agent guide
8
+
9
+ ## Purpose
10
+
11
+ Group content about one subject in a finished static compound surface with header, content, and footer anatomy.
12
+
13
+ ## Use when
14
+
15
+ - A bounded subject needs a title, supporting content, and optional actions as one visual unit.
16
+
17
+ ## Choose something else when
18
+
19
+ - Only generic background, border, radius, or elevation is needed. Use Surface.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Card.Root with only the Header, Title, Description, Action, Content, and Footer parts the subject needs.
24
+ - Card.Action reserves a trailing Header column across the title and description rows; when compact metadata belongs beside only the title, compose that title row with HStack and omit Card.Action so the description retains the full measure.
25
+
26
+ ## Rules
27
+
28
+ - **MUST:** Do not turn the whole Card into an unnamed clickable div; place explicit Link or Button controls inside or use a valid link composition.
29
+ - **MUST:** Load styles.css or core.css plus card.css and styles for nested components.
30
+ - **SHOULD:** Use bordered={false} when edge-to-edge authored media should meet Card's clipped outer boundary without retaining the selected recipe's border; do not remove that geometry with application CSS.
31
+ - **SHOULD:** Use Card.Action only when every Header text row should reserve its trailing column; otherwise compose title-only metadata in a Brick HStack.
32
+ - **SHOULD:** For edge media, place authored Image directly under Card.Root, then use Card.Header for topic, title, and description so the root clips outer corners and the complete text region receives Card inset.
33
+
34
+ ## Common mistakes
35
+
36
+ - **Avoid:** Using Card for every spacing group. **Instead:** Use Stack or Surface when there is no bounded card subject.
37
+ - **Avoid:** Using Card.Action for a title-only Badge and unintentionally narrowing the description below it. **Instead:** Place the title and Badge in a Brick HStack, then render Card.Description as the next full-width Header child.
38
+ - **Avoid:** Placing Card.Content directly after edge media and expecting top inset. **Instead:** Use Card.Header for the introductory text anatomy.
39
+
40
+ ## Validation checklist
41
+
42
+ - Check heading order and explicit action names.
43
+ - Check whether trailing Header content should constrain both title and description or the title row only.
44
+ - Check content flow, focus visibility, narrow widths, and appearance contrast.
45
+
46
+ ## Related guidance
47
+
48
+ - `surface`
49
+ - `stack`
50
+ - `grid`
51
+ - `button`
52
+ - `link`
53
+
54
+ ## Machine record
55
+
56
+ ```json
57
+ {
58
+ "schema": "flowstack.agent-component.v1",
59
+ "id": "card",
60
+ "name": "Card",
61
+ "package": "@flowstack-ui/brick",
62
+ "layer": "brick",
63
+ "kind": "component",
64
+ "purpose": "Group content about one subject in a finished static compound surface with header, content, and footer anatomy.",
65
+ "useWhen": [
66
+ "A bounded subject needs a title, supporting content, and optional actions as one visual unit."
67
+ ],
68
+ "avoidWhen": [
69
+ {
70
+ "condition": "Only generic background, border, radius, or elevation is needed.",
71
+ "useInstead": "Surface"
72
+ }
73
+ ],
74
+ "composition": [
75
+ "Compose Card.Root with only the Header, Title, Description, Action, Content, and Footer parts the subject needs.",
76
+ "Card.Action reserves a trailing Header column across the title and description rows; when compact metadata belongs beside only the title, compose that title row with HStack and omit Card.Action so the description retains the full measure."
77
+ ],
78
+ "rules": [
79
+ {
80
+ "id": "card-not-clickable-div",
81
+ "level": "must",
82
+ "statement": "Do not turn the whole Card into an unnamed clickable div; place explicit Link or Button controls inside or use a valid link composition."
83
+ },
84
+ {
85
+ "id": "card-css",
86
+ "level": "must",
87
+ "statement": "Load styles.css or core.css plus card.css and styles for nested components."
88
+ },
89
+ {
90
+ "id": "card-borderless-media",
91
+ "level": "should",
92
+ "statement": "Use bordered={false} when edge-to-edge authored media should meet Card's clipped outer boundary without retaining the selected recipe's border; do not remove that geometry with application CSS."
93
+ },
94
+ {
95
+ "id": "card-action-measure",
96
+ "level": "should",
97
+ "statement": "Use Card.Action only when every Header text row should reserve its trailing column; otherwise compose title-only metadata in a Brick HStack."
98
+ },
99
+ {
100
+ "id": "card-edge-media-header",
101
+ "level": "should",
102
+ "statement": "For edge media, place authored Image directly under Card.Root, then use Card.Header for topic, title, and description so the root clips outer corners and the complete text region receives Card inset."
103
+ }
104
+ ],
105
+ "commonMistakes": [
106
+ {
107
+ "mistake": "Using Card for every spacing group.",
108
+ "correction": "Use Stack or Surface when there is no bounded card subject."
109
+ },
110
+ {
111
+ "mistake": "Using Card.Action for a title-only Badge and unintentionally narrowing the description below it.",
112
+ "correction": "Place the title and Badge in a Brick HStack, then render Card.Description as the next full-width Header child."
113
+ },
114
+ {
115
+ "mistake": "Placing Card.Content directly after edge media and expecting top inset.",
116
+ "correction": "Use Card.Header for the introductory text anatomy."
117
+ }
118
+ ],
119
+ "validation": [
120
+ "Check heading order and explicit action names.",
121
+ "Check whether trailing Header content should constrain both title and description or the title row only.",
122
+ "Check content flow, focus visibility, narrow widths, and appearance contrast."
123
+ ],
124
+ "related": [
125
+ "surface",
126
+ "stack",
127
+ "grid",
128
+ "button",
129
+ "link"
130
+ ]
131
+ }
132
+ ```
@@ -0,0 +1,206 @@
1
+ # Carousel
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: carousel
6
+
7
+ # Carousel agent guide
8
+
9
+ ## Purpose
10
+
11
+ Present one item or campaign at a time with optional navigation, picker dots, touch scrolling, and user-controlled rotation.
12
+
13
+ ## Use when
14
+
15
+ - Several peer items benefit from sharing one bounded visual region.
16
+ - A campaign hero needs multiple authored messages without placing them all in the initial viewport.
17
+
18
+ ## Choose something else when
19
+
20
+ - Every item must be visible for comparison or comprehension. Use Grid, Stack, List, or Tabs.
21
+ - The content is only decorative image rotation. Use a non-interactive media treatment that respects reduced motion.
22
+
23
+ ## Required composition
24
+
25
+ - Compose Root, Viewport, Track, and one Slide per unique value; add Navigation, Controls, Previous, Next, Picker, PickerItem, and RotationControl only when the product needs them.
26
+ - In a React Server Component, import the subpath as a module namespace with import * as Carousel from '@flowstack-ui/brick/carousel'; use the frozen Carousel runtime object only inside client components.
27
+ - When automatic rotation is enabled, always render RotationControl, Previous, and Next so people can stop and navigate the sequence; place RotationControl before Viewport in DOM order.
28
+ - Build campaign-specific slide content from Brick layout, typography, action, and media components; Carousel does not own hero messaging or proof content.
29
+ - When artwork, scrim, and copy form one peer campaign, compose a complete Surface with Media, Scrim, and Content inside each Slide; keep genuinely invariant evidence or navigation outside the rotating sequence.
30
+ - When a parent already owns a stable block size, use Root fill to propagate it through Carousel's Viewport, Track, and Slides; continue sizing authored Surface, Content, and layout components explicitly.
31
+ - Match Root radius to the visible containing geometry; use radius=none when an edge-to-edge square Surface owns the campaign boundary.
32
+
33
+ ## Rules
34
+
35
+ - **MUST:** Treat arrows and picker dots as optional authored controls; dots represent direct slide selection and are not Tabs.
36
+ - **MUST:** Never enable automatic rotation without a visible RotationControl and direct Previous and Next controls.
37
+ - **MUST:** Keep picker treatment independent from arrow visibility; use Picker variant bare for dots without a capsule and Navigation visibility interaction only when arrows remain discoverable through focus, pointer, and touch.
38
+ - **SHOULD:** Use a compact xs ghost RotationControl when the required stop mechanism should remain visually quiet; never remove it while automatic rotation can run.
39
+ - **MUST:** Preserve requested direction at loop boundaries and never clone authored slide content, IDs, controls, or form fields.
40
+ - **MUST:** Keep viewport motion instant until Atom exposes data-initialized; Brick's shipped Carousel CSS already enables smooth motion only after that signal.
41
+ - **SHOULD:** Give campaign slides stable responsive geometry so changing the active slide does not move surrounding page content.
42
+ - **MUST:** Treat fill as internal size propagation, not a viewport-height policy; the application or Block must establish the available parent height.
43
+ - **MUST:** Name the parent layout or section that establishes the definite block size before enabling fill; retain a real wrapper when that wrapper is the sizing box.
44
+ - **MUST:** Treat radius as Viewport and overlay-focus geometry only; it must not alter selection, scrolling, control placement, or slide anatomy.
45
+ - **MUST:** When controls overlay slides, reserve application-owned content safe areas so arrows, rotation controls, and picker targets never obscure authored text or actions.
46
+ - **SHOULD:** Prioritize only initially visible campaign media and defer non-current media when the image delivery layer supports it.
47
+ - **MUST:** Load styles.css or core.css plus carousel.css.
48
+
49
+ ## Common mistakes
50
+
51
+ - **Avoid:** Using Tabs for picker dots or hiding the only way to stop autoplay. **Instead:** Use PickerItem buttons and render RotationControl whenever autoplay can run.
52
+ - **Avoid:** Putting unrelated proof rails or page sections inside every hero slide. **Instead:** Rotate only the peer campaign content and keep stable page evidence outside the Carousel.
53
+ - **Avoid:** Rotating campaign copy while leaving campaign-specific artwork behind as one unrelated background. **Instead:** Decide whether media is invariant or part of the campaign; when it communicates that campaign, place the complete Surface inside Slide.
54
+ - **Avoid:** Repeating block-size rules across Carousel Viewport, Track, and Slide. **Instead:** Establish the parent height once and opt into Root fill; size only the authored content inside each Slide separately.
55
+
56
+ ## Validation checklist
57
+
58
+ - Check optional-control compositions, first and last boundaries in both directions, interaction-only arrow discovery, independent picker treatment, native horizontal touch scrolling, focus pause, hover pause, reduced motion, RTL, and screen-reader naming.
59
+ - Confirm inactive slides are unavailable to focus and assistive technology, the overlay-safe Viewport focus indicator remains visible above slide media, control focus rings remain complete at rounded edges, overlay controls do not cover content, complete campaign media changes with its copy, and slide changes do not cause page-level layout shift.
60
+
61
+ ## Related guidance
62
+
63
+ - `button`
64
+ - `icon-button`
65
+ - `image`
66
+ - `surface`
67
+ - `stack`
68
+ - `grid`
69
+ - `text`
70
+ - `tabs`
71
+
72
+ ## Machine record
73
+
74
+ ```json
75
+ {
76
+ "schema": "flowstack.agent-component.v1",
77
+ "id": "carousel",
78
+ "name": "Carousel",
79
+ "package": "@flowstack-ui/brick",
80
+ "layer": "brick",
81
+ "kind": "component",
82
+ "purpose": "Present one item or campaign at a time with optional navigation, picker dots, touch scrolling, and user-controlled rotation.",
83
+ "useWhen": [
84
+ "Several peer items benefit from sharing one bounded visual region.",
85
+ "A campaign hero needs multiple authored messages without placing them all in the initial viewport."
86
+ ],
87
+ "avoidWhen": [
88
+ {
89
+ "condition": "Every item must be visible for comparison or comprehension.",
90
+ "useInstead": "Grid, Stack, List, or Tabs"
91
+ },
92
+ {
93
+ "condition": "The content is only decorative image rotation.",
94
+ "useInstead": "a non-interactive media treatment that respects reduced motion"
95
+ }
96
+ ],
97
+ "composition": [
98
+ "Compose Root, Viewport, Track, and one Slide per unique value; add Navigation, Controls, Previous, Next, Picker, PickerItem, and RotationControl only when the product needs them.",
99
+ "In a React Server Component, import the subpath as a module namespace with import * as Carousel from '@flowstack-ui/brick/carousel'; use the frozen Carousel runtime object only inside client components.",
100
+ "When automatic rotation is enabled, always render RotationControl, Previous, and Next so people can stop and navigate the sequence; place RotationControl before Viewport in DOM order.",
101
+ "Build campaign-specific slide content from Brick layout, typography, action, and media components; Carousel does not own hero messaging or proof content.",
102
+ "When artwork, scrim, and copy form one peer campaign, compose a complete Surface with Media, Scrim, and Content inside each Slide; keep genuinely invariant evidence or navigation outside the rotating sequence.",
103
+ "When a parent already owns a stable block size, use Root fill to propagate it through Carousel's Viewport, Track, and Slides; continue sizing authored Surface, Content, and layout components explicitly.",
104
+ "Match Root radius to the visible containing geometry; use radius=none when an edge-to-edge square Surface owns the campaign boundary."
105
+ ],
106
+ "rules": [
107
+ {
108
+ "id": "carousel-optional-controls",
109
+ "level": "must",
110
+ "statement": "Treat arrows and picker dots as optional authored controls; dots represent direct slide selection and are not Tabs."
111
+ },
112
+ {
113
+ "id": "carousel-autoplay-control",
114
+ "level": "must",
115
+ "statement": "Never enable automatic rotation without a visible RotationControl and direct Previous and Next controls."
116
+ },
117
+ {
118
+ "id": "carousel-control-independence",
119
+ "level": "must",
120
+ "statement": "Keep picker treatment independent from arrow visibility; use Picker variant bare for dots without a capsule and Navigation visibility interaction only when arrows remain discoverable through focus, pointer, and touch."
121
+ },
122
+ {
123
+ "id": "carousel-quiet-rotation-control",
124
+ "level": "should",
125
+ "statement": "Use a compact xs ghost RotationControl when the required stop mechanism should remain visually quiet; never remove it while automatic rotation can run."
126
+ },
127
+ {
128
+ "id": "carousel-loop-direction",
129
+ "level": "must",
130
+ "statement": "Preserve requested direction at loop boundaries and never clone authored slide content, IDs, controls, or form fields."
131
+ },
132
+ {
133
+ "id": "carousel-initial-motion-gate",
134
+ "level": "must",
135
+ "statement": "Keep viewport motion instant until Atom exposes data-initialized; Brick's shipped Carousel CSS already enables smooth motion only after that signal."
136
+ },
137
+ {
138
+ "id": "carousel-stable-geometry",
139
+ "level": "should",
140
+ "statement": "Give campaign slides stable responsive geometry so changing the active slide does not move surrounding page content."
141
+ },
142
+ {
143
+ "id": "carousel-fill-ownership",
144
+ "level": "must",
145
+ "statement": "Treat fill as internal size propagation, not a viewport-height policy; the application or Block must establish the available parent height."
146
+ },
147
+ {
148
+ "id": "carousel-fill-parent",
149
+ "level": "must",
150
+ "statement": "Name the parent layout or section that establishes the definite block size before enabling fill; retain a real wrapper when that wrapper is the sizing box."
151
+ },
152
+ {
153
+ "id": "carousel-radius-visual-only",
154
+ "level": "must",
155
+ "statement": "Treat radius as Viewport and overlay-focus geometry only; it must not alter selection, scrolling, control placement, or slide anatomy."
156
+ },
157
+ {
158
+ "id": "carousel-overlay-safe-area",
159
+ "level": "must",
160
+ "statement": "When controls overlay slides, reserve application-owned content safe areas so arrows, rotation controls, and picker targets never obscure authored text or actions."
161
+ },
162
+ {
163
+ "id": "carousel-media-loading",
164
+ "level": "should",
165
+ "statement": "Prioritize only initially visible campaign media and defer non-current media when the image delivery layer supports it."
166
+ },
167
+ {
168
+ "id": "carousel-css",
169
+ "level": "must",
170
+ "statement": "Load styles.css or core.css plus carousel.css."
171
+ }
172
+ ],
173
+ "commonMistakes": [
174
+ {
175
+ "mistake": "Using Tabs for picker dots or hiding the only way to stop autoplay.",
176
+ "correction": "Use PickerItem buttons and render RotationControl whenever autoplay can run."
177
+ },
178
+ {
179
+ "mistake": "Putting unrelated proof rails or page sections inside every hero slide.",
180
+ "correction": "Rotate only the peer campaign content and keep stable page evidence outside the Carousel."
181
+ },
182
+ {
183
+ "mistake": "Rotating campaign copy while leaving campaign-specific artwork behind as one unrelated background.",
184
+ "correction": "Decide whether media is invariant or part of the campaign; when it communicates that campaign, place the complete Surface inside Slide."
185
+ },
186
+ {
187
+ "mistake": "Repeating block-size rules across Carousel Viewport, Track, and Slide.",
188
+ "correction": "Establish the parent height once and opt into Root fill; size only the authored content inside each Slide separately."
189
+ }
190
+ ],
191
+ "validation": [
192
+ "Check optional-control compositions, first and last boundaries in both directions, interaction-only arrow discovery, independent picker treatment, native horizontal touch scrolling, focus pause, hover pause, reduced motion, RTL, and screen-reader naming.",
193
+ "Confirm inactive slides are unavailable to focus and assistive technology, the overlay-safe Viewport focus indicator remains visible above slide media, control focus rings remain complete at rounded edges, overlay controls do not cover content, complete campaign media changes with its copy, and slide changes do not cause page-level layout shift."
194
+ ],
195
+ "related": [
196
+ "button",
197
+ "icon-button",
198
+ "image",
199
+ "surface",
200
+ "stack",
201
+ "grid",
202
+ "text",
203
+ "tabs"
204
+ ]
205
+ }
206
+ ```