@ds-mo/ui 13.6.1 → 13.8.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 +1 -1
- package/dist/agent.json +109 -371
- package/dist/angular/ds-card-chart.d.ts +18 -0
- package/dist/angular/{ds-card-data-viz.js → ds-card-chart.js} +10 -10
- package/dist/angular/ds-chart.d.ts +19 -0
- package/dist/angular/{ds-chart-donut.js → ds-chart.js} +15 -15
- package/dist/angular/ds-tooltip-chart.d.ts +12 -0
- package/dist/angular/{ds-chart-line.js → ds-tooltip-chart.js} +12 -12
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +3 -5
- package/dist/angular/proxies.d.ts +3 -5
- package/dist/angular/proxies.js +3 -5
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-response.js +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-banner.js.map +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-chart-line.d.ts → ds-card-chart.d.ts} +4 -4
- package/dist/components/ds-card-chart.js +2 -0
- package/dist/components/ds-card-chart.js.map +1 -0
- 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-card-setting.js.map +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-bar.d.ts → ds-chart.d.ts} +4 -4
- package/dist/components/ds-chart.js +2 -0
- package/dist/components/ds-chart.js.map +1 -0
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +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-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-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-composer.js +1 -1
- package/dist/components/ds-message-scroller.js +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-modal.js.map +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-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-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-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-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-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-toast.js.map +1 -1
- package/dist/components/{ds-card-data-viz.d.ts → ds-tooltip-chart.d.ts} +4 -4
- package/dist/components/ds-tooltip-chart.js +2 -0
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/{p-iCjUWcp7.js → p-2inC7Jm-.js} +2 -2
- package/dist/components/{p-iCjUWcp7.js.map → p-2inC7Jm-.js.map} +1 -1
- package/dist/components/{p-DaqFuVKZ.js → p-B16OuqyJ.js} +2 -2
- package/dist/components/{p-BmNpPyzf.js → p-B4VlfBNc.js} +2 -2
- package/dist/components/{p-og48Kh2i.js → p-B6z51yBf.js} +2 -2
- package/dist/components/{p-Bb4f5SuF.js → p-BNiIyZCn.js} +2 -2
- package/dist/components/{p-BFfHIu6y.js → p-BP-EtYbR.js} +2 -2
- package/dist/components/{p-DHF5cLzr.js → p-BQ7Nzx9A.js} +2 -2
- package/dist/components/{p-B-kRByho.js → p-BQDi0v_h.js} +2 -2
- package/dist/components/{p-BBtjABBS.js → p-BYB0f1_F.js} +2 -2
- package/dist/components/p-BjIYFiuQ.js +2 -0
- package/dist/components/{p-D0bM3cKj.js.map → p-BjIYFiuQ.js.map} +1 -1
- package/dist/components/{p-DfvDNcoq.js → p-BjoyHNaM.js} +2 -2
- package/dist/components/{p-Bl6A5AJq.js → p-BkWhTEqe.js} +2 -2
- package/dist/components/p-BnGJrBPG.js +2 -0
- package/dist/components/{p-1S9AW2MA.js.map → p-BnGJrBPG.js.map} +1 -1
- package/dist/components/p-BtS5na9O.js +2 -0
- package/dist/components/{p-DX4c3kZ1.js.map → p-BtS5na9O.js.map} +1 -1
- package/dist/components/p-CCYgBUUS.js +2 -0
- package/dist/components/{p-D2cjoj2r.js.map → p-CCYgBUUS.js.map} +1 -1
- package/dist/components/p-CXduurfd.js +2 -0
- package/dist/components/p-CXduurfd.js.map +1 -0
- package/dist/components/{p-CxgMUvqg.js → p-CnbrksLl.js} +2 -2
- package/dist/components/{p-Eep5mxtv.js → p-Cog5NTLa.js} +2 -2
- package/dist/components/{p-Bmo4T96l.js → p-D2dQyoyK.js} +2 -2
- package/dist/components/{p-BPyymeuR.js → p-D6g070eY.js} +2 -2
- package/dist/components/{p-wOOAzVMC.js → p-D8qgVmHn.js} +2 -2
- package/dist/components/{p-BR_oMaas.js → p-DJ0XMH9E.js} +2 -2
- package/dist/components/{p-B6RrZQqw.js → p-DK4PGrHm.js} +2 -2
- package/dist/components/{p-DVuxzrCC.js → p-DLwM1RNL.js} +2 -2
- package/dist/components/p-DW9p068S.js +2 -0
- package/dist/components/{p-CuJ3J6OJ.js.map → p-DW9p068S.js.map} +1 -1
- package/dist/components/{p-Bsfpxto1.js → p-Dg9qiMDa.js} +2 -2
- package/dist/components/p-Dg9qiMDa.js.map +1 -0
- package/dist/components/{p-B4_0Ys4w.js → p-DgglLVCj.js} +2 -2
- package/dist/components/p-DmblUQ4D.js +2 -0
- package/dist/components/p-DmblUQ4D.js.map +1 -0
- package/dist/components/{p-6B411hQA.js → p-Dv8_hmUZ.js} +2 -2
- package/dist/components/{p-IYy-jODg.js → p-DwKC_9u2.js} +2 -2
- package/dist/components/p-GbTasczF.js +2 -0
- package/dist/components/{p-CzraIk34.js → p-HIg1XX62.js} +2 -2
- package/dist/components/{p-Di81y9Q2.js → p-KFHFBznh.js} +2 -2
- package/dist/components/{p-CKRJX0Y0.js → p-PQgDzzn9.js} +2 -2
- package/dist/components/{p-Ca6s5fLR.js → p-iyiOFsws.js} +2 -2
- package/dist/docs/components.json +180 -662
- package/dist/lib/utils/chart-grammar.d.ts +359 -0
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.js +504 -0
- package/dist/lib/utils/index.js.map +4 -4
- package/dist/lib/utils/token-defaults.d.ts +3 -0
- package/dist/mcp-data/registry/agent-activity.json +1 -1
- package/dist/mcp-data/registry/agent-response.json +1 -1
- package/dist/mcp-data/registry/agent-source-list.json +1 -1
- package/dist/mcp-data/registry/agent-tool-call.json +1 -1
- package/dist/mcp-data/registry/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 +1 -1
- package/dist/mcp-data/registry/bar-workflow.json +1 -1
- package/dist/mcp-data/registry/breadcrumb.json +1 -1
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/button-unfilled.json +1 -1
- package/dist/mcp-data/registry/card-chart.json +238 -0
- package/dist/mcp-data/registry/card-overview.json +7 -7
- package/dist/mcp-data/registry/card-setting.json +5 -5
- package/dist/mcp-data/registry/chart-legend.json +12 -19
- package/dist/mcp-data/registry/chart.json +258 -0
- package/dist/mcp-data/registry/checkbox.json +1 -1
- package/dist/mcp-data/registry/chip.json +1 -1
- package/dist/mcp-data/registry/code-block.json +1 -1
- package/dist/mcp-data/registry/conversation-list-item.json +1 -1
- 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 +1 -1
- package/dist/mcp-data/registry/message-actions.json +1 -1
- package/dist/mcp-data/registry/message-bubble.json +1 -1
- package/dist/mcp-data/registry/message-composer.json +1 -1
- package/dist/mcp-data/registry/message-scroller.json +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/mcp-data/registry/radio.json +1 -1
- package/dist/mcp-data/registry/registry.json +109 -377
- package/dist/mcp-data/registry/scroll-overlay.json +1 -1
- package/dist/mcp-data/registry/select.json +1 -1
- package/dist/mcp-data/registry/shell-app.json +1 -1
- package/dist/mcp-data/registry/shell-page.json +1 -1
- package/dist/mcp-data/registry/shell-tools.json +1 -1
- package/dist/mcp-data/registry/skeleton.json +3 -3
- package/dist/mcp-data/registry/slider.json +1 -1
- package/dist/mcp-data/registry/swatch-picker.json +1 -1
- package/dist/mcp-data/registry/switch.json +1 -1
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/tag.json +1 -1
- package/dist/mcp-data/registry/text.json +1 -1
- package/dist/mcp-data/registry/toast.json +1 -1
- package/dist/mcp-data/registry/tooltip-chart.json +253 -0
- package/dist/mcp-data/registry/tooltip.json +3 -3
- package/dist/mcp-data/registry/typing-indicator.json +1 -1
- package/dist/react/components.d.ts +3 -5
- package/dist/react/components.js +3 -5
- package/dist/react/ds-card-chart.d.ts +12 -0
- package/dist/react/ds-card-chart.js +12 -0
- package/dist/react/ds-chart.d.ts +12 -0
- package/dist/react/ds-chart.js +12 -0
- package/dist/react/{ds-chart-bar.d.ts → ds-tooltip-chart.d.ts} +3 -3
- package/dist/react/ds-tooltip-chart.js +12 -0
- package/dist/types/components/{CardDataViz/CardDataViz.d.ts → CardChart/CardChart.d.ts} +9 -13
- package/dist/types/components/CardChart/index.d.ts +2 -0
- package/dist/types/components/CardOverview/CardOverview.d.ts +2 -0
- package/dist/types/components/Chart/Chart.d.ts +66 -0
- package/dist/types/components/Chart/index.d.ts +2 -0
- package/dist/types/components/ChartLegend/ChartLegend.d.ts +1 -1
- package/dist/types/components/{TooltipDataViz/TooltipDataViz.d.ts → TooltipChart/TooltipChart.d.ts} +15 -6
- package/dist/types/components/TooltipChart/index.d.ts +2 -0
- package/dist/types/components.d.ts +129 -294
- package/dist/types/utils/chart-grammar.d.ts +360 -0
- package/dist/types/utils/chart-scene.d.ts +128 -0
- package/dist/types/utils/chart-theme.d.ts +27 -0
- package/dist/types/utils/chart-types.d.ts +0 -13
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/token-defaults.d.ts +3 -0
- package/package.json +3 -3
- package/dist/angular/ds-card-data-viz.d.ts +0 -18
- package/dist/angular/ds-chart-bar.d.ts +0 -12
- package/dist/angular/ds-chart-bar.js +0 -38
- package/dist/angular/ds-chart-donut.d.ts +0 -19
- package/dist/angular/ds-chart-line.d.ts +0 -12
- package/dist/angular/ds-tooltip-data-viz.d.ts +0 -12
- package/dist/angular/ds-tooltip-data-viz.js +0 -38
- package/dist/components/ds-card-data-viz.js +0 -2
- package/dist/components/ds-card-data-viz.js.map +0 -1
- package/dist/components/ds-chart-bar.js +0 -2
- package/dist/components/ds-chart-bar.js.map +0 -1
- package/dist/components/ds-chart-donut.d.ts +0 -11
- package/dist/components/ds-chart-donut.js +0 -2
- package/dist/components/ds-chart-donut.js.map +0 -1
- package/dist/components/ds-chart-line.js +0 -2
- package/dist/components/ds-chart-line.js.map +0 -1
- package/dist/components/ds-tooltip-data-viz.d.ts +0 -11
- package/dist/components/ds-tooltip-data-viz.js +0 -2
- package/dist/components/p-1S9AW2MA.js +0 -2
- package/dist/components/p-B6Vuayt6.js +0 -2
- package/dist/components/p-B6Vuayt6.js.map +0 -1
- package/dist/components/p-BBpASejH.js +0 -2
- package/dist/components/p-BBpASejH.js.map +0 -1
- package/dist/components/p-Bsfpxto1.js.map +0 -1
- package/dist/components/p-BybqPD8K.js +0 -2
- package/dist/components/p-BybqPD8K.js.map +0 -1
- package/dist/components/p-C4uYvyq6.js +0 -2
- package/dist/components/p-C4uYvyq6.js.map +0 -1
- package/dist/components/p-CbjFUpOj.js +0 -2
- package/dist/components/p-CbjFUpOj.js.map +0 -1
- package/dist/components/p-CrCGIx8s.js +0 -2
- package/dist/components/p-CrCGIx8s.js.map +0 -1
- package/dist/components/p-CuJ3J6OJ.js +0 -2
- package/dist/components/p-D0bM3cKj.js +0 -2
- package/dist/components/p-D2cjoj2r.js +0 -2
- package/dist/components/p-DX4c3kZ1.js +0 -2
- package/dist/components/p-DXewjzkM.js +0 -2
- package/dist/components/p-DXewjzkM.js.map +0 -1
- package/dist/components/p-yhj1lIPx.js +0 -2
- package/dist/mcp-data/registry/card-data-viz.json +0 -241
- package/dist/mcp-data/registry/chart-bar.json +0 -245
- package/dist/mcp-data/registry/chart-donut.json +0 -344
- package/dist/mcp-data/registry/chart-line.json +0 -223
- package/dist/mcp-data/registry/tooltip-data-viz.json +0 -224
- package/dist/react/ds-card-data-viz.d.ts +0 -12
- package/dist/react/ds-card-data-viz.js +0 -12
- package/dist/react/ds-chart-bar.js +0 -12
- package/dist/react/ds-chart-donut.d.ts +0 -12
- package/dist/react/ds-chart-donut.js +0 -12
- package/dist/react/ds-chart-line.d.ts +0 -9
- package/dist/react/ds-chart-line.js +0 -12
- package/dist/react/ds-tooltip-data-viz.d.ts +0 -9
- package/dist/react/ds-tooltip-data-viz.js +0 -12
- package/dist/types/components/CardDataViz/index.d.ts +0 -2
- package/dist/types/components/ChartBar/ChartBar.d.ts +0 -31
- package/dist/types/components/ChartBar/index.d.ts +0 -3
- package/dist/types/components/ChartDonut/ChartDonut.d.ts +0 -72
- package/dist/types/components/ChartDonut/index.d.ts +0 -2
- package/dist/types/components/ChartLine/ChartLine.d.ts +0 -23
- package/dist/types/components/ChartLine/index.d.ts +0 -2
- package/dist/types/components/TooltipDataViz/index.d.ts +0 -2
- /package/dist/components/{ds-tooltip-data-viz.js.map → ds-tooltip-chart.js.map} +0 -0
- /package/dist/components/{p-DaqFuVKZ.js.map → p-B16OuqyJ.js.map} +0 -0
- /package/dist/components/{p-BmNpPyzf.js.map → p-B4VlfBNc.js.map} +0 -0
- /package/dist/components/{p-og48Kh2i.js.map → p-B6z51yBf.js.map} +0 -0
- /package/dist/components/{p-Bb4f5SuF.js.map → p-BNiIyZCn.js.map} +0 -0
- /package/dist/components/{p-BFfHIu6y.js.map → p-BP-EtYbR.js.map} +0 -0
- /package/dist/components/{p-DHF5cLzr.js.map → p-BQ7Nzx9A.js.map} +0 -0
- /package/dist/components/{p-B-kRByho.js.map → p-BQDi0v_h.js.map} +0 -0
- /package/dist/components/{p-BBtjABBS.js.map → p-BYB0f1_F.js.map} +0 -0
- /package/dist/components/{p-DfvDNcoq.js.map → p-BjoyHNaM.js.map} +0 -0
- /package/dist/components/{p-Bl6A5AJq.js.map → p-BkWhTEqe.js.map} +0 -0
- /package/dist/components/{p-CxgMUvqg.js.map → p-CnbrksLl.js.map} +0 -0
- /package/dist/components/{p-Eep5mxtv.js.map → p-Cog5NTLa.js.map} +0 -0
- /package/dist/components/{p-Bmo4T96l.js.map → p-D2dQyoyK.js.map} +0 -0
- /package/dist/components/{p-BPyymeuR.js.map → p-D6g070eY.js.map} +0 -0
- /package/dist/components/{p-wOOAzVMC.js.map → p-D8qgVmHn.js.map} +0 -0
- /package/dist/components/{p-BR_oMaas.js.map → p-DJ0XMH9E.js.map} +0 -0
- /package/dist/components/{p-B6RrZQqw.js.map → p-DK4PGrHm.js.map} +0 -0
- /package/dist/components/{p-DVuxzrCC.js.map → p-DLwM1RNL.js.map} +0 -0
- /package/dist/components/{p-B4_0Ys4w.js.map → p-DgglLVCj.js.map} +0 -0
- /package/dist/components/{p-6B411hQA.js.map → p-Dv8_hmUZ.js.map} +0 -0
- /package/dist/components/{p-IYy-jODg.js.map → p-DwKC_9u2.js.map} +0 -0
- /package/dist/components/{p-yhj1lIPx.js.map → p-GbTasczF.js.map} +0 -0
- /package/dist/components/{p-CzraIk34.js.map → p-HIg1XX62.js.map} +0 -0
- /package/dist/components/{p-Di81y9Q2.js.map → p-KFHFBznh.js.map} +0 -0
- /package/dist/components/{p-CKRJX0Y0.js.map → p-PQgDzzn9.js.map} +0 -0
- /package/dist/components/{p-Ca6s5fLR.js.map → p-iyiOFsws.js.map} +0 -0
|
@@ -741,7 +741,7 @@
|
|
|
741
741
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: options, sections.",
|
|
742
742
|
"peerDependencies": {
|
|
743
743
|
"required": [
|
|
744
|
-
"@ds-mo/tokens ^5.1.
|
|
744
|
+
"@ds-mo/tokens ^5.1.2",
|
|
745
745
|
"@ds-mo/icons ^6.4.0"
|
|
746
746
|
],
|
|
747
747
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -560,7 +560,7 @@
|
|
|
560
560
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: navigation, pageChrome, tools.",
|
|
561
561
|
"peerDependencies": {
|
|
562
562
|
"required": [
|
|
563
|
-
"@ds-mo/tokens ^5.1.
|
|
563
|
+
"@ds-mo/tokens ^5.1.2",
|
|
564
564
|
"@ds-mo/icons ^6.4.0"
|
|
565
565
|
],
|
|
566
566
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -390,7 +390,7 @@
|
|
|
390
390
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: headers, items.",
|
|
391
391
|
"peerDependencies": {
|
|
392
392
|
"required": [
|
|
393
|
-
"@ds-mo/tokens ^5.1.
|
|
393
|
+
"@ds-mo/tokens ^5.1.2",
|
|
394
394
|
"@ds-mo/icons ^6.4.0"
|
|
395
395
|
],
|
|
396
396
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"The owner preserves focus and meaningful reading order when replacing placeholders with real content."
|
|
55
55
|
],
|
|
56
56
|
"states": [
|
|
57
|
-
"Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes;
|
|
57
|
+
"Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes. Text bars occupy 75% of their line-height canvas, while icon shapes occupy 75% of their square canvas; both remain centered with a proportional 12.5% inset per applicable edge. Control atoms inherit the selected control density's default radius.",
|
|
58
58
|
"Compose approximate line count, hierarchy, widths, and control placement without simulating actual values.",
|
|
59
59
|
"Shimmer is on by default and may be disabled for a static placeholder. Reduced motion always produces the static final shape.",
|
|
60
60
|
"Rounded is an optional visual treatment for icon and control atoms rather than a semantic state.",
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
},
|
|
256
256
|
"peerDependencies": {
|
|
257
257
|
"required": [
|
|
258
|
-
"@ds-mo/tokens ^5.1.
|
|
258
|
+
"@ds-mo/tokens ^5.1.2",
|
|
259
259
|
"@ds-mo/icons ^6.4.0"
|
|
260
260
|
],
|
|
261
261
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
"files": [
|
|
271
271
|
{
|
|
272
272
|
"path": "src/wc/components/Skeleton/Skeleton.css",
|
|
273
|
-
"content": "@import '../../utils/control-density.css';\n@import '../../utils/shimmer.css';\n\n:host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n vertical-align: middle;\n --ds-skeleton-base: var(--color-foreground-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer);\n}\n\n.skeleton__shape {\n --ds-shimmer-surface-base: var(--ds-skeleton-base);\n\n display: block;\n width: 100%;\n height: 100%;\n flex: 0 0 auto;\n background-color: var(--ds-skeleton-base);\n border-radius: var(--dimension-radius-025);\n}\n\n/* ── Background context ────────────────────────────────────────────────── */\n\n:host(.skeleton--background-medium) {\n --ds-skeleton-base: var(--color-foreground-on-medium-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-medium-background);\n}\n\n:host(.skeleton--background-bold) {\n --ds-skeleton-base: var(--color-foreground-on-bold-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-bold-background);\n}\n\n:host(.skeleton--background-strong) {\n --ds-skeleton-base: var(--color-foreground-on-strong-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-strong-background);\n}\n\n:host(.skeleton--background-translucent) {\n --ds-skeleton-base: var(--color-translucent-foreground-quaternary);\n --ds-shimmer: var(--color-translucent-shimmer);\n}\n\n:host(.skeleton--background-inverted) {\n --ds-skeleton-base: var(--color-inverted-foreground-quaternary);\n --ds-shimmer: var(--color-inverted-shimmer);\n}\n\n:host(.skeleton--background-media) {\n --ds-skeleton-base: var(--color-media-foreground-quaternary);\n --ds-shimmer: var(--color-media-shimmer);\n}\n\n:host(.skeleton--background-always-dark) {\n --ds-skeleton-base: var(--color-always-dark-foreground-quaternary);\n --ds-shimmer: var(--color-always-dark-shimmer);\n}\n\n:host(.skeleton--background-navigation) {\n --ds-skeleton-base: var(--color-navigation-foreground-quaternary);\n --ds-shimmer: var(--color-navigation-shimmer);\n}\n\n/* ── Text ──────────────────────────────────────────────────────────────── */\n\n:host(.skeleton--text) {\n width: 100%;\n height: var(--ds-skeleton-canvas-size);\n padding-block:
|
|
273
|
+
"content": "@import '../../utils/control-density.css';\n@import '../../utils/shimmer.css';\n\n:host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n vertical-align: middle;\n --ds-skeleton-base: var(--color-foreground-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer);\n}\n\n.skeleton__shape {\n --ds-shimmer-surface-base: var(--ds-skeleton-base);\n\n display: block;\n width: 100%;\n height: 100%;\n flex: 0 0 auto;\n background-color: var(--ds-skeleton-base);\n border-radius: var(--dimension-radius-025);\n}\n\n/* ── Background context ────────────────────────────────────────────────── */\n\n:host(.skeleton--background-medium) {\n --ds-skeleton-base: var(--color-foreground-on-medium-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-medium-background);\n}\n\n:host(.skeleton--background-bold) {\n --ds-skeleton-base: var(--color-foreground-on-bold-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-bold-background);\n}\n\n:host(.skeleton--background-strong) {\n --ds-skeleton-base: var(--color-foreground-on-strong-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-strong-background);\n}\n\n:host(.skeleton--background-translucent) {\n --ds-skeleton-base: var(--color-translucent-foreground-quaternary);\n --ds-shimmer: var(--color-translucent-shimmer);\n}\n\n:host(.skeleton--background-inverted) {\n --ds-skeleton-base: var(--color-inverted-foreground-quaternary);\n --ds-shimmer: var(--color-inverted-shimmer);\n}\n\n:host(.skeleton--background-media) {\n --ds-skeleton-base: var(--color-media-foreground-quaternary);\n --ds-shimmer: var(--color-media-shimmer);\n}\n\n:host(.skeleton--background-always-dark) {\n --ds-skeleton-base: var(--color-always-dark-foreground-quaternary);\n --ds-shimmer: var(--color-always-dark-shimmer);\n}\n\n:host(.skeleton--background-navigation) {\n --ds-skeleton-base: var(--color-navigation-foreground-quaternary);\n --ds-shimmer: var(--color-navigation-shimmer);\n}\n\n/* ── Text ──────────────────────────────────────────────────────────────── */\n\n:host(.skeleton--text) {\n width: 100%;\n height: var(--ds-skeleton-canvas-size);\n padding-block: 0;\n}\n\n:host(.skeleton--text) .skeleton__shape {\n height: 75%;\n}\n\n:host(.skeleton--text-text-display-medium) { --ds-skeleton-canvas-size: var(--typography-lineheight-3xl); }\n:host(.skeleton--text-text-display-small) { --ds-skeleton-canvas-size: var(--typography-lineheight-2xl); }\n:host(.skeleton--text-text-title-large) { --ds-skeleton-canvas-size: var(--typography-lineheight-xl); }\n:host(.skeleton--text-text-title-medium),\n:host(.skeleton--text-text-body-large) { --ds-skeleton-canvas-size: var(--typography-lineheight-lg); }\n:host(.skeleton--text-text-title-small),\n:host(.skeleton--text-text-body-medium) { --ds-skeleton-canvas-size: var(--typography-lineheight-md); }\n:host(.skeleton--text-text-body-small) { --ds-skeleton-canvas-size: var(--typography-lineheight-sm); }\n:host(.skeleton--text-text-caption) { --ds-skeleton-canvas-size: var(--typography-lineheight-xs); }\n\n/* ── Icon ──────────────────────────────────────────────────────────────── */\n\n:host(.skeleton--icon) {\n width: var(--ds-skeleton-canvas-size);\n height: var(--ds-skeleton-canvas-size);\n padding: 0;\n}\n\n:host(.skeleton--icon) .skeleton__shape {\n width: 75%;\n height: 75%;\n}\n\n:host(.skeleton--icon.skeleton--rounded) .skeleton__shape {\n border-radius: var(--dimension-radius-half);\n}\n\n:host(.skeleton--icon-xs) { --ds-skeleton-canvas-size: var(--dimension-iconography-xs); }\n:host(.skeleton--icon-sm) { --ds-skeleton-canvas-size: var(--dimension-iconography-sm); }\n:host(.skeleton--icon-md) { --ds-skeleton-canvas-size: var(--dimension-iconography-md); }\n:host(.skeleton--icon-lg) { --ds-skeleton-canvas-size: var(--dimension-iconography-lg); }\n:host(.skeleton--icon-xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-xl); }\n:host(.skeleton--icon-2xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-2xl); }\n:host(.skeleton--icon-3xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-3xl); }\n\n/* ── Control ───────────────────────────────────────────────────────────── */\n\n:host(.skeleton--control) {\n width: 100%;\n height: var(--ds-control-height);\n}\n\n:host(.skeleton--control) .skeleton__shape {\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n}\n\n:host(.skeleton--control.skeleton--rounded) .skeleton__shape {\n border-radius: var(--dimension-radius-half);\n}\n\n@media (forced-colors: active) {\n .skeleton__shape {\n background-color: var(--ds-forced-color-disabled);\n }\n}\n",
|
|
274
274
|
"type": "registry:ui"
|
|
275
275
|
},
|
|
276
276
|
{
|
|
@@ -629,7 +629,7 @@
|
|
|
629
629
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: formatOptions, valueTexts.",
|
|
630
630
|
"peerDependencies": {
|
|
631
631
|
"required": [
|
|
632
|
-
"@ds-mo/tokens ^5.1.
|
|
632
|
+
"@ds-mo/tokens ^5.1.2",
|
|
633
633
|
"@ds-mo/icons ^6.4.0"
|
|
634
634
|
],
|
|
635
635
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: options, sections.",
|
|
200
200
|
"peerDependencies": {
|
|
201
201
|
"required": [
|
|
202
|
-
"@ds-mo/tokens ^5.1.
|
|
202
|
+
"@ds-mo/tokens ^5.1.2",
|
|
203
203
|
"@ds-mo/icons ^6.4.0"
|
|
204
204
|
],
|
|
205
205
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: tabs.",
|
|
219
219
|
"peerDependencies": {
|
|
220
220
|
"required": [
|
|
221
|
-
"@ds-mo/tokens ^5.1.
|
|
221
|
+
"@ds-mo/tokens ^5.1.2",
|
|
222
222
|
"@ds-mo/icons ^6.4.0"
|
|
223
223
|
],
|
|
224
224
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -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 ^5.1.
|
|
310
|
+
"@ds-mo/tokens ^5.1.2",
|
|
311
311
|
"@ds-mo/icons ^6.4.0"
|
|
312
312
|
],
|
|
313
313
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "tooltip-chart",
|
|
4
|
+
"title": "TooltipChart",
|
|
5
|
+
"description": "Chart-owned, non-interactive label and value callout positioned from pointer or focused-mark coordinates inside a visualization wrapper.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/tooltip-chart",
|
|
11
|
+
"source": "src/wc/components/TooltipChart/TooltipChart.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "specialized",
|
|
15
|
+
"status": "stable",
|
|
16
|
+
"summary": "Chart-owned, non-interactive label and value callout positioned from pointer or focused-mark coordinates inside a visualization wrapper.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"A chart needs immediate visual value feedback for a genuinely hovered or keyboard-focused mark.",
|
|
19
|
+
"The anchor lives inside SVG or chart coordinates rather than on a slotted HTML trigger.",
|
|
20
|
+
"The owning chart can mount the callout for one interaction session and update its coordinates while tracking."
|
|
21
|
+
],
|
|
22
|
+
"avoidWhen": [
|
|
23
|
+
"A normal control or text trigger needs supplemental explanation; use Tooltip.",
|
|
24
|
+
"The content needs links, actions, focus, or touch-primary disclosure.",
|
|
25
|
+
"An externally synchronized highlight has no genuine local pointer or keyboard interaction.",
|
|
26
|
+
"The callout would be the only accessible source of an essential value."
|
|
27
|
+
],
|
|
28
|
+
"alternatives": [
|
|
29
|
+
{
|
|
30
|
+
"when": "A slotted control or text trigger needs a conventional tooltip.",
|
|
31
|
+
"component": "component:ds-tooltip",
|
|
32
|
+
"reason": "Tooltip owns trigger semantics, focus behavior, and anchored overlay lifecycle."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"when": "Donut details should remain continuously visible beside the chart.",
|
|
36
|
+
"component": "component:ds-chart-legend",
|
|
37
|
+
"reason": "A visible legend avoids redundant transient slice callouts."
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"commonlyComposedWith": [
|
|
41
|
+
"component:ds-chart"
|
|
42
|
+
],
|
|
43
|
+
"accessibility": [
|
|
44
|
+
"The callout is presentation-only and never replaces the owning chart mark's accessible label or an adjacent data summary.",
|
|
45
|
+
"Keyboard-focused marks receive the same visual feedback as pointer-hovered marks.",
|
|
46
|
+
"The callout never receives focus or contains interactive descendants."
|
|
47
|
+
],
|
|
48
|
+
"states": [
|
|
49
|
+
"The owning chart mounts the callout when a local interaction starts and unmounts it when that interaction ends.",
|
|
50
|
+
"Coordinate updates track within one mounted interaction session without restarting the show delay.",
|
|
51
|
+
"Placement flips horizontally or vertically when the rendered callout approaches a viewport edge.",
|
|
52
|
+
"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
|
+
"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
|
+
"Reduced motion preserves the final visible state without an opacity transition."
|
|
55
|
+
],
|
|
56
|
+
"responsiveBehavior": [
|
|
57
|
+
"Render inside a positioned chart wrapper and pass coordinates relative to that wrapper.",
|
|
58
|
+
"Keep labels concise enough for the single-line callout; persistent or long explanations belong outside the chart."
|
|
59
|
+
],
|
|
60
|
+
"frameworkCaveats": {
|
|
61
|
+
"customElements": [
|
|
62
|
+
"The owning chart computes coordinates and conditionally mounts the component; applications should not use it as a standalone overlay."
|
|
63
|
+
],
|
|
64
|
+
"react": [
|
|
65
|
+
"Keep callout lifecycle and coordinates inside the chart wrapper rather than application-global tooltip state."
|
|
66
|
+
],
|
|
67
|
+
"angular": [
|
|
68
|
+
"Keep callout lifecycle and coordinates inside the chart wrapper rather than application-global tooltip state."
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"references": [
|
|
72
|
+
{
|
|
73
|
+
"label": "Storybook example",
|
|
74
|
+
"path": "src/wc/components/TooltipChart/TooltipChart.stories.ts"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"api": {
|
|
79
|
+
"props": {
|
|
80
|
+
"delay": {
|
|
81
|
+
"type": "number | string",
|
|
82
|
+
"resolvedType": "number | string",
|
|
83
|
+
"attribute": "delay",
|
|
84
|
+
"default": "TOKEN_DEFAULTS.animationDelayInstant",
|
|
85
|
+
"required": false,
|
|
86
|
+
"mutable": false,
|
|
87
|
+
"description": "Show delay after mount before the callout appears.\nDefault: `--effect-animation-delay-instant` (0ms). Accepts a number (ms)\nor a TokoMo time token / `var(--effect-animation-delay-*)`. Charts need\nimmediate feedback while scrubbing; prefer the default. Mount once per\nhover session so any non-zero delay runs once, then track `x`/`y` instantly."
|
|
88
|
+
},
|
|
89
|
+
"heading": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"resolvedType": "string | undefined",
|
|
92
|
+
"attribute": "heading",
|
|
93
|
+
"required": false,
|
|
94
|
+
"mutable": false,
|
|
95
|
+
"description": "Optional heading for grouped chart focus."
|
|
96
|
+
},
|
|
97
|
+
"items": {
|
|
98
|
+
"type": "TooltipChartItem[]",
|
|
99
|
+
"resolvedType": "TooltipChartItem[] | undefined",
|
|
100
|
+
"required": false,
|
|
101
|
+
"mutable": false,
|
|
102
|
+
"description": "Multi-row content. When supplied, this replaces the legacy label/value row."
|
|
103
|
+
},
|
|
104
|
+
"label": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"resolvedType": "string",
|
|
107
|
+
"attribute": "label",
|
|
108
|
+
"default": "''",
|
|
109
|
+
"required": false,
|
|
110
|
+
"mutable": false
|
|
111
|
+
},
|
|
112
|
+
"value": {
|
|
113
|
+
"type": "string | number",
|
|
114
|
+
"resolvedType": "number | string",
|
|
115
|
+
"attribute": "value",
|
|
116
|
+
"default": "''",
|
|
117
|
+
"required": false,
|
|
118
|
+
"mutable": false
|
|
119
|
+
},
|
|
120
|
+
"x": {
|
|
121
|
+
"type": "number",
|
|
122
|
+
"resolvedType": "number",
|
|
123
|
+
"attribute": "x",
|
|
124
|
+
"default": "0",
|
|
125
|
+
"required": false,
|
|
126
|
+
"mutable": false,
|
|
127
|
+
"description": "Anchor point in px, relative to the nearest `position: relative` ancestor — e.g. the cursor."
|
|
128
|
+
},
|
|
129
|
+
"y": {
|
|
130
|
+
"type": "number",
|
|
131
|
+
"resolvedType": "number",
|
|
132
|
+
"attribute": "y",
|
|
133
|
+
"default": "0",
|
|
134
|
+
"required": false,
|
|
135
|
+
"mutable": false
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"events": [],
|
|
139
|
+
"methods": [],
|
|
140
|
+
"slots": []
|
|
141
|
+
},
|
|
142
|
+
"props": {
|
|
143
|
+
"delay": {
|
|
144
|
+
"type": "number | string",
|
|
145
|
+
"resolvedType": "number | string",
|
|
146
|
+
"attribute": "delay",
|
|
147
|
+
"default": "TOKEN_DEFAULTS.animationDelayInstant",
|
|
148
|
+
"required": false,
|
|
149
|
+
"mutable": false,
|
|
150
|
+
"description": "Show delay after mount before the callout appears.\nDefault: `--effect-animation-delay-instant` (0ms). Accepts a number (ms)\nor a TokoMo time token / `var(--effect-animation-delay-*)`. Charts need\nimmediate feedback while scrubbing; prefer the default. Mount once per\nhover session so any non-zero delay runs once, then track `x`/`y` instantly."
|
|
151
|
+
},
|
|
152
|
+
"heading": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"resolvedType": "string | undefined",
|
|
155
|
+
"attribute": "heading",
|
|
156
|
+
"required": false,
|
|
157
|
+
"mutable": false,
|
|
158
|
+
"description": "Optional heading for grouped chart focus."
|
|
159
|
+
},
|
|
160
|
+
"items": {
|
|
161
|
+
"type": "TooltipChartItem[]",
|
|
162
|
+
"resolvedType": "TooltipChartItem[] | undefined",
|
|
163
|
+
"required": false,
|
|
164
|
+
"mutable": false,
|
|
165
|
+
"description": "Multi-row content. When supplied, this replaces the legacy label/value row."
|
|
166
|
+
},
|
|
167
|
+
"label": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"resolvedType": "string",
|
|
170
|
+
"attribute": "label",
|
|
171
|
+
"default": "''",
|
|
172
|
+
"required": false,
|
|
173
|
+
"mutable": false
|
|
174
|
+
},
|
|
175
|
+
"value": {
|
|
176
|
+
"type": "string | number",
|
|
177
|
+
"resolvedType": "number | string",
|
|
178
|
+
"attribute": "value",
|
|
179
|
+
"default": "''",
|
|
180
|
+
"required": false,
|
|
181
|
+
"mutable": false
|
|
182
|
+
},
|
|
183
|
+
"x": {
|
|
184
|
+
"type": "number",
|
|
185
|
+
"resolvedType": "number",
|
|
186
|
+
"attribute": "x",
|
|
187
|
+
"default": "0",
|
|
188
|
+
"required": false,
|
|
189
|
+
"mutable": false,
|
|
190
|
+
"description": "Anchor point in px, relative to the nearest `position: relative` ancestor — e.g. the cursor."
|
|
191
|
+
},
|
|
192
|
+
"y": {
|
|
193
|
+
"type": "number",
|
|
194
|
+
"resolvedType": "number",
|
|
195
|
+
"attribute": "y",
|
|
196
|
+
"default": "0",
|
|
197
|
+
"required": false,
|
|
198
|
+
"mutable": false
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
"events": [],
|
|
202
|
+
"methods": [],
|
|
203
|
+
"slots": [],
|
|
204
|
+
"exports": {
|
|
205
|
+
"customElement": "ds-tooltip-chart",
|
|
206
|
+
"react": "DsTooltipChart",
|
|
207
|
+
"angular": "DsTooltipChart"
|
|
208
|
+
},
|
|
209
|
+
"consumption": {
|
|
210
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
211
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
212
|
+
"customElements": {
|
|
213
|
+
"import": "import '@ds-mo/ui/dist/components/ds-tooltip-chart.js';",
|
|
214
|
+
"example": "<ds-tooltip-chart></ds-tooltip-chart>"
|
|
215
|
+
},
|
|
216
|
+
"react": {
|
|
217
|
+
"import": "import { DsTooltipChart } from '@ds-mo/ui/react';",
|
|
218
|
+
"example": "<DsTooltipChart />"
|
|
219
|
+
},
|
|
220
|
+
"angular": {
|
|
221
|
+
"import": "import { DsTooltipChart } from '@ds-mo/ui/angular/ds-tooltip-chart';",
|
|
222
|
+
"example": "<ds-tooltip-chart></ds-tooltip-chart>"
|
|
223
|
+
},
|
|
224
|
+
"complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
|
|
225
|
+
"peerDependencies": {
|
|
226
|
+
"required": [
|
|
227
|
+
"@ds-mo/tokens ^5.1.2",
|
|
228
|
+
"@ds-mo/icons ^6.4.0"
|
|
229
|
+
],
|
|
230
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"dependencies": [
|
|
235
|
+
"@ds-mo/ui",
|
|
236
|
+
"@ds-mo/tokens"
|
|
237
|
+
],
|
|
238
|
+
"registryDependencies": [
|
|
239
|
+
"text"
|
|
240
|
+
],
|
|
241
|
+
"files": [
|
|
242
|
+
{
|
|
243
|
+
"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 display: block;\n box-sizing: border-box;\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 padding: var(--dimension-space-050);\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__heading {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: var(--ds-control-height, var(--dimension-size-400));\n padding-inline: calc(\n var(--ds-control-padding-inline, var(--dimension-space-075)) +\n var(--ds-control-label-inset, var(--dimension-space-025))\n );\n}\n\n.tooltip-chart__items {\n display: grid;\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 margin-inline-end: var(--dimension-space-050);\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
|
+
"type": "registry:ui"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"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 {(this.items ?? [{ label: this.label, value: this.value }]).map((item, index) => (\n <div class=\"tooltip-chart__item ds-control-frame ds-control--md\" key={`${item.label}-${index}`}>\n {item.color && (\n <span class=\"tooltip-chart__swatch-box ds-control-icon-box\" aria-hidden=\"true\">\n <span\n class=\"tooltip-chart__swatch\"\n style={{ '--ds-tooltip-chart-swatch': item.color }}\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
|
+
"type": "registry:ui"
|
|
251
|
+
}
|
|
252
|
+
]
|
|
253
|
+
}
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"when": "A chart needs a cursor- or data-point-positioned value callout.",
|
|
40
|
-
"component": "component:ds-tooltip-
|
|
41
|
-
"reason": "
|
|
40
|
+
"component": "component:ds-tooltip-chart",
|
|
41
|
+
"reason": "TooltipChart accepts chart coordinates and is designed for data visualization hover feedback."
|
|
42
42
|
}
|
|
43
43
|
],
|
|
44
44
|
"commonlyComposedWith": [
|
|
@@ -277,7 +277,7 @@
|
|
|
277
277
|
},
|
|
278
278
|
"peerDependencies": {
|
|
279
279
|
"required": [
|
|
280
|
-
"@ds-mo/tokens ^5.1.
|
|
280
|
+
"@ds-mo/tokens ^5.1.2",
|
|
281
281
|
"@ds-mo/icons ^6.4.0"
|
|
282
282
|
],
|
|
283
283
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
@@ -16,13 +16,11 @@ export { DsBarWorkflow } from "./ds-bar-workflow.js";
|
|
|
16
16
|
export { DsBreadcrumb } from "./ds-breadcrumb.js";
|
|
17
17
|
export { DsButtonFilled } from "./ds-button-filled.js";
|
|
18
18
|
export { DsButtonUnfilled } from "./ds-button-unfilled.js";
|
|
19
|
-
export {
|
|
19
|
+
export { DsCardChart } from "./ds-card-chart.js";
|
|
20
20
|
export { DsCardOverview } from "./ds-card-overview.js";
|
|
21
21
|
export { DsCardSetting } from "./ds-card-setting.js";
|
|
22
|
-
export { DsChartBar } from "./ds-chart-bar.js";
|
|
23
|
-
export { DsChartDonut } from "./ds-chart-donut.js";
|
|
24
22
|
export { DsChartLegend } from "./ds-chart-legend.js";
|
|
25
|
-
export {
|
|
23
|
+
export { DsChart } from "./ds-chart.js";
|
|
26
24
|
export { DsCheckbox } from "./ds-checkbox.js";
|
|
27
25
|
export { DsChip } from "./ds-chip.js";
|
|
28
26
|
export { DsCodeBlock } from "./ds-code-block.js";
|
|
@@ -66,6 +64,6 @@ export { DsTabGroup } from "./ds-tab-group.js";
|
|
|
66
64
|
export { DsTag } from "./ds-tag.js";
|
|
67
65
|
export { DsText } from "./ds-text.js";
|
|
68
66
|
export { DsToast } from "./ds-toast.js";
|
|
69
|
-
export {
|
|
67
|
+
export { DsTooltipChart } from "./ds-tooltip-chart.js";
|
|
70
68
|
export { DsTooltip } from "./ds-tooltip.js";
|
|
71
69
|
export { DsTypingIndicator } from "./ds-typing-indicator.js";
|
package/dist/react/components.js
CHANGED
|
@@ -17,13 +17,11 @@ export { DsBarWorkflow } from "./ds-bar-workflow.js";
|
|
|
17
17
|
export { DsBreadcrumb } from "./ds-breadcrumb.js";
|
|
18
18
|
export { DsButtonFilled } from "./ds-button-filled.js";
|
|
19
19
|
export { DsButtonUnfilled } from "./ds-button-unfilled.js";
|
|
20
|
-
export {
|
|
20
|
+
export { DsCardChart } from "./ds-card-chart.js";
|
|
21
21
|
export { DsCardOverview } from "./ds-card-overview.js";
|
|
22
22
|
export { DsCardSetting } from "./ds-card-setting.js";
|
|
23
|
-
export { DsChartBar } from "./ds-chart-bar.js";
|
|
24
|
-
export { DsChartDonut } from "./ds-chart-donut.js";
|
|
25
23
|
export { DsChartLegend } from "./ds-chart-legend.js";
|
|
26
|
-
export {
|
|
24
|
+
export { DsChart } from "./ds-chart.js";
|
|
27
25
|
export { DsCheckbox } from "./ds-checkbox.js";
|
|
28
26
|
export { DsChip } from "./ds-chip.js";
|
|
29
27
|
export { DsCodeBlock } from "./ds-code-block.js";
|
|
@@ -67,6 +65,6 @@ export { DsTabGroup } from "./ds-tab-group.js";
|
|
|
67
65
|
export { DsTag } from "./ds-tag.js";
|
|
68
66
|
export { DsText } from "./ds-text.js";
|
|
69
67
|
export { DsToast } from "./ds-toast.js";
|
|
70
|
-
export {
|
|
68
|
+
export { DsTooltipChart } from "./ds-tooltip-chart.js";
|
|
71
69
|
export { DsTooltip } from "./ds-tooltip.js";
|
|
72
70
|
export { DsTypingIndicator } from "./ds-typing-indicator.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
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 DsCardChartCustomEvent } from "@ds-mo/ui";
|
|
7
|
+
import type { Components } from "@ds-mo/ui/dist/components";
|
|
8
|
+
import { DsCardChart as DsCardChartElement } from "@ds-mo/ui/dist/components/ds-card-chart.js";
|
|
9
|
+
export type DsCardChartEvents = {
|
|
10
|
+
onDsFilterClick: EventName<DsCardChartCustomEvent<void>>;
|
|
11
|
+
};
|
|
12
|
+
export declare const DsCardChart: StencilReactComponent<DsCardChartElement, DsCardChartEvents, Components.DsCardChart, 'heading'>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createComponent } from './react-runtime.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DsCardChart as DsCardChartElement, defineCustomElement as defineDsCardChart } from "@ds-mo/ui/dist/components/ds-card-chart.js";
|
|
5
|
+
export const DsCardChart = /*@__PURE__*/ createComponent({
|
|
6
|
+
tagName: 'ds-card-chart',
|
|
7
|
+
elementClass: DsCardChartElement,
|
|
8
|
+
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
|
+
react: React,
|
|
10
|
+
events: { onDsFilterClick: 'dsFilterClick' },
|
|
11
|
+
defineCustomElement: defineDsCardChart
|
|
12
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
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 ChartFocusChangeDetail, type DsChartCustomEvent } from "@ds-mo/ui";
|
|
7
|
+
import type { Components } from "@ds-mo/ui/dist/components";
|
|
8
|
+
import { DsChart as DsChartElement } from "@ds-mo/ui/dist/components/ds-chart.js";
|
|
9
|
+
export type DsChartEvents = {
|
|
10
|
+
onDsChartFocusChange: EventName<DsChartCustomEvent<ChartFocusChangeDetail>>;
|
|
11
|
+
};
|
|
12
|
+
export declare const DsChart: StencilReactComponent<DsChartElement, DsChartEvents, Components.DsChart, 'definition' | 'label'>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createComponent } from './react-runtime.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DsChart as DsChartElement, defineCustomElement as defineDsChart } from "@ds-mo/ui/dist/components/ds-chart.js";
|
|
5
|
+
export const DsChart = /*@__PURE__*/ createComponent({
|
|
6
|
+
tagName: 'ds-chart',
|
|
7
|
+
elementClass: DsChartElement,
|
|
8
|
+
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
|
+
react: React,
|
|
10
|
+
events: { onDsChartFocusChange: 'dsChartFocusChange' },
|
|
11
|
+
defineCustomElement: defineDsChart
|
|
12
|
+
});
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { StencilReactComponent } from './react-runtime.js';
|
|
6
6
|
import type { Components } from "@ds-mo/ui/dist/components";
|
|
7
|
-
import {
|
|
8
|
-
export type
|
|
9
|
-
export declare const
|
|
7
|
+
import { DsTooltipChart as DsTooltipChartElement } from "@ds-mo/ui/dist/components/ds-tooltip-chart.js";
|
|
8
|
+
export type DsTooltipChartEvents = NonNullable<unknown>;
|
|
9
|
+
export declare const DsTooltipChart: StencilReactComponent<DsTooltipChartElement, DsTooltipChartEvents, Components.DsTooltipChart>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createComponent } from './react-runtime.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DsTooltipChart as DsTooltipChartElement, defineCustomElement as defineDsTooltipChart } from "@ds-mo/ui/dist/components/ds-tooltip-chart.js";
|
|
5
|
+
export const DsTooltipChart = /*@__PURE__*/ createComponent({
|
|
6
|
+
tagName: 'ds-tooltip-chart',
|
|
7
|
+
elementClass: DsTooltipChartElement,
|
|
8
|
+
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
|
+
react: React,
|
|
10
|
+
events: {},
|
|
11
|
+
defineCustomElement: defineDsTooltipChart
|
|
12
|
+
});
|