@adia-ai/web-components 0.6.21 → 0.6.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -0
- package/components/accordion/accordion-item.a2ui.json +20 -3
- package/components/accordion/accordion-item.yaml +24 -0
- package/components/accordion/accordion.a2ui.json +1 -1
- package/components/accordion/accordion.d.ts +8 -1
- package/components/accordion/accordion.yaml +15 -2
- package/components/action-list/action-item.a2ui.json +19 -3
- package/components/action-list/action-item.yaml +24 -0
- package/components/action-list/action-list.a2ui.json +12 -2
- package/components/action-list/action-list.yaml +13 -3
- package/components/agent-artifact/agent-artifact.a2ui.json +9 -2
- package/components/agent-artifact/agent-artifact.d.ts +1 -1
- package/components/agent-artifact/agent-artifact.yaml +17 -3
- package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +9 -2
- package/components/agent-feedback-bar/agent-feedback-bar.d.ts +8 -1
- package/components/agent-feedback-bar/agent-feedback-bar.yaml +19 -3
- package/components/agent-questions/agent-questions.a2ui.json +8 -2
- package/components/agent-questions/agent-questions.d.ts +8 -1
- package/components/agent-questions/agent-questions.yaml +19 -3
- package/components/agent-reasoning/agent-reasoning.yaml +9 -1
- package/components/agent-suggestions/agent-suggestions.a2ui.json +9 -2
- package/components/agent-suggestions/agent-suggestions.d.ts +7 -1
- package/components/agent-suggestions/agent-suggestions.yaml +18 -3
- package/components/agent-trace/agent-trace.a2ui.json +9 -2
- package/components/agent-trace/agent-trace.d.ts +1 -1
- package/components/agent-trace/agent-trace.yaml +16 -3
- package/components/alert/alert.a2ui.json +1 -1
- package/components/alert/alert.css +8 -0
- package/components/alert/alert.d.ts +9 -1
- package/components/alert/alert.yaml +16 -2
- package/components/aside/aside.a2ui.json +7 -1
- package/components/aside/aside.yaml +33 -2
- package/components/avatar/avatar-group.a2ui.json +20 -3
- package/components/avatar/avatar-group.yaml +24 -0
- package/components/avatar/avatar.a2ui.json +1 -1
- package/components/avatar/avatar.d.ts +7 -1
- package/components/avatar/avatar.yaml +14 -2
- package/components/badge/badge.a2ui.json +1 -1
- package/components/badge/badge.d.ts +7 -1
- package/components/badge/badge.yaml +14 -2
- package/components/block/block.a2ui.json +9 -4
- package/components/block/block.d.ts +9 -3
- package/components/block/block.yaml +25 -5
- package/components/block/class.js +23 -0
- package/components/breadcrumb/breadcrumb.a2ui.json +5 -1
- package/components/breadcrumb/breadcrumb.yaml +33 -2
- package/components/button/button.a2ui.json +22 -2
- package/components/button/button.yaml +21 -3
- package/components/calendar-picker/calendar-picker.a2ui.json +1 -1
- package/components/calendar-picker/calendar-picker.yaml +13 -2
- package/components/canvas/canvas.a2ui.json +6 -2
- package/components/canvas/canvas.yaml +20 -3
- package/components/card/card.css +23 -2
- package/components/card/card.yaml +12 -0
- package/components/chart/chart.css +4 -2
- package/components/chart/chart.yaml +9 -1
- package/components/chart-legend/chart-legend.yaml +7 -1
- package/components/chat-thread/chat-thread.a2ui.json +6 -2
- package/components/chat-thread/chat-thread.d.ts +8 -1
- package/components/chat-thread/chat-thread.yaml +21 -3
- package/components/check/check.a2ui.json +13 -3
- package/components/check/check.yaml +18 -3
- package/components/code/code.a2ui.json +1 -1
- package/components/code/code.yaml +13 -2
- package/components/col/class.js +39 -0
- package/components/col/col.a2ui.json +12 -5
- package/components/col/col.d.ts +12 -4
- package/components/col/col.yaml +27 -7
- package/components/color-input/color-input.yaml +27 -1
- package/components/color-picker/color-picker.a2ui.json +8 -2
- package/components/color-picker/color-picker.yaml +15 -3
- package/components/command/command.a2ui.json +7 -2
- package/components/command/command.d.ts +9 -1
- package/components/command/command.yaml +39 -3
- package/components/demo-toggle/demo-toggle.yaml +7 -1
- package/components/description-list/description-list.a2ui.json +5 -1
- package/components/description-list/description-list.yaml +11 -2
- package/components/divider/divider.a2ui.json +1 -1
- package/components/divider/divider.d.ts +8 -1
- package/components/divider/divider.yaml +15 -2
- package/components/drawer/drawer.yaml +32 -1
- package/components/embed/embed.a2ui.json +1 -1
- package/components/embed/embed.d.ts +8 -1
- package/components/embed/embed.yaml +17 -2
- package/components/empty-state/empty-state.a2ui.json +19 -2
- package/components/empty-state/empty-state.css +14 -0
- package/components/empty-state/empty-state.d.ts +3 -1
- package/components/empty-state/empty-state.yaml +50 -3
- package/components/feed/feed-item.a2ui.json +21 -3
- package/components/feed/feed-item.yaml +25 -0
- package/components/feed/feed.a2ui.json +23 -3
- package/components/feed/feed.yaml +26 -0
- package/components/fields/fields.yaml +7 -1
- package/components/footer/footer.a2ui.json +7 -1
- package/components/footer/footer.yaml +27 -2
- package/components/grid/class.js +57 -0
- package/components/grid/grid.a2ui.json +3 -3
- package/components/grid/grid.d.ts +3 -3
- package/components/grid/grid.yaml +22 -8
- package/components/header/header.a2ui.json +8 -1
- package/components/header/header.yaml +30 -2
- package/components/heatmap/heatmap.yaml +7 -1
- package/components/icon/icon.a2ui.json +9 -2
- package/components/icon/icon.d.ts +1 -1
- package/components/icon/icon.yaml +32 -3
- package/components/image/image.yaml +7 -1
- package/components/input/input.yaml +29 -1
- package/components/inspector/inspector.a2ui.json +7 -2
- package/components/inspector/inspector.d.ts +9 -1
- package/components/inspector/inspector.yaml +23 -3
- package/components/kbd/kbd.a2ui.json +1 -1
- package/components/kbd/kbd.d.ts +1 -1
- package/components/kbd/kbd.yaml +11 -2
- package/components/list/list-item.a2ui.json +21 -3
- package/components/list/list-item.yaml +25 -0
- package/components/list/list.a2ui.json +7 -2
- package/components/list/list.d.ts +9 -1
- package/components/list/list.yaml +21 -3
- package/components/menu/menu-divider.a2ui.json +17 -3
- package/components/menu/menu-divider.yaml +35 -0
- package/components/menu/menu-item.a2ui.json +19 -3
- package/components/menu/menu-item.yaml +42 -0
- package/components/menu/menu.a2ui.json +7 -1
- package/components/menu/menu.yaml +33 -2
- package/components/modal/modal.a2ui.json +7 -2
- package/components/modal/modal.d.ts +10 -1
- package/components/modal/modal.yaml +48 -3
- package/components/nav/nav.a2ui.json +16 -2
- package/components/nav/nav.yaml +40 -3
- package/components/nav-group/nav-group.a2ui.json +12 -2
- package/components/nav-group/nav-group.yaml +37 -3
- package/components/nav-item/nav-item.a2ui.json +13 -2
- package/components/nav-item/nav-item.yaml +40 -3
- package/components/noodles/noodles.a2ui.json +12 -2
- package/components/noodles/noodles.yaml +14 -3
- package/components/option-card/option-card.yaml +27 -1
- package/components/otp-input/otp-input.yaml +24 -1
- package/components/page/page.a2ui.json +7 -1
- package/components/page/page.yaml +9 -2
- package/components/pagination/pagination.a2ui.json +1 -1
- package/components/pagination/pagination.d.ts +1 -1
- package/components/pagination/pagination.yaml +13 -2
- package/components/pane/pane.a2ui.json +1 -1
- package/components/pane/pane.d.ts +7 -1
- package/components/pane/pane.yaml +33 -2
- package/components/pipeline-status/pipeline-status.a2ui.json +6 -2
- package/components/pipeline-status/pipeline-status.d.ts +1 -1
- package/components/pipeline-status/pipeline-status.yaml +18 -3
- package/components/popover/popover.yaml +30 -1
- package/components/progress/progress.a2ui.json +1 -1
- package/components/progress/progress.d.ts +1 -1
- package/components/progress/progress.yaml +13 -2
- package/components/progress-row/progress-row.a2ui.json +12 -2
- package/components/progress-row/progress-row.yaml +13 -3
- package/components/radio/radio.a2ui.json +1 -1
- package/components/radio/radio.yaml +9 -1
- package/components/range/range.yaml +7 -1
- package/components/rating/rating.a2ui.json +4 -1
- package/components/rating/rating.yaml +10 -2
- package/components/richtext/richtext.a2ui.json +6 -2
- package/components/richtext/richtext.d.ts +9 -1
- package/components/richtext/richtext.yaml +20 -3
- package/components/row/class.js +34 -0
- package/components/row/row.a2ui.json +11 -5
- package/components/row/row.d.ts +11 -4
- package/components/row/row.yaml +25 -7
- package/components/search/search.a2ui.json +5 -1
- package/components/search/search.yaml +11 -2
- package/components/section/section.a2ui.json +7 -1
- package/components/section/section.yaml +36 -2
- package/components/segment/segment.a2ui.json +8 -2
- package/components/segment/segment.d.ts +7 -1
- package/components/segment/segment.yaml +16 -3
- package/components/segmented/segmented.a2ui.json +6 -1
- package/components/segmented/segmented.css +5 -0
- package/components/segmented/segmented.yaml +12 -2
- package/components/select/select.a2ui.json +1 -1
- package/components/select/select.yaml +34 -2
- package/components/skeleton/skeleton.a2ui.json +7 -2
- package/components/skeleton/skeleton.d.ts +1 -1
- package/components/skeleton/skeleton.yaml +17 -3
- package/components/slider/slider.yaml +7 -1
- package/components/stack/stack.a2ui.json +14 -3
- package/components/stack/stack.d.ts +9 -1
- package/components/stack/stack.yaml +22 -4
- package/components/stat/stat.a2ui.json +6 -2
- package/components/stat/stat.css +5 -2
- package/components/stat/stat.d.ts +1 -1
- package/components/stat/stat.yaml +16 -3
- package/components/step-progress/step-progress.yaml +7 -1
- package/components/stepper/stepper-item.a2ui.json +20 -3
- package/components/stepper/stepper-item.yaml +24 -0
- package/components/stepper/stepper.a2ui.json +1 -1
- package/components/stepper/stepper.d.ts +1 -1
- package/components/stepper/stepper.yaml +13 -2
- package/components/stream/stream.a2ui.json +12 -2
- package/components/stream/stream.yaml +15 -3
- package/components/swatch/swatch.yaml +7 -1
- package/components/swiper/swiper.yaml +7 -1
- package/components/switch/switch.a2ui.json +6 -2
- package/components/switch/switch.yaml +16 -2
- package/components/table/cell-types.js +23 -10
- package/components/table/class.js +6 -2
- package/components/table/table.css +49 -1
- package/components/table/table.yaml +27 -1
- package/components/table-toolbar/table-toolbar.yaml +27 -1
- package/components/tabs/tab.a2ui.json +17 -3
- package/components/tabs/tab.yaml +39 -0
- package/components/tabs/tabs.a2ui.json +1 -1
- package/components/tabs/tabs.d.ts +1 -1
- package/components/tabs/tabs.yaml +36 -2
- package/components/tag/tag.a2ui.json +6 -2
- package/components/tag/tag.d.ts +9 -1
- package/components/tag/tag.yaml +38 -3
- package/components/text/class.js +13 -0
- package/components/text/text.a2ui.json +9 -2
- package/components/text/text.d.ts +1 -1
- package/components/text/text.yaml +12 -5
- package/components/textarea/textarea.a2ui.json +15 -3
- package/components/textarea/textarea.yaml +41 -4
- package/components/timeline/timeline-item.a2ui.json +20 -3
- package/components/timeline/timeline-item.yaml +24 -0
- package/components/timeline/timeline.a2ui.json +8 -1
- package/components/timeline/timeline.yaml +9 -2
- package/components/toast/toast.a2ui.json +6 -2
- package/components/toast/toast.yaml +19 -3
- package/components/toggle-group/toggle-group.a2ui.json +13 -3
- package/components/toggle-group/toggle-group.d.ts +1 -1
- package/components/toggle-group/toggle-group.yaml +19 -4
- package/components/toggle-group/toggle-option.a2ui.json +18 -3
- package/components/toggle-group/toggle-option.yaml +23 -0
- package/components/toggle-scheme/toggle-scheme.yaml +4 -0
- package/components/toolbar/toolbar-group.a2ui.json +18 -3
- package/components/toolbar/toolbar-group.yaml +23 -0
- package/components/toolbar/toolbar.yaml +7 -1
- package/components/tooltip/tooltip.yaml +24 -1
- package/components/tree/tree-item.a2ui.json +19 -3
- package/components/tree/tree-item.yaml +42 -0
- package/components/tree/tree.a2ui.json +6 -1
- package/components/tree/tree.yaml +31 -2
- package/components/upload/upload.yaml +7 -1
- package/core/index.js +1 -0
- package/core/responsive.d.ts +29 -0
- package/core/responsive.js +120 -0
- package/core/responsive.test.js +121 -0
- package/package.json +1 -1
- package/styles/tokens.css +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# Changelog — @adia-ai/web-components
|
|
2
2
|
|
|
3
|
+
## [0.6.22] — 2026-05-22
|
|
4
|
+
|
|
5
|
+
### Added — `@bp` responsive attribute system (`core/responsive.js`)
|
|
6
|
+
|
|
7
|
+
- New `core/responsive.js` exports `BREAKPOINTS`, `BP_NAMES`, a shared `breakpoint` signal (matchMedia-driven; SSR-safe), and `parseResponsive(value, activeBp)`. Mobile-first: unannotated value = base; `@bp` applies at that breakpoint and wider. Reading `breakpoint.value` inside any UIElement `render()` auto-subscribes — no manual listener wiring needed.
|
|
8
|
+
- **`grid-ui`**: `columns`, `gap` accept `@bp` (e.g. `columns="2 4@md"`). `render()` also sets `gridAutoFlow:row` + `gridAutoColumns:auto` so items wrap correctly — the default `grid-auto-flow:column` would otherwise spread them horizontally.
|
|
9
|
+
- **`col-ui`**: `gap`, `align`, `justify` accept `@bp`. `align` sets `text-align` inline to mirror the CSS attribute side-effect.
|
|
10
|
+
- **`row-ui`**: `gap`, `align`, `justify` accept `@bp`.
|
|
11
|
+
- **`text-ui`**: `size` accepts `@bp` (`size="sm md@lg"`).
|
|
12
|
+
- **`block-ui`**: `padding`, `margin` accept `@bp` (`padding="sm md@lg"`).
|
|
13
|
+
- Subscription is lazy: each component only subscribes to the breakpoint signal when at least one prop contains `@`.
|
|
14
|
+
|
|
15
|
+
### Added — `empty-state-ui` `variant="danger|warning"`
|
|
16
|
+
|
|
17
|
+
- New `variant` prop (default|danger|warning). Colors icon and text via danger/warning semantic tokens — **no background tint or border** (by design: an empty-state occupies the full content surface; a tinted box would frame absent content). Use `variant="danger"` for full-section error states where content cannot be shown; the centered layout is more appropriate than an inline alert banner when data is absent. File: `components/empty-state/empty-state.css`.
|
|
18
|
+
|
|
19
|
+
### Fixed — `card-ui` sparkline cards fill available height
|
|
20
|
+
|
|
21
|
+
- `card.css`: `:has(> section[bleed] > chart-ui)` switches matching cards to `flex-direction: column`; bleed section gets `flex: 1; min-height: 0`. Scoped tightly — no effect on other card layouts.
|
|
22
|
+
- `chart.css`: sparkline type gains `height: 100%`. Computes to `auto` when parent has no explicit height (backward-compatible); fills flex-grown height when available.
|
|
23
|
+
|
|
24
|
+
### Fixed — `alert-ui` missing `[slot="action"]` CSS rule
|
|
25
|
+
|
|
26
|
+
- `slot="action"` was documented in `alert.yaml` but had no CSS. Added `flex-shrink: 0; align-self: start` so action content behaves as a proper trailing flex item.
|
|
27
|
+
|
|
28
|
+
### Fixed — `segmented-ui` overflow: labels now truncate with ellipsis
|
|
29
|
+
|
|
30
|
+
- `segmented.css`: added `min-width: 0` to `:scope`. `inline-grid` previously never shrank below its max-content width in flex contexts, leaving the `::after { text-overflow: ellipsis }` rule in `segment.css` (already correct) unreachable.
|
|
31
|
+
- `card.css`: changed card header action column from `max-content` → `auto` (`minmax(min-content, max-content)`). `max-content` prevented the action column from shrinking. Added `min-width: 0` to `[slot="action"]`. Chain: card narrows → action column shrinks → action flex shrinks → segmented-ui shrinks → segments share available width → `::after` ellipsis fires.
|
|
32
|
+
|
|
33
|
+
### Fixed — `stat-ui [slot="label"]` now truncates with ellipsis
|
|
34
|
+
|
|
35
|
+
- **`[slot="label"]` (the eyebrow line above the value) was missing the overflow-ellipsis triad** that `[slot="value"]` already carried. Long label strings clipped hard at the grid cell boundary with no `…`. Added `overflow: hidden; text-overflow: ellipsis; white-space: nowrap` to bring the two sibling slots into parity. File: `components/stat/stat.css`.
|
|
36
|
+
|
|
37
|
+
### Fixed — `table-ui` column headers now truncate with ellipsis
|
|
38
|
+
|
|
39
|
+
- **Column headers had `white-space: nowrap` but no overflow clipping**, so long header text overflowed into adjacent cells. `overflow: hidden` cannot be applied to the `[role="columnheader"]` directly — it would clip the `position: absolute` filter dropdown rendered inside it. Fix: converted `[role="columnheader"]` to `display: flex; align-items: center` and added `flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap` on the label `<span>` child (already created by `class.js`). Sort icons and filter buttons remain fully visible at their natural size; only the label text truncates. File: `components/table/table.css`.
|
|
40
|
+
|
|
41
|
+
### Fixed — `table-ui` body cells now show ellipsis (not just hard clipping)
|
|
42
|
+
|
|
43
|
+
- **Body cells declared `text-overflow: ellipsis` but showed hard clipping with no `…` character.** Root cause: `text-overflow: ellipsis` on a `display: flex` container has no effect on anonymous flex items (text nodes set via `cell.textContent`). All 6 built-in text-scalar cell types (`text`, `number`, `currency`, `percent`, `date`, `datetime`) and the two `class.js` fallback paths now wrap text in a `<span>` child element. CSS rules targeting `[role="gridcell"] > span` and `> a` (link type) carry `flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap`. Rules for `> row-ui { min-width: 0; overflow: hidden }` and `> row-ui > span` cover the avatar and progress composite types. The `[wrap]` opt-in is extended to reset child-element overflow properties so per-table or per-column wrap still works. Files: `components/table/cell-types.js`, `components/table/class.js`, `components/table/table.css`.
|
|
44
|
+
|
|
45
|
+
### Changed — UI context inset/gap scale reduced
|
|
46
|
+
|
|
47
|
+
- **`--a-inset-sm/md/lg` and `--a-gap-sm/md/lg` shifted down the space scale** to better suit dense UI surfaces. New values at `--a-density: 1`: inset sm 16→8px, md 24→16px, lg 32→24px; gap sm 12→8px, md 16→12px, lg 24→16px. The `[prose]` context is unchanged — it stays coarser by design. File: `styles/tokens.css`.
|
|
48
|
+
|
|
49
|
+
### Changed — `stat-ui` gap tokens cascade with container size context
|
|
50
|
+
|
|
51
|
+
- **`--stat-column-gap` and `--stat-row-gap` are now `var(--a-gap)` and `var(--a-gap-sm)`** instead of hardcoded space tokens. When a parent container sets `size="sm"` or `size="lg"`, stat-ui gaps adapt automatically. File: `components/stat/stat.css`.
|
|
52
|
+
|
|
53
|
+
### Documentation — 21 component examples pages corrected
|
|
54
|
+
|
|
55
|
+
- **YAML-vs-HTML audit of all 93 components** found 58 with missing or stale API documentation. 21 fixed: missing props added, stale enum values corrected (`block`→`stretch` for button, `error`→`danger` for tag/alert, size ranges extended), full API sections added where absent (link, field, nav, nav-group, nav-item). See journal §411–§418 for the complete list.
|
|
56
|
+
|
|
57
|
+
### Documentation — `packages/web-components/patterns/` + `packages/web-components/traits/` examples sweep
|
|
58
|
+
|
|
59
|
+
- **§407 ripple sweep on `patterns/` + `traits/` examples.html files.** As a side-effect of the §407 spacing-scale rebase + table-truncation work, demo pages for `conversion-funnel`, `editor-shell`, `form-drawer`, `record-detail-drawer`, `retention-cohort`, `wizard-drawer` (patterns) and `active-state`, `arrow-grid-nav`, `draggable-list-item`, `drop-target`, `focus-restore`, `focus-trap`, `focusable`, `hotkey`, `hoverable` (traits) were re-stamped to use the new inset/gap tokens consistently.
|
|
60
|
+
|
|
3
61
|
## [0.6.21] — 2026-05-21
|
|
4
62
|
|
|
5
63
|
### Changed — `table-ui` body cells truncate by default (opt-in wrap via `[wrap]` / `[data-wrap]`)
|
|
@@ -46,9 +46,19 @@
|
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"examples": [],
|
|
49
|
-
"keywords": [
|
|
49
|
+
"keywords": [
|
|
50
|
+
"accordion-item",
|
|
51
|
+
"collapsible",
|
|
52
|
+
"disclosure",
|
|
53
|
+
"expand",
|
|
54
|
+
"collapse-row",
|
|
55
|
+
"section-toggle"
|
|
56
|
+
],
|
|
50
57
|
"name": "UIAccordionItem",
|
|
51
|
-
"related": [
|
|
58
|
+
"related": [
|
|
59
|
+
"Accordion",
|
|
60
|
+
"Card"
|
|
61
|
+
],
|
|
52
62
|
"slots": {
|
|
53
63
|
"action": {
|
|
54
64
|
"description": "§206 (v0.5.7): action buttons inside a custom header (e.g. Copy /\nDownload / settings). Children placed at `[slot=\"action\"]` (or\n`[slot=\"actions\"]`, or marked `[data-no-toggle]`) are excluded from\nthe toggle-on-click cascade — clicking them fires their own handler\nwithout also toggling the section."
|
|
@@ -58,7 +68,14 @@
|
|
|
58
68
|
}
|
|
59
69
|
},
|
|
60
70
|
"states": [],
|
|
61
|
-
"synonyms": {
|
|
71
|
+
"synonyms": {
|
|
72
|
+
"accordion-item": [
|
|
73
|
+
"collapsible-row",
|
|
74
|
+
"disclosure-row",
|
|
75
|
+
"expansion-panel",
|
|
76
|
+
"expander"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
62
79
|
"tag": "accordion-item-ui",
|
|
63
80
|
"tokens": {},
|
|
64
81
|
"traits": [],
|
|
@@ -45,3 +45,27 @@ events:
|
|
|
45
45
|
open:
|
|
46
46
|
type: boolean
|
|
47
47
|
description: New open state.
|
|
48
|
+
|
|
49
|
+
keywords:
|
|
50
|
+
- accordion-item
|
|
51
|
+
- collapsible
|
|
52
|
+
- disclosure
|
|
53
|
+
- expand
|
|
54
|
+
- collapse-row
|
|
55
|
+
- section-toggle
|
|
56
|
+
|
|
57
|
+
synonyms:
|
|
58
|
+
accordion-item: [collapsible-row, disclosure-row, expansion-panel, expander]
|
|
59
|
+
|
|
60
|
+
related:
|
|
61
|
+
- Accordion
|
|
62
|
+
- Card
|
|
63
|
+
|
|
64
|
+
a2ui:
|
|
65
|
+
rules:
|
|
66
|
+
- rule: 'Child of <accordion-ui> — places one collapsible section with header + body.'
|
|
67
|
+
reason: 'Cluster contract.'
|
|
68
|
+
- rule: 'Toggle behavior: click anywhere on the row toggles, unless inside [slot=''actions''] or [data-no-toggle].'
|
|
69
|
+
reason: 'Built-in cascade; do not wire onclick yourself.'
|
|
70
|
+
- rule: 'For single-button disclosures (one expanding panel without a list) use <details>/<summary> or compose <button-ui> + <section-ui>.'
|
|
71
|
+
reason: 'Accordion-item assumes sibling-context.'
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/Accordion.json",
|
|
4
4
|
"title": "Accordion",
|
|
5
|
-
"description": "Accordion container managing single
|
|
5
|
+
"description": "Accordion container managing single or multiple open states across\na collection of <accordion-item-ui> children. Each item carries its\nown [open] reflected state; the accordion host coordinates exclusive\nopening when [multiple] is unset (default single-open mode). Use\ninside settings pages, FAQ blocks, or any progressive-disclosure\npattern where one-level collapsible groups suffice — for arbitrary\nhierarchy use <tree-ui>; for in-page view switching use <tabs-ui>.\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<accordion-ui>` — Accordion container managing single
|
|
2
|
+
* `<accordion-ui>` — Accordion container managing single or multiple open states across
|
|
3
|
+
a collection of <accordion-item-ui> children. Each item carries its
|
|
4
|
+
own [open] reflected state; the accordion host coordinates exclusive
|
|
5
|
+
opening when [multiple] is unset (default single-open mode). Use
|
|
6
|
+
inside settings pages, FAQ blocks, or any progressive-disclosure
|
|
7
|
+
pattern where one-level collapsible groups suffice — for arbitrary
|
|
8
|
+
hierarchy use <tree-ui>; for in-page view switching use <tabs-ui>.
|
|
9
|
+
|
|
3
10
|
*
|
|
4
11
|
* @see https://ui-kit.exe.xyz/site/components/accordion
|
|
5
12
|
*
|
|
@@ -6,7 +6,14 @@ tag: accordion-ui
|
|
|
6
6
|
component: Accordion
|
|
7
7
|
category: container
|
|
8
8
|
version: 1
|
|
9
|
-
description:
|
|
9
|
+
description: |
|
|
10
|
+
Accordion container managing single or multiple open states across
|
|
11
|
+
a collection of <accordion-item-ui> children. Each item carries its
|
|
12
|
+
own [open] reflected state; the accordion host coordinates exclusive
|
|
13
|
+
opening when [multiple] is unset (default single-open mode). Use
|
|
14
|
+
inside settings pages, FAQ blocks, or any progressive-disclosure
|
|
15
|
+
pattern where one-level collapsible groups suffice — for arbitrary
|
|
16
|
+
hierarchy use <tree-ui>; for in-page view switching use <tabs-ui>.
|
|
10
17
|
# Per ADR-0027 — primitives that programmatically create other primitives
|
|
11
18
|
# do NOT auto-import them. Consumer (or demo shell) must explicitly import.
|
|
12
19
|
composes:
|
|
@@ -34,7 +41,13 @@ tokens: {}
|
|
|
34
41
|
requiredIcons:
|
|
35
42
|
- caret-down
|
|
36
43
|
a2ui:
|
|
37
|
-
rules:
|
|
44
|
+
rules:
|
|
45
|
+
- rule: 'Hosts <accordion-item-ui> children. One or more sections may be open simultaneously (set single= to enforce only-one-open).'
|
|
46
|
+
reason: 'Multi-vs-single open mode.'
|
|
47
|
+
- rule: 'For tab-switched panels (always exactly one open) use <tabs-ui>; accordion supports zero-open and multi-open.'
|
|
48
|
+
reason: 'Decision rule vs tabs.'
|
|
49
|
+
- rule: 'Item ordering is DOM-order; no auto-sort.'
|
|
50
|
+
reason: 'Author-controlled order.'
|
|
38
51
|
anti_patterns: []
|
|
39
52
|
examples:
|
|
40
53
|
- name: accordion-settings
|
|
@@ -49,12 +49,28 @@
|
|
|
49
49
|
"composes": [],
|
|
50
50
|
"events": {},
|
|
51
51
|
"examples": [],
|
|
52
|
-
"keywords": [
|
|
52
|
+
"keywords": [
|
|
53
|
+
"action-item",
|
|
54
|
+
"command-row",
|
|
55
|
+
"inline-action",
|
|
56
|
+
"list-action",
|
|
57
|
+
"action-list-row"
|
|
58
|
+
],
|
|
53
59
|
"name": "UIActionItem",
|
|
54
|
-
"related": [
|
|
60
|
+
"related": [
|
|
61
|
+
"ActionList",
|
|
62
|
+
"MenuItem",
|
|
63
|
+
"Button"
|
|
64
|
+
],
|
|
55
65
|
"slots": {},
|
|
56
66
|
"states": [],
|
|
57
|
-
"synonyms": {
|
|
67
|
+
"synonyms": {
|
|
68
|
+
"action-item": [
|
|
69
|
+
"command-item",
|
|
70
|
+
"inline-command",
|
|
71
|
+
"action-row"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
58
74
|
"tag": "action-item-ui",
|
|
59
75
|
"tokens": {},
|
|
60
76
|
"traits": [],
|
|
@@ -35,3 +35,27 @@ props:
|
|
|
35
35
|
description: Disables click + keyboard activation; aria-disabled is set.
|
|
36
36
|
type: boolean
|
|
37
37
|
default: false
|
|
38
|
+
|
|
39
|
+
keywords:
|
|
40
|
+
- action-item
|
|
41
|
+
- command-row
|
|
42
|
+
- inline-action
|
|
43
|
+
- list-action
|
|
44
|
+
- action-list-row
|
|
45
|
+
|
|
46
|
+
synonyms:
|
|
47
|
+
action-item: [command-item, inline-command, action-row]
|
|
48
|
+
|
|
49
|
+
related:
|
|
50
|
+
- ActionList
|
|
51
|
+
- MenuItem
|
|
52
|
+
- Button
|
|
53
|
+
|
|
54
|
+
a2ui:
|
|
55
|
+
rules:
|
|
56
|
+
- rule: 'Child of <action-list-ui> — one inline-action row with icon + label + optional shortcut + optional sublabel.'
|
|
57
|
+
reason: 'Action-list cluster contract.'
|
|
58
|
+
- rule: 'Different from <menu-item-ui>: action-items live inline in content surfaces; menu-items live inside <menu-ui> popovers.'
|
|
59
|
+
reason: 'Context boundary.'
|
|
60
|
+
- rule: 'For navigation entries (route-changing) use <nav-item-ui> instead.'
|
|
61
|
+
reason: 'Different intent — actions vs navigation.'
|
|
@@ -60,7 +60,11 @@
|
|
|
60
60
|
"list"
|
|
61
61
|
],
|
|
62
62
|
"name": "UIActionList",
|
|
63
|
-
"related": [
|
|
63
|
+
"related": [
|
|
64
|
+
"ActionItem",
|
|
65
|
+
"Menu",
|
|
66
|
+
"Button"
|
|
67
|
+
],
|
|
64
68
|
"slots": {
|
|
65
69
|
"default (action-item-ui children)": {
|
|
66
70
|
"description": "Child content region for the `default (action-item-ui children)` slot."
|
|
@@ -72,7 +76,13 @@
|
|
|
72
76
|
"name": "idle"
|
|
73
77
|
}
|
|
74
78
|
],
|
|
75
|
-
"synonyms": {
|
|
79
|
+
"synonyms": {
|
|
80
|
+
"action-list": [
|
|
81
|
+
"command-list",
|
|
82
|
+
"action-rows",
|
|
83
|
+
"command-rows"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
76
86
|
"tag": "action-list-ui",
|
|
77
87
|
"tokens": {},
|
|
78
88
|
"traits": [],
|
|
@@ -35,7 +35,13 @@ states:
|
|
|
35
35
|
traits: []
|
|
36
36
|
tokens: {}
|
|
37
37
|
a2ui:
|
|
38
|
-
rules:
|
|
38
|
+
rules:
|
|
39
|
+
- rule: 'Hosts <action-item-ui> children as a vertical command list inline in content surfaces.'
|
|
40
|
+
reason: 'Cluster contract.'
|
|
41
|
+
- rule: 'For popover-style menus use <menu-ui> + <menu-item-ui> instead.'
|
|
42
|
+
reason: 'Inline vs popover.'
|
|
43
|
+
- rule: 'Typical use: command palettes, settings panels, agent suggestion lists.'
|
|
44
|
+
reason: 'Surface examples.'
|
|
39
45
|
anti_patterns: []
|
|
40
46
|
examples:
|
|
41
47
|
- name: basic-action-list
|
|
@@ -66,5 +72,9 @@ keywords:
|
|
|
66
72
|
- action-list
|
|
67
73
|
- action
|
|
68
74
|
- list
|
|
69
|
-
synonyms:
|
|
70
|
-
|
|
75
|
+
synonyms:
|
|
76
|
+
action-list: [command-list, action-rows, command-rows]
|
|
77
|
+
related:
|
|
78
|
+
- ActionItem
|
|
79
|
+
- Menu
|
|
80
|
+
- Button
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/AgentArtifact.json",
|
|
4
4
|
"title": "AgentArtifact",
|
|
5
|
-
"description": "Inline container for structured agent artifacts (A2UI, JSON, tickets).",
|
|
5
|
+
"description": "Inline container for structured agent artifacts (A2UI, JSON, tickets, code). Renders inside <chat-thread-ui> message bodies or <inspector-ui> panes as a labeled, optionally collapsible block with content-type-aware rendering. Use for agent-emitted structured payloads; for free-text agent output use <text-ui> or <richtext-ui> instead.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -100,7 +100,14 @@
|
|
|
100
100
|
"name": "idle"
|
|
101
101
|
}
|
|
102
102
|
],
|
|
103
|
-
"synonyms": {
|
|
103
|
+
"synonyms": {
|
|
104
|
+
"artifact": [
|
|
105
|
+
"agent-artifact",
|
|
106
|
+
"tool-output",
|
|
107
|
+
"agent-output",
|
|
108
|
+
"tool-result"
|
|
109
|
+
]
|
|
110
|
+
},
|
|
104
111
|
"tag": "agent-artifact-ui",
|
|
105
112
|
"tokens": {},
|
|
106
113
|
"traits": [],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<agent-artifact-ui>` — Inline container for structured agent artifacts (A2UI, JSON, tickets).
|
|
2
|
+
* `<agent-artifact-ui>` — Inline container for structured agent artifacts (A2UI, JSON, tickets, code). Renders inside <chat-thread-ui> message bodies or <inspector-ui> panes as a labeled, optionally collapsible block with content-type-aware rendering. Use for agent-emitted structured payloads; for free-text agent output use <text-ui> or <richtext-ui> instead.
|
|
3
3
|
*
|
|
4
4
|
* @see https://ui-kit.exe.xyz/site/components/agent-artifact
|
|
5
5
|
*
|
|
@@ -6,7 +6,12 @@ tag: agent-artifact-ui
|
|
|
6
6
|
component: AgentArtifact
|
|
7
7
|
category: agent
|
|
8
8
|
version: 1
|
|
9
|
-
description:
|
|
9
|
+
description: >-
|
|
10
|
+
Inline container for structured agent artifacts (A2UI, JSON, tickets,
|
|
11
|
+
code). Renders inside <chat-thread-ui> message bodies or <inspector-ui>
|
|
12
|
+
panes as a labeled, optionally collapsible block with content-type-aware
|
|
13
|
+
rendering. Use for agent-emitted structured payloads; for free-text
|
|
14
|
+
agent output use <text-ui> or <richtext-ui> instead.
|
|
10
15
|
# Per ADR-0027 — primitives that programmatically create other primitives
|
|
11
16
|
# do NOT auto-import them. Consumer (or demo shell) must explicitly import.
|
|
12
17
|
composes:
|
|
@@ -56,7 +61,15 @@ requiredIcons:
|
|
|
56
61
|
- caret-right
|
|
57
62
|
- caret-down
|
|
58
63
|
a2ui:
|
|
59
|
-
rules:
|
|
64
|
+
rules:
|
|
65
|
+
- rule: 'Inline container for structured agent payloads inside <chat-thread-ui> message bodies or <inspector-ui> panes.'
|
|
66
|
+
reason: 'Canonical artifact-rendering surface.'
|
|
67
|
+
- rule: 'kind attribute (a2ui|json|ticket|code|...) sets content-type-aware rendering and icon/badge styling.'
|
|
68
|
+
reason: 'Polymorphic content.'
|
|
69
|
+
- rule: 'For free-text agent output use <text-ui> or <richtext-ui>; artifact-ui is for structured payloads only.'
|
|
70
|
+
reason: 'Free-text vs structured boundary.'
|
|
71
|
+
- rule: 'primary + secondary slots for header chrome; default slot for the artifact body.'
|
|
72
|
+
reason: 'Slot contract — chrome + payload separation.'
|
|
60
73
|
anti_patterns: []
|
|
61
74
|
examples:
|
|
62
75
|
- name: basic
|
|
@@ -77,7 +90,8 @@ keywords:
|
|
|
77
90
|
- inline
|
|
78
91
|
- preview
|
|
79
92
|
- attachment
|
|
80
|
-
synonyms:
|
|
93
|
+
synonyms:
|
|
94
|
+
artifact: [agent-artifact, tool-output, agent-output, tool-result]
|
|
81
95
|
related:
|
|
82
96
|
- card-ui
|
|
83
97
|
- code-ui
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/AgentFeedbackBar.json",
|
|
4
4
|
"title": "AgentFeedbackBar",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Agent-response feedback bar — thumbs up / thumbs down rating row\nplus an optional Save action, rendered beneath an LLM-generated\nmessage. Composes <button-ui> children for the affordances; emits\n`feedback` event with detail.{value, action} on rating. Sits as the\ntrailing chrome of a chat message bubble or alongside an\n<agent-trace-ui> step — used in chat-shell, gen-ui canvas, and\ninspector flows.\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -91,7 +91,14 @@
|
|
|
91
91
|
"name": "disabled"
|
|
92
92
|
}
|
|
93
93
|
],
|
|
94
|
-
"synonyms": {
|
|
94
|
+
"synonyms": {
|
|
95
|
+
"feedback-bar": [
|
|
96
|
+
"agent-feedback",
|
|
97
|
+
"response-feedback",
|
|
98
|
+
"thumbs-bar",
|
|
99
|
+
"rating-bar"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
95
102
|
"tag": "agent-feedback-bar-ui",
|
|
96
103
|
"tokens": {},
|
|
97
104
|
"traits": [],
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<agent-feedback-bar-ui>` —
|
|
2
|
+
* `<agent-feedback-bar-ui>` — Agent-response feedback bar — thumbs up / thumbs down rating row
|
|
3
|
+
plus an optional Save action, rendered beneath an LLM-generated
|
|
4
|
+
message. Composes <button-ui> children for the affordances; emits
|
|
5
|
+
`feedback` event with detail.{value, action} on rating. Sits as the
|
|
6
|
+
trailing chrome of a chat message bubble or alongside an
|
|
7
|
+
<agent-trace-ui> step — used in chat-shell, gen-ui canvas, and
|
|
8
|
+
inspector flows.
|
|
9
|
+
|
|
3
10
|
*
|
|
4
11
|
* @see https://ui-kit.exe.xyz/site/components/agent-feedback-bar
|
|
5
12
|
*
|
|
@@ -6,7 +6,14 @@ tag: agent-feedback-bar-ui
|
|
|
6
6
|
component: AgentFeedbackBar
|
|
7
7
|
category: agent
|
|
8
8
|
version: 1
|
|
9
|
-
description:
|
|
9
|
+
description: |
|
|
10
|
+
Agent-response feedback bar — thumbs up / thumbs down rating row
|
|
11
|
+
plus an optional Save action, rendered beneath an LLM-generated
|
|
12
|
+
message. Composes <button-ui> children for the affordances; emits
|
|
13
|
+
`feedback` event with detail.{value, action} on rating. Sits as the
|
|
14
|
+
trailing chrome of a chat message bubble or alongside an
|
|
15
|
+
<agent-trace-ui> step — used in chat-shell, gen-ui canvas, and
|
|
16
|
+
inspector flows.
|
|
10
17
|
# Per ADR-0027 — primitives that programmatically create other primitives
|
|
11
18
|
# do NOT auto-import them. Consumer (or demo shell) must explicitly import.
|
|
12
19
|
composes:
|
|
@@ -48,7 +55,15 @@ states:
|
|
|
48
55
|
traits: []
|
|
49
56
|
tokens: {}
|
|
50
57
|
a2ui:
|
|
51
|
-
rules:
|
|
58
|
+
rules:
|
|
59
|
+
- rule: 'Thumbs-up / thumbs-down rating row + optional Save action, rendered beneath an LLM-generated message.'
|
|
60
|
+
reason: 'Canonical LLM feedback affordance.'
|
|
61
|
+
- rule: 'Different from <rating-ui> (star-based ordinal) — agent-feedback is binary good/bad.'
|
|
62
|
+
reason: 'Rating model boundary.'
|
|
63
|
+
- rule: 'Emits feedback events with value=up|down and optional save action; consumer wires the actual feedback API call.'
|
|
64
|
+
reason: 'Event-driven contract.'
|
|
65
|
+
- rule: 'Place at the end of an assistant message in <chat-thread-ui>, not on user messages.'
|
|
66
|
+
reason: 'Surface scope — LLM feedback only.'
|
|
52
67
|
anti_patterns: []
|
|
53
68
|
examples:
|
|
54
69
|
- name: basic
|
|
@@ -67,7 +82,8 @@ keywords:
|
|
|
67
82
|
- rating
|
|
68
83
|
- save
|
|
69
84
|
- bookmark
|
|
70
|
-
synonyms:
|
|
85
|
+
synonyms:
|
|
86
|
+
feedback-bar: [agent-feedback, response-feedback, thumbs-bar, rating-bar]
|
|
71
87
|
related:
|
|
72
88
|
- agent-suggestions-ui
|
|
73
89
|
- agent-trace-ui
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/AgentQuestions.json",
|
|
4
4
|
"title": "AgentQuestions",
|
|
5
|
-
"description": "Multi-choice clarifying-question cards.",
|
|
5
|
+
"description": "Multi-choice clarifying-question card emitted by an agent when it\nneeds disambiguation before proceeding. Renders the question prompt\n+ a slotted list of <button-ui> answer chips (or radio-style cards\nwhen [multi] is set for multi-select). The submit button fires\n`answer` with detail.{value(s)} once the user confirms. Use for\nagentic clarification turns — not generic form input (use\n<field-ui> + form primitives for that).\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -93,7 +93,13 @@
|
|
|
93
93
|
"name": "idle"
|
|
94
94
|
}
|
|
95
95
|
],
|
|
96
|
-
"synonyms": {
|
|
96
|
+
"synonyms": {
|
|
97
|
+
"questions": [
|
|
98
|
+
"clarifying-questions",
|
|
99
|
+
"agent-prompt",
|
|
100
|
+
"disambiguation"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
97
103
|
"tag": "agent-questions-ui",
|
|
98
104
|
"tokens": {},
|
|
99
105
|
"traits": [],
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<agent-questions-ui>` — Multi-choice clarifying-question
|
|
2
|
+
* `<agent-questions-ui>` — Multi-choice clarifying-question card emitted by an agent when it
|
|
3
|
+
needs disambiguation before proceeding. Renders the question prompt
|
|
4
|
+
+ a slotted list of <button-ui> answer chips (or radio-style cards
|
|
5
|
+
when [multi] is set for multi-select). The submit button fires
|
|
6
|
+
`answer` with detail.{value(s)} once the user confirms. Use for
|
|
7
|
+
agentic clarification turns — not generic form input (use
|
|
8
|
+
<field-ui> + form primitives for that).
|
|
9
|
+
|
|
3
10
|
*
|
|
4
11
|
* @see https://ui-kit.exe.xyz/site/components/agent-questions
|
|
5
12
|
*
|
|
@@ -6,7 +6,14 @@ tag: agent-questions-ui
|
|
|
6
6
|
component: AgentQuestions
|
|
7
7
|
category: agent
|
|
8
8
|
version: 1
|
|
9
|
-
description:
|
|
9
|
+
description: |
|
|
10
|
+
Multi-choice clarifying-question card emitted by an agent when it
|
|
11
|
+
needs disambiguation before proceeding. Renders the question prompt
|
|
12
|
+
+ a slotted list of <button-ui> answer chips (or radio-style cards
|
|
13
|
+
when [multi] is set for multi-select). The submit button fires
|
|
14
|
+
`answer` with detail.{value(s)} once the user confirms. Use for
|
|
15
|
+
agentic clarification turns — not generic form input (use
|
|
16
|
+
<field-ui> + form primitives for that).
|
|
10
17
|
# Per ADR-0027 — primitives that programmatically create other primitives
|
|
11
18
|
# do NOT auto-import them. Consumer (or demo shell) must explicitly import.
|
|
12
19
|
composes:
|
|
@@ -50,7 +57,15 @@ tokens: {}
|
|
|
50
57
|
requiredIcons:
|
|
51
58
|
- check
|
|
52
59
|
a2ui:
|
|
53
|
-
rules:
|
|
60
|
+
rules:
|
|
61
|
+
- rule: 'Multi-choice clarifying-question card emitted by an agent when it needs disambiguation before proceeding.'
|
|
62
|
+
reason: 'Disambiguation pattern.'
|
|
63
|
+
- rule: 'multi attribute controls single-select (default) vs multi-select answer behavior.'
|
|
64
|
+
reason: 'Selection mode.'
|
|
65
|
+
- rule: 'Slot accepts <button-ui> answer chips; for radio-card style use <segmented-ui> + <segment-ui> children instead.'
|
|
66
|
+
reason: 'Slot vs sibling primitive choice.'
|
|
67
|
+
- rule: 'Different from <agent-suggestions-ui> (follow-up suggestions, optional) — agent-questions is gating (agent waits for answer).'
|
|
68
|
+
reason: 'Required vs optional response.'
|
|
54
69
|
anti_patterns: []
|
|
55
70
|
examples:
|
|
56
71
|
- name: basic
|
|
@@ -70,7 +85,8 @@ keywords:
|
|
|
70
85
|
- multiple choice
|
|
71
86
|
- elicit
|
|
72
87
|
- clarify
|
|
73
|
-
synonyms:
|
|
88
|
+
synonyms:
|
|
89
|
+
questions: [clarifying-questions, agent-prompt, disambiguation]
|
|
74
90
|
related:
|
|
75
91
|
- agent-suggestions-ui
|
|
76
92
|
- agent-reasoning-ui
|
|
@@ -68,7 +68,15 @@ requiredIcons:
|
|
|
68
68
|
- warning
|
|
69
69
|
- warning-circle
|
|
70
70
|
a2ui:
|
|
71
|
-
rules:
|
|
71
|
+
rules:
|
|
72
|
+
- rule: 'Agent inner-monologue + pipeline viewer with steps, thoughts, plans, and iterations.'
|
|
73
|
+
reason: 'Reasoning visualization surface.'
|
|
74
|
+
- rule: 'Composes <timeline-ui> internally — pass reasoning steps as children rendered as <timeline-item-ui>.'
|
|
75
|
+
reason: 'Composition contract.'
|
|
76
|
+
- rule: 'noAutocollapse attribute prevents the auto-collapse-on-complete behavior; useful for debug surfaces.'
|
|
77
|
+
reason: 'Behavior knob.'
|
|
78
|
+
- rule: 'Different from <agent-trace-ui> (metrics + tool-call summary) — reasoning is narrative, trace is structured-data.'
|
|
79
|
+
reason: 'Narrative vs structured boundary.'
|
|
72
80
|
anti_patterns: []
|
|
73
81
|
examples:
|
|
74
82
|
- name: basic
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/AgentSuggestions.json",
|
|
4
4
|
"title": "AgentSuggestions",
|
|
5
|
-
"description": "Row of follow-up suggestion chips.",
|
|
5
|
+
"description": "Row of follow-up suggestion chips presented under an agent response.\nEach suggestion is a <button-ui> child the user can tap to send the\ntext back as the next prompt. Composes <button-ui> with chip-style\nvisual treatment; the variant + size props cascade to children. Use\nto lower input friction at the bottom of a chat response; not for\npermanent navigation (that's <nav-ui>).\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -95,7 +95,14 @@
|
|
|
95
95
|
"name": "disabled"
|
|
96
96
|
}
|
|
97
97
|
],
|
|
98
|
-
"synonyms": {
|
|
98
|
+
"synonyms": {
|
|
99
|
+
"suggestions": [
|
|
100
|
+
"follow-ups",
|
|
101
|
+
"follow-up-chips",
|
|
102
|
+
"prompts",
|
|
103
|
+
"completions"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
99
106
|
"tag": "agent-suggestions-ui",
|
|
100
107
|
"tokens": {},
|
|
101
108
|
"traits": [],
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<agent-suggestions-ui>` — Row of follow-up suggestion chips.
|
|
2
|
+
* `<agent-suggestions-ui>` — Row of follow-up suggestion chips presented under an agent response.
|
|
3
|
+
Each suggestion is a <button-ui> child the user can tap to send the
|
|
4
|
+
text back as the next prompt. Composes <button-ui> with chip-style
|
|
5
|
+
visual treatment; the variant + size props cascade to children. Use
|
|
6
|
+
to lower input friction at the bottom of a chat response; not for
|
|
7
|
+
permanent navigation (that's <nav-ui>).
|
|
8
|
+
|
|
3
9
|
*
|
|
4
10
|
* @see https://ui-kit.exe.xyz/site/components/agent-suggestions
|
|
5
11
|
*
|
|
@@ -6,7 +6,13 @@ tag: agent-suggestions-ui
|
|
|
6
6
|
component: AgentSuggestions
|
|
7
7
|
category: agent
|
|
8
8
|
version: 1
|
|
9
|
-
description:
|
|
9
|
+
description: |
|
|
10
|
+
Row of follow-up suggestion chips presented under an agent response.
|
|
11
|
+
Each suggestion is a <button-ui> child the user can tap to send the
|
|
12
|
+
text back as the next prompt. Composes <button-ui> with chip-style
|
|
13
|
+
visual treatment; the variant + size props cascade to children. Use
|
|
14
|
+
to lower input friction at the bottom of a chat response; not for
|
|
15
|
+
permanent navigation (that's <nav-ui>).
|
|
10
16
|
# Per ADR-0027 — primitives that programmatically create other primitives
|
|
11
17
|
# do NOT auto-import them. Consumer (or demo shell) must explicitly import.
|
|
12
18
|
composes:
|
|
@@ -50,7 +56,15 @@ states:
|
|
|
50
56
|
traits: []
|
|
51
57
|
tokens: {}
|
|
52
58
|
a2ui:
|
|
53
|
-
rules:
|
|
59
|
+
rules:
|
|
60
|
+
- rule: 'Row of follow-up suggestion chips presented under an agent response. User taps to send the chip text as the next prompt.'
|
|
61
|
+
reason: 'Follow-up pattern.'
|
|
62
|
+
- rule: 'Hosts <button-ui> children with chip-style variant; auto-applies variant if children don''t set one.'
|
|
63
|
+
reason: 'Composition behavior.'
|
|
64
|
+
- rule: 'Different from <agent-questions-ui> (required disambiguation) — suggestions are optional and the agent doesn''t wait.'
|
|
65
|
+
reason: 'Optional vs gating.'
|
|
66
|
+
- rule: 'Place at the end of an assistant message in <chat-thread-ui>; not for first-message empty-state suggestions (use <empty-state-ui>).'
|
|
67
|
+
reason: 'Surface scope.'
|
|
54
68
|
anti_patterns: []
|
|
55
69
|
examples:
|
|
56
70
|
- name: basic
|
|
@@ -67,7 +81,8 @@ keywords:
|
|
|
67
81
|
- chips
|
|
68
82
|
- follow-up
|
|
69
83
|
- quick replies
|
|
70
|
-
synonyms:
|
|
84
|
+
synonyms:
|
|
85
|
+
suggestions: [follow-ups, follow-up-chips, prompts, completions]
|
|
71
86
|
related:
|
|
72
87
|
- agent-questions-ui
|
|
73
88
|
- agent-feedback-bar-ui
|