@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,141 @@
1
+ name: aui-checkbox
2
+ tag: aui-checkbox
3
+ type: component
4
+ summary: Checkbox with custom check and indeterminate indicators.
5
+ description: >
6
+ Custom checkbox. A hidden native input participates in forms.
7
+ A visual [data-box] element renders the check/indeterminate icon
8
+ via ::before pseudo-element. Label rendered via CSS
9
+ ::after { content: attr(label) } — JS only sets aria-label for
10
+ accessibility, no DOM stamping for the visible label.
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 checkbox 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 checked state fill.
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 the checkbox is checked.
43
+
44
+ indeterminate:
45
+ syntax: boolean
46
+ type: boolean
47
+ default: false
48
+ description: Shows a dash indicator instead of a check.
49
+
50
+ required:
51
+ syntax: boolean
52
+ type: boolean
53
+ default: false
54
+ description: Marks as required for form validation.
55
+
56
+ label:
57
+ syntax: key-value
58
+ type: string
59
+ default: ""
60
+ description: Label text displayed next to the checkbox.
61
+
62
+ name:
63
+ syntax: key-value
64
+ type: string
65
+ default: ""
66
+ description: Form submission name.
67
+
68
+ value:
69
+ syntax: key-value
70
+ type: string
71
+ default: "on"
72
+ description: Form submission value when checked.
73
+
74
+ content:
75
+ model: inline
76
+ accepts: [input]
77
+ required: false
78
+ description: >
79
+ Auto-stamps hidden input for form participation. Label is
80
+ rendered purely via CSS ::after on :scope — no stamped span.
81
+
82
+ composition:
83
+ parents: [aui-field, aui-stack, form, div]
84
+ children: null
85
+ context: >
86
+ Use inside aui-field for labeled form checkboxes, or standalone
87
+ with the label attribute. Group in aui-stack for checkbox lists.
88
+
89
+ a11y:
90
+ role: checkbox
91
+ keyboard:
92
+ Space: Toggles checked state.
93
+ Enter: Toggles checked state.
94
+ aria:
95
+ aria-checked: true, false, or mixed (indeterminate).
96
+ aria-disabled: Reflected from disabled.
97
+
98
+ events:
99
+ change:
100
+ description: Fires when checked state changes.
101
+
102
+ tokens:
103
+ sizing:
104
+ - --aui-size
105
+ - --aui-widget-size
106
+ - --aui-font-size
107
+ color:
108
+ - --aui-ink
109
+ - --aui-control
110
+ - --aui-fill
111
+ - --aui-stroke
112
+ - --aui-solid
113
+ - --aui-on-solid
114
+ - --aui-focus
115
+ motion:
116
+ - --aui-duration
117
+ - --aui-easing
118
+
119
+ css-notes:
120
+ attr-audit:
121
+ - "AB1: [checked], [indeterminate], [disabled] — all visual via attributes"
122
+ - "CG2: ::before on [data-box] for check/dash icon"
123
+ - "CG3: ::after { content: attr(label) } — label rendered in CSS, overflow: hidden on ::after only"
124
+ - "CG4: gap uses 2 * space (tightened from 3 * space)"
125
+ - ":has(> input:focus-visible) — focus ring on visual box"
126
+
127
+ examples:
128
+ - html: <aui-checkbox label="Accept terms"></aui-checkbox>
129
+ description: Default unchecked checkbox.
130
+
131
+ - html: <aui-checkbox label="Newsletter" checked></aui-checkbox>
132
+ description: Pre-checked checkbox.
133
+
134
+ - html: <aui-checkbox label="Select all" indeterminate></aui-checkbox>
135
+ description: Indeterminate state.
136
+
137
+ - html: <aui-checkbox label="Unavailable" disabled></aui-checkbox>
138
+ description: Disabled checkbox.
139
+
140
+ - html: <aui-checkbox label="Enabled" checked accent></aui-checkbox>
141
+ description: Accent-colored checked checkbox.
@@ -0,0 +1,13 @@
1
+ name: aui-command-empty
2
+ tag: aui-command-empty
3
+ type: component
4
+ summary: Empty state shown when no command items match the query.
5
+ base: AgentElement
6
+ a11y:
7
+ role: status
8
+ composition:
9
+ parents: [aui-command]
10
+ children: null
11
+ examples:
12
+ - html: <aui-command-empty>No results found.</aui-command-empty>
13
+ description: Empty state message.
@@ -0,0 +1,23 @@
1
+ name: aui-command-group
2
+ tag: aui-command-group
3
+ type: component
4
+ summary: Groups command items under a heading.
5
+ base: AgentElement
6
+ attributes:
7
+ label:
8
+ syntax: key-value
9
+ type: string
10
+ default: ""
11
+ description: Group heading text.
12
+ a11y:
13
+ role: group
14
+ composition:
15
+ parents: [aui-command-list]
16
+ children: [aui-command-item]
17
+ examples:
18
+ - html: |
19
+ <aui-command-group label="Actions">
20
+ <aui-command-item value="copy">Copy</aui-command-item>
21
+ <aui-command-item value="paste">Paste</aui-command-item>
22
+ </aui-command-group>
23
+ description: Grouped command items.
@@ -0,0 +1,19 @@
1
+ name: aui-command-input
2
+ tag: aui-command-input
3
+ type: component
4
+ summary: Search input for the command palette.
5
+ base: AgentElement
6
+ attributes:
7
+ placeholder:
8
+ syntax: key-value
9
+ type: string
10
+ default: "Search…"
11
+ description: Placeholder text.
12
+ a11y:
13
+ role: searchbox
14
+ composition:
15
+ parents: [aui-command]
16
+ children: null
17
+ examples:
18
+ - html: <aui-command-input placeholder="Type a command…"></aui-command-input>
19
+ description: Command search input.
@@ -0,0 +1,37 @@
1
+ name: aui-command-item
2
+ tag: aui-command-item
3
+ type: component
4
+ summary: Selectable item within a command palette.
5
+ description: >
6
+ A single action within aui-command-list. Supports value,
7
+ disabled state, and keywords for supplementary search terms.
8
+
9
+ base: AgentElement
10
+
11
+ attributes:
12
+ value:
13
+ syntax: key-value
14
+ type: string
15
+ default: ""
16
+ description: Value emitted on selection.
17
+ disabled:
18
+ syntax: boolean
19
+ type: boolean
20
+ default: false
21
+ description: Prevents selection.
22
+ keywords:
23
+ syntax: key-value
24
+ type: string
25
+ default: ""
26
+ description: Extra search terms not visible in the label.
27
+
28
+ a11y:
29
+ role: option
30
+
31
+ composition:
32
+ parents: [aui-command-list, aui-command-group]
33
+ children: null
34
+
35
+ examples:
36
+ - html: <aui-command-item value="copy">Copy</aui-command-item>
37
+ description: Simple command item.
@@ -0,0 +1,17 @@
1
+ name: aui-command-list
2
+ tag: aui-command-list
3
+ type: component
4
+ summary: Scrollable container for command items.
5
+ base: AgentElement
6
+ a11y:
7
+ role: listbox
8
+ composition:
9
+ parents: [aui-command]
10
+ children: [aui-command-item, aui-command-group]
11
+ examples:
12
+ - html: |
13
+ <aui-command-list>
14
+ <aui-command-item value="copy">Copy</aui-command-item>
15
+ <aui-command-item value="paste">Paste</aui-command-item>
16
+ </aui-command-list>
17
+ description: Command list with items.
@@ -0,0 +1,64 @@
1
+ name: aui-command
2
+ tag: aui-command
3
+ type: component
4
+ summary: Command palette with search, keyboard navigation, and grouping.
5
+ description: >
6
+ Root component for the command palette. Composes aui-command-input
7
+ (search), aui-command-list (scrollable results), aui-command-item
8
+ (actions), aui-command-group (grouping), and aui-command-empty
9
+ (no results). Place inside aui-dialog for modal usage.
10
+
11
+ base: AgentElement
12
+
13
+ a11y:
14
+ role: search
15
+ keyboard:
16
+ ArrowDown: Highlight next item.
17
+ ArrowUp: Highlight previous item.
18
+ Home: Highlight first item.
19
+ End: Highlight last item.
20
+ Enter: Select highlighted item.
21
+ Escape: Dismiss (fires dismiss event).
22
+
23
+ events:
24
+ select:
25
+ description: Fired when an item is selected. detail contains value, label, item.
26
+ dismiss:
27
+ description: Fired on Escape key. Parent dialog can listen to close.
28
+
29
+ composition:
30
+ parents: [aui-dialog, any]
31
+ children: [aui-command-input, aui-command-list, aui-command-empty]
32
+
33
+ examples:
34
+ - html: |
35
+ <aui-command max-width="prose">
36
+ <aui-command-input placeholder="Type a command…"></aui-command-input>
37
+ <aui-command-list>
38
+ <aui-command-group label="Actions">
39
+ <aui-command-item value="copy">Copy</aui-command-item>
40
+ <aui-command-item value="paste">Paste</aui-command-item>
41
+ <aui-command-item value="cut">Cut</aui-command-item>
42
+ </aui-command-group>
43
+ <aui-command-group label="Navigation">
44
+ <aui-command-item value="home" keywords="dashboard">Home</aui-command-item>
45
+ <aui-command-item value="settings" keywords="preferences config">Settings</aui-command-item>
46
+ <aui-command-item value="profile" keywords="account user">Profile</aui-command-item>
47
+ </aui-command-group>
48
+ </aui-command-list>
49
+ <aui-command-empty>No results found.</aui-command-empty>
50
+ </aui-command>
51
+ description: Command palette with grouped items and search.
52
+
53
+ - html: |
54
+ <aui-command max-width="md">
55
+ <aui-command-input placeholder="Search actions…"></aui-command-input>
56
+ <aui-command-list>
57
+ <aui-command-item value="new-file">New File</aui-command-item>
58
+ <aui-command-item value="open-file">Open File</aui-command-item>
59
+ <aui-command-item value="save">Save</aui-command-item>
60
+ <aui-command-item value="export">Export</aui-command-item>
61
+ </aui-command-list>
62
+ <aui-command-empty>No matching commands.</aui-command-empty>
63
+ </aui-command>
64
+ description: Simple flat command palette.
@@ -0,0 +1,298 @@
1
+ name: aui-container
2
+ tag: aui-container
3
+ type: component
4
+ summary: Unified card and panel surface.
5
+ description: >
6
+ The standard surface element for cards, panels, and sections.
7
+ Replaces separate Card and Panel components — a single element
8
+ with bordered, elevation, shadow, and interactive modifiers. Composes
9
+ aui-header, aui-content, aui-footer as children.
10
+
11
+ base: AgentElement
12
+
13
+ presentational:
14
+ size:
15
+ syntax: key-value
16
+ attribute: size
17
+ cascades: true
18
+ default: medium
19
+ values: [xs, sm, md, lg, xl]
20
+ description: Cascades size to all children (header, body, footer).
21
+
22
+ density:
23
+ syntax: key-value
24
+ attribute: density
25
+ cascades: true
26
+ default: regular
27
+ values: [compact, spacious]
28
+ description: Cascades density to all children.
29
+
30
+ intent:
31
+ syntax: boolean
32
+ exclusive: true
33
+ cascades: true
34
+ default: neutral
35
+ values: [accent, info, success, warning, danger]
36
+ description: Cascades color family to all children.
37
+
38
+ radius:
39
+ syntax: boolean
40
+ exclusive: true
41
+ cascades: true
42
+ default: medium
43
+ values: [sharp, round]
44
+ description: Controls corner radius of the container.
45
+
46
+ attributes:
47
+ kind:
48
+ syntax: key-value
49
+ type: enum
50
+ values: [widget, card, panel]
51
+ default: card
52
+ description: >
53
+ Sets the padding and gap scale for all children.
54
+ widget: 0.75rem (compact, 1/6–1/4 page).
55
+ card: 1rem (default, 1/4–1/3 page).
56
+ panel: 1.75rem (spacious, 1/3–3/4 page, modals).
57
+
58
+ href:
59
+ syntax: key-value
60
+ type: string
61
+ default: ""
62
+ description: >
63
+ Navigation target when interactive. Clicking the container
64
+ navigates to this URL.
65
+
66
+ elevation:
67
+ syntax: key-value
68
+ type: enum
69
+ values: ["1", "2", "3", "4", "5", "6", "7"]
70
+ default: ""
71
+ description: >
72
+ Surface brightness level. 1=doc (dimmest) through
73
+ 7=modal (brightest). Controls background color.
74
+
75
+ shadow:
76
+ syntax: key-value
77
+ type: enum
78
+ values: ["1", "2", "3"]
79
+ default: ""
80
+ description: >
81
+ Shadow depth. 1=subtle, 2=medium, 3=prominent.
82
+
83
+ modifiers:
84
+ bordered:
85
+ syntax: boolean
86
+ description: Adds a visible border around the container.
87
+
88
+ interactive:
89
+ syntax: boolean
90
+ description: >
91
+ Makes the container clickable with hover/active states.
92
+
93
+ content:
94
+ model: block
95
+ accepts: [aui-header, aui-content, aui-footer, aui-inset, aui-stack, aui-grid, div, p, any]
96
+ required: true
97
+ description: >
98
+ Typically aui-header + aui-content + aui-footer for structured
99
+ cards. Or aui-inset for simple content cards. Child headers
100
+ and footers automatically get separator borders.
101
+
102
+ slots:
103
+ default:
104
+ accepts: [any]
105
+ required: true
106
+ description: Container content.
107
+
108
+ composition:
109
+ parents: [aui-stack, aui-grid, div, section, main]
110
+ children:
111
+ typical: [aui-header, aui-content, aui-footer, aui-inset]
112
+ pattern: >
113
+ The standard card pattern is header + body + footer.
114
+ For simple content, use aui-inset directly.
115
+ context: >
116
+ Use for cards in grids, settings panels, dashboard tiles,
117
+ detail panes. The bordered modifier is the most common —
118
+ shadow/elevation is for floating/overlay surfaces.
119
+
120
+ constraints:
121
+ - when: interactive
122
+ require: href or click handler
123
+ reason: Interactive containers need a destination or action.
124
+
125
+ a11y:
126
+ role: When interactive, role="button" is set automatically.
127
+ keyboard:
128
+ Enter: Navigates to href (when interactive).
129
+ Space: Navigates to href (when interactive).
130
+ focus:
131
+ default: Not focusable unless interactive.
132
+ interactive: tabindex="0".
133
+
134
+ events:
135
+ click:
136
+ description: Fires on interactive containers. Navigates to href if set.
137
+
138
+ tokens:
139
+ color:
140
+ - --aui-card
141
+ - --aui-doc
142
+ - --aui-border-muted
143
+ - --aui-border-hover
144
+ - --aui-focus
145
+ shape:
146
+ - --aui-radius
147
+ shadow:
148
+ - --aui-shadow-sm
149
+ - --aui-shadow-md
150
+ - --aui-shadow-lg
151
+ motion:
152
+ - --aui-duration
153
+ - --aui-easing
154
+
155
+ examples:
156
+ - html: |
157
+ <aui-container kind="card" bordered max-width="prose">
158
+ <aui-header>
159
+ <aui-stack gap="1">
160
+ <aui-heading>Project Settings</aui-heading>
161
+ <aui-text muted size="sm">Make changes to your project here. Click save when you're done.</aui-text>
162
+ </aui-stack>
163
+ </aui-header>
164
+ <aui-content>
165
+ <aui-inset>
166
+ <aui-stack gap="4">
167
+ <aui-field label="Name">
168
+ <aui-input placeholder="Acme Dashboard"></aui-input>
169
+ </aui-field>
170
+ <aui-field label="Description" description="This will be visible to all team members.">
171
+ <aui-textarea placeholder="A real-time analytics dashboard for the Acme team."></aui-textarea>
172
+ </aui-field>
173
+ </aui-stack>
174
+ </aui-inset>
175
+ </aui-content>
176
+ <aui-footer>
177
+ <span slot="trailing">
178
+ <aui-stack direction="row" gap="2">
179
+ <aui-button scrim>Cancel</aui-button>
180
+ <aui-button primary accent>Save changes</aui-button>
181
+ </aui-stack>
182
+ </span>
183
+ </aui-footer>
184
+ </aui-container>
185
+ description: Card kind — Settings form (1.25rem padding).
186
+
187
+ - html: |
188
+ <aui-stack direction="row" gap="3" style="flex-wrap: wrap;">
189
+ <aui-container kind="widget" bordered style="flex: 1; min-width: 12rem;">
190
+ <aui-inset>
191
+ <aui-stack gap="2">
192
+ <aui-text muted size="sm">Active Users</aui-text>
193
+ <aui-stack direction="row" gap="2" align-items="center">
194
+ <aui-heading size="2xl" style="flex: 1;">12</aui-heading>
195
+ <aui-badge accent>+3 today</aui-badge>
196
+ </aui-stack>
197
+ </aui-stack>
198
+ </aui-inset>
199
+ </aui-container>
200
+ <aui-container kind="widget" bordered style="flex: 1; min-width: 12rem;">
201
+ <aui-inset>
202
+ <aui-stack gap="2">
203
+ <aui-text muted size="sm">Uptime</aui-text>
204
+ <aui-stack direction="row" gap="2" align-items="center">
205
+ <aui-heading size="2xl" style="flex: 1;">99.9%</aui-heading>
206
+ <aui-badge success>All systems operational</aui-badge>
207
+ </aui-stack>
208
+ </aui-stack>
209
+ </aui-inset>
210
+ </aui-container>
211
+ <aui-container kind="widget" bordered style="flex: 1; min-width: 12rem;">
212
+ <aui-inset>
213
+ <aui-stack gap="2">
214
+ <aui-text muted size="sm">Open Issues</aui-text>
215
+ <aui-stack direction="row" gap="2" align-items="center">
216
+ <aui-heading size="2xl" style="flex: 1;">3</aui-heading>
217
+ <aui-badge warning>Needs review</aui-badge>
218
+ </aui-stack>
219
+ </aui-stack>
220
+ </aui-inset>
221
+ </aui-container>
222
+ </aui-stack>
223
+ description: Widget kind — Compact dashboard stat cards (0.75rem padding).
224
+
225
+ - html: |
226
+ <aui-container kind="panel" bordered max-width="xl">
227
+ <aui-header>
228
+ <span slot="leading">
229
+ <aui-stack direction="row" gap="3" align-items="center">
230
+ <aui-avatar size="lg" square><aui-icon name="user"></aui-icon></aui-avatar>
231
+ <aui-stack gap="1">
232
+ <aui-heading size="xl">Team Members</aui-heading>
233
+ <aui-text muted size="sm">Manage who has access to this project.</aui-text>
234
+ </aui-stack>
235
+ </aui-stack>
236
+ </span>
237
+ <span slot="trailing"><aui-button primary accent>Invite</aui-button></span>
238
+ </aui-header>
239
+ <aui-content>
240
+ <aui-inset>
241
+ <aui-stack gap="4">
242
+ <aui-stack direction="row" gap="2" align-items="center">
243
+ <aui-avatar>AJ</aui-avatar>
244
+ <aui-stack gap="1" style="flex: 1;">
245
+ <aui-heading size="md">Alice Johnson</aui-heading>
246
+ <aui-text muted size="sm">alice@acme.com · Engineer</aui-text>
247
+ </aui-stack>
248
+ <aui-badge>Admin</aui-badge>
249
+ </aui-stack>
250
+ <aui-stack direction="row" gap="2" align-items="center">
251
+ <aui-avatar>BK</aui-avatar>
252
+ <aui-stack gap="1" style="flex: 1;">
253
+ <aui-heading size="md">Bob Kim</aui-heading>
254
+ <aui-text muted size="sm">bob@acme.com · Designer</aui-text>
255
+ </aui-stack>
256
+ <aui-badge>Member</aui-badge>
257
+ </aui-stack>
258
+ <aui-stack direction="row" gap="2" align-items="center">
259
+ <aui-avatar>CL</aui-avatar>
260
+ <aui-stack gap="1" style="flex: 1;">
261
+ <aui-heading size="md">Carol Lee</aui-heading>
262
+ <aui-text muted size="sm">carol@acme.com · Product Manager</aui-text>
263
+ </aui-stack>
264
+ <aui-badge>Member</aui-badge>
265
+ </aui-stack>
266
+ </aui-stack>
267
+ </aui-inset>
268
+ </aui-content>
269
+ </aui-container>
270
+ description: Panel kind — Spacious member list (1.75rem padding).
271
+
272
+ - html: |
273
+ <aui-container kind="card" bordered shadow="2" success max-width="md">
274
+ <aui-inset>
275
+ <aui-stack gap="4" align-items="center" style="text-align: center;">
276
+ <aui-icon name="check" size="xl"></aui-icon>
277
+ <aui-heading size="xl">Payment Successful</aui-heading>
278
+ <aui-text muted>Your subscription has been renewed. You'll receive a confirmation email shortly.</aui-text>
279
+ <aui-button primary>Go to Dashboard</aui-button>
280
+ </aui-stack>
281
+ </aui-inset>
282
+ </aui-container>
283
+ description: Elevated success card with centered content.
284
+
285
+ - html: |
286
+ <aui-container kind="widget" bordered interactive href="#" max-width="sm">
287
+ <aui-inset>
288
+ <aui-stack direction="row" gap="2" align-items="center">
289
+ <aui-avatar square><aui-icon name="gear"></aui-icon></aui-avatar>
290
+ <aui-stack gap="1" style="flex: 1;">
291
+ <aui-heading size="md" weight="medium">Preferences</aui-heading>
292
+ <aui-text muted size="sm">Language, theme, and notifications</aui-text>
293
+ </aui-stack>
294
+ <aui-icon name="caret-right" muted></aui-icon>
295
+ </aui-stack>
296
+ </aui-inset>
297
+ </aui-container>
298
+ description: Widget kind — Compact clickable navigation card.