@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,277 @@
1
+ # Atom behavior composition
2
+
3
+ Source: @flowstack-ui/atom@0.24.0
4
+ Kind: guide
5
+ ID: behavior-composition
6
+
7
+ # Atom behavior composition
8
+
9
+ ## Purpose
10
+
11
+ Compose Atom primitives without duplicating their owned semantics, state, accessibility, focus, or interaction behavior.
12
+
13
+ ## Decision order
14
+
15
+ 1. Write the semantic, state, focus, keyboard, pointer, touch, and assistive-technology requirements.
16
+ 2. Choose the primitive whose public contract owns that behavior.
17
+ 3. Follow its required anatomy and preserve the relationships between Root, trigger, content, label, description, and items.
18
+ 4. Use native props, asChild, or render only when the replacement preserves resolved semantics and required handlers.
19
+ 5. Test the behavior before adding any higher-layer styling or product workflow.
20
+
21
+ ## Selection map
22
+
23
+ - **one behavior owner:** use one public Atom primitive. Do not combine primitives that compete for the same focus or state contract.
24
+ - **compound anatomy:** use the documented Root and named parts. Keep required parts inside their owning context.
25
+ - **several related disclosure sections:** use Accordion. Preserve Item, Header, Trigger, and Content relationships and choose heading levels from the host document.
26
+ - **static item or sequence semantics:** use List. Keep ordered or unordered native meaning and do not invent an interaction model.
27
+ - **custom element integration:** use asChild or render. Merge props and refs instead of replacing Atom handlers.
28
+ - **controlled application state:** use the primitive's controlled props. Keep business effects outside the primitive.
29
+
30
+ ## Rules
31
+
32
+ - **MUST:** Follow each primitive's documented anatomy and required labeling relationships.
33
+ - **MUST:** Preserve Atom props, handlers, refs, IDs, ARIA attributes, and data state when custom rendering.
34
+ - **MUST:** Do not replace an Atom contract with hand-written event listeners, focus movement, or ARIA.
35
+ - **SHOULD:** Keep pure structural composition server-safe and introduce a client boundary only where behavior requires it.
36
+
37
+ ## Native fallback
38
+
39
+ 1. Verify that no Atom primitive or native element already owns the complete behavior.
40
+ 2. Use semantic native HTML for ordinary document structure and behavior that needs no reusable Atom contract.
41
+ 3. Document any repeated manual behavior as a potential Atom gap instead of silently normalizing it in applications.
42
+
43
+ ## Validation checklist
44
+
45
+ - Inspect the final DOM rather than only the JSX component names.
46
+ - Exercise keyboard, pointer, touch, focus return, dismissal, disabled state, controlled state, and RTL behavior as applicable.
47
+ - Run automated accessibility checks and perform the component's manual protocol for material interaction changes.
48
+ - Confirm application effects do not replace or fight the primitive's state owner.
49
+
50
+ ## Related guidance
51
+
52
+ - `layer-selection`
53
+ - `form`
54
+ - `field`
55
+ - `fieldset`
56
+ - `navigation-menu`
57
+ - `menu`
58
+ - `dropdown-menu`
59
+ - `context-menu`
60
+ - `menubar`
61
+ - `tooltip`
62
+ - `hover-card`
63
+ - `checkbox-group`
64
+ - `radio-group`
65
+ - `switch`
66
+ - `toggle`
67
+ - `toggle-group`
68
+ - `slider`
69
+ - `rating`
70
+ - `listbox`
71
+ - `select`
72
+ - `multi-select`
73
+ - `combobox`
74
+ - `number-input`
75
+ - `otp-field`
76
+ - `password-toggle-field`
77
+ - `file-upload`
78
+ - `clipboard`
79
+ - `toast`
80
+ - `swipeable-item`
81
+ - `collapsible`
82
+ - `table`
83
+ - `data-grid`
84
+ - `tree`
85
+ - `tree-grid`
86
+ - `feed`
87
+ - `aspect-ratio`
88
+ - `avatar`
89
+ - `badge`
90
+ - `label`
91
+ - `progress`
92
+ - `visually-hidden`
93
+ - `direction`
94
+ - `modal`
95
+ - `dialog`
96
+ - `alert-dialog`
97
+ - `drawer`
98
+ - `popover`
99
+ - `tabs`
100
+ - `toolbar`
101
+ - `accordion`
102
+ - `list`
103
+
104
+ ## Machine record
105
+
106
+ ```json
107
+ {
108
+ "schema": "flowstack.agent-guide.v1",
109
+ "id": "behavior-composition",
110
+ "name": "Atom behavior composition",
111
+ "package": "@flowstack-ui/atom",
112
+ "layer": "atom",
113
+ "kind": "guide",
114
+ "purpose": "Compose Atom primitives without duplicating their owned semantics, state, accessibility, focus, or interaction behavior.",
115
+ "decisionOrder": [
116
+ "Write the semantic, state, focus, keyboard, pointer, touch, and assistive-technology requirements.",
117
+ "Choose the primitive whose public contract owns that behavior.",
118
+ "Follow its required anatomy and preserve the relationships between Root, trigger, content, label, description, and items.",
119
+ "Use native props, asChild, or render only when the replacement preserves resolved semantics and required handlers.",
120
+ "Test the behavior before adding any higher-layer styling or product workflow."
121
+ ],
122
+ "selection": [
123
+ {
124
+ "intent": "one behavior owner",
125
+ "use": "one public Atom primitive",
126
+ "note": "Do not combine primitives that compete for the same focus or state contract.",
127
+ "destinations": [
128
+ {
129
+ "kind": "guide",
130
+ "id": "layer-selection"
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "intent": "compound anatomy",
136
+ "use": "the documented Root and named parts",
137
+ "note": "Keep required parts inside their owning context.",
138
+ "destinations": [
139
+ {
140
+ "kind": "guide",
141
+ "id": "behavior-composition"
142
+ }
143
+ ]
144
+ },
145
+ {
146
+ "intent": "several related disclosure sections",
147
+ "use": "Accordion",
148
+ "note": "Preserve Item, Header, Trigger, and Content relationships and choose heading levels from the host document.",
149
+ "destinations": [
150
+ {
151
+ "kind": "component",
152
+ "id": "accordion"
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "intent": "static item or sequence semantics",
158
+ "use": "List",
159
+ "note": "Keep ordered or unordered native meaning and do not invent an interaction model.",
160
+ "destinations": [
161
+ {
162
+ "kind": "component",
163
+ "id": "list"
164
+ }
165
+ ]
166
+ },
167
+ {
168
+ "intent": "custom element integration",
169
+ "use": "asChild or render",
170
+ "note": "Merge props and refs instead of replacing Atom handlers.",
171
+ "destinations": [
172
+ {
173
+ "kind": "guide",
174
+ "id": "behavior-composition"
175
+ }
176
+ ]
177
+ },
178
+ {
179
+ "intent": "controlled application state",
180
+ "use": "the primitive's controlled props",
181
+ "note": "Keep business effects outside the primitive.",
182
+ "destinations": [
183
+ {
184
+ "kind": "native-application",
185
+ "id": "application-state"
186
+ }
187
+ ]
188
+ }
189
+ ],
190
+ "rules": [
191
+ {
192
+ "id": "composition-anatomy",
193
+ "level": "must",
194
+ "statement": "Follow each primitive's documented anatomy and required labeling relationships."
195
+ },
196
+ {
197
+ "id": "composition-merge",
198
+ "level": "must",
199
+ "statement": "Preserve Atom props, handlers, refs, IDs, ARIA attributes, and data state when custom rendering."
200
+ },
201
+ {
202
+ "id": "composition-no-native-rebuild",
203
+ "level": "must",
204
+ "statement": "Do not replace an Atom contract with hand-written event listeners, focus movement, or ARIA."
205
+ },
206
+ {
207
+ "id": "composition-server-boundary",
208
+ "level": "should",
209
+ "statement": "Keep pure structural composition server-safe and introduce a client boundary only where behavior requires it."
210
+ }
211
+ ],
212
+ "nativeFallback": {
213
+ "check": "Verify that no Atom primitive or native element already owns the complete behavior.",
214
+ "use": "Use semantic native HTML for ordinary document structure and behavior that needs no reusable Atom contract.",
215
+ "report": "Document any repeated manual behavior as a potential Atom gap instead of silently normalizing it in applications."
216
+ },
217
+ "validation": [
218
+ "Inspect the final DOM rather than only the JSX component names.",
219
+ "Exercise keyboard, pointer, touch, focus return, dismissal, disabled state, controlled state, and RTL behavior as applicable.",
220
+ "Run automated accessibility checks and perform the component's manual protocol for material interaction changes.",
221
+ "Confirm application effects do not replace or fight the primitive's state owner."
222
+ ],
223
+ "related": [
224
+ "layer-selection",
225
+ "form",
226
+ "field",
227
+ "fieldset",
228
+ "navigation-menu",
229
+ "menu",
230
+ "dropdown-menu",
231
+ "context-menu",
232
+ "menubar",
233
+ "tooltip",
234
+ "hover-card",
235
+ "checkbox-group",
236
+ "radio-group",
237
+ "switch",
238
+ "toggle",
239
+ "toggle-group",
240
+ "slider",
241
+ "rating",
242
+ "listbox",
243
+ "select",
244
+ "multi-select",
245
+ "combobox",
246
+ "number-input",
247
+ "otp-field",
248
+ "password-toggle-field",
249
+ "file-upload",
250
+ "clipboard",
251
+ "toast",
252
+ "swipeable-item",
253
+ "collapsible",
254
+ "table",
255
+ "data-grid",
256
+ "tree",
257
+ "tree-grid",
258
+ "feed",
259
+ "aspect-ratio",
260
+ "avatar",
261
+ "badge",
262
+ "label",
263
+ "progress",
264
+ "visually-hidden",
265
+ "direction",
266
+ "modal",
267
+ "dialog",
268
+ "alert-dialog",
269
+ "drawer",
270
+ "popover",
271
+ "tabs",
272
+ "toolbar",
273
+ "accordion",
274
+ "list"
275
+ ]
276
+ }
277
+ ```