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