@ds-mo/ui 13.14.0 → 13.15.0
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/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +71 -21
- package/dist/agent.json +242 -58
- package/dist/angular/ds-agent-questionnaire.d.ts +19 -0
- package/dist/angular/ds-agent-questionnaire.js +46 -0
- package/dist/angular/ds-agent-response.d.ts +1 -1
- package/dist/angular/ds-agent-response.js +3 -3
- package/dist/angular/ds-agent-source-list.d.ts +9 -2
- package/dist/angular/ds-agent-source-list.js +7 -3
- package/dist/angular/ds-agent-tool-call.d.ts +9 -2
- package/dist/angular/ds-agent-tool-call.js +9 -5
- package/dist/angular/ds-checkbox.d.ts +1 -1
- package/dist/angular/ds-checkbox.js +3 -3
- package/dist/angular/ds-message-composer.d.ts +1 -1
- package/dist/angular/ds-message-composer.js +3 -3
- package/dist/angular/ds-radio.js +2 -1
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +1 -0
- package/dist/angular/proxies.d.ts +1 -0
- package/dist/angular/proxies.js +1 -0
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.d.ts +24 -0
- package/dist/components/ds-agent-questionnaire.js +2 -0
- package/dist/components/ds-agent-questionnaire.js.map +1 -0
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-response.js.map +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-overview.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-chart.js.map +1 -1
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-chip.js.map +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-item.js.map +1 -1
- package/dist/components/ds-conversation-list-section.js +1 -1
- package/dist/components/ds-conversation-list.js +1 -1
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-input.js.map +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-bubble.js.map +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-composer.js.map +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message-scroller.js.map +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js.map +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-radio.js.map +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-select.js.map +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-slider.js.map +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/index.d.ts +10 -0
- package/dist/components/{p-PQgDzzn9.js → p-00or0yGw.js} +2 -2
- package/dist/components/p-B2SoinWf.js +2 -0
- package/dist/components/p-B2SoinWf.js.map +1 -0
- package/dist/components/{p-BULWzaBs.js → p-B69Re7HW.js} +2 -2
- package/dist/components/p-BH_lVRgp.js +2 -0
- package/dist/components/{p-CCYgBUUS.js.map → p-BH_lVRgp.js.map} +1 -1
- package/dist/components/{p-C-aCs6ID.js → p-BLaqjUWu.js} +2 -2
- package/dist/components/{p-B6z51yBf.js → p-BNkU9dcc.js} +2 -2
- package/dist/components/{p-B6linhwY.js → p-BRze4tRe.js} +2 -2
- package/dist/components/p-BtUgncSJ.js +2 -0
- package/dist/components/p-BtUgncSJ.js.map +1 -0
- package/dist/components/p-C891ueIx.js +2 -0
- package/dist/components/p-C891ueIx.js.map +1 -0
- package/dist/components/p-CCkptWPj.js +2 -0
- package/dist/components/p-CCkptWPj.js.map +1 -0
- package/dist/components/p-CKo3OFG1.js +2 -0
- package/dist/components/p-CKo3OFG1.js.map +1 -0
- package/dist/components/p-CXduurfd.js.map +1 -1
- package/dist/components/{p-DLwM1RNL.js → p-CdKz-QT2.js} +2 -2
- package/dist/components/p-CdKz-QT2.js.map +1 -0
- package/dist/components/p-CekGwihQ.js +2 -0
- package/dist/components/{p-BSdAFIcG.js.map → p-CekGwihQ.js.map} +1 -1
- package/dist/components/p-ClHpIZg0.js +2 -0
- package/dist/components/p-ClHpIZg0.js.map +1 -0
- package/dist/components/p-CnUq7E8S.js +2 -0
- package/dist/components/{p-DyDkQ8H9.js.map → p-CnUq7E8S.js.map} +1 -1
- package/dist/components/{p-C9StMCWg.js → p-Cohb8T7G.js} +2 -2
- package/dist/components/p-CqDJRVT8.js +2 -0
- package/dist/components/p-CqDJRVT8.js.map +1 -0
- package/dist/components/p-CsXC1cHI.js +2 -0
- package/dist/components/{p-DYAQVvOu.js.map → p-CsXC1cHI.js.map} +1 -1
- package/dist/components/p-D4j0deyd.js +2 -0
- package/dist/components/{p-DAM4CDXT.js.map → p-D4j0deyd.js.map} +1 -1
- package/dist/components/p-D5aUkdTw.js +2 -0
- package/dist/components/p-D5aUkdTw.js.map +1 -0
- package/dist/components/p-DQXzTV8N.js +2 -0
- package/dist/components/p-DQXzTV8N.js.map +1 -0
- package/dist/components/p-DStd98dM.js +2 -0
- package/dist/components/{p-Azjx2SsL.js.map → p-DStd98dM.js.map} +1 -1
- package/dist/components/p-DWNhyLp2.js +2 -0
- package/dist/components/{p-B1JB0Zn-.js.map → p-DWNhyLp2.js.map} +1 -1
- package/dist/components/p-DWjE0VNn.js +2 -0
- package/dist/components/p-DWjE0VNn.js.map +1 -0
- package/dist/components/{p-C5ecLNZA.js → p-DgIRyJoc.js} +2 -2
- package/dist/components/{p-BNiIyZCn.js → p-Dhx_3_tf.js} +2 -2
- package/dist/components/p-Dhx_3_tf.js.map +1 -0
- package/dist/components/{p-CE82aQZr.js → p-DyVAWGL9.js} +2 -2
- package/dist/components/p-GSnB-sa7.js +2 -0
- package/dist/components/p-GSnB-sa7.js.map +1 -0
- package/dist/components/p-GWUTrIlk.js +2 -0
- package/dist/components/p-GWUTrIlk.js.map +1 -0
- package/dist/components/p-IhToA4m4.js +2 -0
- package/dist/components/{p-cPh32CFB.js.map → p-IhToA4m4.js.map} +1 -1
- package/dist/components/p-NQOI5gN1.js +2 -0
- package/dist/components/p-NQOI5gN1.js.map +1 -0
- package/dist/components/p-QDcUAz9m.js +2 -0
- package/dist/components/{p-BPS17WvI.js.map → p-QDcUAz9m.js.map} +1 -1
- package/dist/components/p-Qf-os3lG.js +2 -0
- package/dist/components/{p-B8HG9OFh.js.map → p-Qf-os3lG.js.map} +1 -1
- package/dist/components/{p-DMJEOAwP.js → p-chA2WA5x.js} +2 -2
- package/dist/components/{p-DwKC_9u2.js → p-dEouiXJ8.js} +2 -2
- package/dist/components/{p-CeyoHpPn.js → p-fKwbYrhi.js} +2 -2
- package/dist/docs/components.json +664 -10
- package/dist/mcp-data/registry/agent-activity.json +1 -1
- package/dist/mcp-data/registry/agent-questionnaire.json +273 -0
- package/dist/mcp-data/registry/agent-response.json +32 -11
- package/dist/mcp-data/registry/agent-source-list.json +33 -13
- package/dist/mcp-data/registry/agent-tool-call.json +59 -18
- package/dist/mcp-data/registry/attachment-list.json +1 -1
- package/dist/mcp-data/registry/avatar.json +1 -1
- package/dist/mcp-data/registry/badge.json +1 -1
- package/dist/mcp-data/registry/banner.json +1 -1
- package/dist/mcp-data/registry/bar-nav.json +2 -2
- package/dist/mcp-data/registry/bar-title.json +2 -2
- package/dist/mcp-data/registry/bar-workflow.json +1 -1
- package/dist/mcp-data/registry/breadcrumb.json +2 -2
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/button-unfilled.json +1 -1
- package/dist/mcp-data/registry/card-chart.json +1 -1
- package/dist/mcp-data/registry/card-overview.json +1 -1
- package/dist/mcp-data/registry/card-setting.json +1 -1
- package/dist/mcp-data/registry/chart-legend.json +2 -2
- package/dist/mcp-data/registry/chart.json +2 -2
- package/dist/mcp-data/registry/checkbox.json +26 -9
- package/dist/mcp-data/registry/chip.json +2 -2
- package/dist/mcp-data/registry/code-block.json +14 -6
- package/dist/mcp-data/registry/conversation-list-item.json +2 -2
- package/dist/mcp-data/registry/conversation-list-section.json +1 -1
- package/dist/mcp-data/registry/conversation-list.json +1 -1
- package/dist/mcp-data/registry/divider.json +1 -1
- package/dist/mcp-data/registry/empty-state.json +1 -1
- package/dist/mcp-data/registry/field.json +1 -1
- package/dist/mcp-data/registry/icon.json +1 -1
- package/dist/mcp-data/registry/input.json +1 -1
- package/dist/mcp-data/registry/loader.json +1 -1
- package/dist/mcp-data/registry/markdown.json +1 -1
- package/dist/mcp-data/registry/menu.json +2 -2
- package/dist/mcp-data/registry/message-actions.json +1 -1
- package/dist/mcp-data/registry/message-bubble.json +2 -2
- package/dist/mcp-data/registry/message-composer.json +30 -8
- package/dist/mcp-data/registry/message-scroller.json +17 -9
- package/dist/mcp-data/registry/message.json +1 -1
- package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
- package/dist/mcp-data/registry/mobile-header.json +1 -1
- package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
- package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
- package/dist/mcp-data/registry/modal.json +1 -1
- package/dist/mcp-data/registry/panel-nav.json +2 -2
- package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
- package/dist/mcp-data/registry/panel-tool-header.json +1 -1
- package/dist/mcp-data/registry/panel-tool-search.json +1 -1
- package/dist/mcp-data/registry/panel-tools.json +2 -2
- package/dist/mcp-data/registry/radio.json +24 -11
- package/dist/mcp-data/registry/registry.json +245 -58
- package/dist/mcp-data/registry/scroll-overlay.json +1 -1
- package/dist/mcp-data/registry/select.json +2 -2
- package/dist/mcp-data/registry/shell-app.json +2 -2
- package/dist/mcp-data/registry/shell-page.json +1 -1
- package/dist/mcp-data/registry/shell-tools.json +1 -1
- package/dist/mcp-data/registry/skeleton.json +1 -1
- package/dist/mcp-data/registry/slider.json +2 -2
- package/dist/mcp-data/registry/swatch-picker.json +2 -2
- package/dist/mcp-data/registry/switch.json +2 -2
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/table.json +1 -1
- package/dist/mcp-data/registry/tag.json +1 -1
- package/dist/mcp-data/registry/text.json +2 -2
- package/dist/mcp-data/registry/toast.json +1 -1
- package/dist/mcp-data/registry/tooltip-chart.json +5 -3
- package/dist/mcp-data/registry/tooltip.json +1 -1
- package/dist/mcp-data/registry/typing-indicator.json +1 -1
- package/dist/react/components.d.ts +1 -0
- package/dist/react/components.js +1 -0
- package/dist/react/ds-agent-questionnaire.d.ts +13 -0
- package/dist/react/ds-agent-questionnaire.js +15 -0
- package/dist/react/ds-agent-source-list.d.ts +7 -2
- package/dist/react/ds-agent-source-list.js +1 -1
- package/dist/react/ds-agent-tool-call.d.ts +7 -2
- package/dist/react/ds-agent-tool-call.js +1 -1
- package/dist/styles/prose.css +21 -4
- package/dist/types/components/AgentQuestionnaire/AgentQuestionnaire.d.ts +49 -0
- package/dist/types/components/AgentQuestionnaire/agent-questionnaire-model.d.ts +13 -0
- package/dist/types/components/AgentResponse/AgentResponse.d.ts +3 -1
- package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +5 -0
- package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +21 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
- package/dist/types/components/MessageComposer/MessageComposer.d.ts +3 -0
- package/dist/types/components/MessageScroller/MessageScroller.d.ts +21 -1
- package/dist/types/components/Radio/Radio.d.ts +4 -0
- package/dist/types/components/conversation-types.d.ts +51 -2
- package/dist/types/components.d.ts +147 -2
- package/package.json +5 -3
- package/dist/components/p-Azjx2SsL.js +0 -2
- package/dist/components/p-B1JB0Zn-.js +0 -2
- package/dist/components/p-B2t8alvH.js +0 -2
- package/dist/components/p-B2t8alvH.js.map +0 -1
- package/dist/components/p-B8HG9OFh.js +0 -2
- package/dist/components/p-BJVzrR_P.js +0 -2
- package/dist/components/p-BJVzrR_P.js.map +0 -1
- package/dist/components/p-BL0JHLJp.js +0 -2
- package/dist/components/p-BL0JHLJp.js.map +0 -1
- package/dist/components/p-BNiIyZCn.js.map +0 -1
- package/dist/components/p-BPS17WvI.js +0 -2
- package/dist/components/p-BSdAFIcG.js +0 -2
- package/dist/components/p-CCYgBUUS.js +0 -2
- package/dist/components/p-COmqMfQo.js +0 -2
- package/dist/components/p-COmqMfQo.js.map +0 -1
- package/dist/components/p-Ch5yT3UA.js +0 -2
- package/dist/components/p-Ch5yT3UA.js.map +0 -1
- package/dist/components/p-CiUciD5Z.js +0 -2
- package/dist/components/p-CiUciD5Z.js.map +0 -1
- package/dist/components/p-D6g070eY.js +0 -2
- package/dist/components/p-D6g070eY.js.map +0 -1
- package/dist/components/p-DAM4CDXT.js +0 -2
- package/dist/components/p-DLwM1RNL.js.map +0 -1
- package/dist/components/p-DYAQVvOu.js +0 -2
- package/dist/components/p-DmblUQ4D.js +0 -2
- package/dist/components/p-DmblUQ4D.js.map +0 -1
- package/dist/components/p-DyDkQ8H9.js +0 -2
- package/dist/components/p-Dz3Ufmr4.js +0 -2
- package/dist/components/p-Dz3Ufmr4.js.map +0 -1
- package/dist/components/p-cPh32CFB.js +0 -2
- package/dist/components/p-fkQhr5s9.js +0 -2
- package/dist/components/p-fkQhr5s9.js.map +0 -1
- package/dist/components/p-oOKTL-yx.js +0 -2
- package/dist/components/p-oOKTL-yx.js.map +0 -1
- /package/dist/components/{p-PQgDzzn9.js.map → p-00or0yGw.js.map} +0 -0
- /package/dist/components/{p-BULWzaBs.js.map → p-B69Re7HW.js.map} +0 -0
- /package/dist/components/{p-C-aCs6ID.js.map → p-BLaqjUWu.js.map} +0 -0
- /package/dist/components/{p-B6z51yBf.js.map → p-BNkU9dcc.js.map} +0 -0
- /package/dist/components/{p-B6linhwY.js.map → p-BRze4tRe.js.map} +0 -0
- /package/dist/components/{p-C9StMCWg.js.map → p-Cohb8T7G.js.map} +0 -0
- /package/dist/components/{p-C5ecLNZA.js.map → p-DgIRyJoc.js.map} +0 -0
- /package/dist/components/{p-CE82aQZr.js.map → p-DyVAWGL9.js.map} +0 -0
- /package/dist/components/{p-DMJEOAwP.js.map → p-chA2WA5x.js.map} +0 -0
- /package/dist/components/{p-DwKC_9u2.js.map → p-dEouiXJ8.js.map} +0 -0
- /package/dist/components/{p-CeyoHpPn.js.map → p-fKwbYrhi.js.map} +0 -0
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"themeSetup": "Set data-theme=\"dark\" on <html> for dark mode. Light is default.",
|
|
13
13
|
"peerDependencies": {
|
|
14
14
|
"required": [
|
|
15
|
-
"@ds-mo/tokens ^6.
|
|
15
|
+
"@ds-mo/tokens ^6.2.1",
|
|
16
16
|
"@ds-mo/icons ^6.6.0"
|
|
17
17
|
],
|
|
18
18
|
"optional": [],
|
|
@@ -99,10 +99,132 @@
|
|
|
99
99
|
"text"
|
|
100
100
|
]
|
|
101
101
|
},
|
|
102
|
+
{
|
|
103
|
+
"name": "agent-questionnaire",
|
|
104
|
+
"title": "AgentQuestionnaire",
|
|
105
|
+
"description": "Temporary multi-step work surface for provider-neutral agent clarification questions and durable read-only answer records.",
|
|
106
|
+
"type": "registry:ui",
|
|
107
|
+
"meta": {
|
|
108
|
+
"library": "@ds-mo/ui",
|
|
109
|
+
"distribution": "npm",
|
|
110
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/agent-questionnaire",
|
|
111
|
+
"source": "src/wc/components/AgentQuestionnaire/AgentQuestionnaire.tsx",
|
|
112
|
+
"intentStatus": "complete",
|
|
113
|
+
"intent": {
|
|
114
|
+
"audience": "specialized",
|
|
115
|
+
"status": "experimental",
|
|
116
|
+
"summary": "Temporary multi-step work surface for provider-neutral agent clarification questions and durable read-only answer records.",
|
|
117
|
+
"useWhen": [
|
|
118
|
+
"An agent turn pauses for one or more structured single-choice, multiple-choice, or free-text answers."
|
|
119
|
+
],
|
|
120
|
+
"avoidWhen": [
|
|
121
|
+
"The interaction is a conventional application form, a tool authorization policy, or an application-owned approval with consequences beyond collecting answers."
|
|
122
|
+
],
|
|
123
|
+
"commonlyComposedWith": [
|
|
124
|
+
"component:ds-message-scroller",
|
|
125
|
+
"component:ds-message-composer",
|
|
126
|
+
"component:ds-agent-response",
|
|
127
|
+
"component:ds-radio",
|
|
128
|
+
"component:ds-checkbox",
|
|
129
|
+
"component:ds-button-filled",
|
|
130
|
+
"component:ds-button-unfilled"
|
|
131
|
+
],
|
|
132
|
+
"patterns": [
|
|
133
|
+
"pattern:agent-chat"
|
|
134
|
+
],
|
|
135
|
+
"accessibility": [
|
|
136
|
+
"Radio and checkbox primitives own choice semantics, target density, keyboard interaction, and selected or disabled presentation; progress, validation relationships, static answered summaries, and every action remain available without relying on color or visual position.",
|
|
137
|
+
"The component never takes focus when it mounts; the application calls setFocus only when shifting focus is appropriate.",
|
|
138
|
+
"Choice rows use large Radio and Checkbox targets, while every navigation action uses a small Button primitive and Cancel is an icon-only Cross with localized tooltip and accessible name.",
|
|
139
|
+
"Selection primitives preserve focus, selected, invalid, and disabled distinctions in forced colors."
|
|
140
|
+
],
|
|
141
|
+
"states": [
|
|
142
|
+
"The component owns only the current step, validation, and unsaved in-progress draft; the application owns the request, submission, transport, resume operation, persistence, and transcript replacement.",
|
|
143
|
+
"Preparing communicates that questions are being assembled, submitting locks editing without clearing the draft, error retains it with application feedback, and answered is a quiet noninteractive record.",
|
|
144
|
+
"A changed request identifier resets to the first question and seeds a fresh local draft from the supplied answers.",
|
|
145
|
+
"Questionnaire selection primitives are isolated from ancestor forms; only dsAnswer emits the normalized ordered answer collection."
|
|
146
|
+
],
|
|
147
|
+
"responsiveBehavior": [
|
|
148
|
+
"Descriptive choices remain full-row targets, while actions collapse into a single-column layout at narrow widths."
|
|
149
|
+
],
|
|
150
|
+
"references": [
|
|
151
|
+
{
|
|
152
|
+
"label": "Questionnaire state stories",
|
|
153
|
+
"path": "src/wc/components/AgentQuestionnaire/AgentQuestionnaire.stories.ts"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"label": "Agent chat composition",
|
|
157
|
+
"path": "agent/patterns/agent-chat/pattern.agent.json"
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
"props": {
|
|
162
|
+
"allowCancel": {
|
|
163
|
+
"type": "boolean",
|
|
164
|
+
"required": false
|
|
165
|
+
},
|
|
166
|
+
"answers": {
|
|
167
|
+
"type": "AgentQuestionAnswer[]",
|
|
168
|
+
"required": false
|
|
169
|
+
},
|
|
170
|
+
"errorMessage": {
|
|
171
|
+
"type": "string",
|
|
172
|
+
"required": false
|
|
173
|
+
},
|
|
174
|
+
"labels": {
|
|
175
|
+
"type": "Partial<AgentQuestionnaireLabels>",
|
|
176
|
+
"required": false
|
|
177
|
+
},
|
|
178
|
+
"questions": {
|
|
179
|
+
"type": "AgentQuestion[]",
|
|
180
|
+
"required": true
|
|
181
|
+
},
|
|
182
|
+
"requestId": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"required": true
|
|
185
|
+
},
|
|
186
|
+
"status": {
|
|
187
|
+
"type": "AgentQuestionnaireStatus",
|
|
188
|
+
"required": false
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"events": [
|
|
192
|
+
{
|
|
193
|
+
"name": "dsAnswer",
|
|
194
|
+
"detail": "AgentQuestionnaireAnswerEventDetail"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "dsCancel",
|
|
198
|
+
"detail": "AgentQuestionnaireCancelEventDetail"
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
"slots": [],
|
|
202
|
+
"exports": {
|
|
203
|
+
"customElement": "ds-agent-questionnaire",
|
|
204
|
+
"react": "DsAgentQuestionnaire",
|
|
205
|
+
"angular": "DsAgentQuestionnaire"
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"dependencies": [
|
|
209
|
+
"@ds-mo/ui",
|
|
210
|
+
"@ds-mo/tokens",
|
|
211
|
+
"@ds-mo/icons"
|
|
212
|
+
],
|
|
213
|
+
"registryDependencies": [
|
|
214
|
+
"button-filled",
|
|
215
|
+
"button-unfilled",
|
|
216
|
+
"checkbox",
|
|
217
|
+
"icon",
|
|
218
|
+
"loader",
|
|
219
|
+
"radio",
|
|
220
|
+
"text",
|
|
221
|
+
"tooltip"
|
|
222
|
+
]
|
|
223
|
+
},
|
|
102
224
|
{
|
|
103
225
|
"name": "agent-response",
|
|
104
226
|
"title": "AgentResponse",
|
|
105
|
-
"description": "Ordered renderer for normalized immutable agent response parts inside a generic incoming message.",
|
|
227
|
+
"description": "Ordered renderer for normalized immutable agent response parts or an application-composed response body inside a generic incoming message.",
|
|
106
228
|
"type": "registry:ui",
|
|
107
229
|
"meta": {
|
|
108
230
|
"library": "@ds-mo/ui",
|
|
@@ -113,9 +235,9 @@
|
|
|
113
235
|
"intent": {
|
|
114
236
|
"audience": "specialized",
|
|
115
237
|
"status": "experimental",
|
|
116
|
-
"summary": "Ordered renderer for normalized immutable agent response parts inside a generic incoming message.",
|
|
238
|
+
"summary": "Ordered renderer for normalized immutable agent response parts or an application-composed response body inside a generic incoming message.",
|
|
117
239
|
"useWhen": [
|
|
118
|
-
"An agent response combines Markdown, user-safe activity, display-only tools, attachments,
|
|
240
|
+
"An agent response combines Markdown, user-safe activity, display-only tools, attachments, answered questionnaires, sources, or application-specific content in authored order."
|
|
119
241
|
],
|
|
120
242
|
"avoidWhen": [
|
|
121
243
|
"The component would be expected to own a model, transport, persistence, title generation, approval policy, or private reasoning."
|
|
@@ -126,28 +248,30 @@
|
|
|
126
248
|
"component:ds-markdown",
|
|
127
249
|
"component:ds-agent-activity",
|
|
128
250
|
"component:ds-agent-tool-call",
|
|
129
|
-
"component:ds-agent-source-list"
|
|
251
|
+
"component:ds-agent-source-list",
|
|
252
|
+
"component:ds-agent-questionnaire"
|
|
130
253
|
],
|
|
131
254
|
"patterns": [
|
|
132
255
|
"pattern:agent-chat"
|
|
133
256
|
],
|
|
134
257
|
"accessibility": [
|
|
135
|
-
"Part order matches authored reading order and remains inside generic message semantics.",
|
|
258
|
+
"Part or composed-slot order matches authored reading order and remains inside generic message semantics.",
|
|
136
259
|
"Streaming state supplements rather than replaces meaningful textual status.",
|
|
137
260
|
"Forwarded metadata actions retain Message ordering, keyboard reveal, and touch visibility."
|
|
138
261
|
],
|
|
139
262
|
"states": [
|
|
140
263
|
"The owner replaces immutable part arrays as scripted or live output changes.",
|
|
264
|
+
"Parts mode remains the compatibility default for serializable content; composed mode ignores parts and gives the default slot ownership of the complete ordered response body.",
|
|
141
265
|
"AgentResponse renders directly in Message without borrowing a plain MessageBubble surface.",
|
|
142
|
-
"Markdown parts use the optional safe renderer; prose
|
|
266
|
+
"Markdown parts use the optional safe renderer; the response sets the public prose text measure while code, tables, tools, sources, attachments, and other structured parts retain the full lane.",
|
|
143
267
|
"The application may compose MessageActions for completed-response Copy and controlled feedback while retaining persistent retry or recovery controls in the separate actions slot."
|
|
144
268
|
],
|
|
145
269
|
"responsiveBehavior": [
|
|
146
|
-
"
|
|
270
|
+
"Direct prose blocks use a readable text measure within the available transcript width, while narrow lanes and structured content retain their available width and local overflow constraints."
|
|
147
271
|
],
|
|
148
272
|
"references": [
|
|
149
273
|
{
|
|
150
|
-
"label": "
|
|
274
|
+
"label": "Response modes and representative flow",
|
|
151
275
|
"path": "src/wc/components/AgentResponse/AgentResponse.stories.ts"
|
|
152
276
|
},
|
|
153
277
|
{
|
|
@@ -173,6 +297,10 @@
|
|
|
173
297
|
"type": "AgentResponsePart[]",
|
|
174
298
|
"required": false
|
|
175
299
|
},
|
|
300
|
+
"renderMode": {
|
|
301
|
+
"type": "AgentResponseRenderMode",
|
|
302
|
+
"required": false
|
|
303
|
+
},
|
|
176
304
|
"showAuthor": {
|
|
177
305
|
"type": "boolean",
|
|
178
306
|
"required": false
|
|
@@ -200,6 +328,7 @@
|
|
|
200
328
|
],
|
|
201
329
|
"registryDependencies": [
|
|
202
330
|
"agent-activity",
|
|
331
|
+
"agent-questionnaire",
|
|
203
332
|
"agent-source-list",
|
|
204
333
|
"agent-tool-call",
|
|
205
334
|
"attachment-list",
|
|
@@ -210,7 +339,7 @@
|
|
|
210
339
|
{
|
|
211
340
|
"name": "agent-source-list",
|
|
212
341
|
"title": "AgentSourceList",
|
|
213
|
-
"description": "
|
|
342
|
+
"description": "Inline collapsible agent-source list with safe external links, derived hostnames, optional descriptions, and observable disclosure state.",
|
|
214
343
|
"type": "registry:ui",
|
|
215
344
|
"meta": {
|
|
216
345
|
"library": "@ds-mo/ui",
|
|
@@ -221,12 +350,12 @@
|
|
|
221
350
|
"intent": {
|
|
222
351
|
"audience": "specialized",
|
|
223
352
|
"status": "experimental",
|
|
224
|
-
"summary": "
|
|
353
|
+
"summary": "Inline collapsible agent-source list with safe external links, derived hostnames, optional descriptions, and observable disclosure state.",
|
|
225
354
|
"useWhen": [
|
|
226
|
-
"
|
|
355
|
+
"A stable agent response cites external material readers may inspect inline."
|
|
227
356
|
],
|
|
228
357
|
"avoidWhen": [
|
|
229
|
-
"The links are ordinary body links
|
|
358
|
+
"The links are ordinary body links, source discovery is still active, or the application expects a source drawer or deduplication behavior."
|
|
230
359
|
],
|
|
231
360
|
"commonlyComposedWith": [
|
|
232
361
|
"component:ds-agent-response",
|
|
@@ -236,16 +365,20 @@
|
|
|
236
365
|
"pattern:agent-chat"
|
|
237
366
|
],
|
|
238
367
|
"accessibility": [
|
|
239
|
-
"Each source uses descriptive linked text
|
|
240
|
-
"
|
|
368
|
+
"Each interactive source uses descriptive linked text, a visible hostname, supporting context, and an external-link indication.",
|
|
369
|
+
"Malformed and unsafe schemes remain non-interactive text rather than producing executable links.",
|
|
370
|
+
"The native disclosure exposes keyboard and expanded-state semantics, while open-change events let applications observe participant intent."
|
|
371
|
+
],
|
|
372
|
+
"states": [
|
|
373
|
+
"Applications collect and deduplicate sources, then append the stable list once; active discovery remains an activity or tool state."
|
|
241
374
|
],
|
|
242
375
|
"responsiveBehavior": [
|
|
243
|
-
"Source titles and descriptions wrap within the response width."
|
|
376
|
+
"Source titles, hostnames, and descriptions wrap within the response width."
|
|
244
377
|
],
|
|
245
378
|
"references": [
|
|
246
379
|
{
|
|
247
|
-
"label": "
|
|
248
|
-
"path": "src/wc/components/
|
|
380
|
+
"label": "Source safety and disclosure stories",
|
|
381
|
+
"path": "src/wc/components/AgentSourceList/AgentSourceList.stories.ts"
|
|
249
382
|
}
|
|
250
383
|
]
|
|
251
384
|
},
|
|
@@ -263,7 +396,12 @@
|
|
|
263
396
|
"required": false
|
|
264
397
|
}
|
|
265
398
|
},
|
|
266
|
-
"events": [
|
|
399
|
+
"events": [
|
|
400
|
+
{
|
|
401
|
+
"name": "dsOpenChange",
|
|
402
|
+
"detail": "{ open: boolean }"
|
|
403
|
+
}
|
|
404
|
+
],
|
|
267
405
|
"slots": [],
|
|
268
406
|
"exports": {
|
|
269
407
|
"customElement": "ds-agent-source-list",
|
|
@@ -284,7 +422,7 @@
|
|
|
284
422
|
{
|
|
285
423
|
"name": "agent-tool-call",
|
|
286
424
|
"title": "AgentToolCall",
|
|
287
|
-
"description": "
|
|
425
|
+
"description": "Compact display-only status row for a provider-neutral agent tool lifecycle with optional custom result and diagnostic disclosure surfaces.",
|
|
288
426
|
"type": "registry:ui",
|
|
289
427
|
"meta": {
|
|
290
428
|
"library": "@ds-mo/ui",
|
|
@@ -295,34 +433,45 @@
|
|
|
295
433
|
"intent": {
|
|
296
434
|
"audience": "specialized",
|
|
297
435
|
"status": "experimental",
|
|
298
|
-
"summary": "
|
|
436
|
+
"summary": "Compact display-only status row for a provider-neutral agent tool lifecycle with optional custom result and diagnostic disclosure surfaces.",
|
|
299
437
|
"useWhen": [
|
|
300
|
-
"
|
|
438
|
+
"An agent product needs to expose user-safe tool preparation, queueing, execution, participant wait, completion, failure, denial, or cancellation state."
|
|
301
439
|
],
|
|
302
440
|
"avoidWhen": [
|
|
303
|
-
"A participant must approve, deny, edit, or
|
|
441
|
+
"A participant must approve, deny, edit, retry, or execute the tool call; those product controls and consequences remain outside this component."
|
|
304
442
|
],
|
|
305
443
|
"commonlyComposedWith": [
|
|
306
444
|
"component:ds-agent-response",
|
|
307
|
-
"component:ds-code-block"
|
|
445
|
+
"component:ds-code-block",
|
|
446
|
+
"component:ds-text"
|
|
308
447
|
],
|
|
309
448
|
"patterns": [
|
|
310
449
|
"pattern:agent-chat"
|
|
311
450
|
],
|
|
312
451
|
"accessibility": [
|
|
313
|
-
"
|
|
314
|
-
"
|
|
452
|
+
"Every lifecycle state remains visible as text and error or denied meaning does not depend on color.",
|
|
453
|
+
"A disclosure is rendered only when details exist and uses native keyboard and expanded-state semantics.",
|
|
454
|
+
"Structured input, output, and error details use the semantic code-family fallback and optional ligature override."
|
|
315
455
|
],
|
|
316
456
|
"states": [
|
|
317
|
-
"
|
|
457
|
+
"Applications normalize provider-specific tool states and may localize the visible status label before rendering.",
|
|
458
|
+
"A custom summary replaces the generated name, a custom result owns the primary result surface, and custom details replace generic input, output, and error diagnostics.",
|
|
459
|
+
"An ordinary text-only custom result inherits the body-medium interface-text baseline; structured result components retain ownership of their own layout and typography.",
|
|
460
|
+
"Compose semantic links around ds-text when a custom result is navigational so anchor semantics and design-system typography each have one owner.",
|
|
461
|
+
"Applications load font assets once at their root; tool details and results never fetch or package a font.",
|
|
462
|
+
"This component presents state but never executes a tool or owns approval, retry, authorization, transport, or consequence policy."
|
|
318
463
|
],
|
|
319
464
|
"responsiveBehavior": [
|
|
320
|
-
"
|
|
465
|
+
"Long names and state labels wrap inside the compact row while custom results and structured diagnostics remain within the transcript lane without widening it."
|
|
321
466
|
],
|
|
322
467
|
"references": [
|
|
323
468
|
{
|
|
324
|
-
"label": "
|
|
325
|
-
"path": "src/wc/components/
|
|
469
|
+
"label": "Lifecycle and slot stories",
|
|
470
|
+
"path": "src/wc/components/AgentToolCall/AgentToolCall.stories.ts"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"label": "Font ownership and loading",
|
|
474
|
+
"path": "docs/font-ownership.md"
|
|
326
475
|
}
|
|
327
476
|
]
|
|
328
477
|
},
|
|
@@ -354,9 +503,18 @@
|
|
|
354
503
|
"state": {
|
|
355
504
|
"type": "AgentToolState",
|
|
356
505
|
"required": false
|
|
506
|
+
},
|
|
507
|
+
"statusLabel": {
|
|
508
|
+
"type": "string",
|
|
509
|
+
"required": false
|
|
357
510
|
}
|
|
358
511
|
},
|
|
359
|
-
"events": [
|
|
512
|
+
"events": [
|
|
513
|
+
{
|
|
514
|
+
"name": "dsOpenChange",
|
|
515
|
+
"detail": "{ open: boolean }"
|
|
516
|
+
}
|
|
517
|
+
],
|
|
360
518
|
"slots": [],
|
|
361
519
|
"exports": {
|
|
362
520
|
"customElement": "ds-agent-tool-call",
|
|
@@ -2589,7 +2747,7 @@
|
|
|
2589
2747
|
{
|
|
2590
2748
|
"name": "checkbox",
|
|
2591
2749
|
"title": "Checkbox",
|
|
2592
|
-
"description": "Form-associated checkbox for independent choices, acknowledgment, or consent, with checked, unchecked, mixed, and four density states.",
|
|
2750
|
+
"description": "Form-associated checkbox for independent choices, acknowledgment, or consent, with optional supporting description, checked, unchecked, mixed, and four density states.",
|
|
2593
2751
|
"type": "registry:ui",
|
|
2594
2752
|
"meta": {
|
|
2595
2753
|
"library": "@ds-mo/ui",
|
|
@@ -2600,7 +2758,7 @@
|
|
|
2600
2758
|
"intent": {
|
|
2601
2759
|
"audience": "general",
|
|
2602
2760
|
"status": "stable",
|
|
2603
|
-
"summary": "Form-associated checkbox for independent choices, acknowledgment, or consent, with checked, unchecked, mixed, and four density states.",
|
|
2761
|
+
"summary": "Form-associated checkbox for independent choices, acknowledgment, or consent, with optional supporting description, checked, unchecked, mixed, and four density states.",
|
|
2604
2762
|
"useWhen": [
|
|
2605
2763
|
"A user may independently select zero or more choices.",
|
|
2606
2764
|
"A form requires acknowledgment, consent, or an opt-in value before submission.",
|
|
@@ -2634,7 +2792,7 @@
|
|
|
2634
2792
|
"component:ds-text"
|
|
2635
2793
|
],
|
|
2636
2794
|
"accessibility": [
|
|
2637
|
-
"Every interactive checkbox requires a visible label that provides its accessible name.",
|
|
2795
|
+
"Every interactive checkbox requires a visible label that provides its accessible name; an optional visible description is associated as supporting context.",
|
|
2638
2796
|
"Enter and Space activate the checkbox; checked and mixed state are exposed through aria-checked.",
|
|
2639
2797
|
"Disabled and inactive checkboxes leave the tab order and are omitted from form submission.",
|
|
2640
2798
|
"Use presentation mode only inside a composite option that owns selection semantics, focus, and interaction."
|
|
@@ -2644,16 +2802,17 @@
|
|
|
2644
2802
|
"Activating an indeterminate checkbox clears the mixed state, toggles checked, and emits dsChange with the resulting boolean.",
|
|
2645
2803
|
"The initial checked and indeterminate values are restored by native form reset; checked values submit under name and unchecked values submit nothing.",
|
|
2646
2804
|
"Sizes are lg with a 20px box in a 24px placement, md with a 16px box in a 20px placement, sm with a 12px box in a 16px placement, and xs with an 8px box in a 12px placement.",
|
|
2647
|
-
"Presentation mode removes checkbox semantics, focus, interaction, label rendering, and form submission while preserving the visual state."
|
|
2805
|
+
"Presentation mode removes checkbox semantics, focus, interaction, label rendering, description rendering, and form submission while preserving the visual state.",
|
|
2806
|
+
"Description-rich checkboxes grow beyond the fixed density height while retaining its minimum target size and primitive-owned selection anatomy."
|
|
2648
2807
|
],
|
|
2649
2808
|
"responsiveBehavior": [
|
|
2650
|
-
"Choose size from the density of the containing row; labels may wrap while the placement box stays fixed.",
|
|
2809
|
+
"Choose size from the density of the containing row; labels and descriptions may wrap while the placement box stays fixed.",
|
|
2651
2810
|
"Use the same density as the shared option icon zone in multi-select rows."
|
|
2652
2811
|
],
|
|
2653
2812
|
"frameworkCaveats": {
|
|
2654
2813
|
"customElements": [
|
|
2655
2814
|
"Bind checked and indeterminate as properties for application state updates and listen for dsChange.",
|
|
2656
|
-
"Use the form attribute on the host when associating a checkbox rendered outside its owning form."
|
|
2815
|
+
"Use the form attribute on the host when associating a checkbox rendered outside its owning form or isolating it from an ancestor form."
|
|
2657
2816
|
],
|
|
2658
2817
|
"react": [
|
|
2659
2818
|
"Use DsCheckbox and handle onDsChange; checked and indeterminate are mutable and update after user activation."
|
|
@@ -2678,6 +2837,10 @@
|
|
|
2678
2837
|
"type": "boolean",
|
|
2679
2838
|
"required": false
|
|
2680
2839
|
},
|
|
2840
|
+
"description": {
|
|
2841
|
+
"type": "string",
|
|
2842
|
+
"required": false
|
|
2843
|
+
},
|
|
2681
2844
|
"disabled": {
|
|
2682
2845
|
"type": "boolean",
|
|
2683
2846
|
"required": false
|
|
@@ -2878,7 +3041,7 @@
|
|
|
2878
3041
|
{
|
|
2879
3042
|
"name": "code-block",
|
|
2880
3043
|
"title": "CodeBlock",
|
|
2881
|
-
"description": "Scrollable
|
|
3044
|
+
"description": "Scrollable code surface with optional language or filename context and copy action.",
|
|
2882
3045
|
"type": "registry:ui",
|
|
2883
3046
|
"meta": {
|
|
2884
3047
|
"library": "@ds-mo/ui",
|
|
@@ -2889,7 +3052,7 @@
|
|
|
2889
3052
|
"intent": {
|
|
2890
3053
|
"audience": "general",
|
|
2891
3054
|
"status": "experimental",
|
|
2892
|
-
"summary": "Scrollable
|
|
3055
|
+
"summary": "Scrollable code surface with optional language or filename context and copy action.",
|
|
2893
3056
|
"useWhen": [
|
|
2894
3057
|
"A message or document displays fenced code that readers may copy."
|
|
2895
3058
|
],
|
|
@@ -2902,7 +3065,11 @@
|
|
|
2902
3065
|
],
|
|
2903
3066
|
"accessibility": [
|
|
2904
3067
|
"The copy action has matching accessible-name and visible-tooltip status wording, and the code remains selectable text.",
|
|
2905
|
-
"Language and filename labels supplement rather than replace the code content."
|
|
3068
|
+
"Language and filename labels supplement rather than replace the code content.",
|
|
3069
|
+
"The semantic code-family token retains a system-monospace fallback when an application does not load Fira Code; applications may disable programming ligatures through the shared code-surface custom property."
|
|
3070
|
+
],
|
|
3071
|
+
"states": [
|
|
3072
|
+
"Applications load font assets once at their root. The component consumes --typography-font-family-code and never fetches or packages a font."
|
|
2906
3073
|
],
|
|
2907
3074
|
"responsiveBehavior": [
|
|
2908
3075
|
"Long lines scroll horizontally and do not widen the owning transcript."
|
|
@@ -2910,7 +3077,11 @@
|
|
|
2910
3077
|
"references": [
|
|
2911
3078
|
{
|
|
2912
3079
|
"label": "Storybook examples",
|
|
2913
|
-
"path": "src/wc/components/
|
|
3080
|
+
"path": "src/wc/components/CodeBlock/CodeBlock.stories.ts"
|
|
3081
|
+
},
|
|
3082
|
+
{
|
|
3083
|
+
"label": "Font ownership and loading",
|
|
3084
|
+
"path": "docs/font-ownership.md"
|
|
2914
3085
|
}
|
|
2915
3086
|
]
|
|
2916
3087
|
},
|
|
@@ -4548,7 +4719,7 @@
|
|
|
4548
4719
|
{
|
|
4549
4720
|
"name": "message-composer",
|
|
4550
4721
|
"title": "MessageComposer",
|
|
4551
|
-
"description": "Two-line auto-growing conversation textarea with submit, stop, error, and extensible
|
|
4722
|
+
"description": "Two-line auto-growing conversation textarea with submit, stop, an attached submission-error support surface, and extensible tool, action, and error-recovery regions.",
|
|
4552
4723
|
"type": "registry:ui",
|
|
4553
4724
|
"meta": {
|
|
4554
4725
|
"library": "@ds-mo/ui",
|
|
@@ -4559,7 +4730,7 @@
|
|
|
4559
4730
|
"intent": {
|
|
4560
4731
|
"audience": "general",
|
|
4561
4732
|
"status": "experimental",
|
|
4562
|
-
"summary": "Two-line auto-growing conversation textarea with submit, stop, error, and extensible
|
|
4733
|
+
"summary": "Two-line auto-growing conversation textarea with submit, stop, an attached submission-error support surface, and extensible tool, action, and error-recovery regions.",
|
|
4563
4734
|
"useWhen": [
|
|
4564
4735
|
"A conversation accepts multi-line text and needs Enter-to-submit with a streaming stop action."
|
|
4565
4736
|
],
|
|
@@ -4577,14 +4748,17 @@
|
|
|
4577
4748
|
"accessibility": [
|
|
4578
4749
|
"Always provide a localized textarea label and submit or stop action names; the built-in icon action exposes the same name in its tooltip.",
|
|
4579
4750
|
"Shift plus Enter inserts a newline while Enter submits non-empty content.",
|
|
4580
|
-
"
|
|
4751
|
+
"Submission errors remain visible and announced above the editable box as part of one attached composer unit, and the editable control references their text while the error state is active.",
|
|
4752
|
+
"Streaming and error states remain perceivable without relying on icon shape or color alone."
|
|
4581
4753
|
],
|
|
4582
4754
|
"states": [
|
|
4583
4755
|
"The owner controls draft value and transport state; the composer emits intent without performing transport.",
|
|
4756
|
+
"Error status never clears or disables the draft; the application supplies recovery actions through error-actions and owns retry semantics. The negative support surface appears above and attached to the composer box, within the component's measured ownership.",
|
|
4584
4757
|
"Use the tools slot for leading actions such as add and the actions slot for trailing actions such as dictation; the built-in submit or stop action remains last with an 8px gap from the preceding action. These icon buttons use the standard non-rounded control radius, and the application supplies tooltips for slotted icon actions.",
|
|
4585
4758
|
"The composer surface uses the 10px --dimension-radius-125 token.",
|
|
4586
4759
|
"Mouse or keyboard focus on the textarea gives the complete composer surface the same bold-brand inset stroke width and color as an active Input; the native textarea never draws a separate outline.",
|
|
4587
|
-
"The empty or otherwise inactive submit action is a disabled bordered ButtonUnfilled. Ready submit actions use submitIntent, while the streaming stop action remains a bold-brand ButtonFilled."
|
|
4760
|
+
"The empty or otherwise inactive submit action is a disabled bordered ButtonUnfilled. Ready submit actions use submitIntent, while the streaming stop action remains a bold-brand ButtonFilled.",
|
|
4761
|
+
"The attached error unit keeps a real boundary in forced colors and lets message text and application-owned recovery actions wrap at narrow widths."
|
|
4588
4762
|
],
|
|
4589
4763
|
"responsiveBehavior": [
|
|
4590
4764
|
"The textarea begins at two body-medium lines, grows one line at a time through six lines, and then scrolls internally."
|
|
@@ -4601,6 +4775,10 @@
|
|
|
4601
4775
|
]
|
|
4602
4776
|
},
|
|
4603
4777
|
"props": {
|
|
4778
|
+
"errorMessage": {
|
|
4779
|
+
"type": "string",
|
|
4780
|
+
"required": false
|
|
4781
|
+
},
|
|
4604
4782
|
"isInactive": {
|
|
4605
4783
|
"type": "boolean",
|
|
4606
4784
|
"required": false
|
|
@@ -4649,18 +4827,21 @@
|
|
|
4649
4827
|
},
|
|
4650
4828
|
"dependencies": [
|
|
4651
4829
|
"@ds-mo/ui",
|
|
4652
|
-
"@ds-mo/tokens"
|
|
4830
|
+
"@ds-mo/tokens",
|
|
4831
|
+
"@ds-mo/icons"
|
|
4653
4832
|
],
|
|
4654
4833
|
"registryDependencies": [
|
|
4655
4834
|
"button-filled",
|
|
4656
4835
|
"button-unfilled",
|
|
4836
|
+
"icon",
|
|
4837
|
+
"text",
|
|
4657
4838
|
"tooltip"
|
|
4658
4839
|
]
|
|
4659
4840
|
},
|
|
4660
4841
|
{
|
|
4661
4842
|
"name": "message-scroller",
|
|
4662
4843
|
"title": "MessageScroller",
|
|
4663
|
-
"description": "Focusable transcript scroller
|
|
4844
|
+
"description": "Focusable transcript scroller with turn anchoring, reader-controlled live-edge following, and a measured interaction-plus-composer overlay stack.",
|
|
4664
4845
|
"type": "registry:ui",
|
|
4665
4846
|
"meta": {
|
|
4666
4847
|
"library": "@ds-mo/ui",
|
|
@@ -4671,7 +4852,7 @@
|
|
|
4671
4852
|
"intent": {
|
|
4672
4853
|
"audience": "general",
|
|
4673
4854
|
"status": "experimental",
|
|
4674
|
-
"summary": "Focusable transcript scroller
|
|
4855
|
+
"summary": "Focusable transcript scroller with turn anchoring, reader-controlled live-edge following, and a measured interaction-plus-composer overlay stack.",
|
|
4675
4856
|
"useWhen": [
|
|
4676
4857
|
"Messages can append or stream and transcript position must remain respectful of reader intent."
|
|
4677
4858
|
],
|
|
@@ -4680,10 +4861,12 @@
|
|
|
4680
4861
|
],
|
|
4681
4862
|
"commonlyComposedWith": [
|
|
4682
4863
|
"component:ds-message",
|
|
4683
|
-
"component:ds-message-composer"
|
|
4864
|
+
"component:ds-message-composer",
|
|
4865
|
+
"component:ds-agent-questionnaire"
|
|
4684
4866
|
],
|
|
4685
4867
|
"patterns": [
|
|
4686
|
-
"pattern:conversation"
|
|
4868
|
+
"pattern:conversation",
|
|
4869
|
+
"pattern:agent-chat"
|
|
4687
4870
|
],
|
|
4688
4871
|
"accessibility": [
|
|
4689
4872
|
"Give each transcript a concise localized label.",
|
|
@@ -4691,11 +4874,12 @@
|
|
|
4691
4874
|
"The scroll-to-latest control remains keyboard accessible when follow behavior is released and exposes its action name in a tooltip."
|
|
4692
4875
|
],
|
|
4693
4876
|
"states": [
|
|
4694
|
-
"
|
|
4877
|
+
"Wheel, touch, keyboard navigation, selection, and transcript interaction release automatic following; Scroll to latest explicitly restores it.",
|
|
4878
|
+
"A newly appended outgoing Message marked scroll-anchor starts a turn near the top with the configurable previous-turn peek; mutations inside existing messages and prepended history do not re-anchor.",
|
|
4695
4879
|
"Opening saved history, message jumps, and prepended history preserve deliberate position.",
|
|
4696
4880
|
"The scroll-to-latest action is absent at the live edge, appears only after the reader moves away, and disappears again after returning to the newest message.",
|
|
4697
4881
|
"Scroll to latest uses the shared md control-elevation wrapper with a pointer-transparent top highlight, preserving its transparent backdrop blur and borderless unfilled action while the press-scale modifier moves the complete elevated surface.",
|
|
4698
|
-
"Place a composer container with 8px padding on every side in
|
|
4882
|
+
"Place a pending human-input surface in interaction and a composer container with 8px padding on every side in overlay; the shared scroll-overlay controller measures them as one stack, tracks every growth step, reserves matching transcript clearance, begins the fade before the stack, and keeps scroll-to-latest above it."
|
|
4699
4883
|
],
|
|
4700
4884
|
"responsiveBehavior": [
|
|
4701
4885
|
"Transcript width is readable while the scroll region fills available height.",
|
|
@@ -6220,7 +6404,7 @@
|
|
|
6220
6404
|
{
|
|
6221
6405
|
"name": "radio",
|
|
6222
6406
|
"title": "Radio",
|
|
6223
|
-
"description": "Form-associated one-of-many radio selection set with vertical or horizontal layout, four densities, per-option inactive state, and roving keyboard focus.",
|
|
6407
|
+
"description": "Form-associated one-of-many radio selection set with vertical or horizontal layout, optional per-option descriptions, four densities, per-option inactive state, and roving keyboard focus.",
|
|
6224
6408
|
"type": "registry:ui",
|
|
6225
6409
|
"meta": {
|
|
6226
6410
|
"library": "@ds-mo/ui",
|
|
@@ -6231,7 +6415,7 @@
|
|
|
6231
6415
|
"intent": {
|
|
6232
6416
|
"audience": "general",
|
|
6233
6417
|
"status": "stable",
|
|
6234
|
-
"summary": "Form-associated one-of-many radio selection set with vertical or horizontal layout, four densities, per-option inactive state, and roving keyboard focus.",
|
|
6418
|
+
"summary": "Form-associated one-of-many radio selection set with vertical or horizontal layout, optional per-option descriptions, four densities, per-option inactive state, and roving keyboard focus.",
|
|
6235
6419
|
"useWhen": [
|
|
6236
6420
|
"A user must select exactly one visible option from a small set.",
|
|
6237
6421
|
"All available choices should remain visible for comparison.",
|
|
@@ -6265,19 +6449,20 @@
|
|
|
6265
6449
|
],
|
|
6266
6450
|
"accessibility": [
|
|
6267
6451
|
"The host exposes radiogroup semantics and requires an accessible group name from aria-label or aria-labelledby.",
|
|
6268
|
-
"Each visible option exposes radio semantics, its checked state, its label text, and any inactive state.",
|
|
6452
|
+
"Each visible option exposes radio semantics, its checked state, its label text, optional supporting description, and any inactive state.",
|
|
6269
6453
|
"Arrow keys move and select through active options; Home and End select the first and last active options; Space and Enter select the focused option.",
|
|
6270
|
-
"Roving tabindex keeps one active option in the tab order, preferring the selected option."
|
|
6454
|
+
"Roving tabindex keeps one active option in the tab order, preferring the selected option; setFocus uses that same public focus target."
|
|
6271
6455
|
],
|
|
6272
6456
|
"states": [
|
|
6273
6457
|
"Unchecked circles use a tertiary-foreground inset stroke: 1.5px at lg, 1.25px at md, 1px at sm, and 0.75px at xs.",
|
|
6274
6458
|
"Selected circles remove the border, use a brand fill, and draw a centered on-bold foreground dot sized 10px at lg, 8px at md, 6px at sm, and 4px at xs.",
|
|
6275
6459
|
"Sizes are lg with a 20px circle in a 24px placement, md with a 16px circle in a 20px placement, sm with a 12px circle in a 16px placement, and xs with an 8px circle in a 12px placement.",
|
|
6276
|
-
"The initial value is restored by native form reset; the selected value submits under name and a required set is invalid until one active option is selected."
|
|
6460
|
+
"The initial value is restored by native form reset; the selected value submits under name and a required set is invalid until one active option is selected.",
|
|
6461
|
+
"Description-rich options grow beyond the fixed density height while retaining its minimum target size and primitive-owned selection anatomy."
|
|
6277
6462
|
],
|
|
6278
6463
|
"responsiveBehavior": [
|
|
6279
6464
|
"Choose size from the density of the containing form or settings row.",
|
|
6280
|
-
"Prefer vertical layout when labels may wrap or horizontal space is constrained; horizontal layout is appropriate for short labels in a small set."
|
|
6465
|
+
"Prefer vertical layout when labels or descriptions may wrap or horizontal space is constrained; horizontal layout is appropriate for short labels in a small set."
|
|
6281
6466
|
],
|
|
6282
6467
|
"frameworkCaveats": {
|
|
6283
6468
|
"customElements": [
|
|
@@ -9030,6 +9215,8 @@
|
|
|
9030
9215
|
"The owning chart mounts the callout when a local interaction starts and unmounts it when that interaction ends.",
|
|
9031
9216
|
"Coordinate updates track within one mounted interaction session without restarting the show delay.",
|
|
9032
9217
|
"Placement flips horizontally or vertically when the rendered callout approaches a viewport edge.",
|
|
9218
|
+
"The heading and rows use the same medium-density section-heading and control-frame anatomy as menu-style choice content.",
|
|
9219
|
+
"When any grouped row supplies a swatch, every row reserves the shared leading icon zone so mixed-swatch labels and trailing values stay aligned.",
|
|
9033
9220
|
"Placement is chosen as a quadrant rather than computed as coordinates: the component measures its own rendered rect and flips its side and align props, which CSS consumes. It therefore does not use the shared anchored-position utilities, which resolve an anchor element into x and y.",
|
|
9034
9221
|
"This separation is deliberate. The callout follows the pointer instead of an element, so it has no anchor rect to resolve; adopting the shared geometry would mean rewriting its CSS to consume coordinates for no behavioral gain.",
|
|
9035
9222
|
"Reduced motion preserves the final visible state without an opacity transition."
|