@ds-mo/ui 9.2.1 → 11.0.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/README.md +2 -2
- package/dist/.build-stamp +1 -1
- package/dist/agent-patterns.json +15 -9
- package/dist/agent.json +473 -150
- package/dist/angular/boolean-value-accessor.js +3 -3
- package/dist/angular/ds-agent-activity.js +3 -3
- package/dist/angular/ds-agent-response.js +3 -3
- package/dist/angular/ds-agent-source-list.js +3 -3
- package/dist/angular/ds-agent-tool-call.js +3 -3
- package/dist/angular/ds-app-shell.js +3 -3
- package/dist/angular/ds-attachment-list.js +3 -3
- package/dist/angular/ds-avatar.js +3 -3
- package/dist/angular/ds-badge.js +3 -3
- package/dist/angular/ds-bar-nav.js +3 -3
- package/dist/angular/ds-button-filled.js +3 -3
- package/dist/angular/ds-button-unfilled.js +3 -3
- package/dist/angular/ds-card-data-viz-donut.js +3 -3
- package/dist/angular/ds-card-setting.d.ts +5 -4
- package/dist/angular/ds-card-setting.js +6 -6
- package/dist/angular/ds-card-shell-data-viz.js +3 -3
- package/dist/angular/ds-chart-bar.js +3 -3
- package/dist/angular/ds-chart-donut.js +3 -3
- package/dist/angular/ds-chart-legend.js +3 -3
- package/dist/angular/ds-chart-line.js +3 -3
- package/dist/angular/ds-checkbox.js +3 -3
- package/dist/angular/ds-chip.js +3 -3
- package/dist/angular/ds-code-block.js +3 -3
- package/dist/angular/ds-conversation-list-item.js +3 -3
- package/dist/angular/ds-conversation-list-section.js +3 -3
- package/dist/angular/ds-conversation-list.js +3 -3
- package/dist/angular/ds-divider.js +3 -3
- package/dist/angular/ds-empty-state.js +3 -3
- package/dist/angular/ds-field.js +3 -3
- package/dist/angular/ds-icon.js +3 -3
- package/dist/angular/ds-input.js +3 -3
- package/dist/angular/ds-loader.js +3 -3
- package/dist/angular/ds-markdown.js +3 -3
- package/dist/angular/ds-menu.js +3 -3
- package/dist/angular/ds-message-bubble.js +3 -3
- package/dist/angular/ds-message-composer.js +3 -3
- package/dist/angular/ds-message-scroller.js +3 -3
- package/dist/angular/ds-message.js +3 -3
- package/dist/angular/ds-modal.d.ts +12 -3
- package/dist/angular/ds-modal.js +9 -6
- package/dist/angular/ds-panel-nav.js +3 -3
- package/dist/angular/ds-panel-sub-nav.js +3 -3
- package/dist/angular/ds-panel-tool-header.js +3 -3
- package/dist/angular/ds-panel-tool-search.js +3 -3
- package/dist/angular/ds-panel-tools.js +3 -3
- package/dist/angular/ds-radio.js +3 -3
- package/dist/angular/ds-select-multi.js +3 -3
- package/dist/angular/ds-select.js +3 -3
- package/dist/angular/ds-shell-gradient-picker.js +3 -3
- package/dist/angular/ds-shell-gradient-swatch.js +3 -3
- package/dist/angular/ds-skeleton.js +3 -3
- package/dist/angular/ds-slider.js +3 -3
- package/dist/angular/ds-swatch-picker.js +3 -3
- package/dist/angular/ds-switch.js +3 -3
- package/dist/angular/ds-tab-group.js +3 -3
- package/dist/angular/ds-tag.js +3 -3
- package/dist/angular/ds-text.js +3 -3
- package/dist/angular/ds-toast.d.ts +22 -0
- package/dist/angular/{ds-banner.js → ds-toast.js} +21 -15
- package/dist/angular/ds-tooltip-data-viz.js +3 -3
- package/dist/angular/ds-tooltip.js +3 -3
- package/dist/angular/ds-typing-indicator.d.ts +12 -0
- package/dist/angular/{ds-card.js → ds-typing-indicator.js} +12 -12
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +3 -3
- package/dist/angular/proxies.d.ts +2 -2
- package/dist/angular/proxies.js +2 -2
- package/dist/angular/radio-value-accessor.js +3 -3
- package/dist/angular/select-value-accessor.js +3 -3
- package/dist/angular/text-value-accessor.js +3 -3
- package/dist/angular/value-accessor.js +3 -3
- package/dist/components/ds-agent-activity.js +1 -1
- 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-app-shell.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-avatar.js +1 -1
- package/dist/components/ds-avatar.js.map +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-nav.js.map +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-data-viz-donut.js +1 -1
- package/dist/components/ds-card-data-viz-donut.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-setting.js.map +1 -1
- package/dist/components/ds-card-shell-data-viz.js +1 -1
- package/dist/components/ds-chart-bar.js +1 -1
- package/dist/components/ds-chart-donut.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-line.js +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-icon.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-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-modal.js +1 -1
- package/dist/components/ds-modal.js.map +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-nav.js.map +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-tool-search.js.map +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-panel-tools.js.map +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-radio.js.map +1 -1
- package/dist/components/ds-select-multi.js +1 -1
- package/dist/components/ds-select-multi.js.map +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-select.js.map +1 -1
- package/dist/components/ds-shell-gradient-picker.js +1 -1
- package/dist/components/ds-shell-gradient-swatch.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-skeleton.js.map +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-tab-group.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-tag.js.map +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/{ds-card.d.ts → ds-toast.d.ts} +4 -4
- package/dist/components/ds-toast.js +2 -0
- package/dist/components/ds-toast.js.map +1 -0
- package/dist/components/ds-tooltip-data-viz.js +1 -1
- package/dist/components/ds-tooltip-data-viz.js.map +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/{ds-banner.d.ts → ds-typing-indicator.d.ts} +4 -4
- package/dist/components/ds-typing-indicator.js +2 -0
- package/dist/components/ds-typing-indicator.js.map +1 -0
- package/dist/components/{p-DnMCRAwx.js → p-0kEg-Z4f.js} +2 -2
- package/dist/components/p-B8C_yfLQ.js +2 -0
- package/dist/components/p-B8C_yfLQ.js.map +1 -0
- package/dist/components/{p-DiooIO2B.js → p-BEWtqFX7.js} +2 -2
- package/dist/components/p-BMwnjAIq.js +2 -0
- package/dist/components/p-BMwnjAIq.js.map +1 -0
- package/dist/components/{p-Ci_nVk5P.js → p-BkwBtZs3.js} +2 -2
- package/dist/components/p-C3nDIMX5.js +2 -0
- package/dist/components/{p-Dj5MejHv.js.map → p-C3nDIMX5.js.map} +1 -1
- package/dist/components/{p-CJlgONwR.js → p-C8e2A66f.js} +2 -2
- package/dist/components/{p-BRfOCc_h.js → p-CLn7QnE0.js} +2 -2
- package/dist/components/{p-kezp2_Xu.js → p-CPPAndX2.js} +2 -2
- package/dist/components/p-CTFBf97-.js +2 -0
- package/dist/components/{p-CblAABEo.js.map → p-CTFBf97-.js.map} +1 -1
- package/dist/components/{p-BSOZXagj.js → p-CZZYGqKz.js} +2 -2
- package/dist/components/p-C_0Q8Cnp.js +2 -0
- package/dist/components/p-C_0Q8Cnp.js.map +1 -0
- package/dist/components/{p-T0Mzhv3-.js → p-CbckeueL.js} +2 -2
- package/dist/components/p-CjP8sYlo.js +2 -0
- package/dist/components/{p-xB0GPG3-.js.map → p-CjP8sYlo.js.map} +1 -1
- package/dist/components/{p-DaQ0ZE_V.js → p-DJ78wdNv.js} +2 -2
- package/dist/components/p-DTqCBjUj.js +2 -0
- package/dist/components/{p-Dst-OliP.js.map → p-DTqCBjUj.js.map} +1 -1
- package/dist/components/{p-CeFBA7Dx.js → p-Dh4q5TSS.js} +2 -2
- package/dist/components/p-DirD-b2y.js +2 -0
- package/dist/components/{p-BHpWYKtP.js.map → p-DirD-b2y.js.map} +1 -1
- package/dist/components/{p-CiwdnKKp.js → p-DrDHC7V6.js} +2 -2
- package/dist/components/p-DuNZGFkV.js +2 -0
- package/dist/components/p-DuNZGFkV.js.map +1 -0
- package/dist/components/{p-Cijzn3YQ.js → p-Hw-HMjCk.js} +2 -2
- package/dist/components/p-M5pt9I13.js +2 -0
- package/dist/components/p-M5pt9I13.js.map +1 -0
- package/dist/components/{p-B1pWGQn1.js → p-bDx_rlLm.js} +2 -2
- package/dist/docs/components.json +1509 -1530
- package/dist/framework/select-multi-value-accessor.js +3 -3
- package/dist/lib/toast/index.d.ts +2 -0
- package/dist/lib/toast/index.js +158 -0
- package/dist/lib/toast/index.js.map +7 -0
- package/dist/lib/toast/toast-manager.d.ts +3 -0
- package/dist/lib/toast/toast-types.d.ts +85 -0
- package/dist/mcp-data/registry/agent-activity.json +1 -1
- package/dist/mcp-data/registry/agent-response.json +6 -6
- package/dist/mcp-data/registry/agent-source-list.json +1 -1
- package/dist/mcp-data/registry/agent-tool-call.json +1 -1
- package/dist/mcp-data/registry/app-shell.json +1 -1
- 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/bar-nav.json +1 -1
- 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-data-viz-donut.json +2 -2
- package/dist/mcp-data/registry/card-setting.json +99 -13
- package/dist/mcp-data/registry/card-shell-data-viz.json +8 -8
- package/dist/mcp-data/registry/chart-bar.json +1 -1
- package/dist/mcp-data/registry/chart-donut.json +1 -1
- package/dist/mcp-data/registry/chart-legend.json +1 -1
- package/dist/mcp-data/registry/chart-line.json +1 -1
- package/dist/mcp-data/registry/checkbox.json +1 -1
- package/dist/mcp-data/registry/chip.json +1 -1
- package/dist/mcp-data/registry/code-block.json +1 -1
- package/dist/mcp-data/registry/conversation-list-item.json +5 -5
- 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 +5 -5
- 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 +2 -2
- 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 +1 -1
- package/dist/mcp-data/registry/message-bubble.json +21 -16
- package/dist/mcp-data/registry/message-composer.json +6 -4
- package/dist/mcp-data/registry/message-scroller.json +2 -2
- package/dist/mcp-data/registry/message.json +7 -6
- package/dist/mcp-data/registry/modal.json +154 -24
- package/dist/mcp-data/registry/panel-nav.json +4 -3
- package/dist/mcp-data/registry/panel-sub-nav.json +2 -2
- 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 +1 -1
- package/dist/mcp-data/registry/radio.json +1 -1
- package/dist/mcp-data/registry/registry.json +479 -156
- package/dist/mcp-data/registry/select-multi.json +1 -1
- package/dist/mcp-data/registry/select.json +1 -1
- package/dist/mcp-data/registry/shell-gradient-picker.json +1 -1
- package/dist/mcp-data/registry/shell-gradient-swatch.json +1 -1
- package/dist/mcp-data/registry/skeleton.json +4 -4
- package/dist/mcp-data/registry/slider.json +1 -1
- package/dist/mcp-data/registry/swatch-picker.json +1 -1
- package/dist/mcp-data/registry/switch.json +1 -1
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/tag.json +2 -2
- package/dist/mcp-data/registry/text.json +2 -2
- package/dist/mcp-data/registry/toast.json +318 -0
- package/dist/mcp-data/registry/tooltip-data-viz.json +1 -1
- package/dist/mcp-data/registry/tooltip.json +1 -1
- package/dist/mcp-data/registry/typing-indicator.json +127 -0
- package/dist/react/components.d.ts +2 -2
- package/dist/react/components.js +2 -2
- package/dist/react/ds-card-setting.d.ts +2 -2
- package/dist/react/ds-card-setting.js +1 -1
- package/dist/react/ds-modal.d.ts +3 -2
- package/dist/react/ds-modal.js +4 -1
- package/dist/react/ds-toast.d.ts +14 -0
- package/dist/react/ds-toast.js +16 -0
- package/dist/react/{ds-card.d.ts → ds-typing-indicator.d.ts} +3 -3
- package/dist/react/ds-typing-indicator.js +12 -0
- package/dist/types/components/CardSetting/CardSetting.d.ts +9 -6
- package/dist/types/components/CardSetting/index.d.ts +1 -1
- package/dist/types/components/MessageBubble/MessageBubble.d.ts +1 -1
- package/dist/types/components/Modal/Modal.d.ts +21 -18
- package/dist/types/components/Toast/Toast.d.ts +106 -0
- package/dist/types/components/Toast/index.d.ts +2 -0
- package/dist/types/components/TypingIndicator/TypingIndicator.d.ts +6 -0
- package/dist/types/components.d.ts +164 -182
- package/dist/types/toast/index.d.ts +3 -0
- package/dist/types/toast/toast-manager.d.ts +4 -0
- package/dist/types/toast/toast-types.d.ts +86 -0
- package/package.json +12 -8
- package/dist/angular/ds-banner.d.ts +0 -15
- package/dist/angular/ds-card.d.ts +0 -12
- package/dist/components/ds-banner.js +0 -2
- package/dist/components/ds-banner.js.map +0 -1
- package/dist/components/ds-card.js +0 -2
- package/dist/components/ds-card.js.map +0 -1
- package/dist/components/p-BHpWYKtP.js +0 -2
- package/dist/components/p-BO6C8abO.js +0 -2
- package/dist/components/p-BO6C8abO.js.map +0 -1
- package/dist/components/p-CBYuvZKM.js +0 -2
- package/dist/components/p-CBYuvZKM.js.map +0 -1
- package/dist/components/p-CWNdl52Y.js +0 -2
- package/dist/components/p-CWNdl52Y.js.map +0 -1
- package/dist/components/p-CblAABEo.js +0 -2
- package/dist/components/p-CiKGqsA2.js +0 -2
- package/dist/components/p-CiKGqsA2.js.map +0 -1
- package/dist/components/p-DFxqk71w.js +0 -2
- package/dist/components/p-DFxqk71w.js.map +0 -1
- package/dist/components/p-Dj5MejHv.js +0 -2
- package/dist/components/p-Dst-OliP.js +0 -2
- package/dist/components/p-drBA73M_.js +0 -2
- package/dist/components/p-drBA73M_.js.map +0 -1
- package/dist/components/p-xB0GPG3-.js +0 -2
- package/dist/mcp-data/registry/banner.json +0 -206
- package/dist/mcp-data/registry/card.json +0 -126
- package/dist/react/ds-banner.d.ts +0 -12
- package/dist/react/ds-banner.js +0 -12
- package/dist/react/ds-card.js +0 -12
- package/dist/types/components/Banner/Banner.d.ts +0 -31
- package/dist/types/components/Card/Card.d.ts +0 -21
- package/dist/types/components/Card/index.d.ts +0 -2
- /package/dist/components/{p-DnMCRAwx.js.map → p-0kEg-Z4f.js.map} +0 -0
- /package/dist/components/{p-DiooIO2B.js.map → p-BEWtqFX7.js.map} +0 -0
- /package/dist/components/{p-Ci_nVk5P.js.map → p-BkwBtZs3.js.map} +0 -0
- /package/dist/components/{p-CJlgONwR.js.map → p-C8e2A66f.js.map} +0 -0
- /package/dist/components/{p-BRfOCc_h.js.map → p-CLn7QnE0.js.map} +0 -0
- /package/dist/components/{p-kezp2_Xu.js.map → p-CPPAndX2.js.map} +0 -0
- /package/dist/components/{p-BSOZXagj.js.map → p-CZZYGqKz.js.map} +0 -0
- /package/dist/components/{p-T0Mzhv3-.js.map → p-CbckeueL.js.map} +0 -0
- /package/dist/components/{p-DaQ0ZE_V.js.map → p-DJ78wdNv.js.map} +0 -0
- /package/dist/components/{p-CeFBA7Dx.js.map → p-Dh4q5TSS.js.map} +0 -0
- /package/dist/components/{p-CiwdnKKp.js.map → p-DrDHC7V6.js.map} +0 -0
- /package/dist/components/{p-Cijzn3YQ.js.map → p-Hw-HMjCk.js.map} +0 -0
- /package/dist/components/{p-B1pWGQn1.js.map → p-bDx_rlLm.js.map} +0 -0
package/dist/agent.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"package": "@ds-mo/ui",
|
|
4
|
-
"packageVersion": "
|
|
4
|
+
"packageVersion": "11.0.0",
|
|
5
5
|
"kind": "components",
|
|
6
6
|
"entries": [
|
|
7
7
|
{
|
|
@@ -112,10 +112,11 @@
|
|
|
112
112
|
"Streaming state supplements rather than replaces meaningful textual status."
|
|
113
113
|
],
|
|
114
114
|
"states": [
|
|
115
|
-
"The owner replaces immutable part arrays as scripted or live output changes."
|
|
115
|
+
"The owner replaces immutable part arrays as scripted or live output changes.",
|
|
116
|
+
"AgentResponse renders directly in Message without borrowing a plain MessageBubble surface."
|
|
116
117
|
],
|
|
117
118
|
"responsiveBehavior": [
|
|
118
|
-
"Rich content uses the
|
|
119
|
+
"Rich content uses the available transcript width while respecting readable measure and overflow constraints."
|
|
119
120
|
],
|
|
120
121
|
"references": [
|
|
121
122
|
{
|
|
@@ -169,8 +170,7 @@
|
|
|
169
170
|
"agent-tool-call",
|
|
170
171
|
"attachment-list",
|
|
171
172
|
"markdown",
|
|
172
|
-
"message"
|
|
173
|
-
"message-bubble"
|
|
173
|
+
"message"
|
|
174
174
|
]
|
|
175
175
|
},
|
|
176
176
|
{
|
|
@@ -724,66 +724,6 @@
|
|
|
724
724
|
"text"
|
|
725
725
|
]
|
|
726
726
|
},
|
|
727
|
-
{
|
|
728
|
-
"id": "component:ds-banner",
|
|
729
|
-
"tag": "ds-banner",
|
|
730
|
-
"name": "banner",
|
|
731
|
-
"title": "Banner",
|
|
732
|
-
"summary": "Intent-colored message bar. Supports floating toast mode with auto-dismiss and fade-out animation.",
|
|
733
|
-
"intentStatus": "migration-pending",
|
|
734
|
-
"intent": null,
|
|
735
|
-
"api": {
|
|
736
|
-
"props": {
|
|
737
|
-
"contrast": {
|
|
738
|
-
"type": "BannerContrast",
|
|
739
|
-
"required": false
|
|
740
|
-
},
|
|
741
|
-
"dismissLabel": {
|
|
742
|
-
"type": "string",
|
|
743
|
-
"required": false
|
|
744
|
-
},
|
|
745
|
-
"floating": {
|
|
746
|
-
"type": "boolean",
|
|
747
|
-
"required": false
|
|
748
|
-
},
|
|
749
|
-
"header": {
|
|
750
|
-
"type": "boolean",
|
|
751
|
-
"required": false
|
|
752
|
-
},
|
|
753
|
-
"intent": {
|
|
754
|
-
"type": "BannerIntent",
|
|
755
|
-
"required": false
|
|
756
|
-
},
|
|
757
|
-
"message": {
|
|
758
|
-
"type": "string",
|
|
759
|
-
"required": false
|
|
760
|
-
},
|
|
761
|
-
"showDismiss": {
|
|
762
|
-
"type": "boolean",
|
|
763
|
-
"required": false
|
|
764
|
-
}
|
|
765
|
-
},
|
|
766
|
-
"events": [
|
|
767
|
-
{
|
|
768
|
-
"name": "dsDismiss",
|
|
769
|
-
"detail": "void"
|
|
770
|
-
}
|
|
771
|
-
],
|
|
772
|
-
"slots": []
|
|
773
|
-
},
|
|
774
|
-
"exports": {
|
|
775
|
-
"customElement": "ds-banner",
|
|
776
|
-
"react": "DsBanner",
|
|
777
|
-
"angular": "DsBanner"
|
|
778
|
-
},
|
|
779
|
-
"dependencies": [
|
|
780
|
-
"@ds-mo/ui",
|
|
781
|
-
"@ds-mo/tokens"
|
|
782
|
-
],
|
|
783
|
-
"componentDependencies": [
|
|
784
|
-
"text"
|
|
785
|
-
]
|
|
786
|
-
},
|
|
787
727
|
{
|
|
788
728
|
"id": "component:ds-bar-nav",
|
|
789
729
|
"tag": "ds-bar-nav",
|
|
@@ -1292,45 +1232,6 @@
|
|
|
1292
1232
|
"text"
|
|
1293
1233
|
]
|
|
1294
1234
|
},
|
|
1295
|
-
{
|
|
1296
|
-
"id": "component:ds-card",
|
|
1297
|
-
"tag": "ds-card",
|
|
1298
|
-
"name": "card",
|
|
1299
|
-
"title": "Card",
|
|
1300
|
-
"summary": "General and settings-compatible card chrome — width + matching min-height tokens, header (title + actions slot), and a flex body that fills leftover space.",
|
|
1301
|
-
"intentStatus": "migration-pending",
|
|
1302
|
-
"intent": null,
|
|
1303
|
-
"api": {
|
|
1304
|
-
"props": {
|
|
1305
|
-
"appearance": {
|
|
1306
|
-
"type": "CardAppearance",
|
|
1307
|
-
"required": false
|
|
1308
|
-
},
|
|
1309
|
-
"cardWidth": {
|
|
1310
|
-
"type": "CardWidth",
|
|
1311
|
-
"required": false
|
|
1312
|
-
},
|
|
1313
|
-
"heading": {
|
|
1314
|
-
"type": "string",
|
|
1315
|
-
"required": true
|
|
1316
|
-
}
|
|
1317
|
-
},
|
|
1318
|
-
"events": [],
|
|
1319
|
-
"slots": []
|
|
1320
|
-
},
|
|
1321
|
-
"exports": {
|
|
1322
|
-
"customElement": "ds-card",
|
|
1323
|
-
"react": "DsCard",
|
|
1324
|
-
"angular": "DsCard"
|
|
1325
|
-
},
|
|
1326
|
-
"dependencies": [
|
|
1327
|
-
"@ds-mo/ui",
|
|
1328
|
-
"@ds-mo/tokens"
|
|
1329
|
-
],
|
|
1330
|
-
"componentDependencies": [
|
|
1331
|
-
"text"
|
|
1332
|
-
]
|
|
1333
|
-
},
|
|
1334
1235
|
{
|
|
1335
1236
|
"id": "component:ds-card-data-viz-donut",
|
|
1336
1237
|
"tag": "ds-card-data-viz-donut",
|
|
@@ -1381,9 +1282,95 @@
|
|
|
1381
1282
|
"tag": "ds-card-setting",
|
|
1382
1283
|
"name": "card-setting",
|
|
1383
1284
|
"title": "CardSetting",
|
|
1384
|
-
"summary": "
|
|
1385
|
-
"intentStatus": "
|
|
1386
|
-
"intent":
|
|
1285
|
+
"summary": "Persistent settings-section surface with a heading, controlled view/edit chrome, fixed edit-save-cancel actions, and application-owned body content.",
|
|
1286
|
+
"intentStatus": "complete",
|
|
1287
|
+
"intent": {
|
|
1288
|
+
"audience": "general",
|
|
1289
|
+
"status": "stable",
|
|
1290
|
+
"summary": "Persistent settings-section surface with a heading, controlled view/edit chrome, fixed edit-save-cancel actions, and application-owned body content.",
|
|
1291
|
+
"useWhen": [
|
|
1292
|
+
"A settings page needs a persistent section that switches between read-only and editable content.",
|
|
1293
|
+
"The parent can control one active editing section and owns validation, persistence, cancellation, and body content.",
|
|
1294
|
+
"The section uses the standard Pencil, Save, and Cancel header workflow."
|
|
1295
|
+
],
|
|
1296
|
+
"avoidWhen": [
|
|
1297
|
+
"The surface contains a chart, legend, metric visualization, or other data-visualization composition.",
|
|
1298
|
+
"The content is a general-purpose read-only card with no settings edit workflow.",
|
|
1299
|
+
"The task must block the rest of the interface or requires confirmation in a modal.",
|
|
1300
|
+
"Several sections must remain editable at the same time.",
|
|
1301
|
+
"The header requires custom actions beyond the fixed edit-save-cancel workflow."
|
|
1302
|
+
],
|
|
1303
|
+
"alternatives": [
|
|
1304
|
+
{
|
|
1305
|
+
"when": "The surface contains a chart or specialized data-visualization composition.",
|
|
1306
|
+
"component": "component:ds-card-shell-data-viz",
|
|
1307
|
+
"reason": "CardShellDataViz owns the independently evolving data-visualization shell contract."
|
|
1308
|
+
},
|
|
1309
|
+
{
|
|
1310
|
+
"when": "The task must block the interface for one focused decision or short workflow.",
|
|
1311
|
+
"component": "component:ds-modal",
|
|
1312
|
+
"reason": "Modal provides top-layer focus containment and explicit blocking-task dismissal."
|
|
1313
|
+
},
|
|
1314
|
+
{
|
|
1315
|
+
"when": "Only one labeled form control is needed without a section surface.",
|
|
1316
|
+
"component": "component:ds-field",
|
|
1317
|
+
"reason": "Field provides the control label, supporting copy, and validation relationship without card chrome."
|
|
1318
|
+
}
|
|
1319
|
+
],
|
|
1320
|
+
"commonlyComposedWith": [
|
|
1321
|
+
"component:ds-field",
|
|
1322
|
+
"component:ds-input",
|
|
1323
|
+
"component:ds-select",
|
|
1324
|
+
"component:ds-switch",
|
|
1325
|
+
"component:ds-text"
|
|
1326
|
+
],
|
|
1327
|
+
"accessibility": [
|
|
1328
|
+
"Provide a concise heading that identifies the settings section; CardSetting renders it as an h2.",
|
|
1329
|
+
"Edit, Save, and Cancel are icon-only controls with localized accessible labels supplied by the matching label props. When several sections share a page, include the section name in each label.",
|
|
1330
|
+
"The owner must expose persistent field labels, descriptions, and validation messages inside the body.",
|
|
1331
|
+
"Save must not remove validation errors or exit editing until the parent accepts the action and updates the controlled editing state.",
|
|
1332
|
+
"Cancel must restore or retain the last persisted values according to product policy before the parent exits editing.",
|
|
1333
|
+
"Keep only one CardSetting in edit mode so keyboard and screen-reader users have one unambiguous set of Save and Cancel actions.",
|
|
1334
|
+
"When another section requests editing, resolve dirty changes in the current section before switching; never silently discard user input."
|
|
1335
|
+
],
|
|
1336
|
+
"states": [
|
|
1337
|
+
"The editing property is controlled; CardSetting never changes it internally.",
|
|
1338
|
+
"dsAction emits edit, save, or cancel with the original pointer event. The parent decides whether and when editing changes.",
|
|
1339
|
+
"When another section requests edit, the parent keeps one active section and resolves any dirty current section before switching.",
|
|
1340
|
+
"The parent owns read-only versus editable body composition, dirty state, validation, persistence, loading, success, and error consequences.",
|
|
1341
|
+
"A save request keeps the section editing while validation or persistence is pending; the parent exits only after success.",
|
|
1342
|
+
"A cancel request does not persist changes; the parent restores its chosen value snapshot and exits editing."
|
|
1343
|
+
],
|
|
1344
|
+
"responsiveBehavior": [
|
|
1345
|
+
"Choose sm, md, or lg from the parent layout; each width uses its matching token-based minimum height.",
|
|
1346
|
+
"The surface never exceeds its parent width, while the parent owns wrapping, columns, stacking, and breakpoint changes.",
|
|
1347
|
+
"At narrow widths, keep the fixed header actions visible and let application-owned body layouts collapse before allowing horizontal overflow."
|
|
1348
|
+
],
|
|
1349
|
+
"frameworkCaveats": {
|
|
1350
|
+
"customElements": [
|
|
1351
|
+
"Set editing as a JavaScript property and inspect dsAction.detail.action before updating the controlled state.",
|
|
1352
|
+
"When one section emits edit, update every sibling CardSetting so only the requested section remains editing."
|
|
1353
|
+
],
|
|
1354
|
+
"react": [
|
|
1355
|
+
"Pass editing from parent state and inspect onDsAction event detail; do not treat Save as successful until validation and persistence complete.",
|
|
1356
|
+
"Store one active section id and derive each CardSetting editing prop from that id."
|
|
1357
|
+
],
|
|
1358
|
+
"angular": [
|
|
1359
|
+
"Bind [editing] and inspect $event.detail.action from (dsAction); do not treat Save as successful until validation and persistence complete.",
|
|
1360
|
+
"Store one active section id and derive each CardSetting editing binding from that id."
|
|
1361
|
+
]
|
|
1362
|
+
},
|
|
1363
|
+
"references": [
|
|
1364
|
+
{
|
|
1365
|
+
"label": "Storybook controlled and single-edit examples",
|
|
1366
|
+
"path": "src/wc/components/CardSetting/CardSetting.stories.ts"
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
"label": "Cross-browser shell and action coverage",
|
|
1370
|
+
"path": "tests/e2e/card-setting.spec.ts"
|
|
1371
|
+
}
|
|
1372
|
+
]
|
|
1373
|
+
},
|
|
1387
1374
|
"api": {
|
|
1388
1375
|
"props": {
|
|
1389
1376
|
"cancelLabel": {
|
|
@@ -1413,8 +1400,8 @@
|
|
|
1413
1400
|
},
|
|
1414
1401
|
"events": [
|
|
1415
1402
|
{
|
|
1416
|
-
"name": "
|
|
1417
|
-
"detail": "
|
|
1403
|
+
"name": "dsAction",
|
|
1404
|
+
"detail": "CardSettingActionDetail"
|
|
1418
1405
|
}
|
|
1419
1406
|
],
|
|
1420
1407
|
"slots": []
|
|
@@ -1431,7 +1418,7 @@
|
|
|
1431
1418
|
"componentDependencies": [
|
|
1432
1419
|
"button-filled",
|
|
1433
1420
|
"button-unfilled",
|
|
1434
|
-
"
|
|
1421
|
+
"text"
|
|
1435
1422
|
]
|
|
1436
1423
|
},
|
|
1437
1424
|
{
|
|
@@ -1439,27 +1426,27 @@
|
|
|
1439
1426
|
"tag": "ds-card-shell-data-viz",
|
|
1440
1427
|
"name": "card-shell-data-viz",
|
|
1441
1428
|
"title": "CardShellDataViz",
|
|
1442
|
-
"summary": "Dedicated header, action, sizing, and body chrome for data-visualization cards whose layouts
|
|
1429
|
+
"summary": "Dedicated header, action, sizing, and body chrome for data-visualization cards whose layouts evolve independently from settings sections.",
|
|
1443
1430
|
"intentStatus": "complete",
|
|
1444
1431
|
"intent": {
|
|
1445
1432
|
"audience": "specialized",
|
|
1446
1433
|
"status": "experimental",
|
|
1447
|
-
"summary": "Dedicated header, action, sizing, and body chrome for data-visualization cards whose layouts
|
|
1434
|
+
"summary": "Dedicated header, action, sizing, and body chrome for data-visualization cards whose layouts evolve independently from settings sections.",
|
|
1448
1435
|
"useWhen": [
|
|
1449
1436
|
"A card contains a chart, data-visualization legend, metric visualization, or a specialized data-viz composition.",
|
|
1450
1437
|
"A data-visualization card needs a heading and optional header actions while retaining a flexible body for its composing component.",
|
|
1451
|
-
"Several chart-specific cards need one shell boundary that can evolve without changing
|
|
1438
|
+
"Several chart-specific cards need one shell boundary that can evolve without changing settings sections."
|
|
1452
1439
|
],
|
|
1453
1440
|
"avoidWhen": [
|
|
1454
1441
|
"The card contains settings or editable form content; use the settings card composition.",
|
|
1455
|
-
"The surface is ordinary content without data visualization; use
|
|
1442
|
+
"The surface is ordinary content without data visualization; use a product-owned layout rather than data-viz card chrome.",
|
|
1456
1443
|
"The shell would own chart-specific layout, hover synchronization, legends, or empty-state policy; keep those in the composing data-viz card."
|
|
1457
1444
|
],
|
|
1458
1445
|
"alternatives": [
|
|
1459
1446
|
{
|
|
1460
|
-
"when": "The
|
|
1461
|
-
"component": "component:ds-card",
|
|
1462
|
-
"reason": "
|
|
1447
|
+
"when": "The surface contains editable settings rather than data visualization.",
|
|
1448
|
+
"component": "component:ds-card-setting",
|
|
1449
|
+
"reason": "CardSetting owns the persistent controlled settings-section workflow."
|
|
1463
1450
|
},
|
|
1464
1451
|
{
|
|
1465
1452
|
"when": "The composition is the standard donut chart plus synchronized legend.",
|
|
@@ -2184,10 +2171,10 @@
|
|
|
2184
2171
|
],
|
|
2185
2172
|
"states": [
|
|
2186
2173
|
"Rows reuse the md choice-item label/subtext recipe used by Menu, including 6px row padding, 2px text inset, and the shared content gap. The enclosing conversation-list scroll region supplies the larger 8px outer container padding.",
|
|
2187
|
-
"Busy and error are generic channel-neutral states; the owning product supplies suitable status wording.",
|
|
2174
|
+
"Busy and error are generic channel-neutral states; the owning product supplies suitable status wording. A busy row pairs its body-small status with the sm 16px Loader at an 8px gap.",
|
|
2188
2175
|
"Any positive unreadCount renders one dot on the title row rather than a visible counter; the accessible row name may still announce the exact unread quantity.",
|
|
2189
2176
|
"Hover and press use the shared interaction hover and pressed overlays. Only the selected conversation uses the persistent active fill.",
|
|
2190
|
-
"The title uses body-medium
|
|
2177
|
+
"The title uses body-medium, not title-small, and the body-small preview truncates after one line. Unread titles use emphasis with primary foreground; read titles use regular weight with secondary foreground.",
|
|
2191
2178
|
"The actions slot overlays the row at an 8px right inset without changing title or preview measure, and paints above the row interaction wash while that wash remains active."
|
|
2192
2179
|
],
|
|
2193
2180
|
"responsiveBehavior": [
|
|
@@ -2350,9 +2337,9 @@
|
|
|
2350
2337
|
],
|
|
2351
2338
|
"alternatives": [
|
|
2352
2339
|
{
|
|
2353
|
-
"when": "
|
|
2354
|
-
"component": "component:ds-card",
|
|
2355
|
-
"reason": "
|
|
2340
|
+
"when": "Editable settings need an enclosing section surface and outer boundary.",
|
|
2341
|
+
"component": "component:ds-card-setting",
|
|
2342
|
+
"reason": "CardSetting owns settings-section chrome, structure, and edge treatment."
|
|
2356
2343
|
},
|
|
2357
2344
|
{
|
|
2358
2345
|
"when": "A static compact label is being used to name a group.",
|
|
@@ -2361,7 +2348,7 @@
|
|
|
2361
2348
|
}
|
|
2362
2349
|
],
|
|
2363
2350
|
"commonlyComposedWith": [
|
|
2364
|
-
"component:ds-card",
|
|
2351
|
+
"component:ds-card-setting",
|
|
2365
2352
|
"component:ds-menu",
|
|
2366
2353
|
"component:ds-panel-sub-nav"
|
|
2367
2354
|
],
|
|
@@ -3374,12 +3361,12 @@
|
|
|
3374
3361
|
"tag": "ds-message",
|
|
3375
3362
|
"name": "message",
|
|
3376
3363
|
"title": "Message",
|
|
3377
|
-
"summary": "Channel-neutral message row owning direction, grouping, author, time, delivery metadata, and accessory regions.",
|
|
3364
|
+
"summary": "Channel-neutral message row owning direction, grouping, author, time, delivery metadata, and header, footer, or action accessory regions.",
|
|
3378
3365
|
"intentStatus": "complete",
|
|
3379
3366
|
"intent": {
|
|
3380
3367
|
"audience": "general",
|
|
3381
3368
|
"status": "experimental",
|
|
3382
|
-
"summary": "Channel-neutral message row owning direction, grouping, author, time, delivery metadata, and accessory regions.",
|
|
3369
|
+
"summary": "Channel-neutral message row owning direction, grouping, author, time, delivery metadata, and header, footer, or action accessory regions.",
|
|
3383
3370
|
"useWhen": [
|
|
3384
3371
|
"A transcript contains messages that need consistent incoming, outgoing, or system layout."
|
|
3385
3372
|
],
|
|
@@ -3395,10 +3382,11 @@
|
|
|
3395
3382
|
],
|
|
3396
3383
|
"accessibility": [
|
|
3397
3384
|
"Author and time metadata remain textual when they are necessary to interpret the transcript.",
|
|
3398
|
-
"Delivery failure
|
|
3385
|
+
"Delivery failure uses negative Failed to send text in the footer while the message bubble keeps its normal outgoing treatment."
|
|
3399
3386
|
],
|
|
3400
3387
|
"states": [
|
|
3401
3388
|
"Pass an ISO timestamp. Message keeps the full value in dateTime and formats the visible value as a localized time; applications must not render a raw ISO string as visible transcript metadata.",
|
|
3389
|
+
"Visible author, bubble content, and timestamp or delivery footer use consistent 4px vertical gaps.",
|
|
3402
3390
|
"Grouping joins adjacent bubble corners, shows the incoming author only at the start, and shows delivery/time metadata only at the end. Outgoing author remains in the accessible message label without repeating a visible You label.",
|
|
3403
3391
|
"Set showAuthor false only when the product makes participant and assistant roles visually self-evident; continue passing author so the accessible message label remains specific."
|
|
3404
3392
|
],
|
|
@@ -3472,32 +3460,37 @@
|
|
|
3472
3460
|
"tag": "ds-message-bubble",
|
|
3473
3461
|
"name": "message-bubble",
|
|
3474
3462
|
"title": "MessageBubble",
|
|
3475
|
-
"summary": "Visible message
|
|
3463
|
+
"summary": "Visible plain-message surface with a body-medium default, separated from message-row direction and metadata.",
|
|
3476
3464
|
"intentStatus": "complete",
|
|
3477
3465
|
"intent": {
|
|
3478
3466
|
"audience": "general",
|
|
3479
3467
|
"status": "experimental",
|
|
3480
|
-
"summary": "Visible message
|
|
3468
|
+
"summary": "Visible plain-message surface with a body-medium default, separated from message-row direction and metadata.",
|
|
3481
3469
|
"useWhen": [
|
|
3482
|
-
"
|
|
3483
|
-
"Plain
|
|
3470
|
+
"Plain user-sent or received person-to-person message copy needs a visible surface within a Message row.",
|
|
3471
|
+
"Plain conversation copy should use the shared body-medium regular typography recipe without application styling."
|
|
3484
3472
|
],
|
|
3485
3473
|
"avoidWhen": [
|
|
3486
3474
|
"The surface is a general card, callout, or form container.",
|
|
3487
|
-
"The
|
|
3475
|
+
"The content is a rich agent response; compose AgentResponse directly in Message.",
|
|
3476
|
+
"The state only indicates that another participant is typing; use TypingIndicator."
|
|
3488
3477
|
],
|
|
3489
3478
|
"commonlyComposedWith": [
|
|
3490
|
-
"component:ds-message"
|
|
3491
|
-
"component:ds-markdown"
|
|
3479
|
+
"component:ds-message"
|
|
3492
3480
|
],
|
|
3493
3481
|
"patterns": [
|
|
3494
3482
|
"pattern:conversation"
|
|
3495
3483
|
],
|
|
3496
3484
|
"accessibility": [
|
|
3497
|
-
"Surface styling does not add semantics;
|
|
3485
|
+
"Surface styling does not add semantics; failed delivery belongs in Message metadata below the unchanged bubble rather than in an error bubble treatment."
|
|
3486
|
+
],
|
|
3487
|
+
"states": [
|
|
3488
|
+
"The user variant represents user-sent copy in agent and person-to-person channels and uses secondary foreground.",
|
|
3489
|
+
"The received variant represents ordinary incoming person-to-person copy.",
|
|
3490
|
+
"Typing and rich agent output are not MessageBubble variants."
|
|
3498
3491
|
],
|
|
3499
3492
|
"responsiveBehavior": [
|
|
3500
|
-
"The bubble wraps
|
|
3493
|
+
"The bubble wraps plain message copy within the transcript width."
|
|
3501
3494
|
],
|
|
3502
3495
|
"references": [
|
|
3503
3496
|
{
|
|
@@ -3559,7 +3552,9 @@
|
|
|
3559
3552
|
],
|
|
3560
3553
|
"states": [
|
|
3561
3554
|
"The owner controls draft value and transport state; the composer emits intent without performing transport.",
|
|
3562
|
-
"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.",
|
|
3555
|
+
"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.",
|
|
3556
|
+
"The composer surface uses the 10px --dimension-radius-125 token.",
|
|
3557
|
+
"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.",
|
|
3563
3558
|
"The submit action defaults to brand for both agent and person-to-person conversations; change submitIntent only when the action consequence has a different semantic intent."
|
|
3564
3559
|
],
|
|
3565
3560
|
"responsiveBehavior": [
|
|
@@ -3665,7 +3660,7 @@
|
|
|
3665
3660
|
"Selection and transcript interaction release automatic following.",
|
|
3666
3661
|
"Opening saved history, message jumps, and prepended history preserve deliberate position.",
|
|
3667
3662
|
"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.",
|
|
3668
|
-
"Place a composer container in the overlay slot so messages scroll behind it; the scroller measures its live height, reserves matching transcript clearance, and keeps scroll-to-latest above it."
|
|
3663
|
+
"Place a composer container with 8px padding on every side in the overlay slot so messages scroll behind it; the scroller measures its live height, reserves matching transcript clearance, and keeps scroll-to-latest above it."
|
|
3669
3664
|
],
|
|
3670
3665
|
"responsiveBehavior": [
|
|
3671
3666
|
"Transcript width is readable while the scroll region fills available height."
|
|
@@ -3722,11 +3717,112 @@
|
|
|
3722
3717
|
"tag": "ds-modal",
|
|
3723
3718
|
"name": "modal",
|
|
3724
3719
|
"title": "Modal",
|
|
3725
|
-
"summary": "
|
|
3726
|
-
"intentStatus": "
|
|
3727
|
-
"intent":
|
|
3720
|
+
"summary": "Dismissible native top-layer dialog for a focused confirmation or short blocking task, with a fixed title-and-close header, composable content, and an optional two-action footer.",
|
|
3721
|
+
"intentStatus": "complete",
|
|
3722
|
+
"intent": {
|
|
3723
|
+
"audience": "general",
|
|
3724
|
+
"status": "stable",
|
|
3725
|
+
"summary": "Dismissible native top-layer dialog for a focused confirmation or short blocking task, with a fixed title-and-close header, composable content, and an optional two-action footer.",
|
|
3726
|
+
"useWhen": [
|
|
3727
|
+
"The user must confirm or cancel one focused decision before returning to the underlying interface.",
|
|
3728
|
+
"A short blocking task or compact form needs dialog semantics, focus containment, and explicit completion actions.",
|
|
3729
|
+
"The content can be safely dismissed through Close, Escape, or the backdrop."
|
|
3730
|
+
],
|
|
3731
|
+
"avoidWhen": [
|
|
3732
|
+
"The message is non-blocking feedback or a transient status update.",
|
|
3733
|
+
"The interaction is a contextual list of commands anchored to a trigger.",
|
|
3734
|
+
"The workflow is multi-step, long-form, or requires substantial navigation.",
|
|
3735
|
+
"Dismissal would lose work or leave an irreversible operation in an unsafe state.",
|
|
3736
|
+
"A second modal would be opened over an existing modal."
|
|
3737
|
+
],
|
|
3738
|
+
"alternatives": [
|
|
3739
|
+
{
|
|
3740
|
+
"when": "The user needs non-blocking feedback or a transient status message.",
|
|
3741
|
+
"component": "component:ds-toast",
|
|
3742
|
+
"reason": "Toast communicates transient status without trapping focus or blocking the page."
|
|
3743
|
+
},
|
|
3744
|
+
{
|
|
3745
|
+
"when": "A trigger reveals a short contextual list of commands.",
|
|
3746
|
+
"component": "component:ds-menu",
|
|
3747
|
+
"reason": "Menu provides anchored command semantics without creating a blocking dialog."
|
|
3748
|
+
},
|
|
3749
|
+
{
|
|
3750
|
+
"when": "Editable settings should remain visible without blocking the rest of the interface.",
|
|
3751
|
+
"component": "component:ds-card-setting",
|
|
3752
|
+
"reason": "CardSetting provides a persistent controlled settings workflow without modal focus containment."
|
|
3753
|
+
}
|
|
3754
|
+
],
|
|
3755
|
+
"commonlyComposedWith": [
|
|
3756
|
+
"component:ds-button-filled",
|
|
3757
|
+
"component:ds-button-unfilled",
|
|
3758
|
+
"component:ds-field",
|
|
3759
|
+
"component:ds-text"
|
|
3760
|
+
],
|
|
3761
|
+
"accessibility": [
|
|
3762
|
+
"Provide a concise visible heading; the component uses it as the dialog's accessible name.",
|
|
3763
|
+
"Give the primary explanatory copy a stable id and pass it through aria-describedby so assistive technology receives the decision context.",
|
|
3764
|
+
"Opening the native modal dialog moves focus to the header Close action, traps Tab navigation inside the top layer, and makes outside content inert.",
|
|
3765
|
+
"Close, Escape, and backdrop activation emit dsClose with close-button, escape, or backdrop reason before beginning dismissal; use the component only when every dismissal path is safe.",
|
|
3766
|
+
"After exit motion completes, the native dialog leaves the top layer, focus returns to the previously focused element, and dsAfterClose emits.",
|
|
3767
|
+
"Use visible label-only footer buttons. Keep at most two actions: one bold filled primary action followed by one bordered unfilled action, or two bordered unfilled actions.",
|
|
3768
|
+
"Use negative intent for a filled destructive action and state the irreversible consequence in the content.",
|
|
3769
|
+
"Do not open a modal from another modal; keep one blocking decision in focus at a time."
|
|
3770
|
+
],
|
|
3771
|
+
"states": [
|
|
3772
|
+
"The owner opens the modal through the open property and responds to the typed dsClose detail for application state synchronization or dismissal analytics.",
|
|
3773
|
+
"The component mutates open to false for Close, Escape, and backdrop dismissal while retaining its rendered surface through exit motion.",
|
|
3774
|
+
"The default slot owns task content; the named footer slot is optional and is hidden when no actions are assigned.",
|
|
3775
|
+
"Primary actions use a bold filled button with semantic intent. Secondary and cancel actions use bordered label-only unfilled buttons.",
|
|
3776
|
+
"The owner performs save, delete, cancel, and other product consequences before or while closing the modal."
|
|
3777
|
+
],
|
|
3778
|
+
"responsiveBehavior": [
|
|
3779
|
+
"Choose the smallest sm, md, or lg width that fits the focused task; the top-layer dialog clamps to the viewport with token-based outer space.",
|
|
3780
|
+
"Content scrolls independently when needed while the 64px header and optional 64px footer remain fixed.",
|
|
3781
|
+
"Avoid layouts whose minimum content width exceeds the narrow viewport clamp.",
|
|
3782
|
+
"The native top layer escapes transformed ancestors, clipping containers, and application stacking contexts without moving slotted content."
|
|
3783
|
+
],
|
|
3784
|
+
"frameworkCaveats": {
|
|
3785
|
+
"customElements": [
|
|
3786
|
+
"Set open as a JavaScript property when controlling the modal; inspect dsClose.detail.reason and use dsAfterClose for cleanup that must wait for exit motion and focus restoration.",
|
|
3787
|
+
"Connect the most relevant slotted explanatory text through aria-describedby.",
|
|
3788
|
+
"Footer actions are slotted application-owned controls and must implement their own product consequence."
|
|
3789
|
+
],
|
|
3790
|
+
"react": [
|
|
3791
|
+
"Pass open to DsModal, inspect onDsClose event detail, and use onDsAfterClose only for cleanup after exit motion and focus restoration.",
|
|
3792
|
+
"Connect the most relevant slotted explanatory text through aria-describedby.",
|
|
3793
|
+
"Assign footer controls with slot=\"footer\" and handle each action before updating open."
|
|
3794
|
+
],
|
|
3795
|
+
"angular": [
|
|
3796
|
+
"Bind [open], inspect $event.detail from (dsClose), and use (dsAfterClose) only for cleanup after exit motion and focus restoration.",
|
|
3797
|
+
"Connect the most relevant slotted explanatory text through aria-describedby.",
|
|
3798
|
+
"Assign footer controls with slot=\"footer\" and handle each action before updating open."
|
|
3799
|
+
]
|
|
3800
|
+
},
|
|
3801
|
+
"references": [
|
|
3802
|
+
{
|
|
3803
|
+
"label": "Storybook confirmation and footer examples",
|
|
3804
|
+
"path": "src/wc/components/Modal/Modal.stories.ts"
|
|
3805
|
+
},
|
|
3806
|
+
{
|
|
3807
|
+
"label": "Cross-browser focus, dismissal, geometry, and accessibility coverage",
|
|
3808
|
+
"path": "tests/e2e/accessibility-overlays.spec.ts"
|
|
3809
|
+
},
|
|
3810
|
+
{
|
|
3811
|
+
"label": "Reduced-motion overlay coverage",
|
|
3812
|
+
"path": "tests/e2e/reduced-motion.spec.ts"
|
|
3813
|
+
}
|
|
3814
|
+
]
|
|
3815
|
+
},
|
|
3728
3816
|
"api": {
|
|
3729
3817
|
"props": {
|
|
3818
|
+
"ariaDescribedby": {
|
|
3819
|
+
"type": "string | undefined",
|
|
3820
|
+
"required": false
|
|
3821
|
+
},
|
|
3822
|
+
"closeAriaLabel": {
|
|
3823
|
+
"type": "string",
|
|
3824
|
+
"required": false
|
|
3825
|
+
},
|
|
3730
3826
|
"heading": {
|
|
3731
3827
|
"type": "string",
|
|
3732
3828
|
"required": true
|
|
@@ -3738,16 +3834,16 @@
|
|
|
3738
3834
|
"open": {
|
|
3739
3835
|
"type": "boolean",
|
|
3740
3836
|
"required": false
|
|
3741
|
-
},
|
|
3742
|
-
"subtitle": {
|
|
3743
|
-
"type": "string | undefined",
|
|
3744
|
-
"required": false
|
|
3745
3837
|
}
|
|
3746
3838
|
},
|
|
3747
3839
|
"events": [
|
|
3748
3840
|
{
|
|
3749
|
-
"name": "
|
|
3841
|
+
"name": "dsAfterClose",
|
|
3750
3842
|
"detail": "void"
|
|
3843
|
+
},
|
|
3844
|
+
{
|
|
3845
|
+
"name": "dsClose",
|
|
3846
|
+
"detail": "ModalCloseDetail"
|
|
3751
3847
|
}
|
|
3752
3848
|
],
|
|
3753
3849
|
"slots": []
|
|
@@ -3762,6 +3858,7 @@
|
|
|
3762
3858
|
"@ds-mo/tokens"
|
|
3763
3859
|
],
|
|
3764
3860
|
"componentDependencies": [
|
|
3861
|
+
"button-unfilled",
|
|
3765
3862
|
"text"
|
|
3766
3863
|
]
|
|
3767
3864
|
},
|
|
@@ -3830,6 +3927,7 @@
|
|
|
3830
3927
|
"Dashboard presents day-to-day operational destinations; Settings presents administrative and configuration destinations.",
|
|
3831
3928
|
"The standard footer switches the entire destination collection and navStyle between Dashboard and Settings and exposes the user/account entry.",
|
|
3832
3929
|
"The host owns the external user menu opened from dsNavUserAction.",
|
|
3930
|
+
"Item and header controls inherit the shared md control radius while local shell geometry continues to own collapsed layout and footer animation positioning.",
|
|
3833
3931
|
"On desktop, allow user-controlled expand and collapse and persist the preference with storageKey when cross-session persistence is appropriate."
|
|
3834
3932
|
],
|
|
3835
3933
|
"responsiveBehavior": [
|
|
@@ -4044,7 +4142,7 @@
|
|
|
4044
4142
|
}
|
|
4045
4143
|
],
|
|
4046
4144
|
"commonlyComposedWith": [
|
|
4047
|
-
"component:ds-card",
|
|
4145
|
+
"component:ds-card-setting",
|
|
4048
4146
|
"component:ds-text"
|
|
4049
4147
|
],
|
|
4050
4148
|
"accessibility": [
|
|
@@ -5510,7 +5608,7 @@
|
|
|
5510
5608
|
}
|
|
5511
5609
|
],
|
|
5512
5610
|
"commonlyComposedWith": [
|
|
5513
|
-
"component:ds-card",
|
|
5611
|
+
"component:ds-card-setting",
|
|
5514
5612
|
"component:ds-text",
|
|
5515
5613
|
"component:ds-icon"
|
|
5516
5614
|
],
|
|
@@ -5521,7 +5619,7 @@
|
|
|
5521
5619
|
"The owner preserves focus and meaningful reading order when replacing placeholders with real content."
|
|
5522
5620
|
],
|
|
5523
5621
|
"states": [
|
|
5524
|
-
"Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes.",
|
|
5622
|
+
"Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes; control atoms inherit the selected control density's default radius.",
|
|
5525
5623
|
"Compose approximate line count, hierarchy, widths, and control placement without simulating actual values.",
|
|
5526
5624
|
"Shimmer is on by default and may be disabled for a static placeholder. Reduced motion always produces the static final shape.",
|
|
5527
5625
|
"Rounded is an optional visual treatment for icon and control atoms rather than a semantic state.",
|
|
@@ -6276,7 +6374,7 @@
|
|
|
6276
6374
|
}
|
|
6277
6375
|
],
|
|
6278
6376
|
"commonlyComposedWith": [
|
|
6279
|
-
"component:ds-card",
|
|
6377
|
+
"component:ds-card-setting",
|
|
6280
6378
|
"component:ds-text",
|
|
6281
6379
|
"component:ds-icon",
|
|
6282
6380
|
"component:ds-menu"
|
|
@@ -6427,7 +6525,7 @@
|
|
|
6427
6525
|
],
|
|
6428
6526
|
"commonlyComposedWith": [
|
|
6429
6527
|
"component:ds-icon",
|
|
6430
|
-
"component:ds-card",
|
|
6528
|
+
"component:ds-card-setting",
|
|
6431
6529
|
"component:ds-field",
|
|
6432
6530
|
"component:ds-button-filled"
|
|
6433
6531
|
],
|
|
@@ -6546,6 +6644,165 @@
|
|
|
6546
6644
|
],
|
|
6547
6645
|
"componentDependencies": []
|
|
6548
6646
|
},
|
|
6647
|
+
{
|
|
6648
|
+
"id": "component:ds-toast",
|
|
6649
|
+
"tag": "ds-toast",
|
|
6650
|
+
"name": "toast",
|
|
6651
|
+
"title": "Toast",
|
|
6652
|
+
"summary": "Application-level floating notification system with a global manager, queued bottom-end stack, anchored feedback, actions, promise states, priority announcements, pauseable timers, keyboard access, and swipe dismissal.",
|
|
6653
|
+
"intentStatus": "complete",
|
|
6654
|
+
"intent": {
|
|
6655
|
+
"audience": "general",
|
|
6656
|
+
"status": "stable",
|
|
6657
|
+
"summary": "Application-level floating notification system with a global manager, queued bottom-end stack, anchored feedback, actions, promise states, priority announcements, pauseable timers, keyboard access, and swipe dismissal.",
|
|
6658
|
+
"useWhen": [
|
|
6659
|
+
"A completed or failed operation needs brief non-blocking feedback without moving page content.",
|
|
6660
|
+
"An application needs one coordinated notification queue that can be triggered outside the current component tree.",
|
|
6661
|
+
"A short-lived undo or recovery action belongs directly with transient feedback.",
|
|
6662
|
+
"Contextual feedback such as Copy confirmation should appear near the control that caused it."
|
|
6663
|
+
],
|
|
6664
|
+
"avoidWhen": [
|
|
6665
|
+
"The message must remain visible as part of page content or contains information users need later.",
|
|
6666
|
+
"The user must make a decision before continuing; use Modal for a blocking workflow.",
|
|
6667
|
+
"Validation belongs to a specific field or form section; keep the error adjacent to that content.",
|
|
6668
|
+
"The notification would contain long prose, several actions, navigation, or a complete workflow.",
|
|
6669
|
+
"Repeated background events would create a noisy stream instead of one updated or deduplicated toast."
|
|
6670
|
+
],
|
|
6671
|
+
"alternatives": [
|
|
6672
|
+
{
|
|
6673
|
+
"when": "The user must respond before continuing or an irreversible action needs confirmation.",
|
|
6674
|
+
"component": "component:ds-modal",
|
|
6675
|
+
"reason": "Modal owns blocking focus containment and explicit decision actions."
|
|
6676
|
+
},
|
|
6677
|
+
{
|
|
6678
|
+
"when": "A form control needs persistent validation or supporting guidance.",
|
|
6679
|
+
"component": "component:ds-field",
|
|
6680
|
+
"reason": "Field keeps actionable feedback associated with the control that needs correction."
|
|
6681
|
+
},
|
|
6682
|
+
{
|
|
6683
|
+
"when": "A compact status must remain visible in the page hierarchy.",
|
|
6684
|
+
"component": "component:ds-tag",
|
|
6685
|
+
"reason": "Tag represents persistent static metadata rather than transient feedback."
|
|
6686
|
+
}
|
|
6687
|
+
],
|
|
6688
|
+
"commonlyComposedWith": [
|
|
6689
|
+
"component:ds-button-filled",
|
|
6690
|
+
"component:ds-button-unfilled",
|
|
6691
|
+
"component:ds-modal",
|
|
6692
|
+
"component:ds-field"
|
|
6693
|
+
],
|
|
6694
|
+
"accessibility": [
|
|
6695
|
+
"Mount one ds-toast near the application root. New notifications never move focus.",
|
|
6696
|
+
"Provide a concise title, description, or both. Do not place the only recovery instructions in an automatically expiring toast.",
|
|
6697
|
+
"Use low priority for ordinary feedback. Reserve high priority for urgent interruptions that warrant assertive announcement.",
|
|
6698
|
+
"F6 moves focus into the Notifications region; Escape dismisses the focused toast and focus returns to a surviving toast or the previous control.",
|
|
6699
|
+
"Timers pause while users hover, focus, swipe, or leave the document, preserving the remaining reading time.",
|
|
6700
|
+
"Use timeout 0 for feedback that must remain until explicitly dismissed. Keep action labels concise and uniquely understandable.",
|
|
6701
|
+
"Anchored feedback supplements the triggering control but does not replace its accessible name, state, or persistent result.",
|
|
6702
|
+
"Do not include secrets, customer PII, or sensitive operational details in transient notification text."
|
|
6703
|
+
],
|
|
6704
|
+
"states": [
|
|
6705
|
+
"The manager owns add, ID-based upsert, update, close, closeAll, and promise transitions. The component renders the manager snapshot.",
|
|
6706
|
+
"Loading promise records remain persistent until the same id updates to success or error and begins its resulting timeout.",
|
|
6707
|
+
"Only the newest records up to the limit are visible in the global stack. The collapsed trail insets each successive toast by 8px per side; hover or keyboard focus expands all visible records to full width. Older records remain mounted and inert until promoted.",
|
|
6708
|
+
"All timers pause together on hover, focus, touch swipe, window blur, or hidden-document state and resume from their exact remainder.",
|
|
6709
|
+
"Closing records remain rendered through exit motion before removal callbacks and dsToastRemove.",
|
|
6710
|
+
"One optional bordered unfilled action sits below the text at bottom-left, emits dsToastAction, and runs the supplied callback without dismissing automatically.",
|
|
6711
|
+
"Swipe state exposes movement and direction hooks; down and right are the default dismissal directions.",
|
|
6712
|
+
"Anchored records use trigger-relative positioning and do not consume the global stack limit."
|
|
6713
|
+
],
|
|
6714
|
+
"responsiveBehavior": [
|
|
6715
|
+
"The global stack stays at the viewport bottom-end with token-based inset and never exceeds the available viewport width.",
|
|
6716
|
+
"Anchored toasts flip on their placement axis and clamp to viewport padding when the preferred side does not fit.",
|
|
6717
|
+
"The owner does not create separate mobile and desktop managers; one queue preserves ordering across responsive layouts.",
|
|
6718
|
+
"Pointer swipe remains optional input. Close and action controls retain keyboard access through the notification region."
|
|
6719
|
+
],
|
|
6720
|
+
"frameworkCaveats": {
|
|
6721
|
+
"customElements": [
|
|
6722
|
+
"Import ds-toast once and call toastManager from @ds-mo/ui/toast. Assign a custom manager and swipeDirections through JavaScript properties.",
|
|
6723
|
+
"Mount one ds-toast per manager; a second connected viewport for the same manager remains inactive."
|
|
6724
|
+
],
|
|
6725
|
+
"react": [
|
|
6726
|
+
"Render one DsToast near the application root and import toastManager or createToastManager from @ds-mo/ui/toast.",
|
|
6727
|
+
"Pass custom manager, action callbacks, data, positioner anchors, and swipe directions as properties rather than string attributes."
|
|
6728
|
+
],
|
|
6729
|
+
"angular": [
|
|
6730
|
+
"Import DsToast once near the application root and import toastManager or createToastManager from @ds-mo/ui/toast.",
|
|
6731
|
+
"Use property binding for manager, action callbacks, data, positioner anchors, and swipeDirections."
|
|
6732
|
+
]
|
|
6733
|
+
},
|
|
6734
|
+
"references": [
|
|
6735
|
+
{
|
|
6736
|
+
"label": "Storybook examples",
|
|
6737
|
+
"path": "src/wc/components/Toast/Toast.stories.ts"
|
|
6738
|
+
},
|
|
6739
|
+
{
|
|
6740
|
+
"label": "Manager unit coverage",
|
|
6741
|
+
"path": "tests/toast-manager.test.ts"
|
|
6742
|
+
},
|
|
6743
|
+
{
|
|
6744
|
+
"label": "Cross-browser behavior coverage",
|
|
6745
|
+
"path": "tests/e2e/toast.spec.ts"
|
|
6746
|
+
}
|
|
6747
|
+
]
|
|
6748
|
+
},
|
|
6749
|
+
"api": {
|
|
6750
|
+
"props": {
|
|
6751
|
+
"closeLabel": {
|
|
6752
|
+
"type": "string",
|
|
6753
|
+
"required": false
|
|
6754
|
+
},
|
|
6755
|
+
"label": {
|
|
6756
|
+
"type": "string",
|
|
6757
|
+
"required": false
|
|
6758
|
+
},
|
|
6759
|
+
"limit": {
|
|
6760
|
+
"type": "number",
|
|
6761
|
+
"required": false
|
|
6762
|
+
},
|
|
6763
|
+
"manager": {
|
|
6764
|
+
"type": "ToastManager",
|
|
6765
|
+
"required": false
|
|
6766
|
+
},
|
|
6767
|
+
"swipeDirections": {
|
|
6768
|
+
"type": "ToastSwipeDirection[]",
|
|
6769
|
+
"required": false
|
|
6770
|
+
},
|
|
6771
|
+
"timeout": {
|
|
6772
|
+
"type": "number | string",
|
|
6773
|
+
"required": false
|
|
6774
|
+
}
|
|
6775
|
+
},
|
|
6776
|
+
"events": [
|
|
6777
|
+
{
|
|
6778
|
+
"name": "dsToastAction",
|
|
6779
|
+
"detail": "ToastActionEventDetail"
|
|
6780
|
+
},
|
|
6781
|
+
{
|
|
6782
|
+
"name": "dsToastClose",
|
|
6783
|
+
"detail": "ToastCloseEventDetail"
|
|
6784
|
+
},
|
|
6785
|
+
{
|
|
6786
|
+
"name": "dsToastRemove",
|
|
6787
|
+
"detail": "ToastEventDetail"
|
|
6788
|
+
}
|
|
6789
|
+
],
|
|
6790
|
+
"slots": []
|
|
6791
|
+
},
|
|
6792
|
+
"exports": {
|
|
6793
|
+
"customElement": "ds-toast",
|
|
6794
|
+
"react": "DsToast",
|
|
6795
|
+
"angular": "DsToast"
|
|
6796
|
+
},
|
|
6797
|
+
"dependencies": [
|
|
6798
|
+
"@ds-mo/ui",
|
|
6799
|
+
"@ds-mo/tokens"
|
|
6800
|
+
],
|
|
6801
|
+
"componentDependencies": [
|
|
6802
|
+
"button-unfilled",
|
|
6803
|
+
"text"
|
|
6804
|
+
]
|
|
6805
|
+
},
|
|
6549
6806
|
{
|
|
6550
6807
|
"id": "component:ds-tooltip",
|
|
6551
6808
|
"tag": "ds-tooltip",
|
|
@@ -6737,6 +6994,72 @@
|
|
|
6737
6994
|
"componentDependencies": [
|
|
6738
6995
|
"text"
|
|
6739
6996
|
]
|
|
6997
|
+
},
|
|
6998
|
+
{
|
|
6999
|
+
"id": "component:ds-typing-indicator",
|
|
7000
|
+
"tag": "ds-typing-indicator",
|
|
7001
|
+
"name": "typing-indicator",
|
|
7002
|
+
"title": "TypingIndicator",
|
|
7003
|
+
"summary": "Dedicated transient status for another participant actively composing a message.",
|
|
7004
|
+
"intentStatus": "complete",
|
|
7005
|
+
"intent": {
|
|
7006
|
+
"audience": "general",
|
|
7007
|
+
"status": "experimental",
|
|
7008
|
+
"summary": "Dedicated transient status for another participant actively composing a message.",
|
|
7009
|
+
"useWhen": [
|
|
7010
|
+
"An agent or person-to-person conversation needs to show that another participant is currently typing."
|
|
7011
|
+
],
|
|
7012
|
+
"avoidWhen": [
|
|
7013
|
+
"An operation is loading or streaming a response; use Loader or the owning region's busy state.",
|
|
7014
|
+
"The status represents persisted message content; use Message and MessageBubble."
|
|
7015
|
+
],
|
|
7016
|
+
"commonlyComposedWith": [
|
|
7017
|
+
"component:ds-message",
|
|
7018
|
+
"component:ds-message-scroller"
|
|
7019
|
+
],
|
|
7020
|
+
"patterns": [
|
|
7021
|
+
"pattern:conversation"
|
|
7022
|
+
],
|
|
7023
|
+
"accessibility": [
|
|
7024
|
+
"Provide concise localized status text that names the participant when that context is not otherwise clear.",
|
|
7025
|
+
"The polite atomic status announces typing without representing it as a message bubble."
|
|
7026
|
+
],
|
|
7027
|
+
"states": [
|
|
7028
|
+
"TypingIndicator is transient conversation status, never persisted message content.",
|
|
7029
|
+
"Its body-small secondary text may shimmer, while reduced-motion preferences retain a static readable status."
|
|
7030
|
+
],
|
|
7031
|
+
"responsiveBehavior": [
|
|
7032
|
+
"The indicator fills the message content width and wraps only when localized status text requires it."
|
|
7033
|
+
],
|
|
7034
|
+
"references": [
|
|
7035
|
+
{
|
|
7036
|
+
"label": "Storybook example",
|
|
7037
|
+
"path": "src/wc/components/TypingIndicator/TypingIndicator.stories.ts"
|
|
7038
|
+
}
|
|
7039
|
+
]
|
|
7040
|
+
},
|
|
7041
|
+
"api": {
|
|
7042
|
+
"props": {
|
|
7043
|
+
"label": {
|
|
7044
|
+
"type": "string",
|
|
7045
|
+
"required": false
|
|
7046
|
+
}
|
|
7047
|
+
},
|
|
7048
|
+
"events": [],
|
|
7049
|
+
"slots": []
|
|
7050
|
+
},
|
|
7051
|
+
"exports": {
|
|
7052
|
+
"customElement": "ds-typing-indicator",
|
|
7053
|
+
"react": "DsTypingIndicator",
|
|
7054
|
+
"angular": "DsTypingIndicator"
|
|
7055
|
+
},
|
|
7056
|
+
"dependencies": [
|
|
7057
|
+
"@ds-mo/ui",
|
|
7058
|
+
"@ds-mo/tokens"
|
|
7059
|
+
],
|
|
7060
|
+
"componentDependencies": [
|
|
7061
|
+
"text"
|
|
7062
|
+
]
|
|
6740
7063
|
}
|
|
6741
7064
|
]
|
|
6742
7065
|
}
|