@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.
- package/.codex-plugin/plugin.json +37 -0
- package/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +125 -0
- package/docs/architecture.md +77 -0
- package/docs/releasing.md +26 -0
- package/docs/testing.md +32 -0
- package/package.json +63 -0
- package/public/index.json +2073 -0
- package/public/llms.txt +19 -0
- package/public/packages/atom/0.24.0/components/accordion.txt +131 -0
- package/public/packages/atom/0.24.0/components/alert-dialog.txt +112 -0
- package/public/packages/atom/0.24.0/components/app-bar.txt +96 -0
- package/public/packages/atom/0.24.0/components/aspect-ratio.txt +111 -0
- package/public/packages/atom/0.24.0/components/avatar.txt +119 -0
- package/public/packages/atom/0.24.0/components/badge.txt +123 -0
- package/public/packages/atom/0.24.0/components/bottom-navigation.txt +96 -0
- package/public/packages/atom/0.24.0/components/breadcrumb.txt +96 -0
- package/public/packages/atom/0.24.0/components/button.txt +98 -0
- package/public/packages/atom/0.24.0/components/carousel.txt +128 -0
- package/public/packages/atom/0.24.0/components/checkbox-group.txt +118 -0
- package/public/packages/atom/0.24.0/components/checkbox.txt +100 -0
- package/public/packages/atom/0.24.0/components/clipboard.txt +112 -0
- package/public/packages/atom/0.24.0/components/collapsible.txt +112 -0
- package/public/packages/atom/0.24.0/components/color-picker.txt +117 -0
- package/public/packages/atom/0.24.0/components/combobox.txt +126 -0
- package/public/packages/atom/0.24.0/components/context-menu.txt +114 -0
- package/public/packages/atom/0.24.0/components/data-grid.txt +136 -0
- package/public/packages/atom/0.24.0/components/dialog.txt +116 -0
- package/public/packages/atom/0.24.0/components/direction.txt +132 -0
- package/public/packages/atom/0.24.0/components/divider.txt +94 -0
- package/public/packages/atom/0.24.0/components/drag-drop.txt +141 -0
- package/public/packages/atom/0.24.0/components/drawer.txt +96 -0
- package/public/packages/atom/0.24.0/components/dropdown-menu.txt +112 -0
- package/public/packages/atom/0.24.0/components/feed.txt +132 -0
- package/public/packages/atom/0.24.0/components/field.txt +108 -0
- package/public/packages/atom/0.24.0/components/fieldset.txt +96 -0
- package/public/packages/atom/0.24.0/components/file-upload.txt +120 -0
- package/public/packages/atom/0.24.0/components/form.txt +98 -0
- package/public/packages/atom/0.24.0/components/hover-card.txt +114 -0
- package/public/packages/atom/0.24.0/components/image.txt +94 -0
- package/public/packages/atom/0.24.0/components/input.txt +96 -0
- package/public/packages/atom/0.24.0/components/label.txt +121 -0
- package/public/packages/atom/0.24.0/components/link.txt +100 -0
- package/public/packages/atom/0.24.0/components/list.txt +131 -0
- package/public/packages/atom/0.24.0/components/listbox.txt +120 -0
- package/public/packages/atom/0.24.0/components/menu.txt +126 -0
- package/public/packages/atom/0.24.0/components/menubar.txt +120 -0
- package/public/packages/atom/0.24.0/components/modal.txt +118 -0
- package/public/packages/atom/0.24.0/components/multi-select.txt +120 -0
- package/public/packages/atom/0.24.0/components/nav-list.txt +104 -0
- package/public/packages/atom/0.24.0/components/navigation-menu.txt +104 -0
- package/public/packages/atom/0.24.0/components/number-input.txt +124 -0
- package/public/packages/atom/0.24.0/components/otp-field.txt +122 -0
- package/public/packages/atom/0.24.0/components/pagination.txt +111 -0
- package/public/packages/atom/0.24.0/components/password-toggle-field.txt +116 -0
- package/public/packages/atom/0.24.0/components/popover.txt +122 -0
- package/public/packages/atom/0.24.0/components/pressable.txt +94 -0
- package/public/packages/atom/0.24.0/components/progress.txt +130 -0
- package/public/packages/atom/0.24.0/components/radio-group.txt +118 -0
- package/public/packages/atom/0.24.0/components/rating.txt +122 -0
- package/public/packages/atom/0.24.0/components/reorder.txt +141 -0
- package/public/packages/atom/0.24.0/components/scroll-area.txt +96 -0
- package/public/packages/atom/0.24.0/components/select.txt +126 -0
- package/public/packages/atom/0.24.0/components/sidebar.txt +96 -0
- package/public/packages/atom/0.24.0/components/skip-link.txt +96 -0
- package/public/packages/atom/0.24.0/components/slider.txt +124 -0
- package/public/packages/atom/0.24.0/components/swipeable-item.txt +118 -0
- package/public/packages/atom/0.24.0/components/switch.txt +116 -0
- package/public/packages/atom/0.24.0/components/table.txt +128 -0
- package/public/packages/atom/0.24.0/components/tabs.txt +96 -0
- package/public/packages/atom/0.24.0/components/textarea.txt +96 -0
- package/public/packages/atom/0.24.0/components/toast.txt +124 -0
- package/public/packages/atom/0.24.0/components/toggle-group.txt +118 -0
- package/public/packages/atom/0.24.0/components/toggle.txt +110 -0
- package/public/packages/atom/0.24.0/components/toolbar.txt +98 -0
- package/public/packages/atom/0.24.0/components/tooltip.txt +112 -0
- package/public/packages/atom/0.24.0/components/tree-grid.txt +138 -0
- package/public/packages/atom/0.24.0/components/tree.txt +138 -0
- package/public/packages/atom/0.24.0/components/visually-hidden.txt +119 -0
- package/public/packages/atom/0.24.0/docs/guides/agent-knowledge.txt +55 -0
- package/public/packages/atom/0.24.0/docs/guides/getting-started.txt +65 -0
- package/public/packages/atom/0.24.0/docs/guides/imports.txt +26 -0
- package/public/packages/atom/0.24.0/docs/guides/public-api.txt +100 -0
- package/public/packages/atom/0.24.0/guides/behavior-composition.txt +277 -0
- package/public/packages/atom/0.24.0/guides/layer-selection.txt +807 -0
- package/public/packages/atom/0.24.0/index.txt +89 -0
- package/public/packages/brick/0.1.11/components/accordion.txt +158 -0
- package/public/packages/brick/0.1.11/components/alert-dialog.txt +175 -0
- package/public/packages/brick/0.1.11/components/app-bar.txt +134 -0
- package/public/packages/brick/0.1.11/components/appearance.txt +143 -0
- package/public/packages/brick/0.1.11/components/aspect-ratio.txt +136 -0
- package/public/packages/brick/0.1.11/components/avatar.txt +152 -0
- package/public/packages/brick/0.1.11/components/badge.txt +139 -0
- package/public/packages/brick/0.1.11/components/bleed.txt +104 -0
- package/public/packages/brick/0.1.11/components/bottom-navigation.txt +106 -0
- package/public/packages/brick/0.1.11/components/breadcrumb.txt +96 -0
- package/public/packages/brick/0.1.11/components/button.txt +103 -0
- package/public/packages/brick/0.1.11/components/card.txt +132 -0
- package/public/packages/brick/0.1.11/components/carousel.txt +206 -0
- package/public/packages/brick/0.1.11/components/checkbox-group.txt +175 -0
- package/public/packages/brick/0.1.11/components/checkbox.txt +103 -0
- package/public/packages/brick/0.1.11/components/chip.txt +128 -0
- package/public/packages/brick/0.1.11/components/code-block.txt +134 -0
- package/public/packages/brick/0.1.11/components/code.txt +120 -0
- package/public/packages/brick/0.1.11/components/collapsible.txt +179 -0
- package/public/packages/brick/0.1.11/components/color-picker.txt +135 -0
- package/public/packages/brick/0.1.11/components/color-swatch.txt +98 -0
- package/public/packages/brick/0.1.11/components/combobox.txt +157 -0
- package/public/packages/brick/0.1.11/components/container.txt +112 -0
- package/public/packages/brick/0.1.11/components/context-menu.txt +174 -0
- package/public/packages/brick/0.1.11/components/data-grid.txt +199 -0
- package/public/packages/brick/0.1.11/components/data-list.txt +115 -0
- package/public/packages/brick/0.1.11/components/dialog.txt +176 -0
- package/public/packages/brick/0.1.11/components/divider.txt +104 -0
- package/public/packages/brick/0.1.11/components/drawer.txt +146 -0
- package/public/packages/brick/0.1.11/components/dropdown-menu.txt +179 -0
- package/public/packages/brick/0.1.11/components/feed.txt +143 -0
- package/public/packages/brick/0.1.11/components/field.txt +115 -0
- package/public/packages/brick/0.1.11/components/fieldset.txt +103 -0
- package/public/packages/brick/0.1.11/components/file-upload.txt +154 -0
- package/public/packages/brick/0.1.11/components/form.txt +108 -0
- package/public/packages/brick/0.1.11/components/frame.txt +132 -0
- package/public/packages/brick/0.1.11/components/grid.txt +141 -0
- package/public/packages/brick/0.1.11/components/group.txt +136 -0
- package/public/packages/brick/0.1.11/components/hide.txt +121 -0
- package/public/packages/brick/0.1.11/components/hover-card.txt +156 -0
- package/public/packages/brick/0.1.11/components/icon-button.txt +119 -0
- package/public/packages/brick/0.1.11/components/icon.txt +160 -0
- package/public/packages/brick/0.1.11/components/image.txt +163 -0
- package/public/packages/brick/0.1.11/components/input.txt +101 -0
- package/public/packages/brick/0.1.11/components/link-box.txt +161 -0
- package/public/packages/brick/0.1.11/components/link.txt +133 -0
- package/public/packages/brick/0.1.11/components/list.txt +139 -0
- package/public/packages/brick/0.1.11/components/menubar.txt +174 -0
- package/public/packages/brick/0.1.11/components/multi-select.txt +153 -0
- package/public/packages/brick/0.1.11/components/nav-list.txt +130 -0
- package/public/packages/brick/0.1.11/components/navigation-menu.txt +150 -0
- package/public/packages/brick/0.1.11/components/notification-badge.txt +148 -0
- package/public/packages/brick/0.1.11/components/number-input.txt +150 -0
- package/public/packages/brick/0.1.11/components/otp-field.txt +146 -0
- package/public/packages/brick/0.1.11/components/pagination.txt +124 -0
- package/public/packages/brick/0.1.11/components/password-toggle-field.txt +146 -0
- package/public/packages/brick/0.1.11/components/popover.txt +181 -0
- package/public/packages/brick/0.1.11/components/progress-circle.txt +142 -0
- package/public/packages/brick/0.1.11/components/progress.txt +150 -0
- package/public/packages/brick/0.1.11/components/radio-group.txt +152 -0
- package/public/packages/brick/0.1.11/components/rating.txt +151 -0
- package/public/packages/brick/0.1.11/components/reorderable-list.txt +130 -0
- package/public/packages/brick/0.1.11/components/scroll-area.txt +110 -0
- package/public/packages/brick/0.1.11/components/section.txt +118 -0
- package/public/packages/brick/0.1.11/components/segment-group.txt +116 -0
- package/public/packages/brick/0.1.11/components/select.txt +157 -0
- package/public/packages/brick/0.1.11/components/show.txt +121 -0
- package/public/packages/brick/0.1.11/components/sidebar.txt +126 -0
- package/public/packages/brick/0.1.11/components/skeleton.txt +127 -0
- package/public/packages/brick/0.1.11/components/skip-link.txt +102 -0
- package/public/packages/brick/0.1.11/components/slider.txt +147 -0
- package/public/packages/brick/0.1.11/components/stack.txt +155 -0
- package/public/packages/brick/0.1.11/components/status.txt +110 -0
- package/public/packages/brick/0.1.11/components/surface.txt +194 -0
- package/public/packages/brick/0.1.11/components/swipeable-item.txt +154 -0
- package/public/packages/brick/0.1.11/components/switch.txt +152 -0
- package/public/packages/brick/0.1.11/components/table.txt +183 -0
- package/public/packages/brick/0.1.11/components/tabs.txt +136 -0
- package/public/packages/brick/0.1.11/components/text.txt +148 -0
- package/public/packages/brick/0.1.11/components/textarea.txt +101 -0
- package/public/packages/brick/0.1.11/components/toast.txt +150 -0
- package/public/packages/brick/0.1.11/components/toggle-group.txt +149 -0
- package/public/packages/brick/0.1.11/components/toggle.txt +140 -0
- package/public/packages/brick/0.1.11/components/toolbar.txt +118 -0
- package/public/packages/brick/0.1.11/components/tooltip.txt +156 -0
- package/public/packages/brick/0.1.11/components/tree-grid.txt +160 -0
- package/public/packages/brick/0.1.11/components/tree.txt +156 -0
- package/public/packages/brick/0.1.11/components/visually-hidden.txt +123 -0
- package/public/packages/brick/0.1.11/components/z-stack.txt +143 -0
- package/public/packages/brick/0.1.11/docs/guides/agent-knowledge.txt +67 -0
- package/public/packages/brick/0.1.11/docs/guides/appearance-and-tokens.txt +179 -0
- package/public/packages/brick/0.1.11/docs/guides/browser-support.txt +25 -0
- package/public/packages/brick/0.1.11/docs/guides/control-sizing.txt +59 -0
- package/public/packages/brick/0.1.11/docs/guides/installation.txt +79 -0
- package/public/packages/brick/0.1.11/docs/guides/theme-contract.txt +90 -0
- package/public/packages/brick/0.1.11/guides/interface-composition.txt +665 -0
- package/public/packages/brick/0.1.11/guides/layer-selection.txt +1437 -0
- package/public/packages/brick/0.1.11/index.txt +110 -0
- package/public/packages/colors/0.1.1/docs/agent-knowledge.txt +63 -0
- package/public/packages/colors/0.1.1/docs/architecture.txt +74 -0
- package/public/packages/colors/0.1.1/docs/color-foundations.txt +128 -0
- package/public/packages/colors/0.1.1/docs/compatibility.txt +75 -0
- package/public/packages/colors/0.1.1/docs/dependency-qualification.txt +117 -0
- package/public/packages/colors/0.1.1/docs/installation.txt +48 -0
- package/public/packages/colors/0.1.1/docs/palette-generation.txt +151 -0
- package/public/packages/colors/0.1.1/docs/releasing.txt +34 -0
- package/public/packages/colors/0.1.1/docs/testing.txt +51 -0
- package/public/packages/colors/0.1.1/guides/colors-system.txt +282 -0
- package/public/packages/colors/0.1.1/index.txt +29 -0
- package/public/packages/colors/0.1.1/operations/color-conversion.txt +14 -0
- package/public/packages/colors/0.1.1/operations/color-inspection.txt +23 -0
- package/public/packages/colors/0.1.1/operations/color-measurement.txt +18 -0
- package/public/packages/colors/0.1.1/operations/color-provenance.txt +14 -0
- package/public/packages/colors/0.1.1/operations/named-palette-reference.txt +15 -0
- package/public/packages/colors/0.1.1/operations/palette-candidate.txt +37 -0
- package/public/packages/theme/0.1.1/docs/agent-knowledge.txt +44 -0
- package/public/packages/theme/0.1.1/docs/appearances-and-portals.txt +41 -0
- package/public/packages/theme/0.1.1/docs/architecture.txt +121 -0
- package/public/packages/theme/0.1.1/docs/authoring.txt +141 -0
- package/public/packages/theme/0.1.1/docs/colors-interchange.txt +82 -0
- package/public/packages/theme/0.1.1/docs/fonts.txt +40 -0
- package/public/packages/theme/0.1.1/docs/installation.txt +45 -0
- package/public/packages/theme/0.1.1/docs/migration.txt +40 -0
- package/public/packages/theme/0.1.1/docs/testing.txt +64 -0
- package/public/packages/theme/0.1.1/docs/troubleshooting.txt +53 -0
- package/public/packages/theme/0.1.1/guides/theme-system.txt +340 -0
- package/public/packages/theme/0.1.1/index.txt +31 -0
- package/public/packages/theme/0.1.1/operations/brick-contract-compatibility.txt +35 -0
- package/public/packages/theme/0.1.1/operations/colors-interchange.txt +35 -0
- package/public/packages/theme/0.1.1/operations/theme-artifacts.txt +19 -0
- package/public/packages/theme/0.1.1/operations/theme-cli.txt +10 -0
- package/public/packages/theme/0.1.1/operations/theme-compilation.txt +23 -0
- package/public/packages/theme/0.1.1/operations/theme-definition.txt +36 -0
- package/public/packages/theme/0.1.1/operations/theme-validation.txt +19 -0
- package/public/tasks/data.txt +39 -0
- package/public/tasks/forms.txt +65 -0
- package/public/tasks/layout.txt +37 -0
- package/public/tasks/navigation.txt +51 -0
- package/public/tasks/overlays.txt +39 -0
- package/public/tasks/theming.txt +37 -0
- package/skills/flowstack-ui-builder/SKILL.md +35 -0
- package/skills/flowstack-ui-builder/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-builder/scripts/resolve-agent-knowledge.mjs +399 -0
- package/skills/flowstack-ui-compose/SKILL.md +32 -0
- package/skills/flowstack-ui-compose/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-compose/scripts/resolve-agent-knowledge.mjs +399 -0
- package/skills/flowstack-ui-maintainer/SKILL.md +40 -0
- package/skills/flowstack-ui-maintainer/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-maintainer/scripts/resolve-agent-knowledge.mjs +399 -0
- package/skills/flowstack-ui-review/SKILL.md +29 -0
- package/skills/flowstack-ui-review/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-review/scripts/resolve-agent-knowledge.mjs +399 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Frame
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/brick@0.1.11
|
|
4
|
+
Kind: component
|
|
5
|
+
ID: frame
|
|
6
|
+
|
|
7
|
+
# Frame agent guide
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Own responsive logical size constraints for one local element without taking over layout, paint, spacing, or overflow.
|
|
12
|
+
|
|
13
|
+
## Use when
|
|
14
|
+
|
|
15
|
+
- A rail, copy region, media canvas, or scroll boundary needs an explicit inline or block size constraint.
|
|
16
|
+
|
|
17
|
+
## Choose something else when
|
|
18
|
+
|
|
19
|
+
- The need is shared page measure, child arrangement, paint, aspect ratio, or scrolling. Use Container, Stack/Grid, Surface, AspectRatio, or ScrollArea.
|
|
20
|
+
|
|
21
|
+
## Required composition
|
|
22
|
+
|
|
23
|
+
- Use Frame inside a layout Item, or let Stack.Item/Grid.Item compose asChild around Frame when one host must own both parent participation and internal constraints.
|
|
24
|
+
- For bounded long content, put ScrollArea inside a maxBlockSize Frame; Frame constrains and ScrollArea scrolls.
|
|
25
|
+
|
|
26
|
+
## Rules
|
|
27
|
+
|
|
28
|
+
- **MUST:** Use Frame only for inlineSize, minInlineSize, maxInlineSize, blockSize, minBlockSize, or maxBlockSize.
|
|
29
|
+
- **MUST:** Prefer logical size constraints and responsive values rather than physical width/height application classes.
|
|
30
|
+
- **MUST:** Keep flex/grid participation on Stack.Item or Grid.Item; Frame owns the constrained element's internal geometry.
|
|
31
|
+
- **MUST:** Use nested Frames when separate ancestors need separate constraints; each Frame keeps its base and responsive values locally scoped.
|
|
32
|
+
- **MUST:** Do not treat maxBlockSize as scrolling; compose ScrollArea when overflow must remain reachable.
|
|
33
|
+
- **MUST:** Load styles.css or core.css plus frame.css.
|
|
34
|
+
|
|
35
|
+
## Common mistakes
|
|
36
|
+
|
|
37
|
+
- **Avoid:** Turning Frame into a universal Box with paint, spacing, position, overflow, and typography props. **Instead:** Keep Frame to six logical constraints and compose the existing Brick owner for every other responsibility.
|
|
38
|
+
|
|
39
|
+
## Validation checklist
|
|
40
|
+
|
|
41
|
+
- Check responsive carry-forward, zoom/reflow, long content, RTL, vertical writing, and focus visibility.
|
|
42
|
+
- Confirm every constrained node has one clear job and that ScrollArea owns any required overflow.
|
|
43
|
+
|
|
44
|
+
## Related guidance
|
|
45
|
+
|
|
46
|
+
- `stack`
|
|
47
|
+
- `grid`
|
|
48
|
+
- `container`
|
|
49
|
+
- `section`
|
|
50
|
+
- `surface`
|
|
51
|
+
- `aspect-ratio`
|
|
52
|
+
- `scroll-area`
|
|
53
|
+
- `interface-composition`
|
|
54
|
+
|
|
55
|
+
## Machine record
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"schema": "flowstack.agent-component.v1",
|
|
60
|
+
"id": "frame",
|
|
61
|
+
"name": "Frame",
|
|
62
|
+
"package": "@flowstack-ui/brick",
|
|
63
|
+
"layer": "brick",
|
|
64
|
+
"kind": "component",
|
|
65
|
+
"purpose": "Own responsive logical size constraints for one local element without taking over layout, paint, spacing, or overflow.",
|
|
66
|
+
"useWhen": [
|
|
67
|
+
"A rail, copy region, media canvas, or scroll boundary needs an explicit inline or block size constraint."
|
|
68
|
+
],
|
|
69
|
+
"avoidWhen": [
|
|
70
|
+
{
|
|
71
|
+
"condition": "The need is shared page measure, child arrangement, paint, aspect ratio, or scrolling.",
|
|
72
|
+
"useInstead": "Container, Stack/Grid, Surface, AspectRatio, or ScrollArea"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"composition": [
|
|
76
|
+
"Use Frame inside a layout Item, or let Stack.Item/Grid.Item compose asChild around Frame when one host must own both parent participation and internal constraints.",
|
|
77
|
+
"For bounded long content, put ScrollArea inside a maxBlockSize Frame; Frame constrains and ScrollArea scrolls."
|
|
78
|
+
],
|
|
79
|
+
"rules": [
|
|
80
|
+
{
|
|
81
|
+
"id": "frame-constraint-owner",
|
|
82
|
+
"level": "must",
|
|
83
|
+
"statement": "Use Frame only for inlineSize, minInlineSize, maxInlineSize, blockSize, minBlockSize, or maxBlockSize."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "frame-logical",
|
|
87
|
+
"level": "must",
|
|
88
|
+
"statement": "Prefer logical size constraints and responsive values rather than physical width/height application classes."
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "frame-parent-participation",
|
|
92
|
+
"level": "must",
|
|
93
|
+
"statement": "Keep flex/grid participation on Stack.Item or Grid.Item; Frame owns the constrained element's internal geometry."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "frame-nesting",
|
|
97
|
+
"level": "must",
|
|
98
|
+
"statement": "Use nested Frames when separate ancestors need separate constraints; each Frame keeps its base and responsive values locally scoped."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "frame-overflow",
|
|
102
|
+
"level": "must",
|
|
103
|
+
"statement": "Do not treat maxBlockSize as scrolling; compose ScrollArea when overflow must remain reachable."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "frame-css",
|
|
107
|
+
"level": "must",
|
|
108
|
+
"statement": "Load styles.css or core.css plus frame.css."
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"commonMistakes": [
|
|
112
|
+
{
|
|
113
|
+
"mistake": "Turning Frame into a universal Box with paint, spacing, position, overflow, and typography props.",
|
|
114
|
+
"correction": "Keep Frame to six logical constraints and compose the existing Brick owner for every other responsibility."
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"validation": [
|
|
118
|
+
"Check responsive carry-forward, zoom/reflow, long content, RTL, vertical writing, and focus visibility.",
|
|
119
|
+
"Confirm every constrained node has one clear job and that ScrollArea owns any required overflow."
|
|
120
|
+
],
|
|
121
|
+
"related": [
|
|
122
|
+
"stack",
|
|
123
|
+
"grid",
|
|
124
|
+
"container",
|
|
125
|
+
"section",
|
|
126
|
+
"surface",
|
|
127
|
+
"aspect-ratio",
|
|
128
|
+
"scroll-area",
|
|
129
|
+
"interface-composition"
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
```
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Grid
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/brick@0.1.11
|
|
4
|
+
Kind: component
|
|
5
|
+
ID: grid
|
|
6
|
+
|
|
7
|
+
# Grid agent guide
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Arrange content on tokenized two-dimensional tracks with public column, row, gap, and item-placement controls.
|
|
12
|
+
|
|
13
|
+
## Use when
|
|
14
|
+
|
|
15
|
+
- Content needs coordinated rows and columns or responsive card tracks.
|
|
16
|
+
|
|
17
|
+
## Choose something else when
|
|
18
|
+
|
|
19
|
+
- The layout has one primary row or column. Use Stack.
|
|
20
|
+
|
|
21
|
+
## Required composition
|
|
22
|
+
|
|
23
|
+
- Choose Grid tracks from the minimum readable child size; use Grid.Item placement only when source order remains meaningful.
|
|
24
|
+
- Use as="ul" or as="ol" when the peers form a semantic list; Grid removes native list geometry while preserving the list relationship.
|
|
25
|
+
|
|
26
|
+
## Rules
|
|
27
|
+
|
|
28
|
+
- **MUST:** Keep DOM order meaningful; visual placement must not create a confusing keyboard or reading sequence.
|
|
29
|
+
- **MUST:** Use non-negative numeric factors for ordinary uniform and axis gaps; reserve explicit CSS values for measured exceptions or application spacing tokens, including inside responsive objects.
|
|
30
|
+
- **MUST:** Use a semantic list host when the Grid children form a real set; do not add Block CSS to cancel native ul or ol margins, padding, or markers because Grid owns that host geometry.
|
|
31
|
+
- **MUST:** Use responsive columns, gaps, unanchored spans, and alignment when the same authored Grid changes at Brick breakpoints; keep explicit line starts and ends static.
|
|
32
|
+
- **MUST:** Use Grid.Item asChild when an existing link, Surface, or component should itself receive placement; provide exactly one element and preserve its native semantics.
|
|
33
|
+
- **MUST:** Load styles.css or core.css plus grid.css.
|
|
34
|
+
|
|
35
|
+
## Common mistakes
|
|
36
|
+
|
|
37
|
+
- **Avoid:** Keeping too many columns until cards become unreadably narrow. **Instead:** Reduce columns at the content's real minimum width, not at a device-name breakpoint.
|
|
38
|
+
- **Avoid:** Adding local CSS only because a gap is outside the legacy zero-through-six token scale. **Instead:** Use the supported numeric factor or explicit spacing value on gap, rowGap, or columnGap.
|
|
39
|
+
- **Avoid:** Combining a responsive Item span with explicit line placement. **Instead:** Let the responsive item auto-place, or keep one deliberate static line placement.
|
|
40
|
+
- **Avoid:** Adding a Grid.Item wrapper and height CSS around an element that should itself stretch as the grid item. **Instead:** Compose that one element with Grid.Item asChild.
|
|
41
|
+
|
|
42
|
+
## Validation checklist
|
|
43
|
+
|
|
44
|
+
- Test intrinsic sizing, overflow, zoom, narrow widths, source order, and RTL.
|
|
45
|
+
- Confirm numeric, explicit, axis-specific, and responsive gaps create the intended computed geometry.
|
|
46
|
+
- For ul and ol hosts, confirm zero native margin and padding, no visual marker, and preserved list semantics.
|
|
47
|
+
- Confirm each child remains readable before and after track changes.
|
|
48
|
+
|
|
49
|
+
## Related guidance
|
|
50
|
+
|
|
51
|
+
- `stack`
|
|
52
|
+
- `card`
|
|
53
|
+
- `surface`
|
|
54
|
+
|
|
55
|
+
## Machine record
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"schema": "flowstack.agent-component.v1",
|
|
60
|
+
"id": "grid",
|
|
61
|
+
"name": "Grid",
|
|
62
|
+
"package": "@flowstack-ui/brick",
|
|
63
|
+
"layer": "brick",
|
|
64
|
+
"kind": "component",
|
|
65
|
+
"purpose": "Arrange content on tokenized two-dimensional tracks with public column, row, gap, and item-placement controls.",
|
|
66
|
+
"useWhen": [
|
|
67
|
+
"Content needs coordinated rows and columns or responsive card tracks."
|
|
68
|
+
],
|
|
69
|
+
"avoidWhen": [
|
|
70
|
+
{
|
|
71
|
+
"condition": "The layout has one primary row or column.",
|
|
72
|
+
"useInstead": "Stack"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"composition": [
|
|
76
|
+
"Choose Grid tracks from the minimum readable child size; use Grid.Item placement only when source order remains meaningful.",
|
|
77
|
+
"Use as=\"ul\" or as=\"ol\" when the peers form a semantic list; Grid removes native list geometry while preserving the list relationship."
|
|
78
|
+
],
|
|
79
|
+
"rules": [
|
|
80
|
+
{
|
|
81
|
+
"id": "grid-source-order",
|
|
82
|
+
"level": "must",
|
|
83
|
+
"statement": "Keep DOM order meaningful; visual placement must not create a confusing keyboard or reading sequence."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "grid-spacing-values",
|
|
87
|
+
"level": "must",
|
|
88
|
+
"statement": "Use non-negative numeric factors for ordinary uniform and axis gaps; reserve explicit CSS values for measured exceptions or application spacing tokens, including inside responsive objects."
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "grid-semantic-list",
|
|
92
|
+
"level": "must",
|
|
93
|
+
"statement": "Use a semantic list host when the Grid children form a real set; do not add Block CSS to cancel native ul or ol margins, padding, or markers because Grid owns that host geometry."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "grid-responsive-relationships",
|
|
97
|
+
"level": "must",
|
|
98
|
+
"statement": "Use responsive columns, gaps, unanchored spans, and alignment when the same authored Grid changes at Brick breakpoints; keep explicit line starts and ends static."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "grid-item-as-child",
|
|
102
|
+
"level": "must",
|
|
103
|
+
"statement": "Use Grid.Item asChild when an existing link, Surface, or component should itself receive placement; provide exactly one element and preserve its native semantics."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "grid-css",
|
|
107
|
+
"level": "must",
|
|
108
|
+
"statement": "Load styles.css or core.css plus grid.css."
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"commonMistakes": [
|
|
112
|
+
{
|
|
113
|
+
"mistake": "Keeping too many columns until cards become unreadably narrow.",
|
|
114
|
+
"correction": "Reduce columns at the content's real minimum width, not at a device-name breakpoint."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"mistake": "Adding local CSS only because a gap is outside the legacy zero-through-six token scale.",
|
|
118
|
+
"correction": "Use the supported numeric factor or explicit spacing value on gap, rowGap, or columnGap."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"mistake": "Combining a responsive Item span with explicit line placement.",
|
|
122
|
+
"correction": "Let the responsive item auto-place, or keep one deliberate static line placement."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"mistake": "Adding a Grid.Item wrapper and height CSS around an element that should itself stretch as the grid item.",
|
|
126
|
+
"correction": "Compose that one element with Grid.Item asChild."
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"validation": [
|
|
130
|
+
"Test intrinsic sizing, overflow, zoom, narrow widths, source order, and RTL.",
|
|
131
|
+
"Confirm numeric, explicit, axis-specific, and responsive gaps create the intended computed geometry.",
|
|
132
|
+
"For ul and ol hosts, confirm zero native margin and padding, no visual marker, and preserved list semantics.",
|
|
133
|
+
"Confirm each child remains readable before and after track changes."
|
|
134
|
+
],
|
|
135
|
+
"related": [
|
|
136
|
+
"stack",
|
|
137
|
+
"card",
|
|
138
|
+
"surface"
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
```
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Group
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/brick@0.1.11
|
|
4
|
+
Kind: component
|
|
5
|
+
ID: group
|
|
6
|
+
|
|
7
|
+
# Group agent guide
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Create a compact inline visual cluster and optionally attach direct children without changing their semantics or keyboard behavior.
|
|
12
|
+
|
|
13
|
+
## Use when
|
|
14
|
+
|
|
15
|
+
- Direct children need shared outside corners and joined interior borders.
|
|
16
|
+
- A small mixed set of controls or fields needs compact inline grouping.
|
|
17
|
+
|
|
18
|
+
## Choose something else when
|
|
19
|
+
|
|
20
|
+
- The relationship needs responsive direction, wrapping, distribution, or ordinary block layout. Use Stack/HStack/VStack.
|
|
21
|
+
- Commands need roving focus or items own pressed selection. Use Toolbar or ToggleGroup.
|
|
22
|
+
- Tags, skills, social destinations, profile facts, or responsive actions form a content collection rather than one attached control silhouette. Use List, Grid, DataList, or Stack.
|
|
23
|
+
|
|
24
|
+
## Required composition
|
|
25
|
+
|
|
26
|
+
- Place the intended bordered elements as direct children. Apply variants, sizes, semantics, accessible names, and events to those children.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
- **MUST:** Use attached only for one unwrapped row or column whose direct children form one continuous visual silhouette.
|
|
31
|
+
- **MUST:** Author role=group and an accessible name only when the controls form a genuine accessibility relationship; Group adds neither by default.
|
|
32
|
+
- **MUST:** Keep keyboard behavior with the composed controls; Group never substitutes for Toolbar, ToggleGroup, or a form group.
|
|
33
|
+
- **MUST:** Do not use Group for tags, skills, social destinations, profile facts, or responsive action rows; use List, Grid, DataList, or Stack unless direct children need one compact attached control silhouette.
|
|
34
|
+
- **MUST:** Load styles.css or core.css plus group.css and every composed child component stylesheet.
|
|
35
|
+
|
|
36
|
+
## Common mistakes
|
|
37
|
+
|
|
38
|
+
- **Avoid:** Using HStack plus local negative margins, using Toolbar merely to join borders, or using Group as a generic wrapper for unrelated content. **Instead:** Use Group only for the compact or attached direct-child relationship and select List, DataList, Grid, Stack, Toolbar, or ToggleGroup for the actual content or behavior.
|
|
39
|
+
|
|
40
|
+
## Validation checklist
|
|
41
|
+
|
|
42
|
+
- Check direct-child structure, shared borders, outside logical corners, hover/focus stacking, visible focus rings, RTL, vertical orientation, zoom, forced colors, and narrow containment.
|
|
43
|
+
- Confirm Group adds no role, name, selection, or keyboard behavior.
|
|
44
|
+
|
|
45
|
+
## Related guidance
|
|
46
|
+
|
|
47
|
+
- `stack`
|
|
48
|
+
- `data-list`
|
|
49
|
+
- `list`
|
|
50
|
+
- `grid`
|
|
51
|
+
- `button`
|
|
52
|
+
- `icon-button`
|
|
53
|
+
- `toolbar`
|
|
54
|
+
- `toggle-group`
|
|
55
|
+
|
|
56
|
+
## Machine record
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"schema": "flowstack.agent-component.v1",
|
|
61
|
+
"id": "group",
|
|
62
|
+
"name": "Group",
|
|
63
|
+
"package": "@flowstack-ui/brick",
|
|
64
|
+
"layer": "brick",
|
|
65
|
+
"kind": "component",
|
|
66
|
+
"purpose": "Create a compact inline visual cluster and optionally attach direct children without changing their semantics or keyboard behavior.",
|
|
67
|
+
"useWhen": [
|
|
68
|
+
"Direct children need shared outside corners and joined interior borders.",
|
|
69
|
+
"A small mixed set of controls or fields needs compact inline grouping."
|
|
70
|
+
],
|
|
71
|
+
"avoidWhen": [
|
|
72
|
+
{
|
|
73
|
+
"condition": "The relationship needs responsive direction, wrapping, distribution, or ordinary block layout.",
|
|
74
|
+
"useInstead": "Stack/HStack/VStack"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"condition": "Commands need roving focus or items own pressed selection.",
|
|
78
|
+
"useInstead": "Toolbar or ToggleGroup"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"condition": "Tags, skills, social destinations, profile facts, or responsive actions form a content collection rather than one attached control silhouette.",
|
|
82
|
+
"useInstead": "List, Grid, DataList, or Stack"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"composition": [
|
|
86
|
+
"Place the intended bordered elements as direct children. Apply variants, sizes, semantics, accessible names, and events to those children."
|
|
87
|
+
],
|
|
88
|
+
"rules": [
|
|
89
|
+
{
|
|
90
|
+
"id": "group-attached-chain",
|
|
91
|
+
"level": "must",
|
|
92
|
+
"statement": "Use attached only for one unwrapped row or column whose direct children form one continuous visual silhouette."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "group-semantics",
|
|
96
|
+
"level": "must",
|
|
97
|
+
"statement": "Author role=group and an accessible name only when the controls form a genuine accessibility relationship; Group adds neither by default."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "group-no-behavior",
|
|
101
|
+
"level": "must",
|
|
102
|
+
"statement": "Keep keyboard behavior with the composed controls; Group never substitutes for Toolbar, ToggleGroup, or a form group."
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "group-not-content-collection",
|
|
106
|
+
"level": "must",
|
|
107
|
+
"statement": "Do not use Group for tags, skills, social destinations, profile facts, or responsive action rows; use List, Grid, DataList, or Stack unless direct children need one compact attached control silhouette."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "group-css",
|
|
111
|
+
"level": "must",
|
|
112
|
+
"statement": "Load styles.css or core.css plus group.css and every composed child component stylesheet."
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
"commonMistakes": [
|
|
116
|
+
{
|
|
117
|
+
"mistake": "Using HStack plus local negative margins, using Toolbar merely to join borders, or using Group as a generic wrapper for unrelated content.",
|
|
118
|
+
"correction": "Use Group only for the compact or attached direct-child relationship and select List, DataList, Grid, Stack, Toolbar, or ToggleGroup for the actual content or behavior."
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
"validation": [
|
|
122
|
+
"Check direct-child structure, shared borders, outside logical corners, hover/focus stacking, visible focus rings, RTL, vertical orientation, zoom, forced colors, and narrow containment.",
|
|
123
|
+
"Confirm Group adds no role, name, selection, or keyboard behavior."
|
|
124
|
+
],
|
|
125
|
+
"related": [
|
|
126
|
+
"stack",
|
|
127
|
+
"data-list",
|
|
128
|
+
"list",
|
|
129
|
+
"grid",
|
|
130
|
+
"button",
|
|
131
|
+
"icon-button",
|
|
132
|
+
"toolbar",
|
|
133
|
+
"toggle-group"
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Hide
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/brick@0.1.11
|
|
4
|
+
Kind: component
|
|
5
|
+
ID: hide
|
|
6
|
+
|
|
7
|
+
# Hide agent guide
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Hide content through Brick's CSS breakpoint contract without JavaScript viewport state or hydration flicker.
|
|
12
|
+
|
|
13
|
+
## Use when
|
|
14
|
+
|
|
15
|
+
- One composition should be absent at selected Brick breakpoints while remaining present elsewhere.
|
|
16
|
+
|
|
17
|
+
## Choose something else when
|
|
18
|
+
|
|
19
|
+
- Content should be visually hidden but remain available to assistive technology, or should not render for business reasons. Use VisuallyHidden or application conditional rendering.
|
|
20
|
+
|
|
21
|
+
## Required composition
|
|
22
|
+
|
|
23
|
+
- Wrap the smallest complete region whose presence changes; pair with Show only when desktop and mobile genuinely need distinct compositions.
|
|
24
|
+
|
|
25
|
+
## Rules
|
|
26
|
+
|
|
27
|
+
- **MUST:** Use Hide instead of JavaScript matchMedia for first-paint responsive visibility.
|
|
28
|
+
- **MUST:** Do not hide the only accessible name, error, instruction, or required content at a breakpoint.
|
|
29
|
+
- **MUST:** Rely on Hide's layout-transparent visible state inside parent layouts and put paint or geometry on a child layout component.
|
|
30
|
+
- **MUST:** Omit default-valued props such as as=div; use as only for deliberate HTML semantics or valid document structure.
|
|
31
|
+
- **MUST:** Load styles.css or core.css plus hide.css.
|
|
32
|
+
|
|
33
|
+
## Common mistakes
|
|
34
|
+
|
|
35
|
+
- **Avoid:** Adding application CSS to repair Hide spacing or writing as=div even though div is the default. **Instead:** Rely on Hide's layout-transparent default and specify as only when semantics require another host.
|
|
36
|
+
- **Avoid:** Using Hide without its modular CSS or duplicating two interactive trees with conflicting IDs. **Instead:** Load hide.css and verify alternate compositions have independent valid relationships.
|
|
37
|
+
|
|
38
|
+
## Validation checklist
|
|
39
|
+
|
|
40
|
+
- Test boundary pixels, zoom, first paint, hydration, focus order, and duplicate IDs across all visibility states.
|
|
41
|
+
- Confirm CSS is loaded.
|
|
42
|
+
|
|
43
|
+
## Related guidance
|
|
44
|
+
|
|
45
|
+
- `show`
|
|
46
|
+
- `visually-hidden`
|
|
47
|
+
- `app-bar`
|
|
48
|
+
- `drawer`
|
|
49
|
+
|
|
50
|
+
## Machine record
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"schema": "flowstack.agent-component.v1",
|
|
55
|
+
"id": "hide",
|
|
56
|
+
"name": "Hide",
|
|
57
|
+
"package": "@flowstack-ui/brick",
|
|
58
|
+
"layer": "brick",
|
|
59
|
+
"kind": "component",
|
|
60
|
+
"purpose": "Hide content through Brick's CSS breakpoint contract without JavaScript viewport state or hydration flicker.",
|
|
61
|
+
"useWhen": [
|
|
62
|
+
"One composition should be absent at selected Brick breakpoints while remaining present elsewhere."
|
|
63
|
+
],
|
|
64
|
+
"avoidWhen": [
|
|
65
|
+
{
|
|
66
|
+
"condition": "Content should be visually hidden but remain available to assistive technology, or should not render for business reasons.",
|
|
67
|
+
"useInstead": "VisuallyHidden or application conditional rendering"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"composition": [
|
|
71
|
+
"Wrap the smallest complete region whose presence changes; pair with Show only when desktop and mobile genuinely need distinct compositions."
|
|
72
|
+
],
|
|
73
|
+
"rules": [
|
|
74
|
+
{
|
|
75
|
+
"id": "hide-css-breakpoint",
|
|
76
|
+
"level": "must",
|
|
77
|
+
"statement": "Use Hide instead of JavaScript matchMedia for first-paint responsive visibility."
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "hide-no-semantic-loss",
|
|
81
|
+
"level": "must",
|
|
82
|
+
"statement": "Do not hide the only accessible name, error, instruction, or required content at a breakpoint."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "hide-transparent-layout",
|
|
86
|
+
"level": "must",
|
|
87
|
+
"statement": "Rely on Hide's layout-transparent visible state inside parent layouts and put paint or geometry on a child layout component."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "hide-default-props",
|
|
91
|
+
"level": "must",
|
|
92
|
+
"statement": "Omit default-valued props such as as=div; use as only for deliberate HTML semantics or valid document structure."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "hide-css",
|
|
96
|
+
"level": "must",
|
|
97
|
+
"statement": "Load styles.css or core.css plus hide.css."
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"commonMistakes": [
|
|
101
|
+
{
|
|
102
|
+
"mistake": "Adding application CSS to repair Hide spacing or writing as=div even though div is the default.",
|
|
103
|
+
"correction": "Rely on Hide's layout-transparent default and specify as only when semantics require another host."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"mistake": "Using Hide without its modular CSS or duplicating two interactive trees with conflicting IDs.",
|
|
107
|
+
"correction": "Load hide.css and verify alternate compositions have independent valid relationships."
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"validation": [
|
|
111
|
+
"Test boundary pixels, zoom, first paint, hydration, focus order, and duplicate IDs across all visibility states.",
|
|
112
|
+
"Confirm CSS is loaded."
|
|
113
|
+
],
|
|
114
|
+
"related": [
|
|
115
|
+
"show",
|
|
116
|
+
"visually-hidden",
|
|
117
|
+
"app-bar",
|
|
118
|
+
"drawer"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
```
|