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

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,11 @@
1
+ name: aui-table-cell
2
+ tag: aui-table-cell
3
+ type: component
4
+ summary: Data cell within a table row
5
+ base: AgentElement
6
+ composition:
7
+ parents: [aui-table, aui-table-head, aui-table-body, aui-table-row]
8
+ children: null
9
+ examples:
10
+ - html: See aui-table for full usage.
11
+ description: Used within aui-table structure.
@@ -0,0 +1,76 @@
1
+ name: aui-table-column
2
+ tag: aui-table-column
3
+ type: component
4
+ summary: >
5
+ Config-only element that declares column metadata for data-driven tables.
6
+ Renders as display:none — purely declarative. Each instance maps to one
7
+ column in the generated grid.
8
+ base: AgentElement
9
+
10
+ attributes:
11
+ key:
12
+ syntax: key-value
13
+ type: string
14
+ default: ""
15
+ description: >
16
+ Property name to read from each row object. Required.
17
+ label:
18
+ syntax: key-value
19
+ type: string
20
+ default: ""
21
+ description: >
22
+ Display text shown in the column header. Falls back to key if omitted.
23
+ sortable:
24
+ syntax: boolean
25
+ type: boolean
26
+ default: false
27
+ description: >
28
+ Allows this column to be sorted by clicking its header, independent
29
+ of the table-level sortable flag.
30
+ filterable:
31
+ syntax: boolean
32
+ type: boolean
33
+ default: false
34
+ description: >
35
+ Marks this column as eligible for filter controls (future use).
36
+ width:
37
+ syntax: key-value
38
+ type: string
39
+ default: "1fr"
40
+ description: >
41
+ CSS grid track size for this column (e.g. "1fr", "2fr", "auto", "200px").
42
+ type:
43
+ syntax: key-value
44
+ type: enum
45
+ values: [string, number, date]
46
+ default: string
47
+ description: >
48
+ Data type hint used for sorting comparisons and potential formatting.
49
+ align:
50
+ syntax: key-value
51
+ type: enum
52
+ values: [start, center, end]
53
+ default: start
54
+ description: >
55
+ Horizontal alignment for both the header and body cells in this column.
56
+
57
+ composition:
58
+ parents: [aui-table]
59
+ children: null
60
+
61
+ examples:
62
+ - description: Column declarations inside a data-driven table.
63
+ html: |
64
+ <aui-table sortable paginate="10">
65
+ <aui-table-column key="orderId" label="Order ID" sortable width="auto"></aui-table-column>
66
+ <aui-table-column key="test" label="Test" sortable width="2fr"></aui-table-column>
67
+ <aui-table-column key="status" label="Status" filterable width="auto"></aui-table-column>
68
+ <aui-table-column key="date" label="Ordered" sortable type="date" width="auto"></aui-table-column>
69
+ <aui-table-column key="cost" label="Cost" sortable type="number" align="end" width="auto"></aui-table-column>
70
+ <script type="application/json">
71
+ [
72
+ { "id": "ORD-001", "orderId": "ORD-001", "test": "CBC w/ Differential", "status": "Completed", "date": "2024-11-02", "cost": 45.00 },
73
+ { "id": "ORD-002", "orderId": "ORD-002", "test": "Comprehensive Metabolic Panel", "status": "Pending", "date": "2024-11-10", "cost": 62.50 }
74
+ ]
75
+ </script>
76
+ </aui-table>
@@ -0,0 +1,11 @@
1
+ name: aui-table-head
2
+ tag: aui-table-head
3
+ type: component
4
+ summary: Table head section using display contents
5
+ base: AgentElement
6
+ composition:
7
+ parents: [aui-table]
8
+ children: [aui-table-row]
9
+ examples:
10
+ - html: See aui-table for full usage.
11
+ description: Used within aui-table structure.
@@ -0,0 +1,11 @@
1
+ name: aui-table-header
2
+ tag: aui-table-header
3
+ type: component
4
+ summary: Column header cell with bold label
5
+ base: AgentElement
6
+ composition:
7
+ parents: [aui-table, aui-table-head, aui-table-body, aui-table-row]
8
+ children: null
9
+ examples:
10
+ - html: See aui-table for full usage.
11
+ description: Used within aui-table structure.
@@ -0,0 +1,11 @@
1
+ name: aui-table-row
2
+ tag: aui-table-row
3
+ type: component
4
+ summary: Table row using CSS subgrid
5
+ base: AgentElement
6
+ composition:
7
+ parents: [aui-table, aui-table-head, aui-table-body, aui-table-row]
8
+ children: null
9
+ examples:
10
+ - html: See aui-table for full usage.
11
+ description: Used within aui-table structure.
@@ -0,0 +1,219 @@
1
+ name: aui-table
2
+ tag: aui-table
3
+ type: component
4
+ summary: >
5
+ CSS grid table with subgrid rows. Supports dual-mode usage:
6
+ declarative HTML (static rows via aui-table-head / aui-table-body) and
7
+ data-driven JSON (column config via aui-table-column with inline or remote data).
8
+
9
+ v3 architecture: a single click handler on the table element routes events
10
+ to sort, selection, and pagination via data attributes (event delegation).
11
+ No per-element listeners — the handler survives re-renders because it
12
+ lives on the stable host element. All interactive controls are native-free:
13
+ aui-checkbox for selection, aui-input for search. No native input elements
14
+ appear in the rendered output.
15
+ base: AgentElement
16
+
17
+ attributes:
18
+ cols:
19
+ syntax: key-value
20
+ type: string
21
+ default: ""
22
+ description: >
23
+ Grid column template (e.g. "1fr 1fr 2fr", "auto auto 1fr").
24
+ Maps directly to grid-template-columns. Used in declarative mode;
25
+ data-driven mode derives columns from aui-table-column widths.
26
+ src:
27
+ syntax: key-value
28
+ type: string
29
+ default: ""
30
+ description: >
31
+ URL to fetch row data as JSON. The response must be an array or
32
+ an object with a `data` array. Triggers re-render on change.
33
+ selectable:
34
+ syntax: boolean
35
+ type: boolean
36
+ default: false
37
+ description: >
38
+ Adds a checkbox column for row selection. Exposes selectedIds
39
+ getter and fires aui:selection-change on toggle.
40
+ sortable:
41
+ syntax: boolean
42
+ type: boolean
43
+ default: false
44
+ description: >
45
+ Enables click-to-sort on all column headers. Individual columns
46
+ can also opt in via their own sortable attribute.
47
+ searchable:
48
+ syntax: boolean
49
+ type: boolean
50
+ default: false
51
+ description: >
52
+ Shows a search toolbar above the table that filters visible rows
53
+ across all columns with debounced input.
54
+ paginate:
55
+ syntax: key-value
56
+ type: string
57
+ default: "0"
58
+ description: >
59
+ Rows per page. Set to a positive integer to enable pagination
60
+ with prev/next controls. "0" disables pagination.
61
+
62
+ delegation:
63
+ description: >
64
+ Event delegation: a single click handler on the host element inspects
65
+ data attributes on the event target to determine the action. This
66
+ replaces per-element listeners and survives innerHTML re-renders
67
+ because the handler is bound to the stable host, not to transient
68
+ child elements.
69
+ data-attributes:
70
+ data-table-sortable:
71
+ placed-on: aui-table-header
72
+ companion: data-key
73
+ description: >
74
+ Marks a header cell as a sort target. The companion data-key
75
+ attribute identifies which column key to sort by.
76
+ data-table-sort:
77
+ placed-on: aui-table-header
78
+ values: [asc, desc]
79
+ description: >
80
+ Set on the currently sorted header to indicate direction.
81
+ Absent when sort is cleared (the "none" state).
82
+ data-table-check:
83
+ placed-on: aui-checkbox
84
+ companion: data-row-id
85
+ description: >
86
+ Marks a checkbox as a selection target. data-row-id holds the
87
+ row's id value, or "__all__" for the select-all checkbox in the
88
+ header.
89
+ data-table-selected:
90
+ placed-on: aui-table-row
91
+ description: >
92
+ Applied to body rows whose id is in the selected set. Used for
93
+ visual highlight styling.
94
+ data-table-page:
95
+ placed-on: button
96
+ description: >
97
+ Set on pagination buttons (prev, next, and numbered pages).
98
+ The value is the target page number.
99
+ data-table-toolbar:
100
+ placed-on: div
101
+ description: >
102
+ Wrapper for the search input. Contains an aui-input element.
103
+ data-table-footer:
104
+ placed-on: div
105
+ description: >
106
+ Wrapper for pagination controls and page info.
107
+ data-table-page-info:
108
+ placed-on: span
109
+ description: >
110
+ Displays the "start-end of total" text inside the footer.
111
+ data-table-page-controls:
112
+ placed-on: span
113
+ description: >
114
+ Inline-flex container for prev/next and numbered page buttons.
115
+
116
+ sort-cycle:
117
+ description: >
118
+ Three-click cycle: asc -> desc -> none. Clicking a new column
119
+ always starts at asc. Resets to page 1 on every sort change.
120
+
121
+ search:
122
+ description: >
123
+ Debounced at 200ms. Filters across all column values by
124
+ lowercased substring match. Uses aui-input (never a native
125
+ input element). Resets to page 1 on term change.
126
+
127
+ pagination:
128
+ description: >
129
+ Native button elements with all:unset styling. Active page gets
130
+ accent background. Prev/next buttons disable at boundaries.
131
+ Page info shows "start-end of total" range.
132
+
133
+ events:
134
+ aui:selection-change:
135
+ description: >
136
+ Fired when row selection changes (data-driven mode with selectable).
137
+ detail: { selectedIds: string[] }
138
+ aui:page-change:
139
+ description: >
140
+ Fired when the current page changes (data-driven mode with paginate).
141
+ detail: { page: number }
142
+ aui:sort-change:
143
+ description: >
144
+ Fired when column sort state changes (data-driven mode with sortable).
145
+ detail: { key: string, dir: 'asc' | 'desc' | 'none' }
146
+
147
+ api:
148
+ setData:
149
+ signature: "setData(data: Record<string, unknown>[]): void"
150
+ description: >
151
+ Replaces the table's row data programmatically. Resets pagination
152
+ and selection, then re-renders.
153
+ selectedIds:
154
+ signature: "get selectedIds(): Set<string>"
155
+ description: >
156
+ Returns a copy of the currently selected row IDs. Each ID comes
157
+ from the row's `id` field (or a JSON-stringified fallback).
158
+
159
+ a11y:
160
+ role: table
161
+
162
+ composition:
163
+ parents: [any]
164
+ children: [aui-table-head, aui-table-body, aui-table-column]
165
+
166
+ examples:
167
+ - description: Declarative HTML table (static rows).
168
+ html: |
169
+ <aui-table cols="1fr 1fr 1fr">
170
+ <aui-table-head>
171
+ <aui-table-row>
172
+ <aui-table-header>Name</aui-table-header>
173
+ <aui-table-header>Role</aui-table-header>
174
+ <aui-table-header>Status</aui-table-header>
175
+ </aui-table-row>
176
+ </aui-table-head>
177
+ <aui-table-body>
178
+ <aui-table-row>
179
+ <aui-table-cell>Alice</aui-table-cell>
180
+ <aui-table-cell>Engineer</aui-table-cell>
181
+ <aui-table-cell>Active</aui-table-cell>
182
+ </aui-table-row>
183
+ <aui-table-row>
184
+ <aui-table-cell>Bob</aui-table-cell>
185
+ <aui-table-cell>Designer</aui-table-cell>
186
+ <aui-table-cell>Away</aui-table-cell>
187
+ </aui-table-row>
188
+ </aui-table-body>
189
+ </aui-table>
190
+
191
+ - description: >
192
+ Data-driven table with inline JSON, sorting, search, selection,
193
+ and pagination.
194
+ html: |
195
+ <aui-table sortable searchable selectable paginate="5">
196
+ <aui-table-column key="name" label="Name" sortable width="1fr"></aui-table-column>
197
+ <aui-table-column key="role" label="Role" width="1fr"></aui-table-column>
198
+ <aui-table-column key="status" label="Status" sortable filterable width="auto"></aui-table-column>
199
+ <aui-table-column key="joined" label="Joined" sortable type="date" width="auto"></aui-table-column>
200
+ <script type="application/json">
201
+ [
202
+ { "id": 1, "name": "Alice", "role": "Engineer", "status": "Active", "joined": "2024-01-15" },
203
+ { "id": 2, "name": "Bob", "role": "Designer", "status": "Away", "joined": "2024-02-20" },
204
+ { "id": 3, "name": "Carol", "role": "PM", "status": "Active", "joined": "2023-11-03" },
205
+ { "id": 4, "name": "Dan", "role": "Engineer", "status": "Active", "joined": "2024-03-10" },
206
+ { "id": 5, "name": "Eve", "role": "Designer", "status": "Busy", "joined": "2023-06-22" },
207
+ { "id": 6, "name": "Frank", "role": "Engineer", "status": "Away", "joined": "2024-04-01" }
208
+ ]
209
+ </script>
210
+ </aui-table>
211
+
212
+ - description: Data-driven table loaded from a remote JSON endpoint.
213
+ html: |
214
+ <aui-table src="/api/users.json" sortable selectable paginate="10">
215
+ <aui-table-column key="name" label="Name" sortable width="2fr"></aui-table-column>
216
+ <aui-table-column key="email" label="Email" width="2fr"></aui-table-column>
217
+ <aui-table-column key="role" label="Role" width="1fr"></aui-table-column>
218
+ <aui-table-column key="status" label="Status" sortable width="auto"></aui-table-column>
219
+ </aui-table>
@@ -0,0 +1,61 @@
1
+ name: aui-tabs
2
+ tag: aui-tabs
3
+ type: component
4
+ summary: Tabbed interface with roving keyboard navigation.
5
+ description: >
6
+ Coordinator for aui-tab triggers and aui-tab-panel content.
7
+ Handles selection, ARIA wiring, and keyboard navigation
8
+ (arrow keys, Home/End). Supports horizontal and vertical layout.
9
+
10
+ base: AgentElement
11
+
12
+ attributes:
13
+ value:
14
+ syntax: key-value
15
+ type: string
16
+ default: ""
17
+ description: Currently selected tab value.
18
+
19
+ orientation:
20
+ syntax: key-value
21
+ type: enum
22
+ values: [vertical]
23
+ default: ""
24
+ description: Layout direction. Default is horizontal.
25
+
26
+ a11y:
27
+ role: tablist
28
+ keyboard:
29
+ ArrowRight: Select next tab (horizontal).
30
+ ArrowLeft: Select previous tab (horizontal).
31
+ ArrowDown: Select next tab (vertical).
32
+ ArrowUp: Select previous tab (vertical).
33
+ Home: Select first tab.
34
+ End: Select last tab.
35
+
36
+ events:
37
+ change:
38
+ description: Fired when the active tab changes. detail.value is the new tab value.
39
+
40
+ composition:
41
+ parents: [any]
42
+ children: [aui-tab, aui-tab-panel]
43
+
44
+ examples:
45
+ - html: |
46
+ <aui-tabs value="general">
47
+ <aui-tab value="general">General</aui-tab>
48
+ <aui-tab value="advanced">Advanced</aui-tab>
49
+ <aui-tab-panel value="general">General content</aui-tab-panel>
50
+ <aui-tab-panel value="advanced">Advanced content</aui-tab-panel>
51
+ </aui-tabs>
52
+ description: Basic tabbed interface.
53
+
54
+ - html: |
55
+ <aui-tabs orientation="vertical" value="profile">
56
+ <aui-tab value="profile">Profile</aui-tab>
57
+ <aui-tab value="security">Security</aui-tab>
58
+ <aui-tab-panel value="profile">Profile settings</aui-tab-panel>
59
+ <aui-tab-panel value="security">Security settings</aui-tab-panel>
60
+ </aui-tabs>
61
+ description: Vertical tabs.
@@ -0,0 +1,196 @@
1
+ name: aui-textarea
2
+ tag: aui-textarea
3
+ type: component
4
+ summary: Multi-line text input with autogrow support.
5
+ description: >
6
+ Multi-line input. Same wrapper pattern as aui-input — the
7
+ wrapper owns the visual chrome, a native <textarea> lives
8
+ inside with browser chrome stripped. Supports autogrow
9
+ modifier for auto-expanding height to content. Defaults to
10
+ width: 20ch for standalone use. Automatically stretches to full
11
+ width when placed inside aui-field. Use width="full" on the element
12
+ to override the default width in other contexts.
13
+
14
+ base: AgentElement
15
+
16
+ presentational:
17
+ size:
18
+ syntax: key-value
19
+ attribute: size
20
+ cascades: true
21
+ default: medium
22
+ values: [xs, sm, md, lg, xl]
23
+ description: Controls font size and padding.
24
+
25
+ radius:
26
+ syntax: boolean
27
+ exclusive: true
28
+ cascades: true
29
+ default: medium
30
+ values: [sharp, round]
31
+ description: Controls border radius.
32
+
33
+ density:
34
+ syntax: key-value
35
+ attribute: density
36
+ cascades: true
37
+ default: regular
38
+ values: [compact, spacious]
39
+ description: Controls padding compression.
40
+
41
+ intent:
42
+ syntax: boolean
43
+ exclusive: true
44
+ cascades: true
45
+ default: neutral
46
+ values: [accent, info, success, warning, danger]
47
+ description: Color family for border and focus ring.
48
+
49
+ attributes:
50
+ disabled:
51
+ syntax: boolean
52
+ type: boolean
53
+ default: false
54
+ description: Prevents interaction.
55
+
56
+ readonly:
57
+ syntax: boolean
58
+ type: boolean
59
+ default: false
60
+ description: Allows selection but prevents editing.
61
+
62
+ required:
63
+ syntax: boolean
64
+ type: boolean
65
+ default: false
66
+ description: Marks as required for form validation.
67
+
68
+ autogrow:
69
+ syntax: boolean
70
+ type: boolean
71
+ default: false
72
+ description: >
73
+ Auto-expands height to fit content. Disables manual resize.
74
+
75
+ autofocus:
76
+ syntax: boolean
77
+ type: boolean
78
+ default: false
79
+ description: Focuses the textarea on mount.
80
+
81
+ placeholder:
82
+ syntax: key-value
83
+ type: string
84
+ default: ""
85
+ description: Placeholder text.
86
+
87
+ value:
88
+ syntax: key-value
89
+ type: string
90
+ default: ""
91
+ description: Current textarea value.
92
+
93
+ name:
94
+ syntax: key-value
95
+ type: string
96
+ default: ""
97
+ description: Form submission name.
98
+
99
+ rows:
100
+ syntax: key-value
101
+ type: string
102
+ default: "3"
103
+ description: Initial visible row count.
104
+
105
+ minlength:
106
+ syntax: key-value
107
+ type: string
108
+ default: ""
109
+ description: Minimum character count.
110
+
111
+ maxlength:
112
+ syntax: key-value
113
+ type: string
114
+ default: ""
115
+ description: Maximum character count.
116
+
117
+ modifiers:
118
+ autogrow:
119
+ syntax: boolean
120
+ description: >
121
+ Auto-expands textarea height to fit content. Disables
122
+ manual resize handle. Height adjusts on every input event.
123
+
124
+ content:
125
+ model: mixed
126
+ accepts: [textarea]
127
+ required: false
128
+ description: Auto-stamps a native textarea if none exists.
129
+
130
+ composition:
131
+ parents: [aui-field, aui-stack, form, div]
132
+ children: null
133
+ context: >
134
+ Use inside aui-field for labeled textareas. Standalone for
135
+ chat inputs, comment boxes, code editors.
136
+
137
+ a11y:
138
+ role: implicit (native textarea)
139
+ keyboard:
140
+ Tab: Focuses the native textarea.
141
+ aria:
142
+ aria-disabled: Reflected from disabled.
143
+ aria-readonly: Reflected from readonly.
144
+ aria-required: Reflected from required.
145
+
146
+ events:
147
+ input:
148
+ description: Fires on every keystroke.
149
+ change:
150
+ description: Fires on blur.
151
+
152
+ tokens:
153
+ sizing:
154
+ - --aui-size
155
+ - --aui-font-size
156
+ spacing:
157
+ - --aui-pad-control-block
158
+ - --aui-pad-control-inline
159
+ color:
160
+ - --aui-ink
161
+ - --aui-ink-muted
162
+ - --aui-ink-placeholder
163
+ - --aui-control
164
+ - --aui-fill
165
+ - --aui-stroke
166
+ - --aui-focus
167
+ shape:
168
+ - --aui-radius
169
+ motion:
170
+ - --aui-duration
171
+ - --aui-easing
172
+
173
+ css-notes:
174
+ attr-audit:
175
+ - "AB1: [disabled], [readonly], [autogrow] — visual state via attributes"
176
+ - "[autogrow] > textarea { resize: none; overflow: hidden } — CSS disables manual resize"
177
+ - ":focus-within — focus ring on wrapper"
178
+
179
+ examples:
180
+ - html: <aui-textarea placeholder="Write a message..."></aui-textarea>
181
+ description: Basic textarea.
182
+
183
+ - html: <aui-textarea placeholder="Auto-expanding..." autogrow></aui-textarea>
184
+ description: Autogrow textarea.
185
+
186
+ - html: <aui-textarea placeholder="Disabled" disabled></aui-textarea>
187
+ description: Disabled textarea.
188
+
189
+ - html: <aui-textarea value="Read only content" readonly></aui-textarea>
190
+ description: Read-only textarea.
191
+
192
+ - html: |
193
+ <aui-field label="Bio" description="Tell us about yourself.">
194
+ <aui-textarea placeholder="Write here..." rows="4"></aui-textarea>
195
+ </aui-field>
196
+ description: Textarea inside a labeled field.
@@ -0,0 +1,62 @@
1
+ name: aui-toast
2
+ tag: aui-toast
3
+ type: component
4
+ summary: Toast notification with auto-dismiss and stacking.
5
+ description: >
6
+ Ephemeral notification that auto-dismisses. Use the imperative
7
+ AuiToast.show() API or declaratively with the open attribute.
8
+ Multiple toasts stack inside aui-toast-container (auto-created
9
+ on first use). Intent set via boolean attribute (info, success,
10
+ warning, danger).
11
+
12
+ base: AgentElement
13
+
14
+ attributes:
15
+ open:
16
+ syntax: boolean
17
+ type: boolean
18
+ default: false
19
+ description: Whether the toast is visible.
20
+
21
+ message:
22
+ syntax: key-value
23
+ type: string
24
+ default: ""
25
+ description: Toast message text.
26
+
27
+ duration:
28
+ syntax: key-value
29
+ type: string
30
+ default: "4000"
31
+ description: Auto-dismiss delay in ms. Set to 0 to disable.
32
+
33
+ closeable:
34
+ syntax: boolean
35
+ type: boolean
36
+ default: true
37
+ description: Show a dismiss button.
38
+
39
+ a11y:
40
+ role: status
41
+ aria:
42
+ aria-live: polite
43
+
44
+ events:
45
+ dismiss:
46
+ description: Fired when the toast is dismissed (auto or manual).
47
+
48
+ examples:
49
+ - html: <aui-toast open message="Item saved successfully" success duration="0"></aui-toast>
50
+ description: Success toast.
51
+
52
+ - html: <aui-toast open message="New version available" info duration="0"></aui-toast>
53
+ description: Info toast.
54
+
55
+ - html: <aui-toast open message="Storage almost full" warning duration="0"></aui-toast>
56
+ description: Warning toast.
57
+
58
+ - html: <aui-toast open message="Failed to delete item" danger duration="0" closeable></aui-toast>
59
+ description: Danger toast with close button.
60
+
61
+ - html: <aui-toast open message="Default toast with no intent" duration="0"></aui-toast>
62
+ description: Default toast (no intent).