@agent-ui-kit/web-components 0.0.3 → 0.0.5

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 (186) hide show
  1. package/README.md +429 -0
  2. package/dist/agent-ui.css +1 -1
  3. package/dist/api.json +9519 -0
  4. package/dist/docs/blocks/agent-chat.yaml +111 -0
  5. package/dist/docs/blocks/announcement-card.yaml +30 -0
  6. package/dist/docs/blocks/bpm-process.yaml +7 -0
  7. package/dist/docs/blocks/chart-activity.yaml +73 -0
  8. package/dist/docs/blocks/chart-card.yaml +55 -0
  9. package/dist/docs/blocks/chart-donut.yaml +83 -0
  10. package/dist/docs/blocks/chart-grouped.yaml +75 -0
  11. package/dist/docs/blocks/chart-horizontal.yaml +59 -0
  12. package/dist/docs/blocks/chart-interactive.yaml +58 -0
  13. package/dist/docs/blocks/chart-labeled.yaml +66 -0
  14. package/dist/docs/blocks/checkout-form.yaml +57 -0
  15. package/dist/docs/blocks/clinical-trial.yaml +7 -0
  16. package/dist/docs/blocks/contributors.yaml +51 -0
  17. package/dist/docs/blocks/cyber-threat.yaml +7 -0
  18. package/dist/docs/blocks/dashboard-layout.yaml +121 -0
  19. package/dist/docs/blocks/data-eng-dag.yaml +9 -0
  20. package/dist/docs/blocks/date-picker.yaml +30 -0
  21. package/dist/docs/blocks/ddx-workflow.yaml +9 -0
  22. package/dist/docs/blocks/empty-state.yaml +26 -0
  23. package/dist/docs/blocks/env-variables.yaml +46 -0
  24. package/dist/docs/blocks/feature-upgrade.yaml +52 -0
  25. package/dist/docs/blocks/financial-risk.yaml +7 -0
  26. package/dist/docs/blocks/flow-editor.yaml +113 -0
  27. package/dist/docs/blocks/gen-ai-pipeline.yaml +8 -0
  28. package/dist/docs/blocks/index.yaml +245 -0
  29. package/dist/docs/blocks/issue-assign.yaml +34 -0
  30. package/dist/docs/blocks/keyboard-shortcuts.yaml +49 -0
  31. package/dist/docs/blocks/login-branded.yaml +81 -0
  32. package/dist/docs/blocks/login-email-only.yaml +39 -0
  33. package/dist/docs/blocks/login-form.yaml +42 -0
  34. package/dist/docs/blocks/login-simple.yaml +54 -0
  35. package/dist/docs/blocks/login-social.yaml +73 -0
  36. package/dist/docs/blocks/login-two-column.yaml +78 -0
  37. package/dist/docs/blocks/marketing-automation.yaml +7 -0
  38. package/dist/docs/blocks/member-list.yaml +58 -0
  39. package/dist/docs/blocks/ml-pipeline.yaml +7 -0
  40. package/dist/docs/blocks/nav-card.yaml +27 -0
  41. package/dist/docs/blocks/notification-list.yaml +58 -0
  42. package/dist/docs/blocks/oncology-pathway.yaml +7 -0
  43. package/dist/docs/blocks/pricing-card.yaml +53 -0
  44. package/dist/docs/blocks/processing-state.yaml +25 -0
  45. package/dist/docs/blocks/profile-card.yaml +48 -0
  46. package/dist/docs/blocks/saas-onboarding.yaml +7 -0
  47. package/dist/docs/blocks/settings-form.yaml +42 -0
  48. package/dist/docs/blocks/settings-panel.yaml +54 -0
  49. package/dist/docs/blocks/sidebar-nav.yaml +55 -0
  50. package/dist/docs/blocks/signup-form.yaml +47 -0
  51. package/dist/docs/blocks/stat-cards.yaml +49 -0
  52. package/dist/docs/blocks/status-card.yaml +40 -0
  53. package/dist/docs/blocks/suggested-labs.yaml +79 -0
  54. package/dist/docs/blocks/supply-chain.yaml +7 -0
  55. package/dist/docs/blocks/survey-card.yaml +52 -0
  56. package/dist/docs/blocks/tabbed-panel.yaml +53 -0
  57. package/dist/docs/blocks/team-empty.yaml +27 -0
  58. package/dist/docs/blocks/usage-billing.yaml +99 -0
  59. package/dist/docs/components/accordion-item.yaml +52 -0
  60. package/dist/docs/components/accordion.yaml +69 -0
  61. package/dist/docs/components/agent-activity.yaml +79 -0
  62. package/dist/docs/components/agent-feed.yaml +83 -0
  63. package/dist/docs/components/agent-message.yaml +120 -0
  64. package/dist/docs/components/agent-panel.yaml +91 -0
  65. package/dist/docs/components/agent-prompt.yaml +78 -0
  66. package/dist/docs/components/agent-seeds.yaml +44 -0
  67. package/dist/docs/components/agent-text.yaml +57 -0
  68. package/dist/docs/components/agent-thread.yaml +82 -0
  69. package/dist/docs/components/app-shell.yaml +64 -0
  70. package/dist/docs/components/breadcrumb-item.yaml +49 -0
  71. package/dist/docs/components/breadcrumb.yaml +59 -0
  72. package/dist/docs/components/button.yaml +439 -0
  73. package/dist/docs/components/calendar.yaml +74 -0
  74. package/dist/docs/components/canvas.yaml +161 -0
  75. package/dist/docs/components/checkbox.yaml +141 -0
  76. package/dist/docs/components/command-empty.yaml +13 -0
  77. package/dist/docs/components/command-group.yaml +23 -0
  78. package/dist/docs/components/command-input.yaml +19 -0
  79. package/dist/docs/components/command-item.yaml +37 -0
  80. package/dist/docs/components/command-list.yaml +17 -0
  81. package/dist/docs/components/command.yaml +64 -0
  82. package/dist/docs/components/container.yaml +298 -0
  83. package/dist/docs/components/dialog.yaml +133 -0
  84. package/dist/docs/components/drawer.yaml +124 -0
  85. package/dist/docs/components/editor-layer.yaml +59 -0
  86. package/dist/docs/components/editor.yaml +168 -0
  87. package/dist/docs/components/feed.yaml +72 -0
  88. package/dist/docs/components/field.yaml +145 -0
  89. package/dist/docs/components/graph-layer.yaml +41 -0
  90. package/dist/docs/components/graph-node.yaml +58 -0
  91. package/dist/docs/components/graph-noodle.yaml +103 -0
  92. package/dist/docs/components/graph-port.yaml +71 -0
  93. package/dist/docs/components/graph-ui.yaml +64 -0
  94. package/dist/docs/components/gripper.yaml +55 -0
  95. package/dist/docs/components/icon.yaml +133 -0
  96. package/dist/docs/components/index.yaml +320 -0
  97. package/dist/docs/components/input-otp.yaml +59 -0
  98. package/dist/docs/components/input.yaml +289 -0
  99. package/dist/docs/components/noodles.yaml +184 -0
  100. package/dist/docs/components/optgroup.yaml +38 -0
  101. package/dist/docs/components/option.yaml +56 -0
  102. package/dist/docs/components/page-context.yaml +55 -0
  103. package/dist/docs/components/page-main.yaml +39 -0
  104. package/dist/docs/components/page.yaml +36 -0
  105. package/dist/docs/components/pagination.yaml +46 -0
  106. package/dist/docs/components/pane.yaml +102 -0
  107. package/dist/docs/components/panes.yaml +82 -0
  108. package/dist/docs/components/preview-app.yaml +170 -0
  109. package/dist/docs/components/radio-group.yaml +108 -0
  110. package/dist/docs/components/radio.yaml +132 -0
  111. package/dist/docs/components/range.yaml +97 -0
  112. package/dist/docs/components/root.yaml +18 -0
  113. package/dist/docs/components/segment.yaml +41 -0
  114. package/dist/docs/components/segmented-control.yaml +52 -0
  115. package/dist/docs/components/select.yaml +241 -0
  116. package/dist/docs/components/sidebar-content.yaml +32 -0
  117. package/dist/docs/components/sidebar-footer.yaml +28 -0
  118. package/dist/docs/components/sidebar-header.yaml +28 -0
  119. package/dist/docs/components/sidebar.yaml +133 -0
  120. package/dist/docs/components/switch.yaml +131 -0
  121. package/dist/docs/components/tab-panel.yaml +41 -0
  122. package/dist/docs/components/tab.yaml +51 -0
  123. package/dist/docs/components/table-body.yaml +11 -0
  124. package/dist/docs/components/table-cell.yaml +11 -0
  125. package/dist/docs/components/table-column.yaml +76 -0
  126. package/dist/docs/components/table-head.yaml +11 -0
  127. package/dist/docs/components/table-header.yaml +11 -0
  128. package/dist/docs/components/table-row.yaml +11 -0
  129. package/dist/docs/components/table.yaml +219 -0
  130. package/dist/docs/components/tabs.yaml +61 -0
  131. package/dist/docs/components/textarea.yaml +196 -0
  132. package/dist/docs/components/toast.yaml +62 -0
  133. package/dist/docs/components/tooltip.yaml +98 -0
  134. package/dist/docs/components/tree-item.yaml +46 -0
  135. package/dist/docs/components/tree.yaml +27 -0
  136. package/dist/docs/traits/auto-dismiss.yaml +23 -0
  137. package/dist/docs/traits/backtick-wrap.yaml +22 -0
  138. package/dist/docs/traits/clipboard.yaml +31 -0
  139. package/dist/docs/traits/collapsible.yaml +23 -0
  140. package/dist/docs/traits/confetti.yaml +37 -0
  141. package/dist/docs/traits/copy.yaml +27 -0
  142. package/dist/docs/traits/css-inspect.yaml +46 -0
  143. package/dist/docs/traits/dismiss.yaml +23 -0
  144. package/dist/docs/traits/drag.yaml +88 -0
  145. package/dist/docs/traits/drop-zone.yaml +37 -0
  146. package/dist/docs/traits/edit.yaml +39 -0
  147. package/dist/docs/traits/flip.yaml +40 -0
  148. package/dist/docs/traits/gateway.yaml +33 -0
  149. package/dist/docs/traits/hover.yaml +39 -0
  150. package/dist/docs/traits/intersect.yaml +42 -0
  151. package/dist/docs/traits/link-paste.yaml +28 -0
  152. package/dist/docs/traits/linked-scroll.yaml +37 -0
  153. package/dist/docs/traits/list-navigate.yaml +46 -0
  154. package/dist/docs/traits/magnet.yaml +33 -0
  155. package/dist/docs/traits/mention.yaml +40 -0
  156. package/dist/docs/traits/modal.yaml +28 -0
  157. package/dist/docs/traits/noodle.yaml +45 -0
  158. package/dist/docs/traits/overlay.yaml +58 -0
  159. package/dist/docs/traits/pan-zoom.yaml +47 -0
  160. package/dist/docs/traits/parallax.yaml +36 -0
  161. package/dist/docs/traits/persist.yaml +42 -0
  162. package/dist/docs/traits/popover.yaml +28 -0
  163. package/dist/docs/traits/present.yaml +42 -0
  164. package/dist/docs/traits/press-hold.yaml +34 -0
  165. package/dist/docs/traits/range-select.yaml +42 -0
  166. package/dist/docs/traits/resize.yaml +39 -0
  167. package/dist/docs/traits/ripple.yaml +20 -0
  168. package/dist/docs/traits/roving-focus.yaml +30 -0
  169. package/dist/docs/traits/search.yaml +44 -0
  170. package/dist/docs/traits/selection.yaml +41 -0
  171. package/dist/docs/traits/shortcut.yaml +25 -0
  172. package/dist/docs/traits/slash-command.yaml +40 -0
  173. package/dist/docs/traits/snap-resize.yaml +39 -0
  174. package/dist/docs/traits/sort.yaml +47 -0
  175. package/dist/docs/traits/store.yaml +32 -0
  176. package/dist/docs/traits/swipe.yaml +38 -0
  177. package/dist/docs/traits/text-trigger.yaml +35 -0
  178. package/dist/docs/traits/toast.yaml +41 -0
  179. package/dist/docs/traits/toggle-scheme.yaml +40 -0
  180. package/dist/docs/traits/toggle-state.yaml +23 -0
  181. package/dist/docs/traits/tooltip.yaml +39 -0
  182. package/dist/docs/traits/toss.yaml +40 -0
  183. package/dist/docs/traits/trap-focus.yaml +20 -0
  184. package/dist/docs/traits/validate.yaml +52 -0
  185. package/dist/docs/traits/virtual-scroll.yaml +44 -0
  186. package/package.json +4 -2
@@ -0,0 +1,170 @@
1
+ name: aui-preview-app
2
+ tag: aui-preview-app
3
+ type: component
4
+ summary: Full-screen preview shell with navigation, command palette, and pannable canvas.
5
+ description: >
6
+ Top-level application shell for browsing block, component, and trait
7
+ previews. Fetches a preview.json manifest, renders a nav bar with
8
+ section select and color-scheme toggle, and loads each preview item
9
+ into an aui-editor pannable canvas. Includes a Cmd+K command palette
10
+ for fuzzy-finding items and Alt+Arrow keyboard navigation for
11
+ stepping through the item list. Each loaded preview's children are
12
+ absolutely positioned, given drag and resize traits, and centered
13
+ on the canvas automatically.
14
+
15
+ base: AgentElement
16
+
17
+ attributes:
18
+ src:
19
+ syntax: key-value
20
+ type: string
21
+ default: "./preview.json"
22
+ description: >
23
+ URL to the preview.json manifest file. Resolved relative to the
24
+ page. The directory containing this file becomes the base path
25
+ for resolving item HTML, CSS, and TS files.
26
+
27
+ preview-json:
28
+ description: >
29
+ JSON manifest that drives the preview app. Must live at the URL
30
+ specified by the src attribute.
31
+ format: |
32
+ {
33
+ "section": "blocks",
34
+ "param": "block",
35
+ "items": [
36
+ {
37
+ "slug": "agent-chat",
38
+ "name": "agent-chat",
39
+ "file": "agent-chat/agent-chat.html",
40
+ "group": "Chat",
41
+ "summary": "Full chat interface block",
42
+ "category": "messaging"
43
+ }
44
+ ],
45
+ "links": [
46
+ { "label": "Components", "href": "../components/preview.html" }
47
+ ]
48
+ }
49
+ fields:
50
+ section:
51
+ type: string
52
+ description: >
53
+ Human-readable section name (e.g. "blocks", "components", "traits").
54
+ Used for the page select placeholder and document title.
55
+ param:
56
+ type: string
57
+ description: >
58
+ URL search parameter name used to track the current item
59
+ (e.g. "block" produces ?block=agent-chat).
60
+ items:
61
+ type: array
62
+ description: >
63
+ Ordered list of preview items. Each item has a slug (unique ID),
64
+ name (display label), and optional file (relative path to the
65
+ .html file, defaults to "{slug}/{slug}.html"). Optional group
66
+ for optgroup headings, summary for command palette search
67
+ keywords, and category for classification.
68
+ links:
69
+ type: array
70
+ description: >
71
+ Cross-section navigation links shown at the top of both the
72
+ page select dropdown and the command palette. Each entry has
73
+ a label and href.
74
+
75
+ features:
76
+ - "Cmd/Ctrl+K command palette with fuzzy search across all items and section links"
77
+ - "Alt+ArrowLeft / Alt+ArrowRight navigates to previous/next item (wraps around)"
78
+ - "Color scheme toggle (light/dark) persisted to localStorage under aui-preview-scheme"
79
+ - "aui-editor canvas with dot background for pan/zoom of loaded previews"
80
+ - "Auto-centers content on the canvas after load"
81
+ - "Each preview child gets drag (free mode) and resize traits attached automatically"
82
+ - "Loads per-item CSS and TS modules dynamically alongside HTML content"
83
+ - "Section links for cross-navigation between blocks, components, and traits"
84
+ - "Grouped items via optgroup in both page select and command palette"
85
+ - "URL-driven state: current item stored as a query parameter"
86
+
87
+ internal-structure:
88
+ navbar:
89
+ element: div[data-role="navbar"]
90
+ description: >
91
+ Absolutely positioned top bar containing an aui-select in bar
92
+ mode. Holds the logo link, color scheme toggle button, and the
93
+ page select dropdown. pointer-events: none on the wrapper with
94
+ pointer-events: auto on children so the canvas remains pannable
95
+ through empty nav space.
96
+
97
+ canvas:
98
+ element: aui-editor[data-role="canvas"]
99
+ description: >
100
+ Full-viewport aui-editor with background="dots". Contains a
101
+ single aui-editor-layer named "content" which holds a
102
+ div[data-role="content"] where preview HTML is injected.
103
+
104
+ command-palette:
105
+ element: aui-dialog > aui-command
106
+ description: >
107
+ A small aui-dialog (size="sm") positioned at 20% from top,
108
+ containing an aui-command with input, grouped list of all items
109
+ and section links, and an empty state. Opened/closed via Cmd+K.
110
+ Selecting an item navigates by updating the URL query parameter.
111
+
112
+ empty-state:
113
+ element: div[data-role="empty"]
114
+ description: >
115
+ Shown when no item is selected. Centered text prompting the
116
+ user to select from the section.
117
+
118
+ item-loading:
119
+ description: >
120
+ When an item is selected, the component resolves three files
121
+ relative to the preview.json base path. The item's file field
122
+ (or default "{slug}/{slug}.html") provides the HTML. CSS is
123
+ loaded as "{dir}/{dir}.css" via a <link> appended to <head>.
124
+ TS is imported as "{dir}/{dir}.ts" via dynamic import. HTML
125
+ content children are measured, positioned absolutely with a
126
+ 40px gap, and given drag and resize traits via attachTrait().
127
+
128
+ a11y:
129
+ role: No implicit role. Acts as a full-screen application shell.
130
+ keyboard:
131
+ "Cmd/Ctrl+K": Toggle command palette open/closed.
132
+ "Alt+ArrowLeft": Navigate to previous item (wraps to last).
133
+ "Alt+ArrowRight": Navigate to next item (wraps to first).
134
+ Escape: Close command palette (delegated to aui-dialog native behavior).
135
+
136
+ composition:
137
+ parents: [body, div]
138
+ children: [internal -- all DOM is stamped by the component]
139
+ context: >
140
+ Place as the sole child of <body> for a full-screen preview
141
+ experience. The component manages its own layout (position: fixed,
142
+ inset: 0) and stamps all internal structure on activation.
143
+
144
+ tokens:
145
+ color:
146
+ - --aui-doc
147
+ - --aui-ink
148
+ - --aui-ink-muted
149
+ - --aui-ink-strong
150
+ - --aui-border-muted
151
+ - --aui-focus
152
+ typography:
153
+ - --aui-font-family
154
+ - --aui-font-size
155
+ - --aui-font-sm
156
+ - --aui-font-weight-semibold
157
+
158
+ examples:
159
+ - html: |
160
+ <aui-preview-app src="./preview.json"></aui-preview-app>
161
+ description: >
162
+ Standard usage. Place in an HTML page alongside the preview.json
163
+ manifest. The component fetches the manifest and renders the full
164
+ preview shell.
165
+
166
+ - html: |
167
+ <aui-preview-app src="/blocks/preview.json"></aui-preview-app>
168
+ description: >
169
+ Absolute path to a manifest in a different directory. Useful
170
+ when the preview page is not co-located with the manifest.
@@ -0,0 +1,108 @@
1
+ name: aui-radio-group
2
+ tag: aui-radio-group
3
+ type: component
4
+ summary: Container that coordinates radio button selection.
5
+ description: >
6
+ Wraps aui-radio children and manages single-selection, name
7
+ propagation, and arrow-key navigation. Set value to pre-select
8
+ an option.
9
+
10
+ base: AgentElement
11
+
12
+ presentational:
13
+ size:
14
+ syntax: key-value
15
+ attribute: size
16
+ cascades: true
17
+ default: medium
18
+ values: [xs, sm, md, lg, xl]
19
+ description: Cascades size to all child radios.
20
+
21
+ intent:
22
+ syntax: boolean
23
+ exclusive: true
24
+ cascades: true
25
+ default: neutral
26
+ values: [accent, info, success, warning, danger]
27
+ description: Cascades color family to all child radios.
28
+
29
+ attributes:
30
+ disabled:
31
+ syntax: boolean
32
+ type: boolean
33
+ default: false
34
+ description: Disables all child radios.
35
+
36
+ name:
37
+ syntax: key-value
38
+ type: string
39
+ default: ""
40
+ description: >
41
+ Form group name. Propagated to all child aui-radio elements.
42
+
43
+ value:
44
+ syntax: key-value
45
+ type: string
46
+ default: ""
47
+ description: >
48
+ Currently selected value. Setting this checks the matching
49
+ child radio and unchecks others.
50
+
51
+ content:
52
+ model: block
53
+ accepts: [aui-radio]
54
+ required: true
55
+ min-children: 2
56
+ description: Two or more aui-radio children.
57
+
58
+ composition:
59
+ parents: [aui-field, aui-stack, form, div]
60
+ children: [aui-radio]
61
+ context: >
62
+ Use inside aui-field for labeled radio groups. The group
63
+ handles keyboard navigation (arrow keys cycle through options)
64
+ and single-selection enforcement.
65
+
66
+ a11y:
67
+ role: radiogroup
68
+ keyboard:
69
+ ArrowDown: Select next radio.
70
+ ArrowRight: Select next radio.
71
+ ArrowUp: Select previous radio.
72
+ ArrowLeft: Select previous radio.
73
+
74
+ events:
75
+ change:
76
+ description: >
77
+ Bubbles from the selected child radio. Read the group's
78
+ value attribute for the current selection.
79
+
80
+ tokens:
81
+ spacing:
82
+ - --aui-space
83
+
84
+ examples:
85
+ - html: |
86
+ <aui-radio-group name="size" value="md">
87
+ <aui-radio label="Small" value="sm"></aui-radio>
88
+ <aui-radio label="Medium" value="md"></aui-radio>
89
+ <aui-radio label="Large" value="lg"></aui-radio>
90
+ </aui-radio-group>
91
+ description: Radio group with pre-selected value.
92
+
93
+ - html: |
94
+ <aui-field label="Plan">
95
+ <aui-radio-group name="plan">
96
+ <aui-radio label="Free" value="free"></aui-radio>
97
+ <aui-radio label="Pro" value="pro"></aui-radio>
98
+ <aui-radio label="Enterprise" value="enterprise"></aui-radio>
99
+ </aui-radio-group>
100
+ </aui-field>
101
+ description: Radio group inside a labeled field.
102
+
103
+ - html: |
104
+ <aui-radio-group name="status" disabled>
105
+ <aui-radio label="Active" value="active"></aui-radio>
106
+ <aui-radio label="Inactive" value="inactive"></aui-radio>
107
+ </aui-radio-group>
108
+ description: Disabled radio group.
@@ -0,0 +1,132 @@
1
+ name: aui-radio
2
+ tag: aui-radio
3
+ type: component
4
+ summary: Radio button with custom circle indicator.
5
+ description: >
6
+ Custom radio button. Hidden native input for form participation.
7
+ Visual circle with dot indicator via ::before. Label rendered via
8
+ CSS ::after { content: attr(label) } — JS only sets aria-label
9
+ for accessibility, no DOM stamping for the visible label. Use
10
+ inside aui-radio-group for coordinated single-selection.
11
+
12
+ base: AgentElement
13
+
14
+ presentational:
15
+ size:
16
+ syntax: key-value
17
+ attribute: size
18
+ cascades: true
19
+ default: medium
20
+ values: [xs, sm, md, lg, xl]
21
+ description: Controls radio and label size.
22
+
23
+ intent:
24
+ syntax: boolean
25
+ exclusive: true
26
+ cascades: true
27
+ default: neutral
28
+ values: [accent, info, success, warning, danger]
29
+ description: Color family for the selected state.
30
+
31
+ attributes:
32
+ disabled:
33
+ syntax: boolean
34
+ type: boolean
35
+ default: false
36
+ description: Prevents interaction.
37
+
38
+ checked:
39
+ syntax: boolean
40
+ type: boolean
41
+ default: false
42
+ description: Whether this radio is selected.
43
+
44
+ required:
45
+ syntax: boolean
46
+ type: boolean
47
+ default: false
48
+ description: Marks as required for form validation.
49
+
50
+ label:
51
+ syntax: key-value
52
+ type: string
53
+ default: ""
54
+ description: Label text next to the radio.
55
+
56
+ name:
57
+ syntax: key-value
58
+ type: string
59
+ default: ""
60
+ description: Form group name. Usually set by parent aui-radio-group.
61
+
62
+ value:
63
+ syntax: key-value
64
+ type: string
65
+ default: ""
66
+ description: Form submission value for this option.
67
+
68
+ content:
69
+ model: inline
70
+ accepts: [input]
71
+ required: false
72
+ description: >
73
+ Auto-stamps hidden input for form participation. Label is
74
+ rendered purely via CSS ::after on :scope — no stamped span.
75
+
76
+ composition:
77
+ parents: [aui-radio-group, aui-field, aui-stack, form, div]
78
+ children: null
79
+ context: >
80
+ Almost always used inside aui-radio-group which handles
81
+ name propagation, single-selection, and keyboard navigation.
82
+
83
+ constraints:
84
+ - when: standalone (no aui-radio-group parent)
85
+ require: name attribute
86
+ reason: Radios need a shared name for browser grouping.
87
+
88
+ a11y:
89
+ role: radio
90
+ keyboard:
91
+ Space: Selects this radio.
92
+ Enter: Selects this radio.
93
+ aria:
94
+ aria-checked: Mirrors checked attribute.
95
+ aria-disabled: Mirrors disabled attribute.
96
+
97
+ events:
98
+ change:
99
+ description: Fires when this radio becomes selected.
100
+
101
+ tokens:
102
+ sizing:
103
+ - --aui-size
104
+ - --aui-widget-size
105
+ - --aui-font-size
106
+ color:
107
+ - --aui-ink
108
+ - --aui-control
109
+ - --aui-fill
110
+ - --aui-stroke
111
+ - --aui-solid
112
+ - --aui-focus
113
+ motion:
114
+ - --aui-duration
115
+ - --aui-easing
116
+
117
+ css-notes:
118
+ attr-audit:
119
+ - "AB1: [checked], [disabled] — visual state via attributes"
120
+ - "CG2: ::before on [data-circle] for dot indicator"
121
+ - "CG3: ::after { content: attr(label) } — label rendered in CSS, overflow: hidden on ::after only"
122
+ - "CG4: gap uses 2 * space (tightened from 3 * space)"
123
+
124
+ examples:
125
+ - html: <aui-radio label="Option A" value="a"></aui-radio>
126
+ description: Default unchecked radio.
127
+
128
+ - html: <aui-radio label="Option B" value="b" checked></aui-radio>
129
+ description: Pre-selected radio.
130
+
131
+ - html: <aui-radio label="Unavailable" disabled></aui-radio>
132
+ description: Disabled radio.
@@ -0,0 +1,97 @@
1
+ name: aui-range
2
+ tag: aui-range
3
+ type: component
4
+ summary: Slider control with custom track and thumb.
5
+ description: >
6
+ A range slider that wraps a native input[type="range"] for form
7
+ participation and full keyboard/ARIA support. The wrapper renders
8
+ a custom track, fill, and wide iOS-style thumb contained within the
9
+ track — the native input is visually hidden. The thumb uses a scaleX
10
+ animation on press (:active) with transform-origin: center for
11
+ centered scaling.
12
+
13
+ base: AgentElement
14
+
15
+ attributes:
16
+ disabled:
17
+ syntax: boolean
18
+ type: boolean
19
+ default: false
20
+ description: Prevents interaction. Dims visually.
21
+
22
+ min:
23
+ syntax: key-value
24
+ type: string
25
+ default: "0"
26
+ description: Minimum value.
27
+
28
+ max:
29
+ syntax: key-value
30
+ type: string
31
+ default: "100"
32
+ description: Maximum value.
33
+
34
+ step:
35
+ syntax: key-value
36
+ type: string
37
+ default: "1"
38
+ description: Step increment.
39
+
40
+ value:
41
+ syntax: key-value
42
+ type: string
43
+ default: "50"
44
+ description: Current value.
45
+
46
+ label:
47
+ syntax: key-value
48
+ type: string
49
+ default: ""
50
+ description: Accessible label (maps to aria-label on the native input).
51
+
52
+ name:
53
+ syntax: key-value
54
+ type: string
55
+ default: ""
56
+ description: Form field name.
57
+
58
+ a11y:
59
+ role: slider (via native input)
60
+ keyboard:
61
+ ArrowLeft: Decrease by step.
62
+ ArrowRight: Increase by step.
63
+ Home: Set to min.
64
+ End: Set to max.
65
+ aria:
66
+ aria-label: Set from label attribute.
67
+
68
+ form:
69
+ associated: true
70
+ value: Current slider value.
71
+
72
+ tokens:
73
+ sizing:
74
+ - --aui-size
75
+ - --aui-widget-size
76
+ spacing:
77
+ - --aui-pad-control-block
78
+ color:
79
+ - --aui-control
80
+ - --aui-fill
81
+ - --aui-stroke
82
+ - --aui-solid
83
+ - --aui-focus
84
+ shape:
85
+ - --aui-radius-round
86
+ motion:
87
+ - --aui-easing
88
+
89
+ examples:
90
+ - html: <aui-range></aui-range>
91
+ description: Default slider (0–100, value 50).
92
+
93
+ - html: <aui-range min="0" max="10" step="1" value="3" label="Volume"></aui-range>
94
+ description: Slider with custom range and label.
95
+
96
+ - html: <aui-range disabled value="75"></aui-range>
97
+ description: Disabled slider.
@@ -0,0 +1,18 @@
1
+ name: aui-root
2
+ tag: aui-root
3
+ type: component
4
+ summary: App shell root container
5
+ base: AgentElement
6
+ composition:
7
+ parents: [body]
8
+ children: [aui-header, aui-content, aui-footer, aui-panes, any]
9
+ examples:
10
+ - html: |
11
+ <aui-container bordered style="min-height: 12rem;">
12
+ <aui-header><span>App Title</span></aui-header>
13
+ <aui-content><aui-inset><p>Main content area</p></aui-inset></aui-content>
14
+ <aui-footer><span slot="leading">v0.1</span></aui-footer>
15
+ </aui-container>
16
+ description: >
17
+ App shell structure (shown via aui-container for inline preview).
18
+ In use, wrap with aui-root at the document body level.
@@ -0,0 +1,41 @@
1
+ name: aui-segment
2
+ tag: aui-segment
3
+ type: component
4
+ summary: Individual toggle within a segmented control.
5
+ description: >
6
+ A single option within aui-segmented-control. Uses radio role
7
+ for accessibility. Selection coordinated by parent.
8
+
9
+ base: AgentElement
10
+
11
+ attributes:
12
+ value:
13
+ syntax: key-value
14
+ type: string
15
+ default: ""
16
+ description: Segment identifier.
17
+
18
+ disabled:
19
+ syntax: boolean
20
+ type: boolean
21
+ default: false
22
+ description: Prevents selection.
23
+
24
+ selected:
25
+ syntax: boolean
26
+ type: boolean
27
+ default: false
28
+ description: Whether this segment is active.
29
+
30
+ a11y:
31
+ role: radio
32
+ aria:
33
+ aria-checked: Reflects selected state.
34
+
35
+ composition:
36
+ parents: [aui-segmented-control]
37
+ children: null
38
+
39
+ examples:
40
+ - html: <aui-segment value="list">List</aui-segment>
41
+ description: Simple segment.
@@ -0,0 +1,52 @@
1
+ name: aui-segmented-control
2
+ tag: aui-segmented-control
3
+ type: component
4
+ summary: Toggle between mutually exclusive options.
5
+ description: >
6
+ A radiogroup-style control for switching between views or values.
7
+ Contains aui-segment children. Selected segment gets a raised
8
+ pill appearance.
9
+
10
+ base: AgentElement
11
+
12
+ attributes:
13
+ value:
14
+ syntax: key-value
15
+ type: string
16
+ default: ""
17
+ description: Currently selected segment value.
18
+
19
+ name:
20
+ syntax: key-value
21
+ type: string
22
+ default: ""
23
+ description: Form field name.
24
+
25
+ a11y:
26
+ role: radiogroup
27
+ keyboard:
28
+ ArrowRight: Select next segment.
29
+ ArrowLeft: Select previous segment.
30
+ Home: Select first segment.
31
+ End: Select last segment.
32
+
33
+ events:
34
+ change:
35
+ description: Fired when selection changes. detail.value is the new value.
36
+
37
+ form:
38
+ associated: true
39
+ value: Selected segment value.
40
+
41
+ composition:
42
+ parents: [any]
43
+ children: [aui-segment]
44
+
45
+ examples:
46
+ - html: |
47
+ <aui-segmented-control value="list">
48
+ <aui-segment value="list" selected>List</aui-segment>
49
+ <aui-segment value="grid">Grid</aui-segment>
50
+ <aui-segment value="board">Board</aui-segment>
51
+ </aui-segmented-control>
52
+ description: View mode toggle.