@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,183 @@
1
+ # Table
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: table
6
+
7
+ # Table agent guide
8
+
9
+ ## Purpose
10
+
11
+ Present finished static row-and-column relationships with native table semantics while Atom owns the semantic parts and sort metadata.
12
+
13
+ ## Use when
14
+
15
+ - People need to compare values across meaningful columns in pricing, reports, invoices, inventories, audit results, or compact summaries.
16
+
17
+ ## Choose something else when
18
+
19
+ - The region needs arrow-key cell navigation, row selection, editing, resizing, or another interactive composite model. Use Data Grid or an application-owned data tool.
20
+ - The content is a sequence without meaningful column relationships or a label/value definition structure. Use List, Grid, Stack, or a semantic definition-list composition.
21
+ - The narrow layout must convert rows into unrelated cards and no longer preserves column comparison. Use An application-owned alternate view with an explicit responsive policy.
22
+
23
+ ## Required composition
24
+
25
+ - Compose optional Container > Root > Caption, Header, Body, and optional Footer; place Row inside each section and Head or Cell inside Row according to native table content rules.
26
+ - Use Head with scope="row" for body row labels and keep the default column scope for header cells; use id and headers for complex associations.
27
+ - Author Container explicitly when honest comparison needs horizontal overflow, and set the public minimum-inline-size token to the smallest width that preserves the column relationships.
28
+ - When Table moves vertically, put the visible border and radius on the stable labelled Scroll Area viewport, use Table variant=line inside it, and keep persistent naming outside the moving viewport with aria-labelledby.
29
+ - Put an independently named Button and optional decorative SortIndicator inside the active Head when the application owns sorting.
30
+
31
+ ## Rules
32
+
33
+ - **MUST:** Preserve native table anatomy and meaningful row and column headers; do not rebuild tabular comparison with generic Grid, Stack, div, or ARIA role substitutes.
34
+ - **MUST:** Keep Table static and readable; do not add row focus, whole-row activation, selection, arrow-key cell navigation, data mapping, filtering, pagination, editing, or virtualization to Table.
35
+ - **MUST:** Author Table.Container or a separately labelled Scroll Area when wide comparison needs overflow; Root never inserts a wrapper and Table never hides columns or converts them into cards.
36
+ - **MUST:** At narrow widths, preserve header-to-cell relationships, complete material values, and an understandable comparison path rather than merely stacking unrelated plan or record cards.
37
+ - **MUST:** For bounded vertical scrolling, let the stable Scroll Area viewport own the visible border and radius; do not use a moving Table outline as the scroll-frame boundary.
38
+ - **MUST:** Let the application sort data and pass sortDirection only to the active header; SortIndicator is decorative and never supplies the control, name, or behavior.
39
+ - **MUST:** Load styles.css or core.css plus table.css.
40
+
41
+ ## Common mistakes
42
+
43
+ - **Avoid:** Using generic layout components for a pricing matrix because custom positioning feels easier. **Instead:** Use Table's native Head and Cell relationships, then customize the closed recipes and public Table variables for the product-specific comparison.
44
+ - **Avoid:** Hiding material columns on mobile or visually cloning labels into card rows. **Instead:** Contain honest horizontal overflow or provide a separately authored application view; do not destroy or fake the native column relationships.
45
+ - **Avoid:** Making rows hoverable or clickable without a complete interaction owner. **Instead:** Keep rows structural and place independently named Brick links or buttons inside the appropriate cells.
46
+ - **Avoid:** Using Table variant=outline as the visible frame inside a vertically scrolling viewport. **Instead:** Paint the stable Scroll Area viewport with Surface, use Table variant=line inside it, and connect a persistent external label with aria-labelledby.
47
+ - **Avoid:** Using a visible recommendation color as the only explanation for a preferred pricing column. **Instead:** Keep the plan label and recommendation reason readable in ordinary text, then use Table paint only as supporting emphasis.
48
+
49
+ ## Validation checklist
50
+
51
+ - Check caption or surrounding naming, header scope, cell associations, source order, plan or record labels, and independently named controls.
52
+ - Check Container overflow, the authored minimum comparison width, stable viewport corners during vertical scrolling, sticky header boundaries when used, 320 CSS pixels, zoom, long content, RTL, and no page-level horizontal overflow.
53
+ - Check light and dark themes, forced colors, row and column boundaries, recommendation meaning without color, focus visibility for interactive descendants, and CSS delivery.
54
+ - Check that sorting, selection, filtering, pagination, data services, and responsive alternate-view policy remain application owned.
55
+
56
+ ## Related guidance
57
+
58
+ - `@flowstack-ui/atom/agents/table`
59
+ - `data-grid`
60
+ - `tree-grid`
61
+ - `scroll-area`
62
+ - `button`
63
+ - `badge`
64
+ - `icon`
65
+ - `text`
66
+
67
+ ## Machine record
68
+
69
+ ```json
70
+ {
71
+ "schema": "flowstack.agent-component.v1",
72
+ "id": "table",
73
+ "name": "Table",
74
+ "package": "@flowstack-ui/brick",
75
+ "layer": "brick",
76
+ "kind": "component",
77
+ "purpose": "Present finished static row-and-column relationships with native table semantics while Atom owns the semantic parts and sort metadata.",
78
+ "useWhen": [
79
+ "People need to compare values across meaningful columns in pricing, reports, invoices, inventories, audit results, or compact summaries."
80
+ ],
81
+ "avoidWhen": [
82
+ {
83
+ "condition": "The region needs arrow-key cell navigation, row selection, editing, resizing, or another interactive composite model.",
84
+ "useInstead": "Data Grid or an application-owned data tool"
85
+ },
86
+ {
87
+ "condition": "The content is a sequence without meaningful column relationships or a label/value definition structure.",
88
+ "useInstead": "List, Grid, Stack, or a semantic definition-list composition"
89
+ },
90
+ {
91
+ "condition": "The narrow layout must convert rows into unrelated cards and no longer preserves column comparison.",
92
+ "useInstead": "An application-owned alternate view with an explicit responsive policy"
93
+ }
94
+ ],
95
+ "composition": [
96
+ "Compose optional Container > Root > Caption, Header, Body, and optional Footer; place Row inside each section and Head or Cell inside Row according to native table content rules.",
97
+ "Use Head with scope=\"row\" for body row labels and keep the default column scope for header cells; use id and headers for complex associations.",
98
+ "Author Container explicitly when honest comparison needs horizontal overflow, and set the public minimum-inline-size token to the smallest width that preserves the column relationships.",
99
+ "When Table moves vertically, put the visible border and radius on the stable labelled Scroll Area viewport, use Table variant=line inside it, and keep persistent naming outside the moving viewport with aria-labelledby.",
100
+ "Put an independently named Button and optional decorative SortIndicator inside the active Head when the application owns sorting."
101
+ ],
102
+ "rules": [
103
+ {
104
+ "id": "table-native-relationships",
105
+ "level": "must",
106
+ "statement": "Preserve native table anatomy and meaningful row and column headers; do not rebuild tabular comparison with generic Grid, Stack, div, or ARIA role substitutes."
107
+ },
108
+ {
109
+ "id": "table-static-boundary",
110
+ "level": "must",
111
+ "statement": "Keep Table static and readable; do not add row focus, whole-row activation, selection, arrow-key cell navigation, data mapping, filtering, pagination, editing, or virtualization to Table."
112
+ },
113
+ {
114
+ "id": "table-explicit-overflow",
115
+ "level": "must",
116
+ "statement": "Author Table.Container or a separately labelled Scroll Area when wide comparison needs overflow; Root never inserts a wrapper and Table never hides columns or converts them into cards."
117
+ },
118
+ {
119
+ "id": "table-responsive-comparison",
120
+ "level": "must",
121
+ "statement": "At narrow widths, preserve header-to-cell relationships, complete material values, and an understandable comparison path rather than merely stacking unrelated plan or record cards."
122
+ },
123
+ {
124
+ "id": "table-vertical-scroll-boundary",
125
+ "level": "must",
126
+ "statement": "For bounded vertical scrolling, let the stable Scroll Area viewport own the visible border and radius; do not use a moving Table outline as the scroll-frame boundary."
127
+ },
128
+ {
129
+ "id": "table-sort-ownership",
130
+ "level": "must",
131
+ "statement": "Let the application sort data and pass sortDirection only to the active header; SortIndicator is decorative and never supplies the control, name, or behavior."
132
+ },
133
+ {
134
+ "id": "table-css",
135
+ "level": "must",
136
+ "statement": "Load styles.css or core.css plus table.css."
137
+ }
138
+ ],
139
+ "commonMistakes": [
140
+ {
141
+ "mistake": "Using generic layout components for a pricing matrix because custom positioning feels easier.",
142
+ "correction": "Use Table's native Head and Cell relationships, then customize the closed recipes and public Table variables for the product-specific comparison."
143
+ },
144
+ {
145
+ "mistake": "Hiding material columns on mobile or visually cloning labels into card rows.",
146
+ "correction": "Contain honest horizontal overflow or provide a separately authored application view; do not destroy or fake the native column relationships."
147
+ },
148
+ {
149
+ "mistake": "Making rows hoverable or clickable without a complete interaction owner.",
150
+ "correction": "Keep rows structural and place independently named Brick links or buttons inside the appropriate cells."
151
+ },
152
+ {
153
+ "mistake": "Using Table variant=outline as the visible frame inside a vertically scrolling viewport.",
154
+ "correction": "Paint the stable Scroll Area viewport with Surface, use Table variant=line inside it, and connect a persistent external label with aria-labelledby."
155
+ },
156
+ {
157
+ "mistake": "Using a visible recommendation color as the only explanation for a preferred pricing column.",
158
+ "correction": "Keep the plan label and recommendation reason readable in ordinary text, then use Table paint only as supporting emphasis."
159
+ }
160
+ ],
161
+ "validation": [
162
+ "Check caption or surrounding naming, header scope, cell associations, source order, plan or record labels, and independently named controls.",
163
+ "Check Container overflow, the authored minimum comparison width, stable viewport corners during vertical scrolling, sticky header boundaries when used, 320 CSS pixels, zoom, long content, RTL, and no page-level horizontal overflow.",
164
+ "Check light and dark themes, forced colors, row and column boundaries, recommendation meaning without color, focus visibility for interactive descendants, and CSS delivery.",
165
+ "Check that sorting, selection, filtering, pagination, data services, and responsive alternate-view policy remain application owned."
166
+ ],
167
+ "related": [
168
+ {
169
+ "kind": "package",
170
+ "package": "@flowstack-ui/atom",
171
+ "id": "table",
172
+ "versionPolicy": "installed-exact"
173
+ },
174
+ "data-grid",
175
+ "tree-grid",
176
+ "scroll-area",
177
+ "button",
178
+ "badge",
179
+ "icon",
180
+ "text"
181
+ ]
182
+ }
183
+ ```
@@ -0,0 +1,136 @@
1
+ # Tabs
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: tabs
6
+
7
+ # Tabs agent guide
8
+
9
+ ## Purpose
10
+
11
+ Style related in-page panel switching while Atom owns tab semantics, selection, roving focus, and indicator geometry.
12
+
13
+ ## Use when
14
+
15
+ - A small set of related panels shares one page and one panel is normally active.
16
+
17
+ ## Choose something else when
18
+
19
+ - Choices navigate to routes or multiple sections should remain open. Use Link/NavList or Accordion.
20
+
21
+ ## Required composition
22
+
23
+ - Compose Trigger and optional Indicator inside List with matching Content values inside Root; lay out panel content with Brick components.
24
+ - Keep the default panel inset for ordinary copy; use Content inset=none for edge-to-edge media or nested surfaces rather than overriding component CSS.
25
+ - When a page-header control row visually continues the tab divider, keep unrelated controls outside List and let the surrounding Brick layout own the continuing decorative Divider.
26
+ - Use List triggerRadius=none when line tabs need square underline geometry; the option applies to every variant and changes paint only.
27
+ - When vertical tab semantics stay correct but mobile needs full-width content, use responsive Root layout stacked to side; do not change semantic orientation with CSS.
28
+ - When the same vertical selector needs a compact mobile grid, use responsive List columns (for example, initial 2 and lg 1) rather than application selectors; keyboard orientation remains vertical.
29
+ - When a solid or soft List is nested inside a clipping parent that owns the outer corners, use List radius=none rather than overriding Tabs selectors; add triggerRadius=default only when individual Trigger surfaces should remain rounded.
30
+ - Keep the shipped solid and soft List inset at or above the complete focus-ring reach; do not reduce it inside a clipping Card or Surface.
31
+
32
+ ## Rules
33
+
34
+ - **MUST:** Use Tabs only for related in-page panels, not to imitate a site navigation underline.
35
+ - **MUST:** Define a deliberate narrow-width overflow or wrapping policy without clipping triggers or indicator focus.
36
+ - **MUST:** Treat List columns as visual placement only; keep DOM order and the semantic orientation that matches the intended arrow keys.
37
+ - **MUST:** Treat List radius and Trigger radius as independent visual geometry only; neither may alter inset, selection, focus, orientation, columns, or keyboard behavior.
38
+ - **MUST:** For line Tabs, keep active label and icon paint on primary text and reserve accent paint for the selected edge or authored metadata such as Badge.
39
+ - **MUST:** Load styles.css or core.css plus tabs.css.
40
+
41
+ ## Common mistakes
42
+
43
+ - **Avoid:** Using Tabs for routes, putting sorting or actions inside List to extend its divider, clipping focus/indicator edges, or mismatching Trigger and Content values. **Instead:** Use navigation links for routes, keep unrelated controls outside the tablist, continue shared decorative edges with the surrounding Brick layout, and keep complete paired tab anatomy.
44
+
45
+ ## Validation checklist
46
+
47
+ - Check automatic/manual activation, arrows, Home/End, Enter/Space, disabled, controlled, keep-mounted, overflow, complete focus rings at every List edge and inside clipping parents, themes, zoom, and RTL.
48
+ - Confirm CSS is loaded.
49
+
50
+ ## Related guidance
51
+
52
+ - `accordion`
53
+ - `navigation-menu`
54
+ - `bottom-navigation`
55
+ - `scroll-area`
56
+
57
+ ## Machine record
58
+
59
+ ```json
60
+ {
61
+ "schema": "flowstack.agent-component.v1",
62
+ "id": "tabs",
63
+ "name": "Tabs",
64
+ "package": "@flowstack-ui/brick",
65
+ "layer": "brick",
66
+ "kind": "component",
67
+ "purpose": "Style related in-page panel switching while Atom owns tab semantics, selection, roving focus, and indicator geometry.",
68
+ "useWhen": [
69
+ "A small set of related panels shares one page and one panel is normally active."
70
+ ],
71
+ "avoidWhen": [
72
+ {
73
+ "condition": "Choices navigate to routes or multiple sections should remain open.",
74
+ "useInstead": "Link/NavList or Accordion"
75
+ }
76
+ ],
77
+ "composition": [
78
+ "Compose Trigger and optional Indicator inside List with matching Content values inside Root; lay out panel content with Brick components.",
79
+ "Keep the default panel inset for ordinary copy; use Content inset=none for edge-to-edge media or nested surfaces rather than overriding component CSS.",
80
+ "When a page-header control row visually continues the tab divider, keep unrelated controls outside List and let the surrounding Brick layout own the continuing decorative Divider.",
81
+ "Use List triggerRadius=none when line tabs need square underline geometry; the option applies to every variant and changes paint only.",
82
+ "When vertical tab semantics stay correct but mobile needs full-width content, use responsive Root layout stacked to side; do not change semantic orientation with CSS.",
83
+ "When the same vertical selector needs a compact mobile grid, use responsive List columns (for example, initial 2 and lg 1) rather than application selectors; keyboard orientation remains vertical.",
84
+ "When a solid or soft List is nested inside a clipping parent that owns the outer corners, use List radius=none rather than overriding Tabs selectors; add triggerRadius=default only when individual Trigger surfaces should remain rounded.",
85
+ "Keep the shipped solid and soft List inset at or above the complete focus-ring reach; do not reduce it inside a clipping Card or Surface."
86
+ ],
87
+ "rules": [
88
+ {
89
+ "id": "tabs-related-panels",
90
+ "level": "must",
91
+ "statement": "Use Tabs only for related in-page panels, not to imitate a site navigation underline."
92
+ },
93
+ {
94
+ "id": "tabs-overflow",
95
+ "level": "must",
96
+ "statement": "Define a deliberate narrow-width overflow or wrapping policy without clipping triggers or indicator focus."
97
+ },
98
+ {
99
+ "id": "tabs-columns-semantics",
100
+ "level": "must",
101
+ "statement": "Treat List columns as visual placement only; keep DOM order and the semantic orientation that matches the intended arrow keys."
102
+ },
103
+ {
104
+ "id": "tabs-radius-visual-only",
105
+ "level": "must",
106
+ "statement": "Treat List radius and Trigger radius as independent visual geometry only; neither may alter inset, selection, focus, orientation, columns, or keyboard behavior."
107
+ },
108
+ {
109
+ "id": "tabs-line-selection-paint",
110
+ "level": "must",
111
+ "statement": "For line Tabs, keep active label and icon paint on primary text and reserve accent paint for the selected edge or authored metadata such as Badge."
112
+ },
113
+ {
114
+ "id": "tabs-css",
115
+ "level": "must",
116
+ "statement": "Load styles.css or core.css plus tabs.css."
117
+ }
118
+ ],
119
+ "commonMistakes": [
120
+ {
121
+ "mistake": "Using Tabs for routes, putting sorting or actions inside List to extend its divider, clipping focus/indicator edges, or mismatching Trigger and Content values.",
122
+ "correction": "Use navigation links for routes, keep unrelated controls outside the tablist, continue shared decorative edges with the surrounding Brick layout, and keep complete paired tab anatomy."
123
+ }
124
+ ],
125
+ "validation": [
126
+ "Check automatic/manual activation, arrows, Home/End, Enter/Space, disabled, controlled, keep-mounted, overflow, complete focus rings at every List edge and inside clipping parents, themes, zoom, and RTL.",
127
+ "Confirm CSS is loaded."
128
+ ],
129
+ "related": [
130
+ "accordion",
131
+ "navigation-menu",
132
+ "bottom-navigation",
133
+ "scroll-area"
134
+ ]
135
+ }
136
+ ```
@@ -0,0 +1,148 @@
1
+ # Text
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: text
6
+
7
+ # Text agent guide
8
+
9
+ ## Purpose
10
+
11
+ Apply Brick typography roles, tones, weight, alignment, wrapping, and deliberate transforms through flexible Text or named semantic text exports.
12
+
13
+ ## Use when
14
+
15
+ - Interface copy needs Brick typography, including headings, paragraphs, short editorial eyebrows, captions, metadata, or inline text. Prefer Heading, Paragraph, Caption, and Eyebrow for their common roles; use Text for a different deliberate semantic/visual pairing.
16
+
17
+ ## Choose something else when
18
+
19
+ - A component such as Button, Link, Field.Label, Card.Title, or Badge already owns the text role. Use that component's named text part.
20
+
21
+ ## Required composition
22
+
23
+ - Choose the named semantic export when it fits. Heading requires an explicit level and keeps that level independent from its visual variant. Otherwise choose Text's semantic element first, then its closest visual variant and tone. Keep inline components that complete the same sentence inside that text owner, and use Stack only for separately meaningful text peers.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Do not choose heading or paragraph semantics solely from the desired font size. Use the display scale, responsive visual variant, or responsive logical alignment without changing the correct semantic level.
28
+ - **MUST:** Author real names and titles with their correct casing. Use transform only for deliberate visual presentation; CSS capitalize is not language-aware title case and must not repair registry or product content.
29
+ - **MUST:** Prefer Heading, Paragraph, Caption, or Eyebrow for ordinary roles; use Text when their fixed semantic host or restricted visual family does not fit.
30
+ - **MUST:** Use Text for standalone styled interface copy instead of native spans plus duplicate typography CSS.
31
+ - **MUST:** Preserve readable body sizing, line height, measure, contrast, and user font scaling.
32
+ - **MUST:** Reserve variant=eyebrow for short labels that introduce a nearby heading; do not select it merely to make unrelated copy smaller. Use body text for explanatory sentences and Badge for passive status or category content.
33
+ - **MUST:** Use tone=inherit when Text is intentionally composed inside a parent such as Badge that owns the foreground and contrast relationship.
34
+ - **MUST:** Keep a Link or other inline component that completes one sentence inside the semantic Text paragraph and let it inherit the surrounding typography and natural wrapping.
35
+ - **SHOULD:** Give separately meaningful inline peer labels compatible typography metrics and arrange them with HStack gap rather than literal spaces or manual positional offsets.
36
+ - **MUST:** Load styles.css or core.css plus text.css.
37
+
38
+ ## Common mistakes
39
+
40
+ - **Avoid:** Using five spans to build brand text, repeatedly spelling ordinary headings and paragraphs as Text plus as, using capitalize to repair authored titles, selecting all-caps eyebrow styling for paragraph descriptions, allowing nested Text to override a parent's foreground, splitting one sentence into layout siblings, or aligning independent peer labels with literal whitespace. **Instead:** Use the named semantic exports where they fit, author correct casing, reserve transforms and display treatments for their intended roles, inherit the owning foreground, keep one sentence in one text flow, and use HStack gap only between separate peers.
41
+
42
+ ## Validation checklist
43
+
44
+ - Check heading order, semantics, responsive visual-recipe changes at Brick breakpoints, line length, wrapping, truncation, user font scaling, zoom, contrast, themes, and RTL.
45
+ - Confirm named exports render one correct native host, Heading level follows document structure, transformed text preserves authored content in the DOM, inline sentence content remains inside its semantic owner, independent peer labels align without positional CSS, parent foreground ownership is not bypassed, and CSS is loaded.
46
+
47
+ ## Related guidance
48
+
49
+ - `stack`
50
+ - `link`
51
+ - `card`
52
+ - `field`
53
+ - `badge`
54
+
55
+ ## Machine record
56
+
57
+ ```json
58
+ {
59
+ "schema": "flowstack.agent-component.v1",
60
+ "id": "text",
61
+ "name": "Text",
62
+ "package": "@flowstack-ui/brick",
63
+ "layer": "brick",
64
+ "kind": "component",
65
+ "purpose": "Apply Brick typography roles, tones, weight, alignment, wrapping, and deliberate transforms through flexible Text or named semantic text exports.",
66
+ "useWhen": [
67
+ "Interface copy needs Brick typography, including headings, paragraphs, short editorial eyebrows, captions, metadata, or inline text. Prefer Heading, Paragraph, Caption, and Eyebrow for their common roles; use Text for a different deliberate semantic/visual pairing."
68
+ ],
69
+ "avoidWhen": [
70
+ {
71
+ "condition": "A component such as Button, Link, Field.Label, Card.Title, or Badge already owns the text role.",
72
+ "useInstead": "that component's named text part"
73
+ }
74
+ ],
75
+ "composition": [
76
+ "Choose the named semantic export when it fits. Heading requires an explicit level and keeps that level independent from its visual variant. Otherwise choose Text's semantic element first, then its closest visual variant and tone. Keep inline components that complete the same sentence inside that text owner, and use Stack only for separately meaningful text peers."
77
+ ],
78
+ "rules": [
79
+ {
80
+ "id": "text-semantics",
81
+ "level": "must",
82
+ "statement": "Do not choose heading or paragraph semantics solely from the desired font size. Use the display scale, responsive visual variant, or responsive logical alignment without changing the correct semantic level."
83
+ },
84
+ {
85
+ "id": "text-authored-case",
86
+ "level": "must",
87
+ "statement": "Author real names and titles with their correct casing. Use transform only for deliberate visual presentation; CSS capitalize is not language-aware title case and must not repair registry or product content."
88
+ },
89
+ {
90
+ "id": "text-named-roles",
91
+ "level": "must",
92
+ "statement": "Prefer Heading, Paragraph, Caption, or Eyebrow for ordinary roles; use Text when their fixed semantic host or restricted visual family does not fit."
93
+ },
94
+ {
95
+ "id": "text-brick-first",
96
+ "level": "must",
97
+ "statement": "Use Text for standalone styled interface copy instead of native spans plus duplicate typography CSS."
98
+ },
99
+ {
100
+ "id": "text-readable",
101
+ "level": "must",
102
+ "statement": "Preserve readable body sizing, line height, measure, contrast, and user font scaling."
103
+ },
104
+ {
105
+ "id": "text-eyebrow",
106
+ "level": "must",
107
+ "statement": "Reserve variant=eyebrow for short labels that introduce a nearby heading; do not select it merely to make unrelated copy smaller. Use body text for explanatory sentences and Badge for passive status or category content."
108
+ },
109
+ {
110
+ "id": "text-inherit-parent-foreground",
111
+ "level": "must",
112
+ "statement": "Use tone=inherit when Text is intentionally composed inside a parent such as Badge that owns the foreground and contrast relationship."
113
+ },
114
+ {
115
+ "id": "text-inline-sentence",
116
+ "level": "must",
117
+ "statement": "Keep a Link or other inline component that completes one sentence inside the semantic Text paragraph and let it inherit the surrounding typography and natural wrapping."
118
+ },
119
+ {
120
+ "id": "text-inline-peers",
121
+ "level": "should",
122
+ "statement": "Give separately meaningful inline peer labels compatible typography metrics and arrange them with HStack gap rather than literal spaces or manual positional offsets."
123
+ },
124
+ {
125
+ "id": "text-css",
126
+ "level": "must",
127
+ "statement": "Load styles.css or core.css plus text.css."
128
+ }
129
+ ],
130
+ "commonMistakes": [
131
+ {
132
+ "mistake": "Using five spans to build brand text, repeatedly spelling ordinary headings and paragraphs as Text plus as, using capitalize to repair authored titles, selecting all-caps eyebrow styling for paragraph descriptions, allowing nested Text to override a parent's foreground, splitting one sentence into layout siblings, or aligning independent peer labels with literal whitespace.",
133
+ "correction": "Use the named semantic exports where they fit, author correct casing, reserve transforms and display treatments for their intended roles, inherit the owning foreground, keep one sentence in one text flow, and use HStack gap only between separate peers."
134
+ }
135
+ ],
136
+ "validation": [
137
+ "Check heading order, semantics, responsive visual-recipe changes at Brick breakpoints, line length, wrapping, truncation, user font scaling, zoom, contrast, themes, and RTL.",
138
+ "Confirm named exports render one correct native host, Heading level follows document structure, transformed text preserves authored content in the DOM, inline sentence content remains inside its semantic owner, independent peer labels align without positional CSS, parent foreground ownership is not bypassed, and CSS is loaded."
139
+ ],
140
+ "related": [
141
+ "stack",
142
+ "link",
143
+ "card",
144
+ "field",
145
+ "badge"
146
+ ]
147
+ }
148
+ ```
@@ -0,0 +1,101 @@
1
+ # Textarea
2
+
3
+ Source: @flowstack-ui/brick@0.1.11
4
+ Kind: component
5
+ ID: textarea
6
+
7
+ # Textarea agent guide
8
+
9
+ ## Purpose
10
+
11
+ Render finished native multi-line text entry with Brick sizing, states, resize policy, and Atom field integration.
12
+
13
+ ## Use when
14
+
15
+ - The user enters sentences, paragraphs, notes, or other multi-line text.
16
+
17
+ ## Choose something else when
18
+
19
+ - The expected value is short and single-line. Use Input.
20
+
21
+ ## Required composition
22
+
23
+ - Place Textarea inside one Field.Root after Field.Label and add description or character guidance when useful.
24
+
25
+ ## Rules
26
+
27
+ - **MUST:** Use a persistent accessible label.
28
+ - **MUST:** Load styles.css or core.css plus textarea.css and field.css when composed with Field.
29
+
30
+ ## Common mistakes
31
+
32
+ - **Avoid:** Using a single-line Input for long freeform content. **Instead:** Use Textarea and allow a usable multi-line measure.
33
+
34
+ ## Validation checklist
35
+
36
+ - Inspect label, name, and messaging relationships.
37
+ - Test multi-line entry, resize policy, narrow widths, invalid/disabled states, and contrast.
38
+
39
+ ## Related guidance
40
+
41
+ - `@flowstack-ui/atom/agents/textarea`
42
+ - `field`
43
+ - `input`
44
+
45
+ ## Machine record
46
+
47
+ ```json
48
+ {
49
+ "schema": "flowstack.agent-component.v1",
50
+ "id": "textarea",
51
+ "name": "Textarea",
52
+ "package": "@flowstack-ui/brick",
53
+ "layer": "brick",
54
+ "kind": "component",
55
+ "purpose": "Render finished native multi-line text entry with Brick sizing, states, resize policy, and Atom field integration.",
56
+ "useWhen": [
57
+ "The user enters sentences, paragraphs, notes, or other multi-line text."
58
+ ],
59
+ "avoidWhen": [
60
+ {
61
+ "condition": "The expected value is short and single-line.",
62
+ "useInstead": "Input"
63
+ }
64
+ ],
65
+ "composition": [
66
+ "Place Textarea inside one Field.Root after Field.Label and add description or character guidance when useful."
67
+ ],
68
+ "rules": [
69
+ {
70
+ "id": "textarea-label",
71
+ "level": "must",
72
+ "statement": "Use a persistent accessible label."
73
+ },
74
+ {
75
+ "id": "textarea-css",
76
+ "level": "must",
77
+ "statement": "Load styles.css or core.css plus textarea.css and field.css when composed with Field."
78
+ }
79
+ ],
80
+ "commonMistakes": [
81
+ {
82
+ "mistake": "Using a single-line Input for long freeform content.",
83
+ "correction": "Use Textarea and allow a usable multi-line measure."
84
+ }
85
+ ],
86
+ "validation": [
87
+ "Inspect label, name, and messaging relationships.",
88
+ "Test multi-line entry, resize policy, narrow widths, invalid/disabled states, and contrast."
89
+ ],
90
+ "related": [
91
+ {
92
+ "kind": "package",
93
+ "package": "@flowstack-ui/atom",
94
+ "id": "textarea",
95
+ "versionPolicy": "installed-exact"
96
+ },
97
+ "field",
98
+ "input"
99
+ ]
100
+ }
101
+ ```