@ds-mo/ui 9.0.0 → 9.2.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 +28 -0
- package/dist/.build-stamp +1 -1
- package/dist/agent-patterns.json +397 -0
- package/dist/agent.json +2347 -735
- package/dist/angular/ds-agent-activity.d.ts +12 -0
- package/dist/angular/ds-agent-activity.js +38 -0
- package/dist/angular/ds-agent-response.d.ts +12 -0
- package/dist/angular/ds-agent-response.js +38 -0
- package/dist/angular/ds-agent-source-list.d.ts +12 -0
- package/dist/angular/ds-agent-source-list.js +38 -0
- package/dist/angular/ds-agent-tool-call.d.ts +12 -0
- package/dist/angular/ds-agent-tool-call.js +38 -0
- package/dist/angular/ds-attachment-list.d.ts +12 -0
- package/dist/angular/ds-attachment-list.js +38 -0
- package/dist/angular/ds-avatar.d.ts +12 -0
- package/dist/angular/ds-avatar.js +38 -0
- package/dist/angular/ds-code-block.d.ts +12 -0
- package/dist/angular/ds-code-block.js +38 -0
- package/dist/angular/ds-conversation-list-item.d.ts +19 -0
- package/dist/angular/ds-conversation-list-item.js +42 -0
- package/dist/angular/ds-conversation-list-section.d.ts +12 -0
- package/dist/angular/ds-conversation-list-section.js +38 -0
- package/dist/angular/ds-conversation-list.d.ts +12 -0
- package/dist/angular/ds-conversation-list.js +37 -0
- package/dist/angular/ds-markdown.d.ts +12 -0
- package/dist/angular/ds-markdown.js +38 -0
- package/dist/angular/ds-menu.d.ts +6 -1
- package/dist/angular/ds-menu.js +7 -4
- package/dist/angular/ds-message-bubble.d.ts +12 -0
- package/dist/angular/ds-message-bubble.js +38 -0
- package/dist/angular/ds-message-composer.d.ts +23 -0
- package/dist/angular/ds-message-composer.js +49 -0
- package/dist/angular/ds-message-scroller.d.ts +15 -0
- package/dist/angular/ds-message-scroller.js +43 -0
- package/dist/angular/ds-message.d.ts +12 -0
- package/dist/angular/ds-message.js +38 -0
- package/dist/angular/ds-panel-tool-header.d.ts +25 -0
- package/dist/angular/ds-panel-tool-header.js +49 -0
- package/dist/angular/ds-panel-tool-search.d.ts +19 -0
- package/dist/angular/ds-panel-tool-search.js +49 -0
- package/dist/angular/ds-panel-tools.d.ts +30 -1
- package/dist/angular/ds-panel-tools.js +14 -5
- package/dist/angular/ds-swatch-picker.d.ts +15 -0
- package/dist/angular/ds-swatch-picker.js +42 -0
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +18 -0
- package/dist/angular/proxies.d.ts +18 -0
- package/dist/angular/proxies.js +18 -0
- package/dist/components/ds-agent-activity.d.ts +11 -0
- package/dist/components/ds-agent-activity.js +2 -0
- package/dist/components/ds-agent-activity.js.map +1 -0
- package/dist/components/ds-agent-response.d.ts +11 -0
- package/dist/components/ds-agent-response.js +2 -0
- package/dist/components/ds-agent-response.js.map +1 -0
- package/dist/components/ds-agent-source-list.d.ts +11 -0
- package/dist/components/ds-agent-source-list.js +2 -0
- package/dist/components/ds-agent-source-list.js.map +1 -0
- package/dist/components/ds-agent-tool-call.d.ts +11 -0
- package/dist/components/ds-agent-tool-call.js +2 -0
- package/dist/components/ds-agent-tool-call.js.map +1 -0
- package/dist/components/ds-app-shell.js +1 -1
- package/dist/components/ds-app-shell.js.map +1 -1
- package/dist/components/ds-attachment-list.d.ts +11 -0
- package/dist/components/ds-attachment-list.js +2 -0
- package/dist/components/ds-attachment-list.js.map +1 -0
- package/dist/components/ds-avatar.d.ts +11 -0
- package/dist/components/ds-avatar.js +2 -0
- package/dist/components/ds-avatar.js.map +1 -0
- 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-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-setting.js +1 -1
- package/dist/components/ds-card-shell-data-viz.js +1 -1
- package/dist/components/ds-card.js +1 -1
- package/dist/components/ds-chart-bar.js +1 -1
- package/dist/components/ds-chart-bar.js.map +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-line.js +1 -1
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.d.ts +11 -0
- package/dist/components/ds-code-block.js +2 -0
- package/dist/components/ds-code-block.js.map +1 -0
- package/dist/components/ds-conversation-list-item.d.ts +11 -0
- package/dist/components/ds-conversation-list-item.js +2 -0
- package/dist/components/ds-conversation-list-item.js.map +1 -0
- package/dist/components/ds-conversation-list-section.d.ts +11 -0
- package/dist/components/ds-conversation-list-section.js +2 -0
- package/dist/components/ds-conversation-list-section.js.map +1 -0
- package/dist/components/ds-conversation-list.d.ts +11 -0
- package/dist/components/ds-conversation-list.js +2 -0
- package/dist/components/ds-conversation-list.js.map +1 -0
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-divider.js.map +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-markdown.d.ts +11 -0
- package/dist/components/ds-markdown.js +2 -0
- package/dist/components/ds-markdown.js.map +1 -0
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-bubble.d.ts +11 -0
- package/dist/components/ds-message-bubble.js +2 -0
- package/dist/components/ds-message-bubble.js.map +1 -0
- package/dist/components/ds-message-composer.d.ts +11 -0
- package/dist/components/ds-message-composer.js +2 -0
- package/dist/components/ds-message-composer.js.map +1 -0
- package/dist/components/ds-message-scroller.d.ts +11 -0
- package/dist/components/ds-message-scroller.js +2 -0
- package/dist/components/ds-message-scroller.js.map +1 -0
- package/dist/components/ds-message.d.ts +11 -0
- package/dist/components/ds-message.js +2 -0
- package/dist/components/ds-message.js.map +1 -0
- package/dist/components/ds-modal.js +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-tool-header.d.ts +11 -0
- package/dist/components/ds-panel-tool-header.js +2 -0
- package/dist/components/ds-panel-tool-header.js.map +1 -0
- package/dist/components/ds-panel-tool-search.d.ts +11 -0
- package/dist/components/ds-panel-tool-search.js +2 -0
- package/dist/components/ds-panel-tool-search.js.map +1 -0
- 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-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-picker.js.map +1 -1
- package/dist/components/ds-shell-gradient-swatch.js +1 -1
- package/dist/components/ds-shell-gradient-swatch.js.map +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.d.ts +11 -0
- package/dist/components/ds-swatch-picker.js +2 -0
- package/dist/components/ds-swatch-picker.js.map +1 -0
- 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-text.js +1 -1
- package/dist/components/ds-tooltip-data-viz.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/index.d.ts +14 -0
- package/dist/components/p--KbMQblZ.js +2 -0
- package/dist/components/p--KbMQblZ.js.map +1 -0
- package/dist/components/p-2br9YDbG.js +2 -0
- package/dist/components/p-2br9YDbG.js.map +1 -0
- package/dist/components/p-41UAx2eq.js +2 -0
- package/dist/components/p-41UAx2eq.js.map +1 -0
- package/dist/components/p-B1pWGQn1.js +2 -0
- package/dist/components/p-B1pWGQn1.js.map +1 -0
- package/dist/components/p-B7NbIYjS.js +2 -0
- package/dist/components/p-B7NbIYjS.js.map +1 -0
- package/dist/components/p-BBu_Svz7.js +2 -0
- package/dist/components/p-BBu_Svz7.js.map +1 -0
- package/dist/components/p-BEQB8EnB.js +2 -0
- package/dist/components/p-BEQB8EnB.js.map +1 -0
- package/dist/components/{p-CZ9wemOA.js → p-BFWC17em.js} +2 -2
- package/dist/components/{p-KRGBGTu5.js → p-BO6C8abO.js} +2 -2
- package/dist/components/{p-CbS_WWs2.js → p-BSOZXagj.js} +2 -2
- package/dist/components/p-BSOZXagj.js.map +1 -0
- package/dist/components/{p-DT2MK8Kt.js → p-BZAEZENv.js} +2 -2
- package/dist/components/p-BhC1YyId.js +2 -0
- package/dist/components/p-BhC1YyId.js.map +1 -0
- package/dist/components/p-BjtXYFhw.js +2 -0
- package/dist/components/p-BjtXYFhw.js.map +1 -0
- package/dist/components/{p-B-zhgAvL.js → p-Bo5wikia.js} +2 -2
- package/dist/components/p-Bx1G7P6W.js +2 -0
- package/dist/components/p-Bx1G7P6W.js.map +1 -0
- package/dist/components/p-C0sq948W.js +2 -0
- package/dist/components/p-C0sq948W.js.map +1 -0
- package/dist/components/p-CC1C8s6m.js +2 -0
- package/dist/components/p-CC1C8s6m.js.map +1 -0
- package/dist/components/p-CKaJx0IX.js +2 -0
- package/dist/components/p-CKaJx0IX.js.map +1 -0
- package/dist/components/{p-DyZj3k9S.js → p-CZMEhdlA.js} +2 -2
- package/dist/components/{p-BbV68F23.js → p-CiwdnKKp.js} +2 -2
- package/dist/components/{p-BLzivrE3.js → p-CnM9SW_8.js} +2 -2
- package/dist/components/{p-C7UFYvsO.js → p-CuKn9I5f.js} +2 -2
- package/dist/components/p-D1HFMTdC.js +2 -0
- package/dist/components/p-D1HFMTdC.js.map +1 -0
- package/dist/components/p-DFMM60My.js +2 -0
- package/dist/components/p-DFMM60My.js.map +1 -0
- package/dist/components/p-DIsDiGcp.js +2 -0
- package/dist/components/p-DIsDiGcp.js.map +1 -0
- package/dist/components/p-DVsje4AY.js +2 -0
- package/dist/components/p-DVsje4AY.js.map +1 -0
- package/dist/components/p-Di-ThR90.js +2 -0
- package/dist/components/p-Di-ThR90.js.map +1 -0
- package/dist/components/{p-C7RObioO.js → p-Di4HBckb.js} +2 -2
- package/dist/components/p-a9nGf1s6.js +2 -0
- package/dist/components/p-a9nGf1s6.js.map +1 -0
- package/dist/components/p-gidVv1FX.js +2 -0
- package/dist/components/p-gidVv1FX.js.map +1 -0
- package/dist/components/p-l6PmnW_P.js +2 -0
- package/dist/components/p-l6PmnW_P.js.map +1 -0
- package/dist/components/p-rEe-3KR_.js +2 -0
- package/dist/components/p-rEe-3KR_.js.map +1 -0
- package/dist/components/p-t9Ei1kHP.js +2 -0
- package/dist/components/p-t9Ei1kHP.js.map +1 -0
- package/dist/docs/components.json +8097 -3924
- package/dist/lib/components/Menu/menu-placement.d.ts +19 -3
- package/dist/lib/shell/index.d.ts +3 -3
- package/dist/lib/shell/index.js +48 -39
- package/dist/lib/shell/index.js.map +3 -3
- package/dist/lib/shell/shell-gradient-presets.d.ts +15 -0
- package/dist/lib/utils/choice-popup-alignment.d.ts +20 -0
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.js +16 -0
- package/dist/lib/utils/index.js.map +3 -3
- package/dist/mcp/cli.js +31409 -0
- package/dist/mcp-data/registry/agent-activity.json +158 -0
- package/dist/mcp-data/registry/agent-response.json +211 -0
- package/dist/mcp-data/registry/agent-source-list.json +153 -0
- package/dist/mcp-data/registry/agent-tool-call.json +213 -0
- package/dist/mcp-data/registry/app-shell.json +210 -0
- package/dist/mcp-data/registry/attachment-list.json +137 -0
- package/dist/mcp-data/registry/avatar.json +136 -0
- package/dist/mcp-data/registry/badge.json +289 -0
- package/dist/mcp-data/registry/banner.json +206 -0
- package/dist/mcp-data/registry/bar-nav.json +341 -0
- package/dist/mcp-data/registry/button-filled.json +386 -0
- package/dist/mcp-data/registry/button-unfilled.json +537 -0
- package/dist/mcp-data/registry/card-data-viz-donut.json +143 -0
- package/dist/mcp-data/registry/card-setting.json +194 -0
- package/dist/mcp-data/registry/card-shell-data-viz.json +173 -0
- package/dist/mcp-data/registry/card.json +126 -0
- package/dist/mcp-data/registry/chart-bar.json +121 -0
- package/dist/mcp-data/registry/chart-donut.json +257 -0
- package/dist/mcp-data/registry/chart-legend.json +209 -0
- package/dist/mcp-data/registry/chart-line.json +153 -0
- package/dist/mcp-data/registry/checkbox.json +361 -0
- package/dist/mcp-data/registry/chip.json +276 -0
- package/dist/mcp-data/registry/code-block.json +150 -0
- package/dist/mcp-data/registry/conversation-list-item.json +265 -0
- package/dist/mcp-data/registry/conversation-list-section.json +139 -0
- package/dist/mcp-data/registry/conversation-list.json +101 -0
- package/dist/mcp-data/registry/divider.json +225 -0
- package/dist/mcp-data/registry/empty-state.json +197 -0
- package/dist/mcp-data/registry/field.json +222 -0
- package/dist/mcp-data/registry/icon.json +242 -0
- package/dist/mcp-data/registry/input.json +597 -0
- package/dist/mcp-data/registry/loader.json +192 -0
- package/dist/mcp-data/registry/markdown.json +141 -0
- package/dist/mcp-data/registry/menu.json +479 -0
- package/dist/mcp-data/registry/message-bubble.json +119 -0
- package/dist/mcp-data/registry/message-composer.json +265 -0
- package/dist/mcp-data/registry/message-scroller.json +217 -0
- package/dist/mcp-data/registry/message.json +255 -0
- package/dist/mcp-data/registry/modal.json +150 -0
- package/dist/mcp-data/registry/panel-nav.json +622 -0
- package/dist/mcp-data/registry/panel-sub-nav.json +249 -0
- package/dist/mcp-data/registry/panel-tool-header.json +342 -0
- package/dist/mcp-data/registry/panel-tool-search.json +387 -0
- package/dist/mcp-data/registry/panel-tools.json +514 -0
- package/dist/mcp-data/registry/radio.json +374 -0
- package/dist/mcp-data/registry/registry.json +6916 -0
- package/dist/mcp-data/registry/select-multi.json +755 -0
- package/dist/mcp-data/registry/select.json +740 -0
- package/dist/mcp-data/registry/shell-gradient-picker.json +195 -0
- package/dist/mcp-data/registry/shell-gradient-swatch.json +215 -0
- package/dist/mcp-data/registry/skeleton.json +282 -0
- package/dist/mcp-data/registry/slider.json +657 -0
- package/dist/mcp-data/registry/swatch-picker.json +231 -0
- package/dist/mcp-data/registry/switch.json +361 -0
- package/dist/mcp-data/registry/tab-group.json +255 -0
- package/dist/mcp-data/registry/tag.json +352 -0
- package/dist/mcp-data/registry/text.json +371 -0
- package/dist/mcp-data/registry/tooltip-data-viz.json +158 -0
- package/dist/mcp-data/registry/tooltip.json +311 -0
- package/dist/react/components.d.ts +18 -0
- package/dist/react/components.js +18 -0
- package/dist/react/ds-agent-activity.d.ts +9 -0
- package/dist/react/ds-agent-activity.js +12 -0
- package/dist/react/ds-agent-response.d.ts +9 -0
- package/dist/react/ds-agent-response.js +12 -0
- package/dist/react/ds-agent-source-list.d.ts +9 -0
- package/dist/react/ds-agent-source-list.js +12 -0
- package/dist/react/ds-agent-tool-call.d.ts +9 -0
- package/dist/react/ds-agent-tool-call.js +12 -0
- package/dist/react/ds-attachment-list.d.ts +9 -0
- package/dist/react/ds-attachment-list.js +12 -0
- package/dist/react/ds-avatar.d.ts +9 -0
- package/dist/react/ds-avatar.js +12 -0
- package/dist/react/ds-code-block.d.ts +9 -0
- package/dist/react/ds-code-block.js +12 -0
- package/dist/react/ds-conversation-list-item.d.ts +14 -0
- package/dist/react/ds-conversation-list-item.js +12 -0
- package/dist/react/ds-conversation-list-section.d.ts +9 -0
- package/dist/react/ds-conversation-list-section.js +12 -0
- package/dist/react/ds-conversation-list.d.ts +9 -0
- package/dist/react/ds-conversation-list.js +12 -0
- package/dist/react/ds-markdown.d.ts +9 -0
- package/dist/react/ds-markdown.js +12 -0
- package/dist/react/ds-menu.d.ts +1 -0
- package/dist/react/ds-menu.js +2 -1
- package/dist/react/ds-message-bubble.d.ts +9 -0
- package/dist/react/ds-message-bubble.js +12 -0
- package/dist/react/ds-message-composer.d.ts +16 -0
- package/dist/react/ds-message-composer.js +16 -0
- package/dist/react/ds-message-scroller.d.ts +12 -0
- package/dist/react/ds-message-scroller.js +12 -0
- package/dist/react/ds-message.d.ts +9 -0
- package/dist/react/ds-message.js +12 -0
- package/dist/react/ds-panel-tool-header.d.ts +17 -0
- package/dist/react/ds-panel-tool-header.js +16 -0
- package/dist/react/ds-panel-tool-search.d.ts +14 -0
- package/dist/react/ds-panel-tool-search.js +16 -0
- package/dist/react/ds-panel-tools.d.ts +10 -0
- package/dist/react/ds-panel-tools.js +3 -0
- package/dist/react/ds-swatch-picker.d.ts +12 -0
- package/dist/react/ds-swatch-picker.js +12 -0
- package/dist/types/components/AgentActivity/AgentActivity.d.ts +14 -0
- package/dist/types/components/AgentResponse/AgentResponse.d.ts +12 -0
- package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +9 -0
- package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +13 -0
- package/dist/types/components/AppShell/AppShell.d.ts +4 -0
- package/dist/types/components/AttachmentList/AttachmentList.d.ts +8 -0
- package/dist/types/components/Avatar/Avatar.d.ts +8 -0
- package/dist/types/components/CodeBlock/CodeBlock.d.ts +11 -0
- package/dist/types/components/ConversationList/ConversationList.d.ts +4 -0
- package/dist/types/components/ConversationListItem/ConversationListItem.d.ts +22 -0
- package/dist/types/components/ConversationListSection/ConversationListSection.d.ts +9 -0
- package/dist/types/components/Markdown/Markdown.d.ts +15 -0
- package/dist/types/components/Menu/Menu.d.ts +10 -1
- package/dist/types/components/Menu/menu-placement.d.ts +19 -3
- package/dist/types/components/Menu/menu-types.d.ts +15 -2
- package/dist/types/components/Message/Message.d.ts +17 -0
- package/dist/types/components/MessageBubble/MessageBubble.d.ts +6 -0
- package/dist/types/components/MessageComposer/MessageComposer.d.ts +29 -0
- package/dist/types/components/MessageScroller/MessageScroller.d.ts +37 -0
- package/dist/types/components/PanelNav/PanelNav.d.ts +3 -0
- package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +34 -0
- package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +35 -0
- package/dist/types/components/PanelTools/PanelTools.d.ts +40 -1
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +20 -0
- package/dist/types/components/PanelTools/panel-tools-utils.d.ts +2 -0
- package/dist/types/components/ShellGradientPicker/ShellGradientPicker.d.ts +2 -5
- package/dist/types/components/ShellGradientSwatch/ShellGradientSwatch.d.ts +1 -0
- package/dist/types/components/Slider/Slider.d.ts +1 -1
- package/dist/types/components/SwatchPicker/SwatchPicker.d.ts +21 -0
- package/dist/types/components/SwatchPicker/swatch-picker-types.d.ts +26 -0
- package/dist/types/components/conversation-types.d.ts +55 -0
- package/dist/types/components.d.ts +1298 -4
- package/dist/types/shell/index.d.ts +3 -3
- package/dist/types/shell/shell-gradient-presets.d.ts +15 -0
- package/dist/types/utils/choice-list-parts.d.ts +4 -1
- package/dist/types/utils/choice-popup-alignment.d.ts +21 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/package.json +9 -2
- package/dist/components/p-Bafp65bw.js +0 -2
- package/dist/components/p-Bafp65bw.js.map +0 -1
- package/dist/components/p-BdnR3jxi.js +0 -2
- package/dist/components/p-BdnR3jxi.js.map +0 -1
- package/dist/components/p-CXF8yd-g.js +0 -2
- package/dist/components/p-CXF8yd-g.js.map +0 -1
- package/dist/components/p-C_cu-HIT.js +0 -2
- package/dist/components/p-C_cu-HIT.js.map +0 -1
- package/dist/components/p-CbS_WWs2.js.map +0 -1
- package/dist/components/p-D0B9uDTP.js +0 -2
- package/dist/components/p-D0B9uDTP.js.map +0 -1
- package/dist/components/p-DF0yLZG_.js +0 -2
- package/dist/components/p-DF0yLZG_.js.map +0 -1
- package/dist/components/p-VKIsOVza.js +0 -2
- package/dist/components/p-VKIsOVza.js.map +0 -1
- /package/dist/components/{p-CZ9wemOA.js.map → p-BFWC17em.js.map} +0 -0
- /package/dist/components/{p-KRGBGTu5.js.map → p-BO6C8abO.js.map} +0 -0
- /package/dist/components/{p-DT2MK8Kt.js.map → p-BZAEZENv.js.map} +0 -0
- /package/dist/components/{p-B-zhgAvL.js.map → p-Bo5wikia.js.map} +0 -0
- /package/dist/components/{p-DyZj3k9S.js.map → p-CZMEhdlA.js.map} +0 -0
- /package/dist/components/{p-BbV68F23.js.map → p-CiwdnKKp.js.map} +0 -0
- /package/dist/components/{p-BLzivrE3.js.map → p-CnM9SW_8.js.map} +0 -0
- /package/dist/components/{p-C7UFYvsO.js.map → p-CuKn9I5f.js.map} +0 -0
- /package/dist/components/{p-C7RObioO.js.map → p-Di4HBckb.js.map} +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "agent-activity",
|
|
4
|
+
"title": "AgentActivity",
|
|
5
|
+
"description": "Collapsible, user-safe summary of agent work steps without private reasoning.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/agent-activity",
|
|
11
|
+
"source": "src/wc/components/AgentActivity/AgentActivity.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "specialized",
|
|
15
|
+
"status": "experimental",
|
|
16
|
+
"summary": "Collapsible, user-safe summary of agent work steps without private reasoning.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"An agent response benefits from concise progress or completion summaries."
|
|
19
|
+
],
|
|
20
|
+
"avoidWhen": [
|
|
21
|
+
"The content would reveal private chain-of-thought, hidden prompts, secrets, or raw internal traces."
|
|
22
|
+
],
|
|
23
|
+
"commonlyComposedWith": [
|
|
24
|
+
"component:ds-agent-response",
|
|
25
|
+
"component:ds-loader"
|
|
26
|
+
],
|
|
27
|
+
"patterns": [
|
|
28
|
+
"pattern:agent-chat"
|
|
29
|
+
],
|
|
30
|
+
"accessibility": [
|
|
31
|
+
"Each step has textual state and description; animation and color are supplementary.",
|
|
32
|
+
"The disclosure uses native keyboard and expanded-state semantics."
|
|
33
|
+
],
|
|
34
|
+
"states": [
|
|
35
|
+
"While collapsed, the summary follows the current user-safe activity and shimmers only while active; while expanded, the heading becomes Activity and the ordered list exposes every step.",
|
|
36
|
+
"Pending, active, complete, and error describe user-safe workflow progress."
|
|
37
|
+
],
|
|
38
|
+
"responsiveBehavior": [
|
|
39
|
+
"Steps wrap within the response width."
|
|
40
|
+
],
|
|
41
|
+
"references": [
|
|
42
|
+
{
|
|
43
|
+
"label": "Storybook examples",
|
|
44
|
+
"path": "src/wc/components/MessageScroller/MessageScroller.stories.ts"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"api": {
|
|
49
|
+
"props": {
|
|
50
|
+
"heading": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"resolvedType": "string",
|
|
53
|
+
"attribute": "heading",
|
|
54
|
+
"default": "'Activity'",
|
|
55
|
+
"required": false,
|
|
56
|
+
"mutable": false
|
|
57
|
+
},
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "AgentActivityItem[]",
|
|
60
|
+
"resolvedType": "AgentActivityItem[]",
|
|
61
|
+
"default": "[]",
|
|
62
|
+
"required": false,
|
|
63
|
+
"mutable": false
|
|
64
|
+
},
|
|
65
|
+
"open": {
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"resolvedType": "boolean",
|
|
68
|
+
"attribute": "open",
|
|
69
|
+
"default": "false",
|
|
70
|
+
"required": false,
|
|
71
|
+
"mutable": false
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"events": [],
|
|
75
|
+
"methods": [],
|
|
76
|
+
"slots": []
|
|
77
|
+
},
|
|
78
|
+
"props": {
|
|
79
|
+
"heading": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"resolvedType": "string",
|
|
82
|
+
"attribute": "heading",
|
|
83
|
+
"default": "'Activity'",
|
|
84
|
+
"required": false,
|
|
85
|
+
"mutable": false
|
|
86
|
+
},
|
|
87
|
+
"items": {
|
|
88
|
+
"type": "AgentActivityItem[]",
|
|
89
|
+
"resolvedType": "AgentActivityItem[]",
|
|
90
|
+
"default": "[]",
|
|
91
|
+
"required": false,
|
|
92
|
+
"mutable": false
|
|
93
|
+
},
|
|
94
|
+
"open": {
|
|
95
|
+
"type": "boolean",
|
|
96
|
+
"resolvedType": "boolean",
|
|
97
|
+
"attribute": "open",
|
|
98
|
+
"default": "false",
|
|
99
|
+
"required": false,
|
|
100
|
+
"mutable": false
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"events": [],
|
|
104
|
+
"methods": [],
|
|
105
|
+
"slots": [],
|
|
106
|
+
"exports": {
|
|
107
|
+
"customElement": "ds-agent-activity",
|
|
108
|
+
"react": "DsAgentActivity",
|
|
109
|
+
"angular": "DsAgentActivity"
|
|
110
|
+
},
|
|
111
|
+
"consumption": {
|
|
112
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
113
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
114
|
+
"customElements": {
|
|
115
|
+
"import": "import '@ds-mo/ui/dist/components/ds-agent-activity.js';",
|
|
116
|
+
"example": "<ds-agent-activity></ds-agent-activity>"
|
|
117
|
+
},
|
|
118
|
+
"react": {
|
|
119
|
+
"import": "import { DsAgentActivity } from '@ds-mo/ui/react';",
|
|
120
|
+
"example": "<DsAgentActivity />"
|
|
121
|
+
},
|
|
122
|
+
"angular": {
|
|
123
|
+
"import": "import { DsAgentActivity } from '@ds-mo/ui/angular/ds-agent-activity';",
|
|
124
|
+
"example": "<ds-agent-activity></ds-agent-activity>"
|
|
125
|
+
},
|
|
126
|
+
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
|
|
127
|
+
"peerDependencies": {
|
|
128
|
+
"required": [
|
|
129
|
+
"@ds-mo/tokens ^3.1.1",
|
|
130
|
+
"@ds-mo/icons ^6.2.0"
|
|
131
|
+
],
|
|
132
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"dependencies": [
|
|
137
|
+
"@ds-mo/ui",
|
|
138
|
+
"@ds-mo/tokens",
|
|
139
|
+
"@ds-mo/icons"
|
|
140
|
+
],
|
|
141
|
+
"registryDependencies": [
|
|
142
|
+
"icon",
|
|
143
|
+
"loader",
|
|
144
|
+
"text"
|
|
145
|
+
],
|
|
146
|
+
"files": [
|
|
147
|
+
{
|
|
148
|
+
"path": "src/wc/components/AgentActivity/AgentActivity.css",
|
|
149
|
+
"content": ":host {\n display: block;\n}\n.agent-activity {\n margin: 0;\n}\nsummary {\n align-items: center;\n color: var(--color-foreground-secondary);\n cursor: pointer;\n display: flex;\n gap: var(--dimension-space-050);\n list-style: none;\n padding: var(--dimension-space-025) 0;\n}\nsummary::-webkit-details-marker {\n display: none;\n}\ndetails[open] summary ds-icon {\n transform: rotate(90deg);\n}\nds-text.agent-activity__summary-label {\n min-width: 0;\n}\nol {\n display: grid;\n gap: var(--dimension-space-075);\n list-style: none;\n margin: 0;\n padding: var(--dimension-space-100) 0 0 var(--dimension-space-200);\n}\n.agent-activity__item {\n align-items: start;\n display: grid;\n gap: var(--dimension-space-050);\n grid-template-columns: auto minmax(0, 1fr);\n}\n.agent-activity__marker {\n align-items: center;\n color: var(--color-foreground-faint-neutral);\n display: flex;\n padding-block-start: var(--dimension-space-025);\n}\n.agent-activity__item--active .agent-activity__marker {\n color: var(--color-foreground-faint-brand);\n}\n.agent-activity__item--error .agent-activity__marker {\n color: var(--color-foreground-bold-negative);\n}\n.agent-activity__item span:last-child {\n display: grid;\n gap: var(--dimension-space-025);\n}\n.agent-activity__pending-dot {\n width: var(--dimension-size-050);\n height: var(--dimension-size-050);\n border-radius: var(--dimension-radius-half);\n background: currentColor;\n}\n.agent-activity__state {\n position: absolute;\n width: var(--dimension-size-050);\n height: var(--dimension-size-050);\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n summary ds-icon {\n transition: transform var(--effect-motion-short-2);\n }\n}\n",
|
|
150
|
+
"type": "registry:ui"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"path": "src/wc/components/AgentActivity/AgentActivity.tsx",
|
|
154
|
+
"content": "import { Component, Prop, State, Watch, h, Host } from '@stencil/core';\nimport type { AgentActivityItem } from '../conversation-types';\n\n@Component({\n tag: 'ds-agent-activity',\n styleUrl: 'AgentActivity.css',\n scoped: true,\n})\nexport class AgentActivity {\n @Prop() items: AgentActivityItem[] = [];\n @Prop() heading: string = 'Activity';\n @Prop() open: boolean = false;\n\n @State() private expanded: boolean = false;\n\n componentWillLoad() {\n this.expanded = this.open;\n }\n\n @Watch('open')\n handleOpenChange(open: boolean) {\n this.expanded = open;\n }\n\n private get currentItem(): AgentActivityItem | undefined {\n return (\n this.items.find(item => item.state === 'active') ??\n this.items.find(item => item.state === 'error') ??\n [...this.items].reverse().find(item => item.state === 'complete') ??\n this.items.find(item => item.state === 'pending')\n );\n }\n\n private handleToggle = (event: Event) => {\n this.expanded = (event.currentTarget as HTMLDetailsElement).open;\n };\n\n private stateLabel(item: AgentActivityItem): string {\n if (item.state === 'active') return 'In progress';\n if (item.state === 'complete') return 'Complete';\n if (item.state === 'error') return 'Error';\n return 'Pending';\n }\n\n render() {\n return (\n <Host>\n <details class=\"agent-activity\" open={this.open} onToggle={this.handleToggle}>\n <summary>\n <ds-icon name=\"ChevronRight\" size=\"xs\" color=\"inherit\" />\n <ds-text\n class=\"agent-activity__summary-label\"\n variant=\"text-body-small\"\n shimmer={!this.expanded && this.currentItem?.state === 'active'}\n >\n {this.expanded ? this.heading : this.currentItem?.label ?? this.heading}\n </ds-text>\n </summary>\n <ol>\n {this.items.map(item => (\n <li class={`agent-activity__item agent-activity__item--${item.state}`}>\n <span class=\"agent-activity__marker\" aria-hidden=\"true\">\n {item.state === 'active' ? (\n <ds-loader size=\"xs\" color=\"inherit\" />\n ) : item.state === 'pending' ? (\n <span class=\"agent-activity__pending-dot\" />\n ) : (\n <ds-icon\n name={item.state === 'error' ? 'ErrorTriangle' : 'Check'}\n size=\"xs\"\n color=\"inherit\"\n />\n )}\n </span>\n <span>\n <ds-text variant=\"text-body-small\" shimmer={item.state === 'active'}>\n {item.label}\n </ds-text>\n {item.detail ? (\n <ds-text variant=\"text-caption\" color=\"secondary\">\n {item.detail}\n </ds-text>\n ) : null}\n <span class=\"agent-activity__state\">{this.stateLabel(item)}</span>\n </span>\n </li>\n ))}\n </ol>\n </details>\n </Host>\n );\n }\n}\n",
|
|
155
|
+
"type": "registry:ui"
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "agent-response",
|
|
4
|
+
"title": "AgentResponse",
|
|
5
|
+
"description": "Ordered renderer for normalized immutable agent response parts inside a generic incoming message.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/agent-response",
|
|
11
|
+
"source": "src/wc/components/AgentResponse/AgentResponse.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "specialized",
|
|
15
|
+
"status": "experimental",
|
|
16
|
+
"summary": "Ordered renderer for normalized immutable agent response parts inside a generic incoming message.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"An agent response combines Markdown, user-safe activity, display-only tools, attachments, and sources in authored order."
|
|
19
|
+
],
|
|
20
|
+
"avoidWhen": [
|
|
21
|
+
"The component would be expected to own a model, transport, persistence, title generation, approval policy, or private reasoning."
|
|
22
|
+
],
|
|
23
|
+
"commonlyComposedWith": [
|
|
24
|
+
"component:ds-message",
|
|
25
|
+
"component:ds-markdown",
|
|
26
|
+
"component:ds-agent-activity",
|
|
27
|
+
"component:ds-agent-tool-call",
|
|
28
|
+
"component:ds-agent-source-list"
|
|
29
|
+
],
|
|
30
|
+
"patterns": [
|
|
31
|
+
"pattern:agent-chat"
|
|
32
|
+
],
|
|
33
|
+
"accessibility": [
|
|
34
|
+
"Part order matches authored reading order and remains inside generic message semantics.",
|
|
35
|
+
"Streaming state supplements rather than replaces meaningful textual status."
|
|
36
|
+
],
|
|
37
|
+
"states": [
|
|
38
|
+
"The owner replaces immutable part arrays as scripted or live output changes."
|
|
39
|
+
],
|
|
40
|
+
"responsiveBehavior": [
|
|
41
|
+
"Rich content uses the wider ghost message treatment while respecting transcript constraints."
|
|
42
|
+
],
|
|
43
|
+
"references": [
|
|
44
|
+
{
|
|
45
|
+
"label": "Storybook examples",
|
|
46
|
+
"path": "src/wc/components/MessageScroller/MessageScroller.stories.ts"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"api": {
|
|
51
|
+
"props": {
|
|
52
|
+
"author": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"resolvedType": "string",
|
|
55
|
+
"attribute": "author",
|
|
56
|
+
"default": "''",
|
|
57
|
+
"required": false,
|
|
58
|
+
"mutable": false
|
|
59
|
+
},
|
|
60
|
+
"messageId": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"resolvedType": "string",
|
|
63
|
+
"attribute": "message-id",
|
|
64
|
+
"default": "''",
|
|
65
|
+
"required": false,
|
|
66
|
+
"mutable": false
|
|
67
|
+
},
|
|
68
|
+
"parts": {
|
|
69
|
+
"type": "AgentResponsePart[]",
|
|
70
|
+
"resolvedType": "AgentResponsePart[]",
|
|
71
|
+
"default": "[]",
|
|
72
|
+
"required": false,
|
|
73
|
+
"mutable": false
|
|
74
|
+
},
|
|
75
|
+
"showAuthor": {
|
|
76
|
+
"type": "boolean",
|
|
77
|
+
"resolvedType": "boolean",
|
|
78
|
+
"attribute": "show-author",
|
|
79
|
+
"default": "true",
|
|
80
|
+
"required": false,
|
|
81
|
+
"mutable": false
|
|
82
|
+
},
|
|
83
|
+
"streaming": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"resolvedType": "boolean",
|
|
86
|
+
"attribute": "streaming",
|
|
87
|
+
"default": "false",
|
|
88
|
+
"required": false,
|
|
89
|
+
"mutable": false
|
|
90
|
+
},
|
|
91
|
+
"timestamp": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"resolvedType": "string",
|
|
94
|
+
"attribute": "timestamp",
|
|
95
|
+
"default": "''",
|
|
96
|
+
"required": false,
|
|
97
|
+
"mutable": false
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"events": [],
|
|
101
|
+
"methods": [],
|
|
102
|
+
"slots": []
|
|
103
|
+
},
|
|
104
|
+
"props": {
|
|
105
|
+
"author": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"resolvedType": "string",
|
|
108
|
+
"attribute": "author",
|
|
109
|
+
"default": "''",
|
|
110
|
+
"required": false,
|
|
111
|
+
"mutable": false
|
|
112
|
+
},
|
|
113
|
+
"messageId": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"resolvedType": "string",
|
|
116
|
+
"attribute": "message-id",
|
|
117
|
+
"default": "''",
|
|
118
|
+
"required": false,
|
|
119
|
+
"mutable": false
|
|
120
|
+
},
|
|
121
|
+
"parts": {
|
|
122
|
+
"type": "AgentResponsePart[]",
|
|
123
|
+
"resolvedType": "AgentResponsePart[]",
|
|
124
|
+
"default": "[]",
|
|
125
|
+
"required": false,
|
|
126
|
+
"mutable": false
|
|
127
|
+
},
|
|
128
|
+
"showAuthor": {
|
|
129
|
+
"type": "boolean",
|
|
130
|
+
"resolvedType": "boolean",
|
|
131
|
+
"attribute": "show-author",
|
|
132
|
+
"default": "true",
|
|
133
|
+
"required": false,
|
|
134
|
+
"mutable": false
|
|
135
|
+
},
|
|
136
|
+
"streaming": {
|
|
137
|
+
"type": "boolean",
|
|
138
|
+
"resolvedType": "boolean",
|
|
139
|
+
"attribute": "streaming",
|
|
140
|
+
"default": "false",
|
|
141
|
+
"required": false,
|
|
142
|
+
"mutable": false
|
|
143
|
+
},
|
|
144
|
+
"timestamp": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"resolvedType": "string",
|
|
147
|
+
"attribute": "timestamp",
|
|
148
|
+
"default": "''",
|
|
149
|
+
"required": false,
|
|
150
|
+
"mutable": false
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"events": [],
|
|
154
|
+
"methods": [],
|
|
155
|
+
"slots": [],
|
|
156
|
+
"exports": {
|
|
157
|
+
"customElement": "ds-agent-response",
|
|
158
|
+
"react": "DsAgentResponse",
|
|
159
|
+
"angular": "DsAgentResponse"
|
|
160
|
+
},
|
|
161
|
+
"consumption": {
|
|
162
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
163
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
164
|
+
"customElements": {
|
|
165
|
+
"import": "import '@ds-mo/ui/dist/components/ds-agent-response.js';",
|
|
166
|
+
"example": "<ds-agent-response></ds-agent-response>"
|
|
167
|
+
},
|
|
168
|
+
"react": {
|
|
169
|
+
"import": "import { DsAgentResponse } from '@ds-mo/ui/react';",
|
|
170
|
+
"example": "<DsAgentResponse />"
|
|
171
|
+
},
|
|
172
|
+
"angular": {
|
|
173
|
+
"import": "import { DsAgentResponse } from '@ds-mo/ui/angular/ds-agent-response';",
|
|
174
|
+
"example": "<ds-agent-response></ds-agent-response>"
|
|
175
|
+
},
|
|
176
|
+
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: parts.",
|
|
177
|
+
"peerDependencies": {
|
|
178
|
+
"required": [
|
|
179
|
+
"@ds-mo/tokens ^3.1.1",
|
|
180
|
+
"@ds-mo/icons ^6.2.0"
|
|
181
|
+
],
|
|
182
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"dependencies": [
|
|
187
|
+
"@ds-mo/ui",
|
|
188
|
+
"@ds-mo/tokens"
|
|
189
|
+
],
|
|
190
|
+
"registryDependencies": [
|
|
191
|
+
"agent-activity",
|
|
192
|
+
"agent-source-list",
|
|
193
|
+
"agent-tool-call",
|
|
194
|
+
"attachment-list",
|
|
195
|
+
"markdown",
|
|
196
|
+
"message",
|
|
197
|
+
"message-bubble"
|
|
198
|
+
],
|
|
199
|
+
"files": [
|
|
200
|
+
{
|
|
201
|
+
"path": "src/wc/components/AgentResponse/AgentResponse.css",
|
|
202
|
+
"content": ":host {\n display: block;\n width: 100%;\n}\n.agent-response {\n display: grid;\n gap: var(--dimension-space-150);\n min-width: 0;\n width: 100%;\n}\n",
|
|
203
|
+
"type": "registry:ui"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"path": "src/wc/components/AgentResponse/AgentResponse.tsx",
|
|
207
|
+
"content": "import { Component, Prop, h, Host } from '@stencil/core';\nimport type { AgentResponsePart } from '../conversation-types';\n\n@Component({ tag: 'ds-agent-response', styleUrl: 'AgentResponse.css', scoped: true })\nexport class AgentResponse {\n @Prop() messageId: string = '';\n @Prop() author: string = '';\n @Prop() showAuthor: boolean = true;\n @Prop() timestamp: string = '';\n @Prop() parts: AgentResponsePart[] = [];\n @Prop() streaming: boolean = false;\n\n private renderPart(part: AgentResponsePart) {\n switch (part.type) {\n case 'markdown':\n return (\n <ds-markdown\n key={part.id}\n content={part.content}\n streaming={part.state === 'streaming'}\n />\n );\n case 'activity':\n return <ds-agent-activity key={part.id} items={part.items} />;\n case 'tool':\n return (\n <ds-agent-tool-call\n key={part.id}\n name={part.name}\n label={part.label}\n state={part.state}\n input={part.input}\n output={part.output}\n error={part.error}\n />\n );\n case 'attachments':\n return <ds-attachment-list key={part.id} items={part.items} />;\n case 'sources':\n return <ds-agent-source-list key={part.id} items={part.items} />;\n }\n }\n\n render() {\n return (\n <Host>\n <ds-message\n messageId={this.messageId}\n direction=\"incoming\"\n author={this.author}\n showAuthor={this.showAuthor}\n timestamp={this.timestamp}\n streaming={this.streaming}\n >\n <slot name=\"avatar\" slot=\"avatar\" />\n <ds-message-bubble variant=\"ghost\">\n <div class=\"agent-response\">{this.parts.map(part => this.renderPart(part))}</div>\n </ds-message-bubble>\n <slot name=\"footer\" slot=\"footer\" />\n <slot name=\"actions\" slot=\"actions\" />\n </ds-message>\n </Host>\n );\n }\n}\n",
|
|
208
|
+
"type": "registry:ui"
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "agent-source-list",
|
|
4
|
+
"title": "AgentSourceList",
|
|
5
|
+
"description": "Collapsible list of agent response sources with title, description, and validated external links.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/agent-source-list",
|
|
11
|
+
"source": "src/wc/components/AgentSourceList/AgentSourceList.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "specialized",
|
|
15
|
+
"status": "experimental",
|
|
16
|
+
"summary": "Collapsible list of agent response sources with title, description, and validated external links.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"An agent response cites external material readers may inspect."
|
|
19
|
+
],
|
|
20
|
+
"avoidWhen": [
|
|
21
|
+
"The links are ordinary body links or are not sources for the response."
|
|
22
|
+
],
|
|
23
|
+
"commonlyComposedWith": [
|
|
24
|
+
"component:ds-agent-response",
|
|
25
|
+
"component:ds-markdown"
|
|
26
|
+
],
|
|
27
|
+
"patterns": [
|
|
28
|
+
"pattern:agent-chat"
|
|
29
|
+
],
|
|
30
|
+
"accessibility": [
|
|
31
|
+
"Each source uses descriptive linked text and visible supporting context.",
|
|
32
|
+
"Unsafe link schemes remain non-interactive text."
|
|
33
|
+
],
|
|
34
|
+
"responsiveBehavior": [
|
|
35
|
+
"Source titles and descriptions wrap within the response width."
|
|
36
|
+
],
|
|
37
|
+
"references": [
|
|
38
|
+
{
|
|
39
|
+
"label": "Storybook examples",
|
|
40
|
+
"path": "src/wc/components/MessageScroller/MessageScroller.stories.ts"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"api": {
|
|
45
|
+
"props": {
|
|
46
|
+
"heading": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"resolvedType": "string",
|
|
49
|
+
"attribute": "heading",
|
|
50
|
+
"default": "'Sources'",
|
|
51
|
+
"required": false,
|
|
52
|
+
"mutable": false
|
|
53
|
+
},
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "AgentSource[]",
|
|
56
|
+
"resolvedType": "AgentSource[]",
|
|
57
|
+
"default": "[]",
|
|
58
|
+
"required": false,
|
|
59
|
+
"mutable": false
|
|
60
|
+
},
|
|
61
|
+
"open": {
|
|
62
|
+
"type": "boolean",
|
|
63
|
+
"resolvedType": "boolean",
|
|
64
|
+
"attribute": "open",
|
|
65
|
+
"default": "false",
|
|
66
|
+
"required": false,
|
|
67
|
+
"mutable": false
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"events": [],
|
|
71
|
+
"methods": [],
|
|
72
|
+
"slots": []
|
|
73
|
+
},
|
|
74
|
+
"props": {
|
|
75
|
+
"heading": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"resolvedType": "string",
|
|
78
|
+
"attribute": "heading",
|
|
79
|
+
"default": "'Sources'",
|
|
80
|
+
"required": false,
|
|
81
|
+
"mutable": false
|
|
82
|
+
},
|
|
83
|
+
"items": {
|
|
84
|
+
"type": "AgentSource[]",
|
|
85
|
+
"resolvedType": "AgentSource[]",
|
|
86
|
+
"default": "[]",
|
|
87
|
+
"required": false,
|
|
88
|
+
"mutable": false
|
|
89
|
+
},
|
|
90
|
+
"open": {
|
|
91
|
+
"type": "boolean",
|
|
92
|
+
"resolvedType": "boolean",
|
|
93
|
+
"attribute": "open",
|
|
94
|
+
"default": "false",
|
|
95
|
+
"required": false,
|
|
96
|
+
"mutable": false
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"events": [],
|
|
100
|
+
"methods": [],
|
|
101
|
+
"slots": [],
|
|
102
|
+
"exports": {
|
|
103
|
+
"customElement": "ds-agent-source-list",
|
|
104
|
+
"react": "DsAgentSourceList",
|
|
105
|
+
"angular": "DsAgentSourceList"
|
|
106
|
+
},
|
|
107
|
+
"consumption": {
|
|
108
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
109
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
110
|
+
"customElements": {
|
|
111
|
+
"import": "import '@ds-mo/ui/dist/components/ds-agent-source-list.js';",
|
|
112
|
+
"example": "<ds-agent-source-list></ds-agent-source-list>"
|
|
113
|
+
},
|
|
114
|
+
"react": {
|
|
115
|
+
"import": "import { DsAgentSourceList } from '@ds-mo/ui/react';",
|
|
116
|
+
"example": "<DsAgentSourceList />"
|
|
117
|
+
},
|
|
118
|
+
"angular": {
|
|
119
|
+
"import": "import { DsAgentSourceList } from '@ds-mo/ui/angular/ds-agent-source-list';",
|
|
120
|
+
"example": "<ds-agent-source-list></ds-agent-source-list>"
|
|
121
|
+
},
|
|
122
|
+
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
|
|
123
|
+
"peerDependencies": {
|
|
124
|
+
"required": [
|
|
125
|
+
"@ds-mo/tokens ^3.1.1",
|
|
126
|
+
"@ds-mo/icons ^6.2.0"
|
|
127
|
+
],
|
|
128
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"dependencies": [
|
|
133
|
+
"@ds-mo/ui",
|
|
134
|
+
"@ds-mo/tokens",
|
|
135
|
+
"@ds-mo/icons"
|
|
136
|
+
],
|
|
137
|
+
"registryDependencies": [
|
|
138
|
+
"icon",
|
|
139
|
+
"text"
|
|
140
|
+
],
|
|
141
|
+
"files": [
|
|
142
|
+
{
|
|
143
|
+
"path": "src/wc/components/AgentSourceList/AgentSourceList.css",
|
|
144
|
+
"content": ":host { display: block; }\n.agent-sources { border-block-start: var(--dimension-stroke-width-012) solid var(--color-border-tertiary); }\nsummary { align-items: center; cursor: pointer; display: flex; gap: var(--dimension-space-050); list-style: none; padding-block: var(--dimension-space-075); }\nsummary::-webkit-details-marker { display: none; }\ndetails[open] summary ds-icon { transform: rotate(90deg); }\nol { display: grid; gap: var(--dimension-space-075); margin: 0; padding: 0 0 var(--dimension-space-075) var(--dimension-space-150); }\nli { display: grid; gap: var(--dimension-space-025); }\na { align-items: center; color: inherit; display: inline-flex; gap: var(--dimension-space-025); width: fit-content; }\n\n@media (prefers-reduced-motion: no-preference) { summary ds-icon { transition: transform var(--effect-motion-short-2); } }\n",
|
|
145
|
+
"type": "registry:ui"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"path": "src/wc/components/AgentSourceList/AgentSourceList.tsx",
|
|
149
|
+
"content": "import { Component, Prop, h, Host } from '@stencil/core';\nimport type { AgentSource } from '../conversation-types';\n\n@Component({ tag: 'ds-agent-source-list', styleUrl: 'AgentSourceList.css', scoped: true })\nexport class AgentSourceList {\n @Prop() items: AgentSource[] = [];\n @Prop() heading: string = 'Sources';\n @Prop() open: boolean = false;\n\n private safeUrl(value: string) {\n try {\n const parsed = new URL(value, document.baseURI);\n return parsed.protocol === 'http:' || parsed.protocol === 'https:' ? parsed.href : undefined;\n } catch { return undefined; }\n }\n\n render() {\n if (!this.items.length) return null;\n return (\n <Host>\n <details class=\"agent-sources\" open={this.open}>\n <summary>\n <ds-icon name=\"ChevronRight\" size=\"xs\" color=\"inherit\" />\n <ds-text variant=\"text-body-small\" emphasis>{this.heading} · {this.items.length}</ds-text>\n </summary>\n <ol>\n {this.items.map(source => {\n const href = this.safeUrl(source.url);\n return <li>\n {href\n ? <a href={href} target=\"_blank\" rel=\"noopener noreferrer\"><ds-text variant=\"text-body-small\" emphasis>{source.title}</ds-text><ds-icon name=\"ExternalLink\" size=\"xs\" color=\"inherit\" /></a>\n : <ds-text variant=\"text-body-small\" emphasis>{source.title}</ds-text>}\n {source.description ? <ds-text variant=\"text-caption\" color=\"secondary\">{source.description}</ds-text> : null}\n </li>;\n })}\n </ol>\n </details>\n </Host>\n );\n }\n}\n",
|
|
150
|
+
"type": "registry:ui"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|