@adia-ai/a2ui-corpus 0.5.3 → 0.5.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.
- package/CHANGELOG.md +60 -0
- package/catalog-a2ui_0_9.json +240 -0
- package/catalog-a2ui_0_9_rules.txt +5 -0
- package/chunk-embeddings.json +1 -1
- package/chunks/_index.json +1 -1
- package/chunks/accordion-settings.json +32 -11
- package/chunks/agent-activity-feed.json +1 -1
- package/chunks/agent-canvas-shell.json +1 -1
- package/chunks/agent-command-palette-search.json +38 -9
- package/chunks/agent-reasoning-collapsed.json +1 -1
- package/chunks/agent-tool-call-result.json +12 -3
- package/chunks/agent-trace-timeline.json +22 -5
- package/chunks/ai-streaming-response.json +16 -5
- package/chunks/alert-banner.json +15 -4
- package/chunks/auth-account-deleted-actions.json +1 -1
- package/chunks/auth-account-deleted.json +1 -1
- package/chunks/auth-card-content.json +1 -1
- package/chunks/auth-card-header.json +1 -1
- package/chunks/auth-email-entry.json +11 -3
- package/chunks/auth-email-verify-confirm.json +1 -1
- package/chunks/auth-email-verify.json +1 -1
- package/chunks/auth-forbidden-actions.json +1 -1
- package/chunks/auth-forbidden.json +1 -1
- package/chunks/auth-invite-actions.json +1 -1
- package/chunks/auth-invite-team-card.json +1 -1
- package/chunks/auth-link-expired-form.json +1 -1
- package/chunks/auth-link-expired.json +1 -1
- package/chunks/auth-locked-account.json +1 -1
- package/chunks/auth-locked-recovery-options.json +1 -1
- package/chunks/auth-mfa-enrollment-submit.json +1 -1
- package/chunks/auth-mfa-enrollment.json +19 -6
- package/chunks/auth-mfa-fallback-actions.json +1 -1
- package/chunks/auth-mfa-recovery.json +1 -1
- package/chunks/auth-new-password-form.json +1 -1
- package/chunks/auth-new-password.json +24 -6
- package/chunks/auth-oauth-fallback-actions.json +1 -1
- package/chunks/auth-oauth-interstitial.json +1 -1
- package/chunks/auth-password-challenge.json +1 -1
- package/chunks/auth-password-reset-form.json +1 -1
- package/chunks/auth-password-reset.json +15 -5
- package/chunks/auth-profile-form.json +1 -1
- package/chunks/auth-profile-setup.json +1 -1
- package/chunks/auth-reset-sent.json +1 -1
- package/chunks/auth-session-expired-actions.json +1 -1
- package/chunks/auth-session-expired.json +1 -1
- package/chunks/auth-signin-card-email.json +29 -9
- package/chunks/auth-signin-card-magic-link.json +11 -4
- package/chunks/auth-signin-card-mfa.json +26 -8
- package/chunks/auth-signin-card-otp.json +16 -5
- package/chunks/auth-signin-card-password.json +29 -9
- package/chunks/auth-signin-card-recovery.json +1 -1
- package/chunks/auth-signout-actions.json +1 -1
- package/chunks/auth-signout.json +1 -1
- package/chunks/auth-signup-email-entry.json +1 -1
- package/chunks/auth-signup-entry.json +25 -8
- package/chunks/auth-signup-social-auths.json +1 -1
- package/chunks/auth-signup-verify.json +1 -1
- package/chunks/auth-social-auths.json +1 -1
- package/chunks/auth-sso-providers.json +1 -1
- package/chunks/auth-sso-required.json +1 -1
- package/chunks/auth-team-invite.json +1 -1
- package/chunks/avatar-group-overflow.json +18 -9
- package/chunks/breadcrumb-nav.json +17 -7
- package/chunks/calendar-month-view.json +12 -3
- package/chunks/card-header-with-description.json +1 -1
- package/chunks/chart-with-filter-pills.json +5 -1
- package/chunks/chat-page-shell.json +41 -8
- package/chunks/chat-streaming-surface.json +7 -2
- package/chunks/color-picker-swatches.json +5 -2
- package/chunks/command-palette.json +3 -2
- package/chunks/commerce-pricing-tiers.json +31 -5
- package/chunks/comparison-table.json +6 -1
- package/chunks/conversion-funnel-6step.json +5 -1
- package/chunks/dashboard-acquisition-panel.json +22 -6
- package/chunks/dashboard-admin-page.json +325 -52
- package/chunks/dashboard-audience-kpis.json +1 -1
- package/chunks/dashboard-audience-panel.json +56 -7
- package/chunks/dashboard-behavior-panel.json +6 -2
- package/chunks/dashboard-chart-recent.json +57 -10
- package/chunks/dashboard-cohort-retention.json +1 -1
- package/chunks/dashboard-conversion-panel.json +8 -2
- package/chunks/dashboard-country-list.json +1 -1
- package/chunks/dashboard-filter-bar.json +15 -3
- package/chunks/dashboard-funnel.json +5 -1
- package/chunks/dashboard-kpi-grid.json +30 -5
- package/chunks/dashboard-notifications-feed.json +1 -1
- package/chunks/dashboard-notifications-panel.json +46 -9
- package/chunks/dashboard-overview-panel.json +178 -28
- package/chunks/dashboard-page-header.json +10 -3
- package/chunks/dashboard-pages-table.json +1 -1
- package/chunks/dashboard-quick-actions.json +1 -1
- package/chunks/dashboard-reports-panel.json +6 -2
- package/chunks/dashboard-reports-table.json +1 -1
- package/chunks/dashboard-spark-cards.json +29 -5
- package/chunks/dashboard-storage-card.json +1 -1
- package/chunks/dashboard-tabs.json +2 -1
- package/chunks/dashboard-team-actions-storage.json +55 -10
- package/chunks/dashboard-team-list.json +1 -1
- package/chunks/dashboard-traffic-channels.json +1 -1
- package/chunks/dashboard-transactions-table.json +7 -2
- package/chunks/date-time-picker-form.json +21 -6
- package/chunks/destructive-confirm-modal.json +11 -4
- package/chunks/divider-text-label.json +6 -2
- package/chunks/doc-editor-shell.json +1 -1
- package/chunks/drawer-2fa-key.json +1 -1
- package/chunks/drawer-2fa-sms.json +1 -1
- package/chunks/drawer-2fa-totp.json +1 -1
- package/chunks/drawer-cancel-sub.json +1 -1
- package/chunks/drawer-change-plan.json +1 -1
- package/chunks/drawer-custom-roles.json +1 -1
- package/chunks/drawer-data-start.json +1 -1
- package/chunks/drawer-delete-account.json +1 -1
- package/chunks/drawer-delete-workspace.json +1 -1
- package/chunks/drawer-discord.json +1 -1
- package/chunks/drawer-figma.json +1 -1
- package/chunks/drawer-first-dashboard.json +1 -1
- package/chunks/drawer-gcal.json +1 -1
- package/chunks/drawer-github.json +1 -1
- package/chunks/drawer-invite.json +1 -1
- package/chunks/drawer-payment-method.json +56 -16
- package/chunks/drawer-report.json +1 -1
- package/chunks/drawer-revoke-session.json +1 -1
- package/chunks/drawer-role.json +1 -1
- package/chunks/drawer-slack.json +1 -1
- package/chunks/drawer-smtp.json +1 -1
- package/chunks/drawer-source.json +1 -1
- package/chunks/drawer-transaction.json +1 -1
- package/chunks/editor-code-pane.json +12 -3
- package/chunks/editor-page-shell.json +1 -1
- package/chunks/editor-preview-pane.json +2 -1
- package/chunks/empty-state.json +9 -3
- package/chunks/error-404-actions.json +1 -1
- package/chunks/error-404.json +15 -5
- package/chunks/error-500-actions.json +1 -1
- package/chunks/error-500.json +19 -6
- package/chunks/error-maintenance-actions.json +1 -1
- package/chunks/error-maintenance.json +15 -5
- package/chunks/error-page-shell.json +12 -3
- package/chunks/faq-accordion.json +5 -1
- package/chunks/file-upload-dnd.json +6 -2
- package/chunks/footer-multi-column.json +45 -17
- package/chunks/footer-primary-only.json +1 -1
- package/chunks/form-page-shell.json +16 -5
- package/chunks/gallery-page-shell.json +26 -6
- package/chunks/hero-section-split.json +12 -3
- package/chunks/icon-text-row.json +1 -1
- package/chunks/image-carousel.json +12 -3
- package/chunks/image-tile.json +1 -1
- package/chunks/image-upload-preview.json +18 -4
- package/chunks/inventory-list-stock.json +27 -9
- package/chunks/kanban-board-3col.json +28 -4
- package/chunks/kanban-page-shell.json +95 -19
- package/chunks/kbd-shortcuts.json +7 -1
- package/chunks/labeled-textarea.json +2 -1
- package/chunks/leaderboard-table.json +48 -11
- package/chunks/linked-record-row.json +7 -3
- package/chunks/marketing-hero-cta.json +12 -3
- package/chunks/marketing-page-shell.json +17 -4
- package/chunks/masonry-gallery.json +10 -1
- package/chunks/member-edit-drawer.json +1 -1
- package/chunks/metadata-description-list.json +1 -1
- package/chunks/multi-step-wizard.json +13 -4
- package/chunks/notification-toast-row.json +27 -7
- package/chunks/onb-completion.json +1 -1
- package/chunks/onb-extension-install.json +1 -1
- package/chunks/onb-hero-welcome.json +1 -1
- package/chunks/onb-import-picker.json +1 -1
- package/chunks/onb-mobile-handoff.json +1 -1
- package/chunks/onb-notification-prefs.json +1 -1
- package/chunks/onb-persona-picker.json +1 -1
- package/chunks/onb-provider-tiles.json +1 -1
- package/chunks/onb-settings-review.json +1 -1
- package/chunks/onb-step-footer.json +1 -1
- package/chunks/onb-step-header.json +1 -1
- package/chunks/onb-step-progress.json +1 -1
- package/chunks/onb-step-shell.json +5 -3
- package/chunks/onb-story-pane.json +1 -1
- package/chunks/onb-tutorial-steps.json +1 -1
- package/chunks/pagination-controls.json +6 -2
- package/chunks/playground-a2ui.json +1 -1
- package/chunks/playground-app-shell.json +1 -1
- package/chunks/playground-chat.json +1 -1
- package/chunks/playground-construct-canvas.json +1 -1
- package/chunks/playground-gen-ui.json +1 -1
- package/chunks/playground-render-preview.json +1 -1
- package/chunks/playground-streams-bridge.json +1 -1
- package/chunks/playground-table-toolbar.json +1 -1
- package/chunks/popover-with-content.json +6 -2
- package/chunks/progress-tracker-milestones.json +24 -7
- package/chunks/real-time-metrics-dashboard.json +15 -4
- package/chunks/reg-address-form.json +184 -26
- package/chunks/reg-billing-card.json +50 -8
- package/chunks/reg-brand-scrape.json +1 -1
- package/chunks/reg-departments-toggle.json +1 -1
- package/chunks/reg-extended-profile.json +1 -1
- package/chunks/reg-final-done.json +1 -1
- package/chunks/reg-helpdesk-grid.json +1 -1
- package/chunks/reg-import-picker.json +1 -1
- package/chunks/reg-integrations-grid.json +1 -1
- package/chunks/reg-invite-form.json +35 -5
- package/chunks/reg-legal-entity.json +1 -1
- package/chunks/reg-org-chart-review.json +1 -1
- package/chunks/reg-profile-identity.json +1 -1
- package/chunks/reg-step-footer.json +1 -1
- package/chunks/reg-step-header.json +1 -1
- package/chunks/reg-step-progress.json +1 -1
- package/chunks/reg-step-shell.json +62 -12
- package/chunks/reg-story-pane.json +1 -1
- package/chunks/reg-success-summary.json +1 -1
- package/chunks/reg-team-size.json +1 -1
- package/chunks/reg-usecase-picker.json +1 -1
- package/chunks/reg-workspace-name.json +21 -4
- package/chunks/search-with-filters.json +19 -8
- package/chunks/section-with-stack.json +1 -1
- package/chunks/settings-admin-page.json +117 -32
- package/chunks/settings-appearance.json +1 -1
- package/chunks/settings-billing-plan.json +1 -1
- package/chunks/settings-general-form.json +10 -3
- package/chunks/settings-integrations.json +4 -1
- package/chunks/settings-members-invite.json +1 -1
- package/chunks/settings-notifications.json +11 -1
- package/chunks/settings-page-shell.json +10 -3
- package/chunks/settings-profile-security.json +20 -6
- package/chunks/sidebar-collapsible-nav.json +36 -9
- package/chunks/slider-range-controls.json +14 -4
- package/chunks/tabs-with-panels.json +5 -1
- package/chunks/testimonial-grid.json +17 -4
- package/chunks/text-card.json +1 -1
- package/chunks/timeline-events.json +7 -1
- package/chunks/toolbar-icons.json +38 -10
- package/chunks/toolbar-tooltips.json +34 -9
- package/chunks/user-identity-row.json +1 -1
- package/chunks/user-profile-card.json +24 -5
- package/chunks/users-table-badge.json +38 -10
- package/chunks/video-player-controls.json +21 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -19,6 +19,66 @@ gap registry. Consumed by `@adia-ai/a2ui-retrieval` and
|
|
|
19
19
|
|
|
20
20
|
_No pending changes._
|
|
21
21
|
|
|
22
|
+
## [0.5.4] - 2026-05-14
|
|
23
|
+
|
|
24
|
+
### Changed — §164 re-harvest 230 chunks against §163-fixed transpiler; +2,920 LOC restored prop fidelity (v0.5.4)
|
|
25
|
+
|
|
26
|
+
`packages/a2ui/corpus/chunks/*.json` — 230 chunks regenerated by running
|
|
27
|
+
`npm run harvest:chunks` against the §163-fixed transpiler (sibling
|
|
28
|
+
package `@adia-ai/a2ui-compose@0.5.4`). Closes the corpus side of the
|
|
29
|
+
harvester drop class diagnosed 2026-05-14: the chunks shipped at v0.5.3
|
|
30
|
+
were authored pre-§163 and carried prop-stripped templates (Input/
|
|
31
|
+
CheckBox/Button/Divider primitives with empty props), causing
|
|
32
|
+
composition-match retrievals to render blank rectangles even though
|
|
33
|
+
type-registration + schema validation both passed green.
|
|
34
|
+
|
|
35
|
+
**Empirical scope of the gap (defensible at the engineering-board level):**
|
|
36
|
+
|
|
37
|
+
231 files modified (230 chunks + `_index.json`)
|
|
38
|
+
+2,920 lines added (restored props)
|
|
39
|
+
-765 lines removed (stale or redundant content displaced)
|
|
40
|
+
Net: +2,155 LOC of restored prop fidelity
|
|
41
|
+
|
|
42
|
+
**Verified spot-check** on `auth-signin-card-password` chunk (the diagnosis baseline):
|
|
43
|
+
|
|
44
|
+
password Input {} → {label, type, autocomplete, name, placeholder, required}
|
|
45
|
+
remember CheckBox {name} → {name, label}
|
|
46
|
+
Sign in Button {type} → {type, text, variant}
|
|
47
|
+
Divider {} → {label}
|
|
48
|
+
magic-link Button {} → {icon, text, variant}
|
|
49
|
+
6-digit Button {} → {icon, text, variant}
|
|
50
|
+
|
|
51
|
+
Retrieval-layer surfacing confirmed: post-§164 smoke probe text now
|
|
52
|
+
includes `"enter your password signing in as kim@acme.com password ••••…"`
|
|
53
|
+
— proof the fix landed not just at the file system but at the retrieval
|
|
54
|
+
surface where compositions are matched.
|
|
55
|
+
|
|
56
|
+
### Changed — `chunk-embeddings.json` rebuilt (6,632 KB; 230 × 1536-dim vectors)
|
|
57
|
+
|
|
58
|
+
`npm run build:embeddings:chunks` regenerated `chunk-embeddings.json`
|
|
59
|
+
since chunk content changed materially (the +2,920 LOC of restored
|
|
60
|
+
props are semantically meaningful for retrieval). Existing embeddings
|
|
61
|
+
would have under-retrieved compositions whose prop content now adds
|
|
62
|
+
discriminating tokens.
|
|
63
|
+
|
|
64
|
+
### Added — `scripts/audit/check-chunk-prop-fidelity.mjs` companion script (+194 LOC, NEW; sibling to scripts/release/ family)
|
|
65
|
+
|
|
66
|
+
Audit script that re-runs the harvester in-place against a temp
|
|
67
|
+
snapshot, diffs against committed chunks, restores via temp, reports
|
|
68
|
+
added/removed/changed props per chunk. Sibling-positioned in
|
|
69
|
+
`scripts/audit/` (rather than `scripts/release/`) because it has
|
|
70
|
+
side-effecting probe-and-restore semantics (briefly mutates the working
|
|
71
|
+
tree to compare).
|
|
72
|
+
|
|
73
|
+
default — exit 0; informational report
|
|
74
|
+
--strict — exit 1 if any chunk would diverge
|
|
75
|
+
|
|
76
|
+
Catches future regressions of the §163/§164 class: a new chunk page
|
|
77
|
+
authored without v0.9-aware harvester contract, OR a new prop added
|
|
78
|
+
to the v0.9 catalog that doesn't flow through to existing chunks.
|
|
79
|
+
|
|
80
|
+
### Changed — `version`: `0.5.3` → `0.5.4`.
|
|
81
|
+
|
|
22
82
|
## [0.5.3] - 2026-05-14
|
|
23
83
|
|
|
24
84
|
### Changed — `catalog-a2ui_0_9.json` regen for `<table-ui>` `row-collapse` event declaration (§162 ride-along, v0.5.3)
|
package/catalog-a2ui_0_9.json
CHANGED
|
@@ -4118,6 +4118,162 @@
|
|
|
4118
4118
|
"version": 1
|
|
4119
4119
|
}
|
|
4120
4120
|
},
|
|
4121
|
+
"ChatInput": {
|
|
4122
|
+
"title": "ChatInput",
|
|
4123
|
+
"description": "Composable chat input bar — a self-contained chat-message composer\nthat stamps its OWN inner structure (textarea + model picker + send\nbutton) when authored as a bare `<chat-input-ui>` tag.\n\nIMPORTANT (closes the 2026-05-14 redundant-send-button class): the\ncomponent stamps a built-in send button (paper-plane-right icon,\nprimary variant). DO NOT add a separate Button sibling for \"send\" —\nthe user gets two send buttons. The submit event fires on Enter or\nsend-button click; `detail` is `{ text, model }`.\n\nInner stamped structure (default):\n <chat-input-ui>\n <textarea-ui placeholder=\"Type a message...\" rows=\"1\"></textarea-ui>\n <div slot=\"toolbar\">\n <select-ui slot=\"model\" placeholder=\"Model\">...</select-ui>\n <button-ui icon=\"paper-plane-right\" variant=\"primary\" slot=\"send\"></button-ui>\n </div>\n </chat-input-ui>\n\nLayout:\n ┌──────────────────────────────────┐\n │ textarea (grows vertically) │\n ├──────────────────────────────────┤\n │ [model ▾] [⏎ send] │ ← toolbar (model picker + built-in send)\n └──────────────────────────────────┘\n\nComposite wrapper, not a form field itself. The inner textarea-ui\nis form-associated via UIFormElement and submits through the parent\nform. `chat-input-ui`'s `disabled` / `placeholder` props propagate\nto the inner textarea.\n\nFor module-tier composer surfaces (slot vocabulary for file attach,\nautocomplete, trailing/leading controls), wrap inside\n`<chat-composer>` — see ChatComposer for the module-tier shape.\n",
|
|
4124
|
+
"type": "object",
|
|
4125
|
+
"allOf": [
|
|
4126
|
+
{
|
|
4127
|
+
"$ref": "#/$defs/ComponentCommon"
|
|
4128
|
+
},
|
|
4129
|
+
{
|
|
4130
|
+
"$ref": "#/$defs/CatalogComponentCommon"
|
|
4131
|
+
}
|
|
4132
|
+
],
|
|
4133
|
+
"properties": {
|
|
4134
|
+
"component": {
|
|
4135
|
+
"const": "ChatInput"
|
|
4136
|
+
},
|
|
4137
|
+
"disabled": {
|
|
4138
|
+
"description": "Disable the entire input. Textarea becomes contenteditable=false;\nsend button disabled.\n",
|
|
4139
|
+
"type": "boolean",
|
|
4140
|
+
"default": false
|
|
4141
|
+
},
|
|
4142
|
+
"loading": {
|
|
4143
|
+
"description": "In-flight / streaming state. Send button disabled, submit events\nsuppressed, but textarea stays editable so the user can draft a\nfollow-up while the model is still responding.\n",
|
|
4144
|
+
"type": "boolean",
|
|
4145
|
+
"default": false
|
|
4146
|
+
},
|
|
4147
|
+
"model": {
|
|
4148
|
+
"description": "Currently selected model value (reflected, two-way with inner\n`<select-ui slot=\"model\">`). Empty when no model picker is shown.\n",
|
|
4149
|
+
"type": "string",
|
|
4150
|
+
"default": ""
|
|
4151
|
+
},
|
|
4152
|
+
"models": {
|
|
4153
|
+
"description": "JSON array of model options for the inner model picker —\n[{value, label}] or [{label, options: [...]}] groups. Empty array\nhides the model picker.\n",
|
|
4154
|
+
"type": "array",
|
|
4155
|
+
"default": []
|
|
4156
|
+
},
|
|
4157
|
+
"placeholder": {
|
|
4158
|
+
"description": "Textarea placeholder. Defaults to \"Type a message...\".",
|
|
4159
|
+
"type": "string",
|
|
4160
|
+
"default": "Type a message..."
|
|
4161
|
+
}
|
|
4162
|
+
},
|
|
4163
|
+
"required": [
|
|
4164
|
+
"component"
|
|
4165
|
+
],
|
|
4166
|
+
"unevaluatedProperties": false,
|
|
4167
|
+
"x-adiaui": {
|
|
4168
|
+
"anti_patterns": [
|
|
4169
|
+
{
|
|
4170
|
+
"description": "Adding a separate Button(primary) sibling next to ChatInput for \"send\". The component stamps its own send button (paper-plane-right icon). Two send buttons render side-by-side, confusing users."
|
|
4171
|
+
},
|
|
4172
|
+
{
|
|
4173
|
+
"description": "Stamping a Select next to ChatInput for model picker. The component has a built-in model picker driven by the `models` prop. Set `models=[{value, label}, ...]` instead of stamping a separate Select."
|
|
4174
|
+
},
|
|
4175
|
+
{
|
|
4176
|
+
"description": "Wrapping ChatInput inside <field-ui label=\"...\"> for label association. ChatInput is a composite container, not a form field. For a labeled composer surface, use <chat-composer> + slot label markup."
|
|
4177
|
+
}
|
|
4178
|
+
],
|
|
4179
|
+
"category": "agent",
|
|
4180
|
+
"composes": [],
|
|
4181
|
+
"events": {
|
|
4182
|
+
"submit": {
|
|
4183
|
+
"description": "Fires when the user presses Enter (without Shift) in the textarea OR clicks the built-in send button. The composer suppresses submission while `[loading]` is set.",
|
|
4184
|
+
"detail": {
|
|
4185
|
+
"model": {
|
|
4186
|
+
"description": "Currently selected model value (empty if no model picker).",
|
|
4187
|
+
"type": "string"
|
|
4188
|
+
},
|
|
4189
|
+
"text": {
|
|
4190
|
+
"description": "Submitted message text from the inner textarea.",
|
|
4191
|
+
"type": "string"
|
|
4192
|
+
}
|
|
4193
|
+
}
|
|
4194
|
+
}
|
|
4195
|
+
},
|
|
4196
|
+
"examples": [
|
|
4197
|
+
{
|
|
4198
|
+
"description": "Minimal chat input — placeholder, no model picker. Sits inside a chat shell footer.",
|
|
4199
|
+
"a2ui": "[\n {\"id\": \"root\", \"component\": \"ChatInput\", \"placeholder\": \"Ask me anything...\"}\n]",
|
|
4200
|
+
"name": "basic-chat-input"
|
|
4201
|
+
},
|
|
4202
|
+
{
|
|
4203
|
+
"description": "Chat input with model selection. The `models` prop drives the built-in model picker — DO NOT add a separate Select sibling.",
|
|
4204
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"ChatInput\",\n \"placeholder\": \"Type a message...\",\n \"model\": \"claude-opus-4-7\",\n \"models\": [\n {\"value\": \"claude-opus-4-7\", \"label\": \"Claude Opus 4.7\"},\n {\"value\": \"claude-haiku-4-5\", \"label\": \"Claude Haiku 4.5\"},\n {\"value\": \"claude-sonnet-4-5\", \"label\": \"Claude Sonnet 4.5\"}\n ]\n }\n]",
|
|
4205
|
+
"name": "chat-input-with-models"
|
|
4206
|
+
},
|
|
4207
|
+
{
|
|
4208
|
+
"description": "Streaming response state. `[loading]` reflects on the host; send button disables; textarea stays editable so the user can draft a follow-up while the LLM is responding.",
|
|
4209
|
+
"a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"ChatInput\",\n \"placeholder\": \"Drafting follow-up while streaming...\",\n \"loading\": true\n }\n]",
|
|
4210
|
+
"name": "chat-input-loading-state"
|
|
4211
|
+
},
|
|
4212
|
+
{
|
|
4213
|
+
"description": "Full chat shell — header + thread + ChatInput in the footer. Note: ChatInput is the sole footer child; no separate send button.",
|
|
4214
|
+
"a2ui": "[\n {\"id\": \"root\", \"component\": \"ChatShell\", \"children\": [\"header\", \"thread\", \"input\"]},\n {\"id\": \"header\", \"component\": \"ChatHeader\", \"title\": \"Chat\"},\n {\"id\": \"thread\", \"component\": \"ChatThread\"},\n {\"id\": \"input\", \"component\": \"ChatInput\", \"placeholder\": \"Send a message...\"}\n]",
|
|
4215
|
+
"name": "chat-shell-with-chat-input"
|
|
4216
|
+
}
|
|
4217
|
+
],
|
|
4218
|
+
"keywords": [
|
|
4219
|
+
"chat-input",
|
|
4220
|
+
"chat",
|
|
4221
|
+
"message-input",
|
|
4222
|
+
"composer",
|
|
4223
|
+
"send-message",
|
|
4224
|
+
"conversation",
|
|
4225
|
+
"prompt",
|
|
4226
|
+
"submit"
|
|
4227
|
+
],
|
|
4228
|
+
"name": "UIChatInput",
|
|
4229
|
+
"related": [
|
|
4230
|
+
"ChatShell",
|
|
4231
|
+
"ChatThread",
|
|
4232
|
+
"ChatComposer",
|
|
4233
|
+
"ChatHeader",
|
|
4234
|
+
"TextArea",
|
|
4235
|
+
"Input"
|
|
4236
|
+
],
|
|
4237
|
+
"slots": {
|
|
4238
|
+
"model": {
|
|
4239
|
+
"description": "Override slot for the model picker. Most authors should NOT override this — set the `models` prop instead."
|
|
4240
|
+
},
|
|
4241
|
+
"send": {
|
|
4242
|
+
"description": "Override slot for the send button only. The default stamped send button has `[icon=\"paper-plane-right\"] [variant=\"primary\"]`. Most authors should NOT override this — the built-in send button IS the send control. Adding a separate Button sibling for \"send\" duplicates this functionality."
|
|
4243
|
+
},
|
|
4244
|
+
"toolbar": {
|
|
4245
|
+
"description": "Override slot for the entire toolbar row (model picker + send button). Most authors should NOT override this — the built-in toolbar handles model selection + send. Use this only when custom toolbar layout is required."
|
|
4246
|
+
}
|
|
4247
|
+
},
|
|
4248
|
+
"states": [
|
|
4249
|
+
{
|
|
4250
|
+
"description": "Default, accepting input. Send button enabled when textarea has content.",
|
|
4251
|
+
"name": "idle"
|
|
4252
|
+
},
|
|
4253
|
+
{
|
|
4254
|
+
"description": "Input fully disabled (typically during initial form setup).",
|
|
4255
|
+
"attribute": "disabled",
|
|
4256
|
+
"name": "disabled"
|
|
4257
|
+
},
|
|
4258
|
+
{
|
|
4259
|
+
"description": "LLM is responding. Send button disabled + submit events suppressed, but textarea stays editable for follow-up drafts.",
|
|
4260
|
+
"attribute": "loading",
|
|
4261
|
+
"name": "loading"
|
|
4262
|
+
}
|
|
4263
|
+
],
|
|
4264
|
+
"synonyms": {
|
|
4265
|
+
"message-input": [
|
|
4266
|
+
"conversation-input",
|
|
4267
|
+
"prompt-input",
|
|
4268
|
+
"send-bar"
|
|
4269
|
+
]
|
|
4270
|
+
},
|
|
4271
|
+
"tag": "chat-input-ui",
|
|
4272
|
+
"tokens": {},
|
|
4273
|
+
"traits": [],
|
|
4274
|
+
"version": 1
|
|
4275
|
+
}
|
|
4276
|
+
},
|
|
4121
4277
|
"ChatShell": {
|
|
4122
4278
|
"title": "ChatShell",
|
|
4123
4279
|
"description": "Behavior-only chat orchestrator (LLM-streaming module). Author supplies the\nDOM structure via [data-chat-messages], [data-chat-input], [data-chat-empty],\n[data-chat-status] elements; chat-shell wires message streaming, markdown\nrendering, code-block upgrades, and an LLM integration path via proxy-url\n(or via external submit).\n",
|
|
@@ -6785,6 +6941,90 @@
|
|
|
6785
6941
|
"version": 1
|
|
6786
6942
|
}
|
|
6787
6943
|
},
|
|
6944
|
+
"FeedItem": {
|
|
6945
|
+
"title": "FeedItem",
|
|
6946
|
+
"description": "Atomic feed entry inside a `<feed-ui>` lane. Three dismiss policies are inferred from the prop shape — auto-fade (duration > 0 + no action), sticky-dismissible (duration null/0), action-required (duration null/0 + action; future phase). Posted via `UIFeed.post()` rather than authored directly.",
|
|
6947
|
+
"type": "object",
|
|
6948
|
+
"allOf": [
|
|
6949
|
+
{
|
|
6950
|
+
"$ref": "#/$defs/ComponentCommon"
|
|
6951
|
+
},
|
|
6952
|
+
{
|
|
6953
|
+
"$ref": "#/$defs/CatalogComponentCommon"
|
|
6954
|
+
}
|
|
6955
|
+
],
|
|
6956
|
+
"properties": {
|
|
6957
|
+
"component": {
|
|
6958
|
+
"const": "FeedItem"
|
|
6959
|
+
},
|
|
6960
|
+
"dismissible": {
|
|
6961
|
+
"description": "Render an x close button (default true for sticky, false for auto-fade)",
|
|
6962
|
+
"type": "boolean",
|
|
6963
|
+
"default": false
|
|
6964
|
+
},
|
|
6965
|
+
"duration": {
|
|
6966
|
+
"description": "Auto-fade timer in ms; null/0 = sticky (requires user input)",
|
|
6967
|
+
"type": "number",
|
|
6968
|
+
"default": 4000
|
|
6969
|
+
},
|
|
6970
|
+
"heading": {
|
|
6971
|
+
"description": "Optional emphasis line above text",
|
|
6972
|
+
"type": "string",
|
|
6973
|
+
"default": ""
|
|
6974
|
+
},
|
|
6975
|
+
"icon": {
|
|
6976
|
+
"description": "Optional leading icon name",
|
|
6977
|
+
"type": "string",
|
|
6978
|
+
"default": ""
|
|
6979
|
+
},
|
|
6980
|
+
"text": {
|
|
6981
|
+
"description": "Body copy",
|
|
6982
|
+
"type": "string",
|
|
6983
|
+
"default": ""
|
|
6984
|
+
},
|
|
6985
|
+
"variant": {
|
|
6986
|
+
"description": "Semantic variant",
|
|
6987
|
+
"type": "string",
|
|
6988
|
+
"enum": [
|
|
6989
|
+
"default",
|
|
6990
|
+
"info",
|
|
6991
|
+
"success",
|
|
6992
|
+
"warning",
|
|
6993
|
+
"danger"
|
|
6994
|
+
],
|
|
6995
|
+
"default": "default"
|
|
6996
|
+
}
|
|
6997
|
+
},
|
|
6998
|
+
"required": [
|
|
6999
|
+
"component"
|
|
7000
|
+
],
|
|
7001
|
+
"unevaluatedProperties": false,
|
|
7002
|
+
"x-adiaui": {
|
|
7003
|
+
"anti_patterns": [],
|
|
7004
|
+
"category": "feedback",
|
|
7005
|
+
"composes": [],
|
|
7006
|
+
"events": {
|
|
7007
|
+
"close": {
|
|
7008
|
+
"description": "Fired after the item finishes its exit animation"
|
|
7009
|
+
}
|
|
7010
|
+
},
|
|
7011
|
+
"examples": [],
|
|
7012
|
+
"keywords": [],
|
|
7013
|
+
"name": "UIFeedItem",
|
|
7014
|
+
"related": [],
|
|
7015
|
+
"slots": {
|
|
7016
|
+
"body": {
|
|
7017
|
+
"description": "Default content slot (also accepts the `text` / `heading` props)"
|
|
7018
|
+
}
|
|
7019
|
+
},
|
|
7020
|
+
"states": {},
|
|
7021
|
+
"synonyms": {},
|
|
7022
|
+
"tag": "feed-item-ui",
|
|
7023
|
+
"tokens": {},
|
|
7024
|
+
"traits": [],
|
|
7025
|
+
"version": 1
|
|
7026
|
+
}
|
|
7027
|
+
},
|
|
6788
7028
|
"Field": {
|
|
6789
7029
|
"title": "Field",
|
|
6790
7030
|
"description": "Labeled field wrapper. Composes a <label for=\"…\"> with a form control (input-ui, select-ui, textarea-ui, etc.) placed in the default slot, plus optional [slot=\"trailing\"] and [slot=\"action\"] regions. Auto-mints an id on the slotted control when missing so clicking the label focuses the control — an accessibility upgrade over setting label=\"…\" on the control directly, which has no [for] binding. Two layouts — stacked (default) and inline (the `inline` mode attribute collapses everything to a single row).",
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
- Multiple <section> siblings are allowed and stack vertically. [bleed] on a section removes its margin for edge-to-edge content (tables, charts); [padding] adds a canvas-scrim background for hero regions.
|
|
12
12
|
- Footer with a [slot="description"] + [slot="action"] pair triggers justify-content: space-between — useful for a "Last saved …" note on the left and a Save/Cancel button group on the right.
|
|
13
13
|
|
|
14
|
+
## ChatInput
|
|
15
|
+
- ChatInput is a self-contained composer — it stamps its own textarea + model picker + send button. DO NOT add a separate Button sibling for "send" inside the same parent. The user gets two send buttons (one built-in, one redundant).
|
|
16
|
+
- For chat interfaces emit ChatInput as the sole input component inside the chat shell. The submit event fires on Enter or send-button click; `detail` is `{ text, model }`.
|
|
17
|
+
- To customize models, set the `models` prop with an array of {value, label} option objects. Do not stamp a separate Select next to ChatInput for model selection — the built-in model picker handles it.
|
|
18
|
+
|
|
14
19
|
## Check
|
|
15
20
|
- Self-labeling widget — use the [label] attribute directly; do NOT wrap in <field-ui>. The widget renders its own label inline via CSS attr() pattern. Wrapping breaks the consent-row layout (see field-ui anti_patterns).
|
|
16
21
|
|