@ds-mo/ui 13.14.0 → 13.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +73 -22
- package/dist/agent.json +300 -69
- package/dist/angular/ds-agent-questionnaire.d.ts +19 -0
- package/dist/angular/ds-agent-questionnaire.js +46 -0
- package/dist/angular/ds-agent-response.d.ts +1 -1
- package/dist/angular/ds-agent-response.js +3 -3
- package/dist/angular/ds-agent-source-list.d.ts +9 -2
- package/dist/angular/ds-agent-source-list.js +7 -3
- package/dist/angular/ds-agent-tool-call.d.ts +9 -2
- package/dist/angular/ds-agent-tool-call.js +9 -5
- package/dist/angular/ds-bar-title.d.ts +1 -1
- package/dist/angular/ds-bar-title.js +3 -3
- package/dist/angular/ds-checkbox.d.ts +1 -1
- package/dist/angular/ds-checkbox.js +3 -3
- package/dist/angular/ds-message-composer.d.ts +1 -1
- package/dist/angular/ds-message-composer.js +3 -3
- package/dist/angular/ds-radio.js +2 -1
- package/dist/angular/ds-shell-page.d.ts +1 -1
- package/dist/angular/ds-shell-page.js +3 -3
- package/dist/angular/ds-table.d.ts +1 -1
- package/dist/angular/ds-table.js +3 -3
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +1 -0
- package/dist/angular/proxies.d.ts +1 -0
- package/dist/angular/proxies.js +1 -0
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.d.ts +24 -0
- package/dist/components/ds-agent-questionnaire.js +2 -0
- package/dist/components/ds-agent-questionnaire.js.map +1 -0
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-response.js.map +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-overview.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-chart.js.map +1 -1
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-chip.js.map +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-item.js.map +1 -1
- package/dist/components/ds-conversation-list-section.js +1 -1
- package/dist/components/ds-conversation-list.js +1 -1
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-input.js.map +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-bubble.js.map +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-composer.js.map +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message-scroller.js.map +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js.map +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-radio.js.map +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-select.js.map +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-slider.js.map +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/index.d.ts +10 -0
- package/dist/components/{p-PQgDzzn9.js → p-00or0yGw.js} +2 -2
- package/dist/components/p-B2SoinWf.js +2 -0
- package/dist/components/p-B2SoinWf.js.map +1 -0
- package/dist/components/{p-C5ecLNZA.js → p-B53Vpuqq.js} +2 -2
- package/dist/components/{p-BULWzaBs.js → p-B69Re7HW.js} +2 -2
- package/dist/components/{p-CeyoHpPn.js → p-B94M62Tx.js} +2 -2
- package/dist/components/p-BAAjiAIF.js +2 -0
- package/dist/components/p-BAAjiAIF.js.map +1 -0
- package/dist/components/p-BMAZWEDa.js +2 -0
- package/dist/components/p-BMAZWEDa.js.map +1 -0
- package/dist/components/p-BMc0DE59.js +2 -0
- package/dist/components/p-BMc0DE59.js.map +1 -0
- package/dist/components/{p-B6z51yBf.js → p-BNkU9dcc.js} +2 -2
- package/dist/components/p-BPbE-Kbl.js +2 -0
- package/dist/components/p-BPbE-Kbl.js.map +1 -0
- package/dist/components/{p-B6linhwY.js → p-BRze4tRe.js} +2 -2
- package/dist/components/p-BtUgncSJ.js +2 -0
- package/dist/components/p-BtUgncSJ.js.map +1 -0
- package/dist/components/p-BxR8omPQ.js +2 -0
- package/dist/components/p-BxR8omPQ.js.map +1 -0
- package/dist/components/p-C891ueIx.js +2 -0
- package/dist/components/p-C891ueIx.js.map +1 -0
- package/dist/components/{p-CY19gMiz.js → p-CJq3n5kA.js} +2 -2
- package/dist/components/p-CKo3OFG1.js +2 -0
- package/dist/components/p-CKo3OFG1.js.map +1 -0
- package/dist/components/p-CMbcRN92.js +2 -0
- package/dist/components/{p-cPh32CFB.js.map → p-CMbcRN92.js.map} +1 -1
- package/dist/components/p-CXduurfd.js.map +1 -1
- package/dist/components/{p-DLwM1RNL.js → p-CdKz-QT2.js} +2 -2
- package/dist/components/p-CdKz-QT2.js.map +1 -0
- package/dist/components/p-CnIvWEVm.js +2 -0
- package/dist/components/{p-BPS17WvI.js.map → p-CnIvWEVm.js.map} +1 -1
- package/dist/components/p-CnUq7E8S.js +2 -0
- package/dist/components/{p-DyDkQ8H9.js.map → p-CnUq7E8S.js.map} +1 -1
- package/dist/components/{p-C9StMCWg.js → p-Cohb8T7G.js} +2 -2
- package/dist/components/p-CqDJRVT8.js +2 -0
- package/dist/components/p-CqDJRVT8.js.map +1 -0
- package/dist/components/p-CsXC1cHI.js +2 -0
- package/dist/components/{p-DYAQVvOu.js.map → p-CsXC1cHI.js.map} +1 -1
- package/dist/components/p-D4j0deyd.js +2 -0
- package/dist/components/{p-DAM4CDXT.js.map → p-D4j0deyd.js.map} +1 -1
- package/dist/components/p-D5sIwLjA.js +2 -0
- package/dist/components/p-D5sIwLjA.js.map +1 -0
- package/dist/components/p-D9CDoQBx.js +2 -0
- package/dist/components/{p-C-aCs6ID.js.map → p-D9CDoQBx.js.map} +1 -1
- package/dist/components/p-D9FdOR_m.js +2 -0
- package/dist/components/{p-BSdAFIcG.js.map → p-D9FdOR_m.js.map} +1 -1
- package/dist/components/p-DStd98dM.js +2 -0
- package/dist/components/{p-Azjx2SsL.js.map → p-DStd98dM.js.map} +1 -1
- package/dist/components/p-Dbobj7DI.js +2 -0
- package/dist/components/p-Dbobj7DI.js.map +1 -0
- package/dist/components/{p-BNiIyZCn.js → p-Dhx_3_tf.js} +2 -2
- package/dist/components/p-Dhx_3_tf.js.map +1 -0
- package/dist/components/p-DrvEhJhO.js +2 -0
- package/dist/components/p-DrvEhJhO.js.map +1 -0
- package/dist/components/p-DyqLVdJp.js +2 -0
- package/dist/components/{p-CCYgBUUS.js.map → p-DyqLVdJp.js.map} +1 -1
- package/dist/components/p-GWUTrIlk.js +2 -0
- package/dist/components/p-GWUTrIlk.js.map +1 -0
- package/dist/components/p-NQOI5gN1.js +2 -0
- package/dist/components/p-NQOI5gN1.js.map +1 -0
- package/dist/components/p-Qf-os3lG.js +2 -0
- package/dist/components/{p-B8HG9OFh.js.map → p-Qf-os3lG.js.map} +1 -1
- package/dist/components/{p-DMJEOAwP.js → p-chA2WA5x.js} +2 -2
- package/dist/components/{p-DwKC_9u2.js → p-dEouiXJ8.js} +2 -2
- package/dist/components/p-m5CSrx_s.js +2 -0
- package/dist/components/{p-B1JB0Zn-.js.map → p-m5CSrx_s.js.map} +1 -1
- package/dist/docs/components.json +964 -11
- package/dist/lib/components/ShellApp/shell-app-types.d.ts +12 -0
- package/dist/lib/utils/index.js +41 -4
- package/dist/lib/utils/index.js.map +2 -2
- package/dist/lib/utils/resolve-css-length-px.d.ts +1 -1
- package/dist/mcp-data/registry/agent-activity.json +1 -1
- package/dist/mcp-data/registry/agent-questionnaire.json +273 -0
- package/dist/mcp-data/registry/agent-response.json +32 -11
- package/dist/mcp-data/registry/agent-source-list.json +33 -13
- package/dist/mcp-data/registry/agent-tool-call.json +59 -18
- package/dist/mcp-data/registry/attachment-list.json +1 -1
- package/dist/mcp-data/registry/avatar.json +1 -1
- package/dist/mcp-data/registry/badge.json +1 -1
- package/dist/mcp-data/registry/banner.json +1 -1
- package/dist/mcp-data/registry/bar-nav.json +2 -2
- package/dist/mcp-data/registry/bar-title.json +39 -4
- package/dist/mcp-data/registry/bar-workflow.json +1 -1
- package/dist/mcp-data/registry/breadcrumb.json +2 -2
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/button-unfilled.json +1 -1
- package/dist/mcp-data/registry/card-chart.json +1 -1
- package/dist/mcp-data/registry/card-overview.json +1 -1
- package/dist/mcp-data/registry/card-setting.json +1 -1
- package/dist/mcp-data/registry/chart-legend.json +2 -2
- package/dist/mcp-data/registry/chart.json +2 -2
- package/dist/mcp-data/registry/checkbox.json +26 -9
- package/dist/mcp-data/registry/chip.json +2 -2
- package/dist/mcp-data/registry/code-block.json +14 -6
- package/dist/mcp-data/registry/conversation-list-item.json +2 -2
- package/dist/mcp-data/registry/conversation-list-section.json +1 -1
- package/dist/mcp-data/registry/conversation-list.json +1 -1
- package/dist/mcp-data/registry/divider.json +1 -1
- package/dist/mcp-data/registry/empty-state.json +1 -1
- package/dist/mcp-data/registry/field.json +1 -1
- package/dist/mcp-data/registry/icon.json +1 -1
- package/dist/mcp-data/registry/input.json +1 -1
- package/dist/mcp-data/registry/loader.json +1 -1
- package/dist/mcp-data/registry/markdown.json +1 -1
- package/dist/mcp-data/registry/menu.json +2 -2
- package/dist/mcp-data/registry/message-actions.json +1 -1
- package/dist/mcp-data/registry/message-bubble.json +2 -2
- package/dist/mcp-data/registry/message-composer.json +30 -8
- package/dist/mcp-data/registry/message-scroller.json +17 -9
- package/dist/mcp-data/registry/message.json +1 -1
- package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
- package/dist/mcp-data/registry/mobile-header.json +1 -1
- package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
- package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
- package/dist/mcp-data/registry/modal.json +1 -1
- package/dist/mcp-data/registry/panel-nav.json +2 -2
- package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
- package/dist/mcp-data/registry/panel-tool-header.json +1 -1
- package/dist/mcp-data/registry/panel-tool-search.json +1 -1
- package/dist/mcp-data/registry/panel-tools.json +2 -2
- package/dist/mcp-data/registry/radio.json +24 -11
- package/dist/mcp-data/registry/registry.json +303 -69
- package/dist/mcp-data/registry/scroll-overlay.json +1 -1
- package/dist/mcp-data/registry/select.json +2 -2
- package/dist/mcp-data/registry/shell-app.json +5 -5
- package/dist/mcp-data/registry/shell-page.json +78 -5
- package/dist/mcp-data/registry/shell-tools.json +1 -1
- package/dist/mcp-data/registry/skeleton.json +1 -1
- package/dist/mcp-data/registry/slider.json +2 -2
- package/dist/mcp-data/registry/swatch-picker.json +2 -2
- package/dist/mcp-data/registry/switch.json +2 -2
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/table.json +89 -13
- package/dist/mcp-data/registry/tag.json +1 -1
- package/dist/mcp-data/registry/text.json +2 -2
- package/dist/mcp-data/registry/toast.json +1 -1
- package/dist/mcp-data/registry/tooltip-chart.json +5 -3
- package/dist/mcp-data/registry/tooltip.json +1 -1
- package/dist/mcp-data/registry/typing-indicator.json +1 -1
- package/dist/react/components.d.ts +1 -0
- package/dist/react/components.js +1 -0
- package/dist/react/ds-agent-questionnaire.d.ts +13 -0
- package/dist/react/ds-agent-questionnaire.js +15 -0
- package/dist/react/ds-agent-source-list.d.ts +7 -2
- package/dist/react/ds-agent-source-list.js +1 -1
- package/dist/react/ds-agent-tool-call.d.ts +7 -2
- package/dist/react/ds-agent-tool-call.js +1 -1
- package/dist/styles/prose.css +21 -4
- package/dist/styles/table.css +161 -10
- package/dist/types/components/AgentQuestionnaire/AgentQuestionnaire.d.ts +49 -0
- package/dist/types/components/AgentQuestionnaire/agent-questionnaire-model.d.ts +13 -0
- package/dist/types/components/AgentResponse/AgentResponse.d.ts +3 -1
- package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +5 -0
- package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +21 -0
- package/dist/types/components/BarTitle/BarTitle.d.ts +5 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
- package/dist/types/components/MessageComposer/MessageComposer.d.ts +3 -0
- package/dist/types/components/MessageScroller/MessageScroller.d.ts +21 -1
- package/dist/types/components/Radio/Radio.d.ts +4 -0
- package/dist/types/components/ShellApp/shell-app-types.d.ts +12 -0
- package/dist/types/components/ShellPage/ShellPage.d.ts +9 -0
- package/dist/types/components/Table/Table.d.ts +30 -0
- package/dist/types/components/Table/table-cell-model.d.ts +2 -0
- package/dist/types/components/Table/table-layout-controller.d.ts +6 -0
- package/dist/types/components/Table/table-types.d.ts +3 -0
- package/dist/types/components/Table/table-viewport-fit-controller.d.ts +53 -0
- package/dist/types/components/conversation-types.d.ts +51 -2
- package/dist/types/components.d.ts +249 -2
- package/dist/types/utils/resolve-css-length-px.d.ts +1 -1
- package/package.json +5 -3
- package/dist/components/p-Azjx2SsL.js +0 -2
- package/dist/components/p-B1JB0Zn-.js +0 -2
- package/dist/components/p-B2t8alvH.js +0 -2
- package/dist/components/p-B2t8alvH.js.map +0 -1
- package/dist/components/p-B8HG9OFh.js +0 -2
- package/dist/components/p-BJMRBHKW.js +0 -2
- package/dist/components/p-BJMRBHKW.js.map +0 -1
- package/dist/components/p-BJVzrR_P.js +0 -2
- package/dist/components/p-BJVzrR_P.js.map +0 -1
- package/dist/components/p-BL0JHLJp.js +0 -2
- package/dist/components/p-BL0JHLJp.js.map +0 -1
- package/dist/components/p-BNiIyZCn.js.map +0 -1
- package/dist/components/p-BPS17WvI.js +0 -2
- package/dist/components/p-BSdAFIcG.js +0 -2
- package/dist/components/p-C-aCs6ID.js +0 -2
- package/dist/components/p-CCYgBUUS.js +0 -2
- package/dist/components/p-CE82aQZr.js +0 -2
- package/dist/components/p-CE82aQZr.js.map +0 -1
- package/dist/components/p-COmqMfQo.js +0 -2
- package/dist/components/p-COmqMfQo.js.map +0 -1
- package/dist/components/p-Ch5yT3UA.js +0 -2
- package/dist/components/p-Ch5yT3UA.js.map +0 -1
- package/dist/components/p-CiUciD5Z.js +0 -2
- package/dist/components/p-CiUciD5Z.js.map +0 -1
- package/dist/components/p-D6g070eY.js +0 -2
- package/dist/components/p-D6g070eY.js.map +0 -1
- package/dist/components/p-DAM4CDXT.js +0 -2
- package/dist/components/p-DLwM1RNL.js.map +0 -1
- package/dist/components/p-DYAQVvOu.js +0 -2
- package/dist/components/p-DmblUQ4D.js +0 -2
- package/dist/components/p-DmblUQ4D.js.map +0 -1
- package/dist/components/p-DyDkQ8H9.js +0 -2
- package/dist/components/p-Dz3Ufmr4.js +0 -2
- package/dist/components/p-Dz3Ufmr4.js.map +0 -1
- package/dist/components/p-cPh32CFB.js +0 -2
- package/dist/components/p-fkQhr5s9.js +0 -2
- package/dist/components/p-fkQhr5s9.js.map +0 -1
- package/dist/components/p-oOKTL-yx.js +0 -2
- package/dist/components/p-oOKTL-yx.js.map +0 -1
- /package/dist/components/{p-PQgDzzn9.js.map → p-00or0yGw.js.map} +0 -0
- /package/dist/components/{p-C5ecLNZA.js.map → p-B53Vpuqq.js.map} +0 -0
- /package/dist/components/{p-BULWzaBs.js.map → p-B69Re7HW.js.map} +0 -0
- /package/dist/components/{p-CeyoHpPn.js.map → p-B94M62Tx.js.map} +0 -0
- /package/dist/components/{p-B6z51yBf.js.map → p-BNkU9dcc.js.map} +0 -0
- /package/dist/components/{p-B6linhwY.js.map → p-BRze4tRe.js.map} +0 -0
- /package/dist/components/{p-CY19gMiz.js.map → p-CJq3n5kA.js.map} +0 -0
- /package/dist/components/{p-C9StMCWg.js.map → p-Cohb8T7G.js.map} +0 -0
- /package/dist/components/{p-DMJEOAwP.js.map → p-chA2WA5x.js.map} +0 -0
- /package/dist/components/{p-DwKC_9u2.js.map → p-dEouiXJ8.js.map} +0 -0
|
@@ -334,7 +334,7 @@
|
|
|
334
334
|
},
|
|
335
335
|
"peerDependencies": {
|
|
336
336
|
"required": [
|
|
337
|
-
"@ds-mo/tokens ^6.
|
|
337
|
+
"@ds-mo/tokens ^6.2.1",
|
|
338
338
|
"@ds-mo/icons ^6.6.0"
|
|
339
339
|
],
|
|
340
340
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -349,7 +349,7 @@
|
|
|
349
349
|
"files": [
|
|
350
350
|
{
|
|
351
351
|
"path": "src/wc/components/Text/Text.css",
|
|
352
|
-
"content": "@import '../../utils/typography.css';\n@import '../../utils/shimmer.css';\n\n:host {\n box-sizing: border-box;\n max-width: 100%;\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n font-family: var(--typography-font-family);\n}\n\n:host(:where(.ds-text--inline-box)) {\n display: inline-block;\n}\n\n:host(:where(.ds-text--block-box)) {\n display: block;\n width: 100%;\n}\n\n/*\n * The host is the measurable typography box. The semantic inner element fills\n * it and inherits every text metric without adding margins, padding, or its own\n * line-height strut. One rendered line therefore measures exactly one token\n * line-height; N lines measure N × that token.\n */\n.ds-text__element {\n display: block;\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n text-transform: inherit;\n text-align: inherit;\n text-decoration: inherit;\n font-style: inherit;\n font-variant-numeric: inherit;\n font-feature-settings: inherit;\n -webkit-user-select: inherit;\n user-select: inherit;\n white-space: inherit;\n text-wrap: inherit;\n overflow-wrap: inherit;\n word-break: inherit;\n /* Consumer truncation on the host (PanelNav, ChartLegend, …) must reach the\n text node — overflow/text-overflow are not inherited by default. */\n overflow: inherit;\n text-overflow: inherit;\n}\n\n/* ── Truncation ─────────────────────────────────────────────────────────── */\n\n:host(.ds-text--truncate-1) {\n overflow: hidden;\n}\n\n:host(.ds-text--truncate-1) .ds-text__element {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(.ds-text--truncate-2),\n:host(.ds-text--truncate-3),\n:host(.ds-text--truncate-4),\n:host(.ds-text--truncate-5) {\n overflow: hidden;\n}\n\n:host(.ds-text--truncate-2) .ds-text__element,\n:host(.ds-text--truncate-3) .ds-text__element,\n:host(.ds-text--truncate-4) .ds-text__element,\n:host(.ds-text--truncate-5) .ds-text__element {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n}\n\n:host(.ds-text--truncate-2) .ds-text__element { -webkit-line-clamp: 2; }\n:host(.ds-text--truncate-3) .ds-text__element { -webkit-line-clamp: 3; }\n:host(.ds-text--truncate-4) .ds-text__element { -webkit-line-clamp: 4; }\n:host(.ds-text--truncate-5) .ds-text__element { -webkit-line-clamp: 5; }\n\n/* ── Wrap ───────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--nowrap),\n:host(.ds-text--nowrap) .ds-text__element {\n white-space: nowrap;\n word-break: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n:host(.ds-text--balance),\n:host(.ds-text--balance) .ds-text__element { text-wrap: balance; }\n\n:host(.ds-text--pretty),\n:host(.ds-text--pretty) .ds-text__element { text-wrap: pretty; }\n\n/* ── Color ──────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--color-primary) { color: var(--color-foreground-primary); }\n:host(.ds-text--color-secondary) { color: var(--color-foreground-secondary); }\n:host(.ds-text--color-tertiary) { color: var(--color-foreground-tertiary); }\n:host(.ds-text--color-quaternary) { color: var(--color-foreground-quaternary); }\n:host(.ds-text--color-brand) { color: var(--color-foreground-bold-brand); }\n:host(.ds-text--color-negative) { color: var(--color-foreground-bold-negative); }\n:host(.ds-text--color-positive) { color: var(--color-foreground-bold-positive); }\n:host(.ds-text--color-warning) { color: var(--color-foreground-bold-warning); }\n:host(.ds-text--color-caution) { color: var(--color-foreground-bold-caution); }\n:host(.ds-text--color-ai) { color: var(--color-foreground-bold-ai); }\n:host(.ds-text--color-on-strong) { color: var(--color-foreground-on-strong-background-primary); }\n:host(.ds-text--color-on-bold) { color: var(--color-foreground-on-bold-background-primary); }\n/*\n * The inherit state intentionally has no declaration. `color` inherits\n * naturally, while omitting a host rule lets an owning component apply a\n * semantic token directly to ds-text without depending on stylesheet order.\n */\n\n/* ── Decorations ─────────────────────────────────────────────────────────── */\n\n:host(.ds-text--decoration-underline) {\n text-decoration: underline;\n text-decoration-color: var(--color-foreground-tertiary);\n text-underline-offset: 2px;\n text-decoration-thickness: 1px;\n}\n\n:host(.ds-text--decoration-dotted-underline) {\n text-decoration: underline dotted;\n text-decoration-color: var(--color-foreground-tertiary);\n text-underline-offset: 2px;\n text-decoration-thickness: 1px;\n}\n\n/* ── Style ──────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--italic) { font-style: italic; }\n\n:host(.ds-text--font-feature-tabular-nums) {\n font-variant-numeric: tabular-nums;\n font-feature-settings: 'tnum';\n}\n\n/* ── Align ──────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--align-left) { text-align: left; }\n:host(.ds-text--align-center) { text-align: center; }\n:host(.ds-text--align-right) { text-align: right; }\n",
|
|
352
|
+
"content": "@import '../../utils/typography.css';\n@import '../../utils/shimmer.css';\n\n:host {\n box-sizing: border-box;\n max-width: 100%;\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n font-family: var(--typography-font-family-ui);\n}\n\n:host(:where(.ds-text--inline-box)) {\n display: inline-block;\n}\n\n:host(:where(.ds-text--block-box)) {\n display: block;\n width: 100%;\n}\n\n/*\n * The host is the measurable typography box. The semantic inner element fills\n * it and inherits every text metric without adding margins, padding, or its own\n * line-height strut. One rendered line therefore measures exactly one token\n * line-height; N lines measure N × that token.\n */\n.ds-text__element {\n display: block;\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n text-transform: inherit;\n text-align: inherit;\n text-decoration: inherit;\n font-style: inherit;\n font-variant-numeric: inherit;\n font-feature-settings: inherit;\n -webkit-user-select: inherit;\n user-select: inherit;\n white-space: inherit;\n text-wrap: inherit;\n overflow-wrap: inherit;\n word-break: inherit;\n /* Consumer truncation on the host (PanelNav, ChartLegend, …) must reach the\n text node — overflow/text-overflow are not inherited by default. */\n overflow: inherit;\n text-overflow: inherit;\n}\n\n/* ── Truncation ─────────────────────────────────────────────────────────── */\n\n:host(.ds-text--truncate-1) {\n overflow: hidden;\n}\n\n:host(.ds-text--truncate-1) .ds-text__element {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(.ds-text--truncate-2),\n:host(.ds-text--truncate-3),\n:host(.ds-text--truncate-4),\n:host(.ds-text--truncate-5) {\n overflow: hidden;\n}\n\n:host(.ds-text--truncate-2) .ds-text__element,\n:host(.ds-text--truncate-3) .ds-text__element,\n:host(.ds-text--truncate-4) .ds-text__element,\n:host(.ds-text--truncate-5) .ds-text__element {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n}\n\n:host(.ds-text--truncate-2) .ds-text__element { -webkit-line-clamp: 2; }\n:host(.ds-text--truncate-3) .ds-text__element { -webkit-line-clamp: 3; }\n:host(.ds-text--truncate-4) .ds-text__element { -webkit-line-clamp: 4; }\n:host(.ds-text--truncate-5) .ds-text__element { -webkit-line-clamp: 5; }\n\n/* ── Wrap ───────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--nowrap),\n:host(.ds-text--nowrap) .ds-text__element {\n white-space: nowrap;\n word-break: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n:host(.ds-text--balance),\n:host(.ds-text--balance) .ds-text__element { text-wrap: balance; }\n\n:host(.ds-text--pretty),\n:host(.ds-text--pretty) .ds-text__element { text-wrap: pretty; }\n\n/* ── Color ──────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--color-primary) { color: var(--color-foreground-primary); }\n:host(.ds-text--color-secondary) { color: var(--color-foreground-secondary); }\n:host(.ds-text--color-tertiary) { color: var(--color-foreground-tertiary); }\n:host(.ds-text--color-quaternary) { color: var(--color-foreground-quaternary); }\n:host(.ds-text--color-brand) { color: var(--color-foreground-bold-brand); }\n:host(.ds-text--color-negative) { color: var(--color-foreground-bold-negative); }\n:host(.ds-text--color-positive) { color: var(--color-foreground-bold-positive); }\n:host(.ds-text--color-warning) { color: var(--color-foreground-bold-warning); }\n:host(.ds-text--color-caution) { color: var(--color-foreground-bold-caution); }\n:host(.ds-text--color-ai) { color: var(--color-foreground-bold-ai); }\n:host(.ds-text--color-on-strong) { color: var(--color-foreground-on-strong-background-primary); }\n:host(.ds-text--color-on-bold) { color: var(--color-foreground-on-bold-background-primary); }\n/*\n * The inherit state intentionally has no declaration. `color` inherits\n * naturally, while omitting a host rule lets an owning component apply a\n * semantic token directly to ds-text without depending on stylesheet order.\n */\n\n/* ── Decorations ─────────────────────────────────────────────────────────── */\n\n:host(.ds-text--decoration-underline) {\n text-decoration: underline;\n text-decoration-color: var(--color-foreground-tertiary);\n text-underline-offset: 2px;\n text-decoration-thickness: 1px;\n}\n\n:host(.ds-text--decoration-dotted-underline) {\n text-decoration: underline dotted;\n text-decoration-color: var(--color-foreground-tertiary);\n text-underline-offset: 2px;\n text-decoration-thickness: 1px;\n}\n\n/* ── Style ──────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--italic) { font-style: italic; }\n\n:host(.ds-text--font-feature-tabular-nums) {\n font-variant-numeric: tabular-nums;\n font-feature-settings: 'tnum';\n}\n\n/* ── Align ──────────────────────────────────────────────────────────────── */\n\n:host(.ds-text--align-left) { text-align: left; }\n:host(.ds-text--align-center) { text-align: center; }\n:host(.ds-text--align-right) { text-align: right; }\n",
|
|
353
353
|
"type": "registry:ui"
|
|
354
354
|
},
|
|
355
355
|
{
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: manager, swipeDirections.",
|
|
308
308
|
"peerDependencies": {
|
|
309
309
|
"required": [
|
|
310
|
-
"@ds-mo/tokens ^6.
|
|
310
|
+
"@ds-mo/tokens ^6.2.1",
|
|
311
311
|
"@ds-mo/icons ^6.6.0"
|
|
312
312
|
],
|
|
313
313
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -49,6 +49,8 @@
|
|
|
49
49
|
"The owning chart mounts the callout when a local interaction starts and unmounts it when that interaction ends.",
|
|
50
50
|
"Coordinate updates track within one mounted interaction session without restarting the show delay.",
|
|
51
51
|
"Placement flips horizontally or vertically when the rendered callout approaches a viewport edge.",
|
|
52
|
+
"The heading and rows use the same medium-density section-heading and control-frame anatomy as menu-style choice content.",
|
|
53
|
+
"When any grouped row supplies a swatch, every row reserves the shared leading icon zone so mixed-swatch labels and trailing values stay aligned.",
|
|
52
54
|
"Placement is chosen as a quadrant rather than computed as coordinates: the component measures its own rendered rect and flips its side and align props, which CSS consumes. It therefore does not use the shared anchored-position utilities, which resolve an anchor element into x and y.",
|
|
53
55
|
"This separation is deliberate. The callout follows the pointer instead of an element, so it has no anchor rect to resolve; adopting the shared geometry would mean rewriting its CSS to consume coordinates for no behavioral gain.",
|
|
54
56
|
"Reduced motion preserves the final visible state without an opacity transition."
|
|
@@ -224,7 +226,7 @@
|
|
|
224
226
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
|
|
225
227
|
"peerDependencies": {
|
|
226
228
|
"required": [
|
|
227
|
-
"@ds-mo/tokens ^6.
|
|
229
|
+
"@ds-mo/tokens ^6.2.1",
|
|
228
230
|
"@ds-mo/icons ^6.6.0"
|
|
229
231
|
],
|
|
230
232
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -241,12 +243,12 @@
|
|
|
241
243
|
"files": [
|
|
242
244
|
{
|
|
243
245
|
"path": "src/wc/components/TooltipChart/TooltipChart.css",
|
|
244
|
-
"content": "@import '../../utils/control-density.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n position: absolute;\n z-index: var(--dimension-z-index-tooltip);\n
|
|
246
|
+
"content": "@import '../../utils/control-density.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/chrome-layout.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n position: absolute;\n z-index: var(--dimension-z-index-tooltip);\n background-color: var(--color-translucent-translucent);\n backdrop-filter: blur(var(--effect-blur-md));\n -webkit-backdrop-filter: blur(var(--effect-blur-md));\n border-radius: var(--dimension-radius-075);\n box-shadow: var(--effect-elevation-elevated-floating);\n white-space: nowrap;\n pointer-events: none;\n opacity: 0;\n}\n\n:host(.tooltip-chart--visible) {\n animation: tooltip-chart-fade-in var(--effect-motion-short-2) forwards;\n}\n\n.tooltip-chart__item {\n width: 100%;\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n}\n\n.tooltip-chart__items {\n display: contents;\n}\n\n.tooltip-chart__swatch-box {\n pointer-events: none;\n}\n\n.tooltip-chart__swatch {\n width: var(--dimension-size-100);\n height: var(--dimension-size-100);\n flex: none;\n border-radius: var(--dimension-radius-half);\n background: var(--ds-tooltip-chart-swatch);\n}\n\n.tooltip-chart__value {\n margin-inline-start: auto;\n text-align: end;\n}\n\n.tooltip-chart__label,\n.tooltip-chart__value {\n flex: none;\n}\n\n@keyframes tooltip-chart-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host(.tooltip-chart--visible) {\n animation: none;\n opacity: 1;\n }\n}\n\n@media (forced-colors: active) {\n :host {\n box-shadow: none;\n outline: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);\n outline-offset: calc(-1 * var(--dimension-stroke-width-012));\n }\n}\n",
|
|
245
247
|
"type": "registry:ui"
|
|
246
248
|
},
|
|
247
249
|
{
|
|
248
250
|
"path": "src/wc/components/TooltipChart/TooltipChart.tsx",
|
|
249
|
-
"content": "import { Component, Prop, State, Element, Watch, h, Host } from '@stencil/core';\nimport {\n CONTROL_SUPPORTING_TEXT_VARIANT,\n CONTROL_TEXT_VARIANT,\n resolveCssTimeMs,\n TOKEN_DEFAULTS,\n} from '../../utils';\n\nconst CURSOR_OFFSET_PX = 12;\nconst VIEWPORT_PAD_PX = 8;\n\nexport type TooltipChartSide = 'left' | 'right';\nexport type TooltipChartAlign = 'top' | 'bottom';\n\nexport interface TooltipChartItem {\n label: string;\n value: string | number;\n color?: string;\n}\n\n/**\n * Positioned value/label callout for chart hover interactions (bar, line point,\n * polar arc, …). A composition may suppress it when a visible legend already\n * surfaces the same value.\n * Unlike `ds-tooltip`, this doesn't bind to a slotted anchor element —\n * charts hover-highlight data that lives inside an SVG, so the chart itself computes\n * the anchor point (e.g. the cursor position while hovering) and passes it in as `x`/`y`.\n *\n * Renders `position: absolute` — place inside a `position: relative` chart wrapper,\n * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right\n * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge\n * keeps it on-screen.\n *\n * Mount (or remount) when a hover session starts so `delay` applies once per hover;\n * keep the instance mounted while the cursor moves so tracking stays instant.\n */\n@Component({\n tag: 'ds-tooltip-chart',\n styleUrl: 'TooltipChart.css',\n scoped: true,\n})\nexport class TooltipChart {\n @Element() el!: HTMLElement;\n\n @Prop() value: string | number = '';\n @Prop() label: string = '';\n /** Optional heading for grouped chart focus. */\n @Prop() heading?: string;\n /** Multi-row content. When supplied, this replaces the legacy label/value row. */\n @Prop() items?: TooltipChartItem[];\n /** Anchor point in px, relative to the nearest `position: relative` ancestor — e.g. the cursor. */\n @Prop() x: number = 0;\n @Prop() y: number = 0;\n\n /**\n * Show delay after mount before the callout appears.\n * Default: `--effect-animation-delay-instant` (0ms). Accepts a number (ms)\n * or a TokoMo time token / `var(--effect-animation-delay-*)`. Charts need\n * immediate feedback while scrubbing; prefer the default. Mount once per\n * hover session so any non-zero delay runs once, then track `x`/`y` instantly.\n */\n @Prop() delay: number | string = TOKEN_DEFAULTS.animationDelayInstant;\n\n @State() private side: TooltipChartSide = 'right';\n @State() private align: TooltipChartAlign = 'bottom';\n @State() private visible: boolean = false;\n\n private delayTimer: ReturnType<typeof setTimeout> | null = null;\n\n componentDidLoad() {\n this.scheduleShow();\n this.calculatePlacement();\n }\n\n disconnectedCallback() {\n this.clearDelayTimer();\n }\n\n @Watch('x')\n @Watch('y')\n onAnchorChange() {\n requestAnimationFrame(() => this.calculatePlacement());\n }\n\n @Watch('delay')\n onDelayChange() {\n if (!this.visible) this.scheduleShow();\n }\n\n private get showDelayMs(): number {\n return resolveCssTimeMs(this.delay, TOKEN_DEFAULTS.animationDelayInstant);\n }\n\n private clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n\n private scheduleShow() {\n this.clearDelayTimer();\n this.visible = false;\n const ms = this.showDelayMs;\n if (ms <= 0) {\n this.visible = true;\n return;\n }\n this.delayTimer = setTimeout(() => {\n this.delayTimer = null;\n this.visible = true;\n requestAnimationFrame(() => this.calculatePlacement());\n }, ms);\n }\n\n private calculatePlacement() {\n const rect = this.el.getBoundingClientRect();\n if (!rect.width || !rect.height) return;\n\n const nextSide: TooltipChartSide = rect.right > window.innerWidth - VIEWPORT_PAD_PX ? 'left' : 'right';\n const nextAlign: TooltipChartAlign = rect.bottom > window.innerHeight - VIEWPORT_PAD_PX ? 'top' : 'bottom';\n\n if (nextSide !== this.side) this.side = nextSide;\n if (nextAlign !== this.align) this.align = nextAlign;\n }\n\n render() {\n const translateX = this.side === 'right' ? `${CURSOR_OFFSET_PX}px` : `calc(-100% - ${CURSOR_OFFSET_PX}px)`;\n const translateY = this.align === 'bottom' ? `${CURSOR_OFFSET_PX}px` : `calc(-100% - ${CURSOR_OFFSET_PX}px)`;\n\n return (\n <Host\n class={{\n 'tooltip-chart': true,\n 'tooltip-chart--visible': this.visible,\n }}\n style={{ left: `${this.x}px`, top: `${this.y}px`, transform: `translate(${translateX}, ${translateY})` }}\n >\n {this.heading && (\n <ds-text\n class=\"tooltip-chart__heading\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT.md}\n emphasis\n color=\"var(--color-foreground-primary)\"\n >\n {this.heading}\n </ds-text>\n )}\n <div class=\"tooltip-chart__items\">\n {
|
|
251
|
+
"content": "import { Component, Prop, State, Element, Watch, h, Host } from '@stencil/core';\nimport {\n CONTROL_SUPPORTING_TEXT_VARIANT,\n CONTROL_TEXT_VARIANT,\n resolveCssTimeMs,\n TOKEN_DEFAULTS,\n} from '../../utils';\n\nconst CURSOR_OFFSET_PX = 12;\nconst VIEWPORT_PAD_PX = 8;\n\nexport type TooltipChartSide = 'left' | 'right';\nexport type TooltipChartAlign = 'top' | 'bottom';\n\nexport interface TooltipChartItem {\n label: string;\n value: string | number;\n color?: string;\n}\n\n/**\n * Positioned value/label callout for chart hover interactions (bar, line point,\n * polar arc, …). A composition may suppress it when a visible legend already\n * surfaces the same value.\n * Unlike `ds-tooltip`, this doesn't bind to a slotted anchor element —\n * charts hover-highlight data that lives inside an SVG, so the chart itself computes\n * the anchor point (e.g. the cursor position while hovering) and passes it in as `x`/`y`.\n *\n * Renders `position: absolute` — place inside a `position: relative` chart wrapper,\n * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right\n * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge\n * keeps it on-screen.\n *\n * Mount (or remount) when a hover session starts so `delay` applies once per hover;\n * keep the instance mounted while the cursor moves so tracking stays instant.\n */\n@Component({\n tag: 'ds-tooltip-chart',\n styleUrl: 'TooltipChart.css',\n scoped: true,\n})\nexport class TooltipChart {\n @Element() el!: HTMLElement;\n\n @Prop() value: string | number = '';\n @Prop() label: string = '';\n /** Optional heading for grouped chart focus. */\n @Prop() heading?: string;\n /** Multi-row content. When supplied, this replaces the legacy label/value row. */\n @Prop() items?: TooltipChartItem[];\n /** Anchor point in px, relative to the nearest `position: relative` ancestor — e.g. the cursor. */\n @Prop() x: number = 0;\n @Prop() y: number = 0;\n\n /**\n * Show delay after mount before the callout appears.\n * Default: `--effect-animation-delay-instant` (0ms). Accepts a number (ms)\n * or a TokoMo time token / `var(--effect-animation-delay-*)`. Charts need\n * immediate feedback while scrubbing; prefer the default. Mount once per\n * hover session so any non-zero delay runs once, then track `x`/`y` instantly.\n */\n @Prop() delay: number | string = TOKEN_DEFAULTS.animationDelayInstant;\n\n @State() private side: TooltipChartSide = 'right';\n @State() private align: TooltipChartAlign = 'bottom';\n @State() private visible: boolean = false;\n\n private delayTimer: ReturnType<typeof setTimeout> | null = null;\n\n componentDidLoad() {\n this.scheduleShow();\n this.calculatePlacement();\n }\n\n disconnectedCallback() {\n this.clearDelayTimer();\n }\n\n @Watch('x')\n @Watch('y')\n onAnchorChange() {\n requestAnimationFrame(() => this.calculatePlacement());\n }\n\n @Watch('delay')\n onDelayChange() {\n if (!this.visible) this.scheduleShow();\n }\n\n private get showDelayMs(): number {\n return resolveCssTimeMs(this.delay, TOKEN_DEFAULTS.animationDelayInstant);\n }\n\n private clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n\n private scheduleShow() {\n this.clearDelayTimer();\n this.visible = false;\n const ms = this.showDelayMs;\n if (ms <= 0) {\n this.visible = true;\n return;\n }\n this.delayTimer = setTimeout(() => {\n this.delayTimer = null;\n this.visible = true;\n requestAnimationFrame(() => this.calculatePlacement());\n }, ms);\n }\n\n private calculatePlacement() {\n const rect = this.el.getBoundingClientRect();\n if (!rect.width || !rect.height) return;\n\n const nextSide: TooltipChartSide = rect.right > window.innerWidth - VIEWPORT_PAD_PX ? 'left' : 'right';\n const nextAlign: TooltipChartAlign = rect.bottom > window.innerHeight - VIEWPORT_PAD_PX ? 'top' : 'bottom';\n\n if (nextSide !== this.side) this.side = nextSide;\n if (nextAlign !== this.align) this.align = nextAlign;\n }\n\n render() {\n const translateX = this.side === 'right' ? `${CURSOR_OFFSET_PX}px` : `calc(-100% - ${CURSOR_OFFSET_PX}px)`;\n const translateY = this.align === 'bottom' ? `${CURSOR_OFFSET_PX}px` : `calc(-100% - ${CURSOR_OFFSET_PX}px)`;\n const rows = this.items ?? [{ label: this.label, value: this.value }];\n const usesSwatches = rows.some(item => Boolean(item.color));\n\n return (\n <Host\n class={{\n 'tooltip-chart': true,\n 'tooltip-chart--visible': this.visible,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n }}\n style={{ left: `${this.x}px`, top: `${this.y}px`, transform: `translate(${translateX}, ${translateY})` }}\n >\n {this.heading && (\n <ds-text\n class=\"tooltip-chart__heading ds-control-section-heading ds-control--md\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT.md}\n emphasis\n color=\"var(--color-foreground-primary)\"\n >\n {this.heading}\n </ds-text>\n )}\n <div class=\"tooltip-chart__items\">\n {rows.map((item, index) => (\n <div class=\"tooltip-chart__item ds-control-frame ds-control--md\" key={`${item.label}-${index}`}>\n {usesSwatches && (\n <span class=\"tooltip-chart__swatch-box ds-control-icon-box\" aria-hidden=\"true\">\n {item.color && (\n <span\n class=\"tooltip-chart__swatch\"\n style={{ '--ds-tooltip-chart-swatch': item.color }}\n />\n )}\n </span>\n )}\n <ds-text\n class=\"tooltip-chart__label ds-control-label-box\"\n as=\"span\"\n variant={CONTROL_TEXT_VARIANT.md}\n color=\"var(--color-foreground-secondary)\"\n >\n {item.label}\n </ds-text>\n <ds-text\n class=\"tooltip-chart__value ds-control-label-box\"\n as=\"span\"\n variant={CONTROL_TEXT_VARIANT.md}\n emphasis\n color=\"var(--color-foreground-primary)\"\n >\n {item.value}\n </ds-text>\n </div>\n ))}\n </div>\n </Host>\n );\n }\n}\n",
|
|
250
252
|
"type": "registry:ui"
|
|
251
253
|
}
|
|
252
254
|
]
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
4
|
*/
|
|
5
5
|
export { DsAgentActivity } from "./ds-agent-activity.js";
|
|
6
|
+
export { DsAgentQuestionnaire } from "./ds-agent-questionnaire.js";
|
|
6
7
|
export { DsAgentResponse } from "./ds-agent-response.js";
|
|
7
8
|
export { DsAgentSourceList } from "./ds-agent-source-list.js";
|
|
8
9
|
export { DsAgentToolCall } from "./ds-agent-tool-call.js";
|
package/dist/react/components.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/* eslint-disable */
|
|
6
6
|
export { DsAgentActivity } from "./ds-agent-activity.js";
|
|
7
|
+
export { DsAgentQuestionnaire } from "./ds-agent-questionnaire.js";
|
|
7
8
|
export { DsAgentResponse } from "./ds-agent-response.js";
|
|
8
9
|
export { DsAgentSourceList } from "./ds-agent-source-list.js";
|
|
9
10
|
export { DsAgentToolCall } from "./ds-agent-tool-call.js";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by the Stencil React Output Target.
|
|
3
|
+
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
|
+
*/
|
|
5
|
+
import type { EventName, StencilReactComponent } from './react-runtime.js';
|
|
6
|
+
import { type AgentQuestionnaireAnswerEventDetail, type AgentQuestionnaireCancelEventDetail, type DsAgentQuestionnaireCustomEvent } from "@ds-mo/ui";
|
|
7
|
+
import type { Components } from "@ds-mo/ui/dist/components";
|
|
8
|
+
import { DsAgentQuestionnaire as DsAgentQuestionnaireElement } from "@ds-mo/ui/dist/components/ds-agent-questionnaire.js";
|
|
9
|
+
export type DsAgentQuestionnaireEvents = {
|
|
10
|
+
onDsAnswer: EventName<DsAgentQuestionnaireCustomEvent<AgentQuestionnaireAnswerEventDetail>>;
|
|
11
|
+
onDsCancel: EventName<DsAgentQuestionnaireCustomEvent<AgentQuestionnaireCancelEventDetail>>;
|
|
12
|
+
};
|
|
13
|
+
export declare const DsAgentQuestionnaire: StencilReactComponent<DsAgentQuestionnaireElement, DsAgentQuestionnaireEvents, Components.DsAgentQuestionnaire, 'requestId' | 'questions'>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createComponent } from './react-runtime.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DsAgentQuestionnaire as DsAgentQuestionnaireElement, defineCustomElement as defineDsAgentQuestionnaire } from "@ds-mo/ui/dist/components/ds-agent-questionnaire.js";
|
|
5
|
+
export const DsAgentQuestionnaire = /*@__PURE__*/ createComponent({
|
|
6
|
+
tagName: 'ds-agent-questionnaire',
|
|
7
|
+
elementClass: DsAgentQuestionnaireElement,
|
|
8
|
+
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
|
+
react: React,
|
|
10
|
+
events: {
|
|
11
|
+
onDsAnswer: 'dsAnswer',
|
|
12
|
+
onDsCancel: 'dsCancel'
|
|
13
|
+
},
|
|
14
|
+
defineCustomElement: defineDsAgentQuestionnaire
|
|
15
|
+
});
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* This file was automatically generated by the Stencil React Output Target.
|
|
3
3
|
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
4
|
*/
|
|
5
|
-
import type { StencilReactComponent } from './react-runtime.js';
|
|
5
|
+
import type { EventName, StencilReactComponent } from './react-runtime.js';
|
|
6
|
+
import { type DsAgentSourceListCustomEvent } from "@ds-mo/ui";
|
|
6
7
|
import type { Components } from "@ds-mo/ui/dist/components";
|
|
7
8
|
import { DsAgentSourceList as DsAgentSourceListElement } from "@ds-mo/ui/dist/components/ds-agent-source-list.js";
|
|
8
|
-
export type DsAgentSourceListEvents =
|
|
9
|
+
export type DsAgentSourceListEvents = {
|
|
10
|
+
onDsOpenChange: EventName<DsAgentSourceListCustomEvent<{
|
|
11
|
+
open: boolean;
|
|
12
|
+
}>>;
|
|
13
|
+
};
|
|
9
14
|
export declare const DsAgentSourceList: StencilReactComponent<DsAgentSourceListElement, DsAgentSourceListEvents, Components.DsAgentSourceList>;
|
|
@@ -7,6 +7,6 @@ export const DsAgentSourceList = /*@__PURE__*/ createComponent({
|
|
|
7
7
|
elementClass: DsAgentSourceListElement,
|
|
8
8
|
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
9
|
react: React,
|
|
10
|
-
events: {},
|
|
10
|
+
events: { onDsOpenChange: 'dsOpenChange' },
|
|
11
11
|
defineCustomElement: defineDsAgentSourceList
|
|
12
12
|
});
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* This file was automatically generated by the Stencil React Output Target.
|
|
3
3
|
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
4
|
*/
|
|
5
|
-
import type { StencilReactComponent } from './react-runtime.js';
|
|
5
|
+
import type { EventName, StencilReactComponent } from './react-runtime.js';
|
|
6
|
+
import { type DsAgentToolCallCustomEvent } from "@ds-mo/ui";
|
|
6
7
|
import type { Components } from "@ds-mo/ui/dist/components";
|
|
7
8
|
import { DsAgentToolCall as DsAgentToolCallElement } from "@ds-mo/ui/dist/components/ds-agent-tool-call.js";
|
|
8
|
-
export type DsAgentToolCallEvents =
|
|
9
|
+
export type DsAgentToolCallEvents = {
|
|
10
|
+
onDsOpenChange: EventName<DsAgentToolCallCustomEvent<{
|
|
11
|
+
open: boolean;
|
|
12
|
+
}>>;
|
|
13
|
+
};
|
|
9
14
|
export declare const DsAgentToolCall: StencilReactComponent<DsAgentToolCallElement, DsAgentToolCallEvents, Components.DsAgentToolCall>;
|
|
@@ -7,6 +7,6 @@ export const DsAgentToolCall = /*@__PURE__*/ createComponent({
|
|
|
7
7
|
elementClass: DsAgentToolCallElement,
|
|
8
8
|
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
9
|
react: React,
|
|
10
|
-
events: {},
|
|
10
|
+
events: { onDsOpenChange: 'dsOpenChange' },
|
|
11
11
|
defineCustomElement: defineDsAgentToolCall
|
|
12
12
|
});
|
package/dist/styles/prose.css
CHANGED
|
@@ -16,11 +16,16 @@
|
|
|
16
16
|
overflow-wrap: anywhere;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
:where(.ds-prose)
|
|
20
|
+
> :where(h1, h2, h3, h4, h5, h6, p, ul, ol, dl, blockquote):not(:where([data-ds-prose='off'], [data-ds-prose='off'] *)) {
|
|
21
|
+
max-inline-size: var(--ds-prose-text-max-inline-size, 100%);
|
|
22
|
+
}
|
|
23
|
+
|
|
19
24
|
:where(.ds-prose)
|
|
20
25
|
:where(p, ul, ol, dl, blockquote, figure, figcaption, table):not(:where([data-ds-prose='off'], [data-ds-prose='off'] *)) {
|
|
21
26
|
margin: 0;
|
|
22
27
|
color: inherit;
|
|
23
|
-
font-family: var(--typography-font-family);
|
|
28
|
+
font-family: var(--typography-font-family-ui);
|
|
24
29
|
font-size: var(--typography-fontsize-md);
|
|
25
30
|
font-weight: var(--typography-weight-regular);
|
|
26
31
|
line-height: var(--typography-lineheight-md);
|
|
@@ -31,7 +36,7 @@
|
|
|
31
36
|
:where(h1, h2, h3, h4, h5, h6):not(:where([data-ds-prose='off'], [data-ds-prose='off'] *)) {
|
|
32
37
|
margin: 0;
|
|
33
38
|
color: var(--color-foreground-primary);
|
|
34
|
-
font-family: var(--typography-font-family);
|
|
39
|
+
font-family: var(--typography-font-family-ui);
|
|
35
40
|
font-weight: var(--typography-weight-semibold);
|
|
36
41
|
}
|
|
37
42
|
|
|
@@ -130,8 +135,14 @@
|
|
|
130
135
|
padding: var(--dimension-space-012) var(--dimension-space-025);
|
|
131
136
|
border-radius: var(--dimension-radius-025);
|
|
132
137
|
background: var(--color-background-secondary);
|
|
133
|
-
font-family: var(
|
|
138
|
+
font-family: var(
|
|
139
|
+
--typography-font-family-code,
|
|
140
|
+
'Fira Code', ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'Roboto Mono',
|
|
141
|
+
Menlo, Monaco, Consolas, 'Liberation Mono', monospace
|
|
142
|
+
);
|
|
134
143
|
font-size: var(--typography-fontsize-sm);
|
|
144
|
+
font-variant-ligatures: var(--ds-code-font-variant-ligatures, normal);
|
|
145
|
+
font-weight: var(--typography-weight-regular);
|
|
135
146
|
line-height: var(--typography-lineheight-sm);
|
|
136
147
|
letter-spacing: var(--typography-letterspacing-none);
|
|
137
148
|
}
|
|
@@ -147,8 +158,14 @@
|
|
|
147
158
|
border-radius: var(--dimension-radius-050);
|
|
148
159
|
background: var(--color-background-strong-neutral);
|
|
149
160
|
color: var(--color-foreground-faint-neutral);
|
|
150
|
-
font-family: var(
|
|
161
|
+
font-family: var(
|
|
162
|
+
--typography-font-family-code,
|
|
163
|
+
'Fira Code', ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'Roboto Mono',
|
|
164
|
+
Menlo, Monaco, Consolas, 'Liberation Mono', monospace
|
|
165
|
+
);
|
|
151
166
|
font-size: var(--typography-fontsize-sm);
|
|
167
|
+
font-variant-ligatures: var(--ds-code-font-variant-ligatures, normal);
|
|
168
|
+
font-weight: var(--typography-weight-regular);
|
|
152
169
|
line-height: var(--typography-lineheight-sm);
|
|
153
170
|
letter-spacing: var(--typography-letterspacing-none);
|
|
154
171
|
tab-size: 2;
|
package/dist/styles/table.css
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
var(--dimension-space-075) - var(--dimension-space-025)
|
|
16
16
|
);
|
|
17
17
|
--_table-cell-track-label-inset: var(--dimension-space-025);
|
|
18
|
+
--_table-caption-bar-block-size: var(--dimension-size-600);
|
|
18
19
|
--_table-image-block-size: calc(
|
|
19
20
|
var(--dimension-size-800) - var(--dimension-space-200)
|
|
20
21
|
);
|
|
@@ -69,6 +70,25 @@
|
|
|
69
70
|
user-select: none;
|
|
70
71
|
}
|
|
71
72
|
|
|
73
|
+
:where(.ds-table--bounded) {
|
|
74
|
+
display: grid;
|
|
75
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
76
|
+
min-block-size: 0;
|
|
77
|
+
block-size: 100%;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
:where(.ds-table--viewport-fit) {
|
|
81
|
+
block-size: var(--_table-viewport-fit-current-block-size, 100%);
|
|
82
|
+
min-block-size: var(--_table-viewport-fit-current-block-size, 100%);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:where(.ds-table--bounded .ds-table__frame),
|
|
86
|
+
:where(.ds-table--bounded .ds-table__viewport) {
|
|
87
|
+
min-block-size: 0;
|
|
88
|
+
block-size: 100%;
|
|
89
|
+
max-block-size: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
72
92
|
:where(.ds-table__frame) {
|
|
73
93
|
position: relative;
|
|
74
94
|
timeline-scope: --ds-table-inline-scroll;
|
|
@@ -81,6 +101,15 @@
|
|
|
81
101
|
background: var(--_table-surface);
|
|
82
102
|
}
|
|
83
103
|
|
|
104
|
+
/*
|
|
105
|
+
* Contained tables own a hard visual viewport. Clip table-owned overlays and
|
|
106
|
+
* elastic-scroll paint to that frame without introducing another scrollport;
|
|
107
|
+
* the nested viewport remains the only element that scrolls.
|
|
108
|
+
*/
|
|
109
|
+
:where(.ds-table--contained-scroll .ds-table__frame) {
|
|
110
|
+
overflow: clip;
|
|
111
|
+
}
|
|
112
|
+
|
|
84
113
|
:where(.ds-table__viewport) {
|
|
85
114
|
box-sizing: border-box;
|
|
86
115
|
max-block-size: var(--ds-table-max-block-size, none);
|
|
@@ -104,6 +133,14 @@
|
|
|
104
133
|
outline-offset: calc(-1 * var(--dimension-stroke-width-025));
|
|
105
134
|
}
|
|
106
135
|
|
|
136
|
+
:where(.ds-table--viewport-fit-pending .ds-table__viewport) {
|
|
137
|
+
overflow-y: hidden;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
:where(.ds-table--viewport-fit-settled .ds-table__viewport) {
|
|
141
|
+
overscroll-behavior-y: none;
|
|
142
|
+
}
|
|
143
|
+
|
|
107
144
|
:where(.ds-table__table) {
|
|
108
145
|
box-sizing: border-box;
|
|
109
146
|
inline-size: 100%;
|
|
@@ -132,24 +169,87 @@
|
|
|
132
169
|
display: flex;
|
|
133
170
|
align-items: center;
|
|
134
171
|
inline-size: 100%;
|
|
135
|
-
min-block-size: var(--
|
|
136
|
-
block-size: var(--
|
|
137
|
-
padding
|
|
172
|
+
min-block-size: var(--_table-caption-bar-block-size);
|
|
173
|
+
block-size: var(--_table-caption-bar-block-size);
|
|
174
|
+
padding: var(--dimension-space-100);
|
|
175
|
+
gap: var(--dimension-space-100);
|
|
138
176
|
background: var(--_table-surface);
|
|
139
177
|
text-align: start;
|
|
140
178
|
}
|
|
141
179
|
|
|
142
180
|
:where(.ds-table__caption-bar) {
|
|
143
|
-
border-
|
|
181
|
+
border-start-start-radius: var(--_table-radius);
|
|
182
|
+
border-start-end-radius: var(--_table-radius);
|
|
183
|
+
border-block-end: var(--dimension-stroke-width-012) solid var(--_table-column-border);
|
|
144
184
|
color: var(--color-foreground-primary);
|
|
145
185
|
}
|
|
146
186
|
|
|
187
|
+
:where(.ds-table--caption-visible .ds-table__frame),
|
|
188
|
+
:where(.ds-table--caption-visible .ds-table__viewport) {
|
|
189
|
+
border-start-start-radius: 0;
|
|
190
|
+
border-start-end-radius: 0;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
:where(.ds-table__bar-leading),
|
|
194
|
+
:where(.ds-table__bar-trailing) {
|
|
195
|
+
display: flex;
|
|
196
|
+
align-items: center;
|
|
197
|
+
flex: 0 0 auto;
|
|
198
|
+
min-inline-size: 0;
|
|
199
|
+
gap: var(--dimension-space-100);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
:where(.ds-table__bar-trailing) {
|
|
203
|
+
margin-inline-start: auto;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
:where(.ds-table__bar-leading[hidden], .ds-table__bar-trailing[hidden]) {
|
|
207
|
+
display: none;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
:where(.ds-table__bar-copy) {
|
|
211
|
+
display: flex;
|
|
212
|
+
flex: 1 1 auto;
|
|
213
|
+
align-items: center;
|
|
214
|
+
box-sizing: border-box;
|
|
215
|
+
min-inline-size: 0;
|
|
216
|
+
max-inline-size: 100%;
|
|
217
|
+
padding: var(--ds-control-padding-inline, var(--dimension-space-075));
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
:where(.ds-table__bar-copy > slot) {
|
|
221
|
+
display: contents;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
:where(.ds-table__bar-copy > slot)::slotted(*) {
|
|
225
|
+
flex: 1 1 auto;
|
|
226
|
+
min-inline-size: 0;
|
|
227
|
+
max-inline-size: 100%;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
:where(.ds-table__bar-text) {
|
|
231
|
+
display: inline-flex;
|
|
232
|
+
align-items: center;
|
|
233
|
+
box-sizing: border-box;
|
|
234
|
+
min-inline-size: 0;
|
|
235
|
+
block-size: var(--ds-control-height, var(--dimension-size-400));
|
|
236
|
+
padding-inline: var(--ds-control-label-inset, var(--dimension-space-025));
|
|
237
|
+
}
|
|
238
|
+
|
|
147
239
|
/* Optional controlled result summary. */
|
|
148
240
|
:where(.ds-table__footer) {
|
|
149
|
-
border-
|
|
241
|
+
border-end-start-radius: var(--_table-radius);
|
|
242
|
+
border-end-end-radius: var(--_table-radius);
|
|
243
|
+
border-block-start: var(--dimension-stroke-width-012) solid var(--_table-column-border);
|
|
150
244
|
color: var(--color-foreground-secondary);
|
|
151
245
|
}
|
|
152
246
|
|
|
247
|
+
:where(.ds-table--footer-visible .ds-table__frame),
|
|
248
|
+
:where(.ds-table--footer-visible .ds-table__viewport) {
|
|
249
|
+
border-end-start-radius: 0;
|
|
250
|
+
border-end-end-radius: 0;
|
|
251
|
+
}
|
|
252
|
+
|
|
153
253
|
:where(.ds-table__selection-column) {
|
|
154
254
|
inline-size: var(--_table-selection-column-inline-size);
|
|
155
255
|
width: var(--_table-selection-column-inline-size);
|
|
@@ -170,13 +270,13 @@
|
|
|
170
270
|
:where(.ds-table--contained-sticky-header .ds-table__head) {
|
|
171
271
|
position: sticky;
|
|
172
272
|
inset-block-start: 0;
|
|
173
|
-
z-index:
|
|
273
|
+
z-index: 6;
|
|
174
274
|
}
|
|
175
275
|
|
|
176
276
|
:where(.ds-table__document-sticky-header) {
|
|
177
277
|
position: sticky;
|
|
178
278
|
inset-block-start: var(--ds-table-sticky-header-offset, 0);
|
|
179
|
-
z-index:
|
|
279
|
+
z-index: 6;
|
|
180
280
|
block-size: var(--_table-header-min-block-size);
|
|
181
281
|
margin-block-end: calc(-1 * var(--_table-header-min-block-size));
|
|
182
282
|
max-inline-size: 100%;
|
|
@@ -185,6 +285,38 @@
|
|
|
185
285
|
background: var(--_table-header-surface);
|
|
186
286
|
}
|
|
187
287
|
|
|
288
|
+
:where(.ds-table--document-sticky-header.ds-table--caption-visible > .ds-table__caption-bar) {
|
|
289
|
+
position: sticky;
|
|
290
|
+
inset-block-start: var(--ds-table-sticky-header-offset, 0);
|
|
291
|
+
z-index: 3;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
:where(.ds-table--document-sticky-header.ds-table--caption-visible .ds-table__document-sticky-header) {
|
|
295
|
+
inset-block-start: calc(
|
|
296
|
+
var(--ds-table-sticky-header-offset, 0px) + var(--_table-caption-bar-block-size)
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
:where(.ds-table__sticky-group) {
|
|
301
|
+
position: absolute;
|
|
302
|
+
inset-block-start: var(--_table-sticky-group-top, 0);
|
|
303
|
+
inset-inline-start: 0;
|
|
304
|
+
z-index: 5;
|
|
305
|
+
box-sizing: border-box;
|
|
306
|
+
inline-size: 100%;
|
|
307
|
+
block-size: var(--_table-row-min-block-size);
|
|
308
|
+
overflow: hidden;
|
|
309
|
+
will-change: inset-block-start;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
:where(.ds-table__sticky-group .ds-table__group-content) {
|
|
313
|
+
position: relative;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
:where(.ds-table__group-cell--sticky-source-hidden) {
|
|
317
|
+
visibility: hidden;
|
|
318
|
+
}
|
|
319
|
+
|
|
188
320
|
:where(.ds-table__sticky-header-table) {
|
|
189
321
|
block-size: var(--_table-header-min-block-size);
|
|
190
322
|
transform: translate3d(calc(-1 * var(--ds-table-inline-scroll-offset, 0px)), 0, 0);
|
|
@@ -929,7 +1061,8 @@
|
|
|
929
1061
|
display: none;
|
|
930
1062
|
}
|
|
931
1063
|
|
|
932
|
-
:where(.ds-table__table--selectable .ds-table__group-content)
|
|
1064
|
+
:where(.ds-table__table--selectable .ds-table__group-content),
|
|
1065
|
+
:where(.ds-table__sticky-group--selectable .ds-table__group-content) {
|
|
933
1066
|
/* Selection lane is the real 40px column — don't add start pad or flex gap. */
|
|
934
1067
|
gap: 0;
|
|
935
1068
|
padding-inline-start: 0;
|
|
@@ -965,7 +1098,8 @@
|
|
|
965
1098
|
padding-inline: var(--dimension-space-050);
|
|
966
1099
|
}
|
|
967
1100
|
|
|
968
|
-
:where(.ds-table__table--selectable .ds-table__group-copy)
|
|
1101
|
+
:where(.ds-table__table--selectable .ds-table__group-copy),
|
|
1102
|
+
:where(.ds-table__sticky-group--selectable .ds-table__group-copy) {
|
|
969
1103
|
padding-inline-start: calc(
|
|
970
1104
|
var(--dimension-space-100) + var(--_table-cell-track-label-inset)
|
|
971
1105
|
);
|
|
@@ -985,11 +1119,24 @@
|
|
|
985
1119
|
|
|
986
1120
|
:where(.ds-table__load-cell),
|
|
987
1121
|
:where(.ds-table__state-cell) {
|
|
988
|
-
padding:
|
|
1122
|
+
padding: 0;
|
|
989
1123
|
background: var(--_table-surface);
|
|
990
1124
|
text-align: center;
|
|
991
1125
|
}
|
|
992
1126
|
|
|
1127
|
+
:where(.ds-table__viewport-band) {
|
|
1128
|
+
position: sticky;
|
|
1129
|
+
inset-inline-start: 0;
|
|
1130
|
+
box-sizing: border-box;
|
|
1131
|
+
display: flex;
|
|
1132
|
+
align-items: center;
|
|
1133
|
+
justify-content: center;
|
|
1134
|
+
inline-size: var(--ds-table-visible-inline-size, 100%);
|
|
1135
|
+
max-inline-size: var(--ds-table-visible-inline-size, 100%);
|
|
1136
|
+
padding: var(--dimension-space-200) var(--_table-cell-padding-inline);
|
|
1137
|
+
background: var(--_table-surface);
|
|
1138
|
+
}
|
|
1139
|
+
|
|
993
1140
|
:where(.ds-table__load-content) {
|
|
994
1141
|
/* Match md ButtonUnfilled height so text-only / loading / button states share one box. */
|
|
995
1142
|
box-sizing: border-box;
|
|
@@ -1019,6 +1166,10 @@
|
|
|
1019
1166
|
block-size: calc(var(--dimension-size-800) * 2);
|
|
1020
1167
|
}
|
|
1021
1168
|
|
|
1169
|
+
:where(.ds-table__state-band) {
|
|
1170
|
+
min-block-size: calc(var(--dimension-size-800) * 2);
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1022
1173
|
:where(.ds-table__skeleton-row) {
|
|
1023
1174
|
pointer-events: none;
|
|
1024
1175
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import type { AgentQuestion, AgentQuestionAnswer, AgentQuestionnaireAnswerEventDetail, AgentQuestionnaireCancelEventDetail, AgentQuestionnaireLabels, AgentQuestionnaireStatus } from '../conversation-types';
|
|
3
|
+
export declare class AgentQuestionnaire {
|
|
4
|
+
el: HTMLElement;
|
|
5
|
+
requestId: string;
|
|
6
|
+
questions: AgentQuestion[];
|
|
7
|
+
answers: AgentQuestionAnswer[];
|
|
8
|
+
status: AgentQuestionnaireStatus;
|
|
9
|
+
errorMessage?: string;
|
|
10
|
+
allowCancel: boolean;
|
|
11
|
+
labels?: Partial<AgentQuestionnaireLabels>;
|
|
12
|
+
dsAnswer: EventEmitter<AgentQuestionnaireAnswerEventDetail>;
|
|
13
|
+
dsCancel: EventEmitter<AgentQuestionnaireCancelEventDetail>;
|
|
14
|
+
private currentStep;
|
|
15
|
+
private drafts;
|
|
16
|
+
private validation;
|
|
17
|
+
private readonly instanceId;
|
|
18
|
+
private readonly otherValue;
|
|
19
|
+
private answerPending;
|
|
20
|
+
private resetScheduled;
|
|
21
|
+
private draftRequestId?;
|
|
22
|
+
private answersSnapshot;
|
|
23
|
+
private waitingForRequestAnswers;
|
|
24
|
+
componentWillLoad(): void;
|
|
25
|
+
handleQuestionnaireInputChange(): void;
|
|
26
|
+
handleStatusChange(status: AgentQuestionnaireStatus): void;
|
|
27
|
+
setFocus(): Promise<void>;
|
|
28
|
+
private get copy();
|
|
29
|
+
private get disabled();
|
|
30
|
+
private resetDraft;
|
|
31
|
+
private scheduleDraftReset;
|
|
32
|
+
private focusCurrentControl;
|
|
33
|
+
private updateDraft;
|
|
34
|
+
private validate;
|
|
35
|
+
private move;
|
|
36
|
+
private next;
|
|
37
|
+
private skip;
|
|
38
|
+
private submit;
|
|
39
|
+
private validateWithoutFocus;
|
|
40
|
+
private progressLabel;
|
|
41
|
+
private selectSingle;
|
|
42
|
+
private renderSingleChoice;
|
|
43
|
+
private renderMultipleChoice;
|
|
44
|
+
private renderOtherInput;
|
|
45
|
+
private renderQuestion;
|
|
46
|
+
private renderAnswered;
|
|
47
|
+
render(): any;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=AgentQuestionnaire.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AgentQuestion, AgentQuestionAnswer } from '../conversation-types';
|
|
2
|
+
export interface AgentQuestionDraft {
|
|
3
|
+
value: string | string[];
|
|
4
|
+
otherSelected: boolean;
|
|
5
|
+
otherText: string;
|
|
6
|
+
skipped: boolean;
|
|
7
|
+
}
|
|
8
|
+
export type AgentQuestionDrafts = Record<string, AgentQuestionDraft>;
|
|
9
|
+
export declare function createQuestionnaireDrafts(questions: AgentQuestion[], answers: AgentQuestionAnswer[]): AgentQuestionDrafts;
|
|
10
|
+
export declare function normalizeQuestionAnswer(question: AgentQuestion, draft: AgentQuestionDraft): AgentQuestionAnswer;
|
|
11
|
+
export declare function validateQuestionDraft(question: AgentQuestion, draft: AgentQuestionDraft): string | undefined;
|
|
12
|
+
export declare function formatQuestionAnswer(question: AgentQuestion, answer: AgentQuestionAnswer | undefined): string;
|
|
13
|
+
//# sourceMappingURL=agent-questionnaire-model.d.ts.map
|