@agent-ui-kit/web-components 0.0.14 → 0.0.15

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 (151) hide show
  1. package/dist/agent-ui.css +1 -1
  2. package/dist/api.colors.json +2 -2
  3. package/dist/api.colors.yaml +2 -2
  4. package/dist/api.components.json +4570 -1641
  5. package/dist/api.tokens.json +34 -2
  6. package/dist/api.tokens.yaml +26 -2
  7. package/dist/chunks/{agent-C72JZNe6.js → agent-BF_R_HJk.js} +65 -61
  8. package/dist/chunks/{agent-C72JZNe6.js.map → agent-BF_R_HJk.js.map} +1 -1
  9. package/dist/chunks/{empty-state-5M3uR5CM.js → meter-Dju8ik6C.js} +1169 -934
  10. package/dist/chunks/meter-Dju8ik6C.js.map +1 -0
  11. package/dist/components/agent.js +6 -6
  12. package/dist/components/avatar/avatar.d.ts +0 -0
  13. package/dist/components/badge/badge.d.ts +0 -0
  14. package/dist/components/bar/bar.d.ts +0 -0
  15. package/dist/components/breadcrumb/breadcrumb.d.ts +2 -0
  16. package/dist/components/button-group/button-group.d.ts +0 -0
  17. package/dist/components/code/code.d.ts +0 -0
  18. package/dist/components/color-area/color-area.d.ts +2 -1
  19. package/dist/components/color-picker/color-picker.d.ts +1 -0
  20. package/dist/components/color-picker/oklch-utils.d.ts +18 -0
  21. package/dist/components/color-slider/color-slider.d.ts +1 -1
  22. package/dist/components/color-swatch/color-swatch.d.ts +0 -0
  23. package/dist/components/content/content.d.ts +0 -0
  24. package/dist/components/description-list/description-list.d.ts +0 -0
  25. package/dist/components/divider/divider.d.ts +0 -0
  26. package/dist/components/editor.js +1 -1
  27. package/dist/components/fieldset/fieldset.d.ts +0 -0
  28. package/dist/components/footer/footer.d.ts +0 -0
  29. package/dist/components/graph.js +1 -1
  30. package/dist/components/grid/grid.d.ts +0 -0
  31. package/dist/components/header/header.d.ts +0 -0
  32. package/dist/components/heading/heading.d.ts +0 -0
  33. package/dist/components/input-group/input-group.d.ts +0 -0
  34. package/dist/components/inset/inset.d.ts +0 -0
  35. package/dist/components/kbd/kbd.d.ts +0 -0
  36. package/dist/components/stack/stack.d.ts +0 -0
  37. package/dist/components/stat/stat.d.ts +4 -0
  38. package/dist/components/text/text.d.ts +0 -0
  39. package/dist/components/time-field/time-field.d.ts +1 -0
  40. package/dist/components/wrap/wrap.d.ts +0 -0
  41. package/dist/components.js +114 -127
  42. package/dist/components.js.map +1 -1
  43. package/dist/docs/blocks/login-two-column.yaml +6 -6
  44. package/dist/docs/blocks/profile-card.yaml +5 -5
  45. package/dist/docs/components/accordion-item.yaml +13 -21
  46. package/dist/docs/components/accordion.yaml +23 -29
  47. package/dist/docs/components/agent-activity.yaml +27 -39
  48. package/dist/docs/components/agent-feed.yaml +15 -22
  49. package/dist/docs/components/agent-input.yaml +238 -0
  50. package/dist/docs/components/agent-message.yaml +29 -48
  51. package/dist/docs/components/agent-panel.yaml +21 -24
  52. package/dist/docs/components/agent-prompt.yaml +28 -46
  53. package/dist/docs/components/agent-seeds.yaml +15 -23
  54. package/dist/docs/components/agent-text.yaml +14 -24
  55. package/dist/docs/components/agent-thread.yaml +15 -24
  56. package/dist/docs/components/alert.yaml +41 -39
  57. package/dist/docs/components/avatar-group.yaml +72 -45
  58. package/dist/docs/components/avatar.yaml +99 -0
  59. package/dist/docs/components/badge.yaml +110 -0
  60. package/dist/docs/components/bar.yaml +84 -0
  61. package/dist/docs/components/breadcrumb-item.yaml +8 -17
  62. package/dist/docs/components/breadcrumb.yaml +60 -25
  63. package/dist/docs/components/button-group.yaml +93 -0
  64. package/dist/docs/components/button.yaml +177 -261
  65. package/dist/docs/components/calendar-picker.yaml +14 -34
  66. package/dist/docs/components/calendar-range-picker.yaml +11 -29
  67. package/dist/docs/components/calendar.yaml +11 -29
  68. package/dist/docs/components/canvas.yaml +44 -61
  69. package/dist/docs/components/checkbox.yaml +37 -49
  70. package/dist/docs/components/chip.yaml +88 -54
  71. package/dist/docs/components/code-block.yaml +54 -53
  72. package/dist/docs/components/code.yaml +37 -0
  73. package/dist/docs/components/color-area.yaml +119 -0
  74. package/dist/docs/components/color-field.yaml +121 -0
  75. package/dist/docs/components/color-picker.yaml +64 -38
  76. package/dist/docs/components/color-slider.yaml +153 -0
  77. package/dist/docs/components/color-swatch.yaml +98 -0
  78. package/dist/docs/components/command.yaml +13 -18
  79. package/dist/docs/components/container.yaml +83 -73
  80. package/dist/docs/components/content.yaml +100 -0
  81. package/dist/docs/components/context-menu.yaml +11 -20
  82. package/dist/docs/components/date-field.yaml +81 -33
  83. package/dist/docs/components/description-list.yaml +81 -0
  84. package/dist/docs/components/disclosure-group.yaml +61 -42
  85. package/dist/docs/components/disclosure.yaml +60 -46
  86. package/dist/docs/components/divider.yaml +63 -0
  87. package/dist/docs/components/dropdown-menu.yaml +16 -25
  88. package/dist/docs/components/feed.yaml +15 -24
  89. package/dist/docs/components/field.yaml +50 -71
  90. package/dist/docs/components/fieldset.yaml +92 -0
  91. package/dist/docs/components/footer.yaml +147 -0
  92. package/dist/docs/components/grid.yaml +87 -0
  93. package/dist/docs/components/gripper.yaml +11 -23
  94. package/dist/docs/components/header.yaml +168 -0
  95. package/dist/docs/components/heading.yaml +54 -0
  96. package/dist/docs/components/hover-card.yaml +17 -25
  97. package/dist/docs/components/icon.yaml +32 -65
  98. package/dist/docs/components/input-group.yaml +102 -0
  99. package/dist/docs/components/input-otp.yaml +20 -19
  100. package/dist/docs/components/input.yaml +92 -132
  101. package/dist/docs/components/inset.yaml +59 -0
  102. package/dist/docs/components/kbd.yaml +57 -0
  103. package/dist/docs/components/link.yaml +36 -45
  104. package/dist/docs/components/meter.yaml +27 -38
  105. package/dist/docs/components/nav-item.yaml +51 -40
  106. package/dist/docs/components/noodles.yaml +72 -104
  107. package/dist/docs/components/option.yaml +12 -23
  108. package/dist/docs/components/pagination.yaml +21 -18
  109. package/dist/docs/components/pane.yaml +18 -32
  110. package/dist/docs/components/panes.yaml +19 -27
  111. package/dist/docs/components/progress-circle.yaml +64 -55
  112. package/dist/docs/components/progress.yaml +35 -51
  113. package/dist/docs/components/radio-group.yaml +99 -40
  114. package/dist/docs/components/radio.yaml +40 -41
  115. package/dist/docs/components/range.yaml +24 -27
  116. package/dist/docs/components/segmented-control.yaml +58 -17
  117. package/dist/docs/components/select.yaml +80 -100
  118. package/dist/docs/components/skeleton.yaml +39 -39
  119. package/dist/docs/components/sparkline.yaml +28 -45
  120. package/dist/docs/components/spinner.yaml +32 -33
  121. package/dist/docs/components/stack.yaml +126 -0
  122. package/dist/docs/components/stepper.yaml +31 -38
  123. package/dist/docs/components/switch.yaml +36 -47
  124. package/dist/docs/components/tab-panel.yaml +27 -18
  125. package/dist/docs/components/tab.yaml +25 -22
  126. package/dist/docs/components/table-header.yaml +22 -12
  127. package/dist/docs/components/tabs.yaml +103 -20
  128. package/dist/docs/components/tag-group.yaml +63 -47
  129. package/dist/docs/components/text.yaml +67 -0
  130. package/dist/docs/components/textarea.yaml +43 -60
  131. package/dist/docs/components/time-field.yaml +74 -33
  132. package/dist/docs/components/toast.yaml +13 -30
  133. package/dist/docs/components/tooltip.yaml +56 -49
  134. package/dist/docs/components/tree-item.yaml +9 -10
  135. package/dist/docs/components/tree.yaml +127 -10
  136. package/dist/docs/components/wrap.yaml +60 -0
  137. package/dist/docs/traits/toggle-theme.yaml +34 -0
  138. package/dist/element.js +1 -1
  139. package/dist/icons.js +79 -59
  140. package/dist/icons.js.map +1 -1
  141. package/dist/reactivity.js +2 -2
  142. package/dist/register.d.ts +0 -1
  143. package/dist/register.js +258 -244
  144. package/dist/register.js.map +1 -1
  145. package/dist/store.js +1 -1
  146. package/dist/traits/toggle-theme/toggle-theme.d.ts +0 -0
  147. package/dist/traits/toggle-theme/toggle-theme.trait.d.ts +2 -0
  148. package/dist/traits.js +528 -485
  149. package/dist/traits.js.map +1 -1
  150. package/package.json +1 -1
  151. package/dist/chunks/empty-state-5M3uR5CM.js.map +0 -1
@@ -2,202 +2,182 @@ name: aui-input
2
2
  tag: aui-input
3
3
  type: component
4
4
  summary: Text input with type variants, slots, and clearable mode.
5
- description: >
6
- Single-line text input. The wrapper element owns the visual chrome
7
- (border, radius, padding, focus ring). A native <input> lives
8
- inside as a light DOM child with all browser chrome stripped.
9
- Supports leading/trailing icon slots and a clearable button.
10
- Defaults to width: 20ch for standalone use. Automatically stretches
11
- to full width when placed inside aui-field. Use width="full" on the
12
- element to override the default width in other contexts.
13
-
5
+ description: |
6
+ Single-line text input. The wrapper element owns the visual chrome (border, radius, padding, focus ring). A native <input> lives inside as a light DOM child with all browser chrome stripped. Supports leading/trailing icon slots and a clearable button. Defaults to width: 20ch for standalone use. Automatically stretches to full width when placed inside aui-field. Use width="full" on the element to override the default width in other contexts.
14
7
  base: AgentElement
15
-
16
- # ── Presentational attributes ─────────────────────────────
17
-
18
8
  presentational:
19
9
  size:
20
10
  syntax: key-value
21
11
  attribute: size
22
12
  cascades: true
23
13
  default: medium
24
- values: [xs, sm, md, lg, xl]
14
+ values:
15
+ - xs
16
+ - sm
17
+ - md
18
+ - lg
19
+ - xl
25
20
  description: Controls height, font size, and icon size.
26
-
27
21
  radius:
28
22
  syntax: boolean
29
23
  exclusive: true
30
24
  cascades: true
31
25
  default: medium
32
- values: [sharp, round]
26
+ values:
27
+ - sharp
28
+ - round
33
29
  description: Controls border radius.
34
-
35
30
  density:
36
31
  syntax: key-value
37
32
  attribute: density
38
33
  cascades: true
39
34
  default: regular
40
- values: [compact, spacious]
35
+ values:
36
+ - compact
37
+ - spacious
41
38
  description: Controls padding compression.
42
-
43
39
  intent:
44
40
  syntax: boolean
45
41
  exclusive: true
46
42
  cascades: true
47
43
  default: neutral
48
- values: [accent, info, success, warning, danger]
44
+ values:
45
+ - accent
46
+ - info
47
+ - success
48
+ - warning
49
+ - danger
49
50
  description: Color family for the input border and focus ring.
50
-
51
- # ── Component attributes ──────────────────────────────────
52
-
53
51
  attributes:
54
52
  disabled:
55
53
  syntax: boolean
56
54
  type: boolean
57
55
  default: false
58
56
  description: Prevents interaction. Dims visually.
59
-
60
57
  readonly:
61
58
  syntax: boolean
62
59
  type: boolean
63
60
  default: false
64
61
  description: Allows selection but prevents editing. Dashed border.
65
-
66
62
  required:
67
63
  syntax: boolean
68
64
  type: boolean
69
65
  default: false
70
66
  description: Marks the input as required for form validation.
71
-
72
67
  clearable:
73
68
  syntax: boolean
74
69
  type: boolean
75
70
  default: false
76
71
  description: Shows a clear button when the input has a value.
77
-
78
72
  autofocus:
79
73
  syntax: boolean
80
74
  type: boolean
81
75
  default: false
82
76
  description: Focuses the input on mount.
83
-
84
77
  type:
85
78
  syntax: key-value
86
79
  type: enum
87
- values: [text, email, password, search, url, tel, number]
80
+ values:
81
+ - text
82
+ - email
83
+ - password
84
+ - search
85
+ - url
86
+ - tel
87
+ - number
88
88
  default: text
89
89
  description: HTML input type. Forwarded to the native input.
90
-
91
90
  placeholder:
92
91
  syntax: key-value
93
92
  type: string
94
93
  default: ""
95
94
  description: Placeholder text. Forwarded to the native input.
96
-
97
95
  value:
98
96
  syntax: key-value
99
97
  type: string
100
98
  default: ""
101
99
  description: Current input value. Two-way synced with the native input.
102
-
103
100
  name:
104
101
  syntax: key-value
105
102
  type: string
106
103
  default: ""
107
104
  description: Form submission name. Forwarded to the native input.
108
-
109
105
  pattern:
110
106
  syntax: key-value
111
107
  type: string
112
108
  default: ""
113
109
  description: Regex validation pattern. Forwarded to the native input.
114
-
115
110
  minlength:
116
111
  syntax: key-value
117
112
  type: string
118
113
  default: ""
119
114
  description: Minimum character count.
120
-
121
115
  maxlength:
122
116
  syntax: key-value
123
117
  type: string
124
118
  default: ""
125
119
  description: Maximum character count.
126
-
127
120
  autocomplete:
128
121
  syntax: key-value
129
122
  type: string
130
123
  default: ""
131
124
  description: Browser autocomplete hint. Forwarded to the native input.
132
-
133
125
  debounce:
134
126
  syntax: key-value
135
127
  type: string
136
128
  default: "200"
137
129
  description: Debounce delay in ms for the search event. Only applies when type="search".
138
-
139
130
  no-clear:
140
131
  syntax: boolean
141
132
  type: boolean
142
133
  default: false
143
134
  description: Hides the auto-stamped clear button. Only applies when type="search".
144
-
145
- # ── Modifiers ─────────────────────────────────────────────
146
-
147
- # None — clearable is a component attribute, not a modifier.
148
-
149
- # ── Content model ─────────────────────────────────────────
150
-
151
135
  content:
152
136
  model: mixed
153
- accepts: [input, span, svg, button]
137
+ accepts:
138
+ - input
139
+ - span
140
+ - svg
141
+ - button
154
142
  required: false
155
- description: >
156
- The component auto-stamps a native <input> if none exists.
157
- Slot elements (leading/trailing) are optional. Do not place
158
- block elements inside.
159
-
160
- # ── Slots ─────────────────────────────────────────────────
161
-
143
+ description: |
144
+ The component auto-stamps a native <input> if none exists. Slot elements (leading/trailing) are optional. Do not place block elements inside.
162
145
  slots:
163
146
  default:
164
- accepts: [input]
147
+ accepts:
148
+ - input
165
149
  required: false
166
- description: >
150
+ description: |
167
151
  The native input element. Auto-stamped if not provided.
168
-
169
152
  leading:
170
- accepts: [span, svg, img]
153
+ accepts:
154
+ - span
155
+ - svg
156
+ - img
171
157
  required: false
172
158
  description: Leading icon. Adapts grid to auto 1fr.
173
-
174
159
  trailing:
175
- accepts: [span, svg, img]
160
+ accepts:
161
+ - span
162
+ - svg
163
+ - img
176
164
  required: false
177
165
  description: Trailing icon. Adapts grid to 1fr auto.
178
-
179
- # ── Composition ───────────────────────────────────────────
180
-
181
166
  composition:
182
- parents: [aui-field, aui-stack, aui-grid, form, div]
167
+ parents:
168
+ - aui-field
169
+ - aui-stack
170
+ - aui-grid
171
+ - form
172
+ - div
183
173
  children: null
184
- context: >
185
- Use inside aui-field for labeled form inputs. Can also be
186
- used standalone in search bars, inline editors, or compact
187
- toolbars. The wrapper is the styling surface — the inner
188
- input is a plain native element.
189
-
190
- # ── Constraints ───────────────────────────────────────────
191
-
174
+ context: |
175
+ Use inside aui-field for labeled form inputs. Can also be used standalone in search bars, inline editors, or compact toolbars. The wrapper is the styling surface — the inner input is a plain native element.
192
176
  constraints:
193
177
  - when: inside aui-field
194
178
  require: aui-field[label]
195
- reason: >
196
- Inputs need an accessible label. When used inside aui-field,
197
- the field provides the label. When standalone, add aria-label.
198
-
199
- # ── Accessibility ─────────────────────────────────────────
200
-
179
+ reason: |
180
+ Inputs need an accessible label. When used inside aui-field, the field provides the label. When standalone, add aria-label.
201
181
  a11y:
202
182
  role: implicit (native input)
203
183
  keyboard:
@@ -207,31 +187,21 @@ a11y:
207
187
  aria-disabled: Reflected from disabled attribute.
208
188
  aria-readonly: Reflected from readonly attribute.
209
189
  aria-required: Reflected from required attribute.
210
-
211
- # ── Events ────────────────────────────────────────────────
212
-
213
190
  events:
214
191
  input:
215
192
  description: Fires on every keystroke. Value attribute syncs automatically.
216
193
  change:
217
194
  description: Fires on blur or enter. Bubbles from the native input.
218
195
  search:
219
- description: >
220
- Debounced event fired after typing stops (type="search" only).
221
- Detail contains { value: string }.
222
-
223
- # ── CSS implementation notes ──────────────────────────────
224
-
196
+ description: |
197
+ Debounced event fired after typing stops (type="search" only). Detail contains { value: string }.
225
198
  css-notes:
226
199
  attr-audit:
227
200
  - "AB1: [disabled], [readonly], [clearable] — all visual states via attributes"
228
201
  - "AB5: No classes used — all state is attribute-driven"
229
- - ":focus-within on wrapper — delegates focus ring to the container"
230
- - ":has(> [slot='leading']) — slot-adaptive grid, same pattern as button"
231
- - ":not(:has(> input:not(:placeholder-shown))) — hides clear button when empty"
232
-
233
- # ── CSS tokens consumed ──────────────────────────────────
234
-
202
+ - :focus-within on wrapper — delegates focus ring to the container
203
+ - :has(> [slot='leading']) — slot-adaptive grid, same pattern as button
204
+ - :not(:has(> input:not(:placeholder-shown))) — hides clear button when empty
235
205
  tokens:
236
206
  - name: --aui-input-size
237
207
  default: var(--aui-size)
@@ -284,58 +254,48 @@ tokens:
284
254
  - name: --aui-input-border-focus
285
255
  default: var(--aui-focus)
286
256
  description: Border and outline color on focus.
287
-
288
- # ── Examples ──────────────────────────────────────────────
289
-
290
257
  examples:
291
- - html: <aui-input placeholder="Enter text"></aui-input>
292
- description: Basic text input.
293
-
294
- - html: <aui-input type="email" placeholder="you@example.com"></aui-input>
295
- description: Email input.
296
-
297
- - html: <aui-input type="password" placeholder="Password"></aui-input>
298
- description: Password input.
299
-
300
- - html: <aui-input placeholder="Search" clearable></aui-input>
301
- description: Clearable input with clear button.
302
-
303
- - html: <aui-input placeholder="Disabled" disabled></aui-input>
304
- description: Disabled input.
305
-
306
- - html: <aui-input value="Read only" readonly></aui-input>
307
- description: Read-only input with dashed border.
308
-
309
- - html: |
258
+ - description: Basic text input
259
+ html: <aui-input placeholder="Enter text"></aui-input>
260
+ - description: Email input
261
+ html: <aui-input type="email" placeholder="you@example.com"></aui-input>
262
+ - description: Password input
263
+ html: <aui-input type="password" placeholder="Password"></aui-input>
264
+ - description: Clearable input with clear button
265
+ html: <aui-input placeholder="Search" clearable></aui-input>
266
+ - description: Disabled input
267
+ html: <aui-input placeholder="Disabled" disabled></aui-input>
268
+ - description: Read-only input with dashed border
269
+ html: <aui-input value="Read only" readonly></aui-input>
270
+ - description: Input with leading icon
271
+ html: |-
310
272
  <aui-input placeholder="Search">
311
273
  <span slot="leading">🔍</span>
312
274
  </aui-input>
313
- description: Input with leading icon.
314
-
315
- - html: |
275
+ - description: Input with leading and trailing icons
276
+ html: |-
316
277
  <aui-input type="email" placeholder="Email">
317
278
  <span slot="leading">✉</span>
318
279
  <span slot="trailing">✓</span>
319
280
  </aui-input>
320
- description: Input with leading and trailing icons.
321
-
322
- - html: |
281
+ - description: Input inside a labeled field
282
+ html: |-
323
283
  <aui-field label="Email" required>
324
284
  <aui-input type="email" placeholder="you@example.com"></aui-input>
325
285
  </aui-field>
326
- description: Input inside a labeled field.
327
-
328
- - html: |
286
+ - description: Input with error state via parent field
287
+ html: |-
329
288
  <aui-field label="Username" error="Already taken.">
330
289
  <aui-input value="admin"></aui-input>
331
290
  </aui-field>
332
- description: Input with error state via parent field.
333
-
334
- - html: <aui-input type="search" placeholder="Search..."></aui-input>
335
- description: Search input with automatic leading icon and clear button.
336
-
337
- - html: <aui-input type="search" placeholder="Search..." debounce="500"></aui-input>
338
- description: Search input with custom 500ms debounce.
339
-
340
- - html: <aui-input type="search" placeholder="Search..." no-clear></aui-input>
341
- description: Search input without the clear button.
291
+ - description: Search input with auto icon and clear
292
+ html: <aui-input type="search" placeholder="Search..."></aui-input>
293
+ - description: Search input with custom debounce (500ms)
294
+ html: <aui-input type="search" placeholder="Search..." debounce="500"></aui-input>
295
+ - description: Search input without clear button
296
+ html: <aui-input type="search" placeholder="Search..." no-clear></aui-input>
297
+ - description: Search input inside a field
298
+ html: |-
299
+ <aui-field label="Filter">
300
+ <aui-input type="search" placeholder="Filter items..." width="full"></aui-input>
301
+ </aui-field>
@@ -0,0 +1,59 @@
1
+ name: aui-inset
2
+ tag: aui-inset
3
+ type: element
4
+ summary: Density-aware padding wrapper.
5
+ description: |
6
+ Block-level padding container. Padding scales with density via --aui-pad-* tokens. Use inside containers for consistent content spacing without adding padding to the container itself.
7
+ presentational:
8
+ density:
9
+ syntax: key-value
10
+ attribute: density
11
+ cascades: true
12
+ default: regular
13
+ values:
14
+ - compact
15
+ - spacious
16
+ description: |
17
+ Controls padding scale. Typically inherited from a parent rather than set directly on the inset.
18
+ content:
19
+ model: block
20
+ accepts: any
21
+ required: true
22
+ description: |
23
+ Any content — text, block elements, other aui elements. Inset only adds padding; it does not alter layout flow.
24
+ slots:
25
+ default:
26
+ accepts:
27
+ - any
28
+ required: true
29
+ description: Inset content.
30
+ composition:
31
+ parents:
32
+ - aui-content
33
+ - aui-stack
34
+ - div
35
+ - section
36
+ - main
37
+ - article
38
+ children: any
39
+ context: |
40
+ The standard way to add content padding. Use inside aui-content for padded scrollable content. Use inside cards or dialogs for consistent insets. Density inherits from ancestors — a compact parent automatically tightens the inset padding.
41
+ tokens:
42
+ spacing:
43
+ - --aui-pad-container
44
+ examples:
45
+ - description: Default density inset
46
+ html: |-
47
+ <div style="border: 1px dashed var(--aui-border-muted);">
48
+ <aui-inset>Default density padding</aui-inset>
49
+ </div>
50
+ - description: Compact density inset (density set on parent, cascades down)
51
+ html: |-
52
+ <div density="compact" style="border: 1px dashed var(--aui-border-muted);">
53
+ <aui-inset>Compact density padding</aui-inset>
54
+ </div>
55
+ - description: Spacious density inset
56
+ html: |-
57
+ <div density="spacious" style="border: 1px dashed var(--aui-border-muted);">
58
+ <aui-inset>Spacious density padding</aui-inset>
59
+ </div>
@@ -0,0 +1,57 @@
1
+ name: aui-kbd
2
+ tag: aui-kbd
3
+ type: element
4
+ summary: Keyboard shortcut indicator styled as a key cap.
5
+ description: |
6
+ Inline element styled like a physical key cap. Uses monospace font. Compose multiple aui-kbd in a row to show key combinations. Purely decorative — no keyboard interaction handling.
7
+ content:
8
+ model: inline
9
+ accepts:
10
+ - text
11
+ required: true
12
+ description: |
13
+ Single key label — one character (K, ⌘, ⇧) or short word (Ctrl, Shift, Enter). Keep to one key per element.
14
+ slots:
15
+ default:
16
+ accepts:
17
+ - text
18
+ required: true
19
+ description: Key label text.
20
+ composition:
21
+ parents:
22
+ - aui-stack
23
+ - span
24
+ - p
25
+ - div
26
+ - td
27
+ children: null
28
+ pattern: |
29
+ Compose multiple aui-kbd elements in a row to show key combinations. Use aui-stack direction="row" gap="1" as the container, or inline within text.
30
+ context: |
31
+ Use in documentation, tooltips, menu item hints. For a "Cmd+K" shortcut, render as two adjacent aui-kbd elements.
32
+ tokens:
33
+ typography:
34
+ - --aui-font-family-mono
35
+ - --aui-widget-font
36
+ color:
37
+ - --aui-ink-muted
38
+ - --aui-control
39
+ - --aui-border-muted
40
+ shape:
41
+ - --aui-radius-sharp
42
+ examples:
43
+ - description: Single key
44
+ html: <aui-kbd>K</aui-kbd>
45
+ - description: Key combination (Cmd+K)
46
+ html: |-
47
+ <aui-stack direction="row" gap="1" align-items="center">
48
+ <aui-kbd>⌘</aui-kbd>
49
+ <aui-kbd>K</aui-kbd>
50
+ </aui-stack>
51
+ - description: Multi-key shortcut
52
+ html: |-
53
+ <aui-stack direction="row" gap="1" align-items="center">
54
+ <aui-kbd>Ctrl</aui-kbd>
55
+ <aui-kbd>Shift</aui-kbd>
56
+ <aui-kbd>P</aui-kbd>
57
+ </aui-stack>
@@ -2,84 +2,75 @@ name: aui-link
2
2
  tag: aui-link
3
3
  type: component
4
4
  summary: Styled anchor for inline and standalone links.
5
- description: >
6
- Inline link element with consistent styling, hover underline,
7
- and focus ring. Supports muted and intent coloring. External
8
- attribute appends an arrow icon via CSS ::after pseudo-element.
9
-
5
+ description: |
6
+ Inline link element with consistent styling, hover underline, and focus ring. Supports muted and intent coloring. External attribute appends an arrow icon via CSS ::after pseudo-element.
10
7
  base: AgentElement
11
-
12
- # ── Presentational attributes ─────────────────────────────
13
-
14
8
  presentational:
15
9
  intent:
16
10
  syntax: boolean
17
11
  exclusive: true
18
12
  cascades: false
19
13
  default: accent
20
- values: [accent, success, warning, danger]
14
+ values:
15
+ - accent
16
+ - success
17
+ - warning
18
+ - danger
21
19
  description: Link color family.
22
-
23
- # ── Modifiers ─────────────────────────────────────────────
24
-
25
20
  modifiers:
26
21
  muted:
27
22
  syntax: boolean
28
- description: >
29
- Uses muted text color instead of accent. Hover restores
30
- full text color.
31
-
23
+ description: |
24
+ Uses muted text color instead of accent. Hover restores full text color.
32
25
  external:
33
26
  syntax: boolean
34
- description: >
35
- Appends an external-link arrow icon via CSS ::after.
36
- Indicates the link opens an external destination.
37
-
38
- # ── Attributes ────────────────────────────────────────────
39
-
27
+ description: |
28
+ Appends an external-link arrow icon via CSS ::after. Indicates the link opens an external destination.
40
29
  attributes:
41
30
  href:
42
31
  type: URL
43
32
  required: false
44
33
  description: Link destination URL.
45
-
46
- # ── Content model ─────────────────────────────────────────
47
-
48
34
  content:
49
35
  model: inline
50
- accepts: [text, aui-icon]
36
+ accepts:
37
+ - text
38
+ - aui-icon
51
39
  required: true
52
- description: >
40
+ description: |
53
41
  Link label text. Keep concise — one to a few words.
54
-
55
- # ── Slots ─────────────────────────────────────────────────
56
-
57
42
  slots:
58
43
  default:
59
- accepts: [text, aui-icon]
44
+ accepts:
45
+ - text
46
+ - aui-icon
60
47
  required: true
61
48
  description: Link label text.
62
-
63
- # ── CSS tokens consumed ──────────────────────────────────
64
-
65
49
  tokens:
66
50
  color:
67
51
  - --aui-link-color
68
52
  - --aui-link-color-hover
69
53
  shape:
70
54
  - --aui-link-radius
71
-
72
- # ── Examples ──────────────────────────────────────────────
73
-
74
55
  examples:
75
- - html: <aui-link href="/about">Learn more</aui-link>
76
- description: Basic accent link.
77
-
78
- - html: <aui-link href="https://example.com" external>Visit site</aui-link>
79
- description: External link with arrow icon.
80
-
81
- - html: |
56
+ - description: Basic accent link
57
+ html: <aui-link href="/about">Learn more</aui-link>
58
+ - description: Muted secondary link
59
+ html: <aui-link href="/docs" muted>Documentation</aui-link>
60
+ - description: External link with arrow icon
61
+ html: <aui-link href="https://example.com" external>Visit site</aui-link>
62
+ - description: Danger intent link
63
+ html: <aui-link href="/delete" danger>Delete account</aui-link>
64
+ - description: Inline link within text flow
65
+ html: |-
82
66
  <aui-text>
83
67
  Read the <aui-link href="/terms">terms of service</aui-link> before continuing.
84
68
  </aui-text>
85
- description: Inline link within text flow.
69
+ - description: Row of link variants
70
+ html: |-
71
+ <aui-stack direction="row" gap="4">
72
+ <aui-link href="/about">About</aui-link>
73
+ <aui-link href="/docs" muted>Docs</aui-link>
74
+ <aui-link href="https://github.com" external>GitHub</aui-link>
75
+ <aui-link href="/delete" danger>Delete</aui-link>
76
+ </aui-stack>