@ds-mo/ui 12.9.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/.package-ready.json +1 -0
- package/dist/agent-patterns.json +124 -135
- package/dist/agent.json +249 -1108
- package/dist/angular/ds-bar-nav.d.ts +1 -1
- package/dist/angular/ds-bar-nav.js +3 -3
- package/dist/angular/ds-button-filled.d.ts +1 -1
- package/dist/angular/ds-button-filled.js +3 -3
- package/dist/angular/ds-card-data-viz.d.ts +18 -0
- package/dist/angular/{ds-card-data-viz-donut.js → ds-card-data-viz.js} +12 -12
- package/dist/angular/ds-card-overview.d.ts +1 -1
- package/dist/angular/ds-card-overview.js +3 -3
- package/dist/angular/ds-chart-bar.d.ts +1 -1
- package/dist/angular/ds-chart-bar.js +3 -3
- package/dist/angular/ds-menu.d.ts +1 -7
- package/dist/angular/ds-menu.js +2 -5
- package/dist/angular/ds-mobile-header.d.ts +1 -1
- package/dist/angular/ds-mobile-header.js +3 -3
- package/dist/angular/ds-mobile-section-switcher.d.ts +1 -1
- package/dist/angular/ds-mobile-section-switcher.js +3 -3
- package/dist/angular/ds-panel-tools.d.ts +1 -1
- package/dist/angular/ds-panel-tools.js +3 -3
- package/dist/angular/ds-select.d.ts +5 -4
- package/dist/angular/ds-select.js +3 -3
- package/dist/angular/ds-shell-app.d.ts +90 -1
- package/dist/angular/ds-shell-app.js +44 -4
- package/dist/angular/ds-shell-tools.d.ts +1 -1
- package/dist/angular/ds-shell-tools.js +3 -3
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +1 -8
- package/dist/angular/proxies.d.ts +1 -8
- package/dist/angular/proxies.js +1 -8
- 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-bar-nav.js +1 -1
- package/dist/components/ds-bar-nav.js.map +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-title.js.map +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-select-multi.d.ts → ds-card-data-viz.d.ts} +4 -4
- package/dist/components/ds-card-data-viz.js +2 -0
- package/dist/components/ds-card-data-viz.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-chart-bar.js +1 -1
- package/dist/components/ds-chart-bar.js.map +1 -1
- package/dist/components/ds-chart-donut.js +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart-line.js +1 -1
- package/dist/components/ds-chart-line.js.map +1 -1
- 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-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-bubble.js +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.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js.map +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-mobile-sheet-nav.js.map +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-nav.js.map +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-tool-header.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-page.js.map +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-shell-tools.js.map +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-slider.js.map +1 -1
- package/dist/components/ds-swatch-picker.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-tooltip-data-viz.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/{p-CgEYdMee.js → p-6qXDqCj_.js} +2 -2
- package/dist/components/{p-Cr3tEx7o.js → p-Ay1AX7Ql.js} +2 -2
- package/dist/components/p-B-qDb_Zo.js +2 -0
- package/dist/components/p-B-qDb_Zo.js.map +1 -0
- package/dist/components/{p-BOCfICln.js → p-B1cbQ0SG.js} +2 -2
- package/dist/components/{p-BKOlvCGS.js → p-BUZXuod2.js} +2 -2
- package/dist/components/{p-DCvA3Dc9.js → p-BaUsq_VK.js} +2 -2
- package/dist/components/p-BbMJTilO.js +2 -0
- package/dist/components/p-BbMJTilO.js.map +1 -0
- package/dist/components/{p-BO5aqZcf.js → p-BcTYhmku.js} +2 -2
- package/dist/components/p-Bkv3UjZz.js +2 -0
- package/dist/components/p-Bkv3UjZz.js.map +1 -0
- package/dist/components/p-BnQXAbif.js +2 -0
- package/dist/components/p-BnQXAbif.js.map +1 -0
- package/dist/components/p-BnbbnuVC.js +2 -0
- package/dist/components/p-BnbbnuVC.js.map +1 -0
- package/dist/components/{p-BDKtu6Wb.js → p-BroVnDzE.js} +2 -2
- package/dist/components/{p-CIiBpjCn.js → p-BsoqsbBh.js} +2 -2
- package/dist/components/p-BwT6B5Fi.js +2 -0
- package/dist/components/p-BwT6B5Fi.js.map +1 -0
- package/dist/components/p-BybqPD8K.js +2 -0
- package/dist/components/p-BybqPD8K.js.map +1 -0
- package/dist/components/p-C-vRkDyn.js +2 -0
- package/dist/components/p-C-vRkDyn.js.map +1 -0
- package/dist/components/p-C3ArcO50.js +2 -0
- package/dist/components/p-C3ArcO50.js.map +1 -0
- package/dist/components/p-C4uYvyq6.js +2 -0
- package/dist/components/p-C4uYvyq6.js.map +1 -0
- package/dist/components/{p-C8HU4W8q.js → p-CBazaRlE.js} +2 -2
- package/dist/components/{p-BhV5e6vF.js → p-CHuh71-U.js} +2 -2
- package/dist/components/{p-CChcuL04.js → p-CMWata9g.js} +2 -2
- package/dist/components/p-CS6CHlHK.js +2 -0
- package/dist/components/p-CS6CHlHK.js.map +1 -0
- package/dist/components/p-CTTnM7cE.js +2 -0
- package/dist/components/p-CTTnM7cE.js.map +1 -0
- package/dist/components/{p-CCzG5xDD.js → p-CWoXKe_h.js} +2 -2
- package/dist/components/p-CWoXKe_h.js.map +1 -0
- package/dist/components/p-CwwuSGER.js +2 -0
- package/dist/components/p-CwwuSGER.js.map +1 -0
- package/dist/components/p-D09HINr_.js +2 -0
- package/dist/components/p-D09HINr_.js.map +1 -0
- package/dist/components/p-D2xWcVv6.js +2 -0
- package/dist/components/p-D2xWcVv6.js.map +1 -0
- package/dist/components/p-DAW6G8Sl.js +2 -0
- package/dist/components/p-DAW6G8Sl.js.map +1 -0
- package/dist/components/p-DEaszb15.js +2 -0
- package/dist/components/p-DEaszb15.js.map +1 -0
- package/dist/components/{p-BgGP65Nn.js → p-DOUk4KoT.js} +1 -1
- package/dist/components/p-DOUk4KoT.js.map +1 -0
- package/dist/components/p-DbQr7Kwr.js +2 -0
- package/dist/components/p-DbQr7Kwr.js.map +1 -0
- package/dist/components/p-DdvEZyX4.js +2 -0
- package/dist/components/p-DdvEZyX4.js.map +1 -0
- package/dist/components/{p-DRnIuCiT.js → p-DeQwkbT1.js} +2 -2
- package/dist/components/{p-Cuih680v.js → p-Df17mJqI.js} +2 -2
- package/dist/components/p-Dg1LBXJ2.js +2 -0
- package/dist/components/p-Dg1LBXJ2.js.map +1 -0
- package/dist/components/p-DsiCDzoF.js +2 -0
- package/dist/components/p-DsiCDzoF.js.map +1 -0
- package/dist/components/p-_DzUXA86.js +2 -0
- package/dist/components/p-_DzUXA86.js.map +1 -0
- package/dist/components/p-lyZNvRvO.js +2 -0
- package/dist/components/p-lyZNvRvO.js.map +1 -0
- package/dist/components/{p-YR1XeuZf.js → p-ohsLFap_.js} +2 -2
- package/dist/components/{p-DjbTFy2B.js → p-ymtdhOU5.js} +1 -1
- package/dist/components/p-ymtdhOU5.js.map +1 -0
- package/dist/components/p-z5RIrXuX.js +2 -0
- package/dist/components/p-z5RIrXuX.js.map +1 -0
- package/dist/docs/components.json +929 -2371
- package/dist/framework/angular.d.ts +0 -1
- package/dist/framework/angular.js +0 -1
- package/dist/lib/components/BarTitle/bar-title-types.d.ts +28 -0
- package/dist/lib/components/Breadcrumb/breadcrumb-types.d.ts +16 -0
- package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +83 -0
- package/dist/lib/components/MobileHeader/mobile-header-types.d.ts +4 -0
- package/dist/lib/components/PanelTools/panel-tools-types.d.ts +21 -7
- package/dist/lib/components/ShellApp/shell-app-types.d.ts +91 -0
- package/dist/lib/shell/index.d.ts +5 -13
- package/dist/lib/shell/index.js +87 -358
- package/dist/lib/shell/index.js.map +3 -3
- package/dist/lib/shell/shell-responsive.d.ts +2 -1
- package/dist/lib/utils/button-render.d.ts +17 -0
- package/dist/lib/utils/button-types.d.ts +10 -0
- package/dist/lib/utils/choice-list.d.ts +25 -0
- package/dist/lib/utils/control-press.d.ts +8 -0
- package/dist/lib/utils/form-association.d.ts +22 -0
- package/dist/lib/utils/index.d.ts +4 -0
- package/dist/lib/utils/index.js +63 -0
- package/dist/lib/utils/index.js.map +3 -3
- package/dist/lib/utils/required-validity.d.ts +1 -1
- package/dist/lib/utils/safe-url.d.ts +11 -0
- package/dist/mcp/cli.js +38 -10
- package/dist/mcp-data/registry/agent-source-list.json +1 -1
- package/dist/mcp-data/registry/attachment-list.json +1 -1
- package/dist/mcp-data/registry/bar-nav.json +3 -21
- package/dist/mcp-data/registry/breadcrumb.json +1 -1
- package/dist/mcp-data/registry/button-filled.json +4 -19
- package/dist/mcp-data/registry/button-unfilled.json +14 -11
- package/dist/mcp-data/registry/card-data-viz.json +241 -0
- package/dist/mcp-data/registry/card-overview.json +38 -10
- package/dist/mcp-data/registry/card-setting.json +2 -2
- package/dist/mcp-data/registry/chart-bar.json +66 -18
- package/dist/mcp-data/registry/chart-donut.json +5 -5
- package/dist/mcp-data/registry/chart-legend.json +7 -9
- package/dist/mcp-data/registry/chart-line.json +1 -2
- package/dist/mcp-data/registry/checkbox.json +2 -2
- package/dist/mcp-data/registry/conversation-list-item.json +1 -1
- package/dist/mcp-data/registry/field.json +2 -3
- package/dist/mcp-data/registry/input.json +1 -1
- package/dist/mcp-data/registry/markdown.json +1 -1
- package/dist/mcp-data/registry/menu.json +10 -21
- package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
- package/dist/mcp-data/registry/mobile-header.json +1 -37
- package/dist/mcp-data/registry/mobile-section-switcher.json +1 -19
- package/dist/mcp-data/registry/panel-nav.json +2 -2
- package/dist/mcp-data/registry/panel-tool-search.json +1 -1
- package/dist/mcp-data/registry/panel-tools.json +19 -55
- package/dist/mcp-data/registry/radio.json +1 -1
- package/dist/mcp-data/registry/registry.json +294 -1174
- package/dist/mcp-data/registry/select.json +59 -25
- package/dist/mcp-data/registry/shell-app.json +345 -20
- package/dist/mcp-data/registry/shell-page.json +1 -1
- package/dist/mcp-data/registry/shell-tools.json +12 -43
- package/dist/mcp-data/registry/slider.json +1 -1
- package/dist/mcp-data/registry/switch.json +1 -1
- package/dist/react/components.d.ts +1 -8
- package/dist/react/components.js +1 -8
- package/dist/react/ds-card-data-viz.d.ts +12 -0
- package/dist/react/ds-card-data-viz.js +12 -0
- package/dist/react/ds-menu.d.ts +1 -2
- package/dist/react/ds-menu.js +0 -1
- package/dist/react/ds-select.d.ts +2 -2
- package/dist/react/ds-shell-app.d.ts +24 -1
- package/dist/react/ds-shell-app.js +16 -1
- package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +0 -1
- package/dist/types/components/BarNav/BarNav.d.ts +0 -2
- package/dist/types/components/BarNav/bar-nav-utils.d.ts +2 -4
- package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +5 -11
- package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +13 -10
- package/dist/types/components/CardDataViz/CardDataViz.d.ts +32 -0
- package/dist/types/components/CardDataViz/index.d.ts +2 -0
- package/dist/types/components/CardOverview/CardOverview.d.ts +17 -0
- package/dist/types/components/CardOverview/card-overview-controller.d.ts +16 -0
- package/dist/types/components/ChartBar/ChartBar.d.ts +12 -1
- package/dist/types/components/ChartBar/index.d.ts +2 -1
- package/dist/types/components/Menu/Menu.d.ts +0 -4
- package/dist/types/components/Menu/menu-sections.d.ts +4 -0
- package/dist/types/components/Menu/menu-types.d.ts +2 -11
- package/dist/types/components/MobileHeader/MobileHeader.d.ts +0 -5
- package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +0 -2
- package/dist/types/components/PanelTools/PanelTools.d.ts +0 -4
- package/dist/types/components/PanelTools/index.d.ts +1 -1
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +21 -7
- package/dist/types/components/PanelTools/panel-tools-utils.d.ts +1 -1
- package/dist/types/components/Select/Select.d.ts +12 -4
- package/dist/types/components/Select/index.d.ts +1 -1
- package/dist/types/components/ShellApp/ShellApp.d.ts +98 -0
- package/dist/types/components/ShellApp/shell-app-types.d.ts +92 -0
- package/dist/types/components/ShellPage/ShellPage.d.ts +5 -0
- package/dist/types/components/ShellTools/ShellTools.d.ts +2 -2
- package/dist/types/components.d.ts +210 -889
- package/dist/types/shell/index.d.ts +5 -13
- package/dist/types/shell/shell-responsive.d.ts +2 -1
- package/dist/types/utils/button-render.d.ts +18 -0
- package/dist/types/utils/button-story-foundation.d.ts +9 -0
- package/dist/types/utils/button-types.d.ts +11 -0
- package/dist/types/utils/form-association.d.ts +23 -0
- package/dist/types/utils/index.d.ts +4 -0
- package/dist/types/utils/required-validity.d.ts +1 -1
- package/dist/types/utils/safe-url.d.ts +12 -0
- package/dist/types/utils/select-controller.d.ts +1 -1
- package/package.json +16 -8
- package/dist/.build-stamp +0 -1
- package/dist/angular/ds-card-data-viz-bar.d.ts +0 -18
- package/dist/angular/ds-card-data-viz-bar.js +0 -42
- package/dist/angular/ds-card-data-viz-donut.d.ts +0 -18
- package/dist/angular/ds-card-data-viz-line.d.ts +0 -18
- package/dist/angular/ds-card-data-viz-line.js +0 -42
- package/dist/angular/ds-card-shell-data-viz.d.ts +0 -12
- package/dist/angular/ds-card-shell-data-viz.js +0 -38
- package/dist/angular/ds-chart-bar-stacked.d.ts +0 -12
- package/dist/angular/ds-chart-bar-stacked.js +0 -38
- package/dist/angular/ds-select-multi.d.ts +0 -28
- package/dist/angular/ds-select-multi.js +0 -49
- package/dist/angular/ds-shell-gradient-picker.d.ts +0 -16
- package/dist/angular/ds-shell-gradient-picker.js +0 -42
- package/dist/angular/ds-shell-gradient-swatch.d.ts +0 -16
- package/dist/angular/ds-shell-gradient-swatch.js +0 -42
- package/dist/components/ds-card-data-viz-bar.d.ts +0 -11
- package/dist/components/ds-card-data-viz-bar.js +0 -2
- package/dist/components/ds-card-data-viz-bar.js.map +0 -1
- package/dist/components/ds-card-data-viz-donut.d.ts +0 -11
- package/dist/components/ds-card-data-viz-donut.js +0 -2
- package/dist/components/ds-card-data-viz-donut.js.map +0 -1
- package/dist/components/ds-card-data-viz-line.d.ts +0 -11
- package/dist/components/ds-card-data-viz-line.js +0 -2
- package/dist/components/ds-card-data-viz-line.js.map +0 -1
- package/dist/components/ds-card-shell-data-viz.d.ts +0 -11
- package/dist/components/ds-card-shell-data-viz.js +0 -2
- package/dist/components/ds-card-shell-data-viz.js.map +0 -1
- package/dist/components/ds-chart-bar-stacked.d.ts +0 -11
- package/dist/components/ds-chart-bar-stacked.js +0 -2
- package/dist/components/ds-chart-bar-stacked.js.map +0 -1
- package/dist/components/ds-select-multi.js +0 -2
- package/dist/components/ds-select-multi.js.map +0 -1
- package/dist/components/ds-shell-gradient-picker.d.ts +0 -11
- package/dist/components/ds-shell-gradient-picker.js +0 -2
- package/dist/components/ds-shell-gradient-picker.js.map +0 -1
- package/dist/components/ds-shell-gradient-swatch.d.ts +0 -11
- package/dist/components/ds-shell-gradient-swatch.js +0 -2
- package/dist/components/ds-shell-gradient-swatch.js.map +0 -1
- package/dist/components/p-2foAUsDN.js +0 -2
- package/dist/components/p-2foAUsDN.js.map +0 -1
- package/dist/components/p-8GK7B7K4.js +0 -2
- package/dist/components/p-8GK7B7K4.js.map +0 -1
- package/dist/components/p-B5tMlca-.js +0 -2
- package/dist/components/p-B5tMlca-.js.map +0 -1
- package/dist/components/p-B88n0pO3.js +0 -2
- package/dist/components/p-B88n0pO3.js.map +0 -1
- package/dist/components/p-BBePKRHC.js +0 -2
- package/dist/components/p-BBePKRHC.js.map +0 -1
- package/dist/components/p-BOQnc-M4.js +0 -2
- package/dist/components/p-BOQnc-M4.js.map +0 -1
- package/dist/components/p-BgGP65Nn.js.map +0 -1
- package/dist/components/p-BrusnEYP.js +0 -2
- package/dist/components/p-BrusnEYP.js.map +0 -1
- package/dist/components/p-C61yJkfr.js +0 -2
- package/dist/components/p-C61yJkfr.js.map +0 -1
- package/dist/components/p-CCzG5xDD.js.map +0 -1
- package/dist/components/p-CGVXbXv9.js +0 -2
- package/dist/components/p-CGVXbXv9.js.map +0 -1
- package/dist/components/p-CH3w-P2H.js +0 -2
- package/dist/components/p-CH3w-P2H.js.map +0 -1
- package/dist/components/p-Cuqxh-Tq.js +0 -2
- package/dist/components/p-Cuqxh-Tq.js.map +0 -1
- package/dist/components/p-D1HFMTdC.js +0 -2
- package/dist/components/p-D1HFMTdC.js.map +0 -1
- package/dist/components/p-D2x17ei-.js +0 -2
- package/dist/components/p-D2x17ei-.js.map +0 -1
- package/dist/components/p-DLZm_-sU.js +0 -2
- package/dist/components/p-DLZm_-sU.js.map +0 -1
- package/dist/components/p-DjKkSqrG.js +0 -2
- package/dist/components/p-DjKkSqrG.js.map +0 -1
- package/dist/components/p-DjbTFy2B.js.map +0 -1
- package/dist/components/p-DlscFn2m.js +0 -2
- package/dist/components/p-DlscFn2m.js.map +0 -1
- package/dist/components/p-DxkEC0hR.js +0 -2
- package/dist/components/p-DxkEC0hR.js.map +0 -1
- package/dist/components/p-Re2kPrXm.js +0 -2
- package/dist/components/p-Re2kPrXm.js.map +0 -1
- package/dist/components/p-XMZCaXs7.js +0 -2
- package/dist/components/p-XMZCaXs7.js.map +0 -1
- package/dist/components/p-dyUp3Adm.js +0 -2
- package/dist/components/p-dyUp3Adm.js.map +0 -1
- package/dist/components/p-nkYN0Bub.js +0 -2
- package/dist/components/p-nkYN0Bub.js.map +0 -1
- package/dist/framework/select-multi-value-accessor.d.ts +0 -9
- package/dist/framework/select-multi-value-accessor.js +0 -40
- package/dist/lib/shell/badge-gradient-ring.d.ts +0 -27
- package/dist/lib/shell/chrome-transition.d.ts +0 -32
- package/dist/lib/shell/shell-chrome-metrics.d.ts +0 -11
- package/dist/lib/shell/shell-gradient.d.ts +0 -41
- package/dist/lib/shell/shell-view-transition.d.ts +0 -23
- package/dist/mcp-data/registry/card-data-viz-bar.json +0 -213
- package/dist/mcp-data/registry/card-data-viz-donut.json +0 -214
- package/dist/mcp-data/registry/card-data-viz-line.json +0 -207
- package/dist/mcp-data/registry/card-shell-data-viz.json +0 -180
- package/dist/mcp-data/registry/chart-bar-stacked.json +0 -230
- package/dist/mcp-data/registry/select-multi.json +0 -758
- package/dist/mcp-data/registry/shell-gradient-picker.json +0 -195
- package/dist/mcp-data/registry/shell-gradient-swatch.json +0 -215
- package/dist/react/ds-card-data-viz-bar.d.ts +0 -12
- package/dist/react/ds-card-data-viz-bar.js +0 -12
- package/dist/react/ds-card-data-viz-donut.d.ts +0 -12
- package/dist/react/ds-card-data-viz-donut.js +0 -12
- package/dist/react/ds-card-data-viz-line.d.ts +0 -12
- package/dist/react/ds-card-data-viz-line.js +0 -12
- package/dist/react/ds-card-shell-data-viz.d.ts +0 -9
- package/dist/react/ds-card-shell-data-viz.js +0 -12
- package/dist/react/ds-chart-bar-stacked.d.ts +0 -9
- package/dist/react/ds-chart-bar-stacked.js +0 -12
- package/dist/react/ds-select-multi.d.ts +0 -14
- package/dist/react/ds-select-multi.js +0 -16
- package/dist/react/ds-shell-gradient-picker.d.ts +0 -12
- package/dist/react/ds-shell-gradient-picker.js +0 -12
- package/dist/react/ds-shell-gradient-swatch.d.ts +0 -12
- package/dist/react/ds-shell-gradient-swatch.js +0 -12
- package/dist/types/components/CardDataVizBar/CardDataVizBar.d.ts +0 -24
- package/dist/types/components/CardDataVizBar/index.d.ts +0 -2
- package/dist/types/components/CardDataVizDonut/CardDataVizDonut.d.ts +0 -28
- package/dist/types/components/CardDataVizDonut/index.d.ts +0 -2
- package/dist/types/components/CardDataVizLine/CardDataVizLine.d.ts +0 -24
- package/dist/types/components/CardDataVizLine/index.d.ts +0 -2
- package/dist/types/components/CardShellDataViz/CardShellDataViz.d.ts +0 -13
- package/dist/types/components/CardShellDataViz/index.d.ts +0 -2
- package/dist/types/components/ChartBarStacked/ChartBarStacked.d.ts +0 -26
- package/dist/types/components/ChartBarStacked/index.d.ts +0 -3
- package/dist/types/components/SelectMulti/SelectMulti.d.ts +0 -121
- package/dist/types/components/SelectMulti/index.d.ts +0 -2
- package/dist/types/components/ShellGradientPicker/ShellGradientPicker.d.ts +0 -12
- package/dist/types/components/ShellGradientSwatch/ShellGradientSwatch.d.ts +0 -15
- package/dist/types/components/ShellGradientSwatch/shell-gradient-swatch-types.d.ts +0 -4
- /package/dist/components/{p-CgEYdMee.js.map → p-6qXDqCj_.js.map} +0 -0
- /package/dist/components/{p-Cr3tEx7o.js.map → p-Ay1AX7Ql.js.map} +0 -0
- /package/dist/components/{p-BOCfICln.js.map → p-B1cbQ0SG.js.map} +0 -0
- /package/dist/components/{p-BKOlvCGS.js.map → p-BUZXuod2.js.map} +0 -0
- /package/dist/components/{p-DCvA3Dc9.js.map → p-BaUsq_VK.js.map} +0 -0
- /package/dist/components/{p-BO5aqZcf.js.map → p-BcTYhmku.js.map} +0 -0
- /package/dist/components/{p-BDKtu6Wb.js.map → p-BroVnDzE.js.map} +0 -0
- /package/dist/components/{p-CIiBpjCn.js.map → p-BsoqsbBh.js.map} +0 -0
- /package/dist/components/{p-C8HU4W8q.js.map → p-CBazaRlE.js.map} +0 -0
- /package/dist/components/{p-BhV5e6vF.js.map → p-CHuh71-U.js.map} +0 -0
- /package/dist/components/{p-CChcuL04.js.map → p-CMWata9g.js.map} +0 -0
- /package/dist/components/{p-DRnIuCiT.js.map → p-DeQwkbT1.js.map} +0 -0
- /package/dist/components/{p-Cuih680v.js.map → p-Df17mJqI.js.map} +0 -0
- /package/dist/components/{p-YR1XeuZf.js.map → p-ohsLFap_.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as e,H as s,h as r,a as o,t as a}from"./index.js";import{d}from"./p-CIiBpjCn.js";import{d as n}from"./p-8GK7B7K4.js";import{d as t}from"./p-DRnIuCiT.js";import{d as i}from"./p-BAfG3M8z.js";import{d as c}from"./p-Ca-I2UnB.js";import{d as h}from"./p-Cr3tEx7o.js";import{d as m}from"./p-YR1XeuZf.js";const l=()=>`.sc-ds-markdown:where(.ds-prose){display:block;box-sizing:border-box;max-inline-size:100%;min-inline-size:0;color:inherit;overflow-wrap:anywhere}.sc-ds-markdown:where(.ds-prose) :where(p,ul.sc-ds-markdown,ol.sc-ds-markdown,dl.sc-ds-markdown,blockquote.sc-ds-markdown,figure.sc-ds-markdown,figcaption.sc-ds-markdown,table).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin:0;color:inherit;font-family:var(--typography-font-family);font-size:var(--typography-fontsize-md);font-weight:var(--typography-weight-regular);line-height:var(--typography-lineheight-md);letter-spacing:var(--typography-letterspacing-negative-half)}.sc-ds-markdown:where(.ds-prose) :where(h1,h2.sc-ds-markdown,h3.sc-ds-markdown,h4.sc-ds-markdown,h5.sc-ds-markdown,h6).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin:0;color:var(--color-foreground-primary);font-family:var(--typography-font-family);font-weight:var(--typography-weight-semibold)}.sc-ds-markdown:where(.ds-prose) :where(h1,h2).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl);letter-spacing:var(--typography-letterspacing-negative-double)}.sc-ds-markdown:where(.ds-prose) :where(h3,h4).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg);letter-spacing:var(--typography-letterspacing-negative)}.sc-ds-markdown:where(.ds-prose) :where(h5,h6).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);letter-spacing:var(--typography-letterspacing-negative)}.sc-ds-markdown:where(.ds-prose)>.sc-ds-markdown:where(*+*){margin-block-start:var(--dimension-space-150)}.sc-ds-markdown:where(.ds-prose)>:where(*)+:where(h1,h2.sc-ds-markdown,h3.sc-ds-markdown,h4.sc-ds-markdown,h5.sc-ds-markdown,h6).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin-block-start:var(--dimension-space-200)}.sc-ds-markdown:where(.ds-prose)>:where(h1,h2.sc-ds-markdown,h3.sc-ds-markdown,h4.sc-ds-markdown,h5.sc-ds-markdown,h6).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown+.sc-ds-markdown:where(*){margin-block-start:var(--dimension-space-100)}.sc-ds-markdown:where(.ds-prose) :where(blockquote,li.sc-ds-markdown,dd)>.sc-ds-markdown:where(*+*):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin-block-start:var(--dimension-space-050)}.sc-ds-markdown:where(.ds-prose) :where(li+li.sc-ds-markdown,dt+dd).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin-block-start:var(--dimension-space-050)}.sc-ds-markdown:where(.ds-prose) :where(ul,ol).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{padding-inline-start:var(--dimension-space-300)}.sc-ds-markdown:where(.ds-prose) :where(li>ul.sc-ds-markdown,li>ol).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin-block-start:var(--dimension-space-050)}.sc-ds-markdown:where(.ds-prose) :where(li>input[type='checkbox']):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin-inline-end:var(--dimension-space-050)}.sc-ds-markdown:where(.ds-prose) :where(blockquote):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{padding-inline-start:var(--dimension-space-150);border-inline-start:var(--dimension-stroke-width-025) solid var(--color-border-secondary);color:var(--color-foreground-secondary)}.sc-ds-markdown:where(.ds-prose) :where(strong,b).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{font-weight:var(--typography-weight-medium)}.sc-ds-markdown:where(.ds-prose) :where(h1,h2.sc-ds-markdown,h3.sc-ds-markdown,h4.sc-ds-markdown,h5.sc-ds-markdown,h6) .sc-ds-markdown:where(strong,b).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{font-weight:inherit}.sc-ds-markdown:where(.ds-prose) :where(a):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{color:var(--color-foreground-brand);text-decoration:underline;text-decoration-color:var(--color-foreground-tertiary)}.sc-ds-markdown:where(.ds-prose) :where(code):not(:where(pre code.sc-ds-markdown,[data-ds-prose='off'].sc-ds-markdown,[data-ds-prose='off'] *)).sc-ds-markdown{padding:var(--dimension-space-012) var(--dimension-space-025);border-radius:var(--dimension-radius-025);background:var(--color-background-secondary);font-family:var(--typography-fontfamily-mono);font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm);letter-spacing:var(--typography-letterspacing-none)}.sc-ds-markdown:where(.ds-prose) :where(pre):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{box-sizing:border-box;max-inline-size:100%;min-inline-size:0;margin:0;padding:var(--dimension-space-150);overflow:auto;border-radius:var(--dimension-radius-050);background:var(--color-background-strong-neutral);color:var(--color-foreground-faint-neutral);font-family:var(--typography-fontfamily-mono);font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm);letter-spacing:var(--typography-letterspacing-none);tab-size:2}.sc-ds-markdown:where(.ds-prose) :where(pre code):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{padding:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;white-space:pre}.sc-ds-markdown:where(.ds-prose) :where(hr):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin:0;border:0;border-block-start:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.sc-ds-markdown:where(.ds-prose__table-scroll){box-sizing:border-box;max-inline-size:100%;min-inline-size:0;overflow-x:auto}.sc-ds-markdown:where(.ds-prose) :where(table):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{inline-size:100%;border-collapse:collapse}.sc-ds-markdown:where(.ds-prose) :where(th,td).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{padding:var(--dimension-space-075);border:var(--dimension-stroke-width-012) solid var(--color-border-tertiary);text-align:start;vertical-align:top;overflow-wrap:anywhere}.sc-ds-markdown:where(.ds-prose) :where(th):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{color:var(--color-foreground-primary);font-weight:var(--typography-weight-medium)}.sc-ds-markdown:where(.ds-prose) :where(img,video.sc-ds-markdown,svg).sc-ds-markdown:not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{max-inline-size:100%;block-size:auto}.sc-ds-markdown:where(.ds-prose) :where(figcaption):not(:where([data-ds-prose='off'],[data-ds-prose='off'] *)).sc-ds-markdown{margin-block-start:var(--dimension-space-050);color:var(--color-foreground-secondary);font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm);letter-spacing:var(--typography-letterspacing-none)}.sc-ds-markdown-h{display:block;min-width:0;color:inherit;box-sizing:border-box;-webkit-user-select:text;user-select:text}`;let w;function p(){w??(w=Promise.all([import("./p-BjtXYFhw.js"),import("./p-DVsje4AY.js"),import("./p-gidVv1FX.js")]).then((([e,s,r])=>({fromMarkdown:e.fromMarkdown,gfmFromMarkdown:s.gfmFromMarkdown,gfm:r.gfm}))));return w}function f(e){if(!e)return undefined;try{const s=new URL(e,document.baseURI);if(!["http:","https:","mailto:"].includes(s.protocol))return undefined;return s.href}catch{return undefined}}const k=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.content="";this.streaming=false;this.tree=null;this.parseRevision=0}componentWillLoad(){if(typeof document!=="undefined")return this.parse()}disconnectedCallback(){this.parseRevision+=1;if(this.parseFrame&&typeof cancelAnimationFrame==="function"){cancelAnimationFrame(this.parseFrame)}}scheduleParse(){if(typeof requestAnimationFrame!=="function")return;if(this.parseFrame)cancelAnimationFrame(this.parseFrame);this.parseFrame=requestAnimationFrame((()=>{this.parseFrame=undefined;void this.parse()}))}async parse(){const e=++this.parseRevision;try{const{fromMarkdown:s,gfmFromMarkdown:r,gfm:o}=await p();const a=s(this.content,{extensions:[o()],mdastExtensions:[r()]});if(e===this.parseRevision)this.tree=a}catch{if(e===this.parseRevision)this.tree=null}}children(e){if(!("children"in e))return[];return e.children.map((e=>this.renderNode(e)))}renderNode(e){switch(e.type){case"root":return this.children(e);case"text":return r("span",{class:"markdown__text"},e.value);case"paragraph":return r("p",{class:"markdown__paragraph"},this.children(e));case"heading":{const s=`h${e.depth}`;return r(s,{class:"markdown__heading"},this.children(e))}case"strong":return r("strong",{class:"markdown__strong"},this.children(e));case"emphasis":return r("em",{class:"markdown__emphasis"},this.children(e));case"delete":return r("del",{class:"markdown__delete"},this.children(e));case"blockquote":return r("blockquote",{class:"markdown__blockquote"},this.children(e));case"break":return r("br",{class:"markdown__break"});case"thematicBreak":return r("hr",{class:"markdown__thematic-break"});case"inlineCode":return r("code",{class:"markdown__inline-code"},e.value);case"code":return r("ds-code-block",{class:"markdown__code-block","data-ds-prose":"off",code:e.value,language:e.lang??"",filename:e.meta??""});case"link":{const s=f(e.url);return s?r("a",{class:"markdown__link",href:s,target:"_blank",rel:"noopener noreferrer"},this.children(e)):this.children(e)}case"list":{const s=e.ordered?"ol":"ul";return r(s,{class:"markdown__list",start:e.ordered&&e.start?e.start:undefined},this.children(e))}case"listItem":return r("li",{class:"markdown__list-item"},typeof e.checked==="boolean"?r("input",{class:"markdown__task-indicator",type:"checkbox",checked:e.checked,disabled:true,"aria-hidden":"true",tabIndex:-1}):null,this.children(e));case"table":{const[s,...o]=e.children;return r("div",{class:"markdown__table-wrap ds-prose__table-scroll",tabIndex:0},r("table",{class:"markdown__table"},s?r("thead",{class:"markdown__table-head"},r("tr",{class:"markdown__table-row"},s.children.map((e=>r("th",{class:"markdown__table-heading",scope:"col"},this.children(e)))))):null,r("tbody",{class:"markdown__table-body"},o.map((e=>this.renderNode(e))))))}case"tableRow":return r("tr",{class:"markdown__table-row"},this.children(e));case"tableCell":return r("td",{class:"markdown__table-cell"},this.children(e));case"image":{const s=f(e.url);return s?r("a",{class:"markdown__image-link",href:s,target:"_blank",rel:"noopener noreferrer"},e.alt||"View image"):e.alt||null}case"html":case"definition":case"footnoteDefinition":return null;case"footnoteReference":return r("sup",{class:"markdown__footnote"},e.label);default:return this.children(e)}}render(){return r(o,{key:"6e1dcf3dabb1e3d3fbc94f21db2d6d92b66acc07","aria-busy":this.streaming?"true":undefined},r("div",{key:"f1989e791dea0551202dc8d8f1faaa917093cb39",class:"markdown ds-prose"},this.tree?this.renderNode(this.tree):r("p",{class:"markdown__paragraph"},r("span",{class:"markdown__text"},this.content))))}static get watchers(){return{content:[{scheduleParse:0}]}}static get style(){return l()}},[2,"ds-markdown",{content:[1],streaming:[4],tree:[32]},undefined,{content:[{scheduleParse:0}]}]);function g(){if(typeof customElements==="undefined"){return}const e=["ds-markdown","ds-badge","ds-button-unfilled","ds-code-block","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-markdown":if(!customElements.get(a(e))){customElements.define(a(e),k)}break;case"ds-badge":if(!customElements.get(a(e))){d()}break;case"ds-button-unfilled":if(!customElements.get(a(e))){n()}break;case"ds-code-block":if(!customElements.get(a(e))){t()}break;case"ds-icon":if(!customElements.get(a(e))){i()}break;case"ds-loader":if(!customElements.get(a(e))){c()}break;case"ds-text":if(!customElements.get(a(e))){h()}break;case"ds-tooltip":if(!customElements.get(a(e))){m()}break}}))}g();export{k as M,g as d};
|
|
2
|
-
//# sourceMappingURL=p-dyUp3Adm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["markdownCss","parserPromise","loadParser","Promise","all","import","then","fromMarkdownModule","gfmFromMarkdownModule","gfmModule","fromMarkdown","gfmFromMarkdown","gfm","safeHref","value","undefined","url","URL","document","baseURI","includes","protocol","href","Markdown","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","content","streaming","tree","parseRevision","componentWillLoad","parse","disconnectedCallback","parseFrame","cancelAnimationFrame","scheduleParse","requestAnimationFrame","revision","extensions","mdastExtensions","children","node","map","child","renderNode","type","h","class","Tag","depth","code","language","lang","filename","meta","target","rel","ordered","start","checked","disabled","tabIndex","heading","rows","cell","scope","row","alt","label","render","Host","key"],"sources":["src/wc/components/Markdown/Markdown.css?tag=ds-markdown&encapsulation=scoped","src/wc/components/Markdown/Markdown.tsx"],"sourcesContent":["@import '../../styles/prose.css';\n\n:host {\n display: block;\n min-width: 0;\n color: inherit;\n box-sizing: border-box;\n -webkit-user-select: text;\n user-select: text;\n}\n","import { Component, h, Host, Prop, State, VNode, Watch } from '@stencil/core';\nimport type { Nodes, Root } from 'mdast';\n\ntype MarkdownRender = VNode | string | null | MarkdownRender[];\ntype MarkdownParser = {\n fromMarkdown: typeof import('mdast-util-from-markdown').fromMarkdown;\n gfmFromMarkdown: typeof import('mdast-util-gfm').gfmFromMarkdown;\n gfm: typeof import('micromark-extension-gfm').gfm;\n};\n\nlet parserPromise: Promise<MarkdownParser> | undefined;\n\nfunction loadParser(): Promise<MarkdownParser> {\n parserPromise ??= Promise.all([\n import('mdast-util-from-markdown'),\n import('mdast-util-gfm'),\n import('micromark-extension-gfm'),\n ]).then(([fromMarkdownModule, gfmFromMarkdownModule, gfmModule]) => ({\n fromMarkdown: fromMarkdownModule.fromMarkdown,\n gfmFromMarkdown: gfmFromMarkdownModule.gfmFromMarkdown,\n gfm: gfmModule.gfm,\n }));\n return parserPromise;\n}\n\nfunction safeHref(value: string | null | undefined): string | undefined {\n if (!value) return undefined;\n try {\n const url = new URL(value, document.baseURI);\n if (!['http:', 'https:', 'mailto:'].includes(url.protocol)) return undefined;\n return url.href;\n } catch {\n return undefined;\n }\n}\n\n@Component({\n tag: 'ds-markdown',\n styleUrl: 'Markdown.css',\n scoped: true,\n})\nexport class Markdown {\n @Prop() content: string = '';\n @Prop() streaming: boolean = false;\n\n @State() private tree: Root | null = null;\n private parseFrame?: number;\n private parseRevision = 0;\n\n componentWillLoad() {\n // The browser-targeted named-character decoder used by the Markdown parser\n // creates a DOM element when its module is evaluated. Keep public package\n // imports server-safe by loading that parser only in a browser context.\n if (typeof document !== 'undefined') return this.parse();\n }\n\n disconnectedCallback() {\n this.parseRevision += 1;\n if (this.parseFrame && typeof cancelAnimationFrame === 'function') {\n cancelAnimationFrame(this.parseFrame);\n }\n }\n\n @Watch('content')\n scheduleParse() {\n if (typeof requestAnimationFrame !== 'function') return;\n if (this.parseFrame) cancelAnimationFrame(this.parseFrame);\n this.parseFrame = requestAnimationFrame(() => {\n this.parseFrame = undefined;\n void this.parse();\n });\n }\n\n private async parse() {\n const revision = ++this.parseRevision;\n try {\n const { fromMarkdown, gfmFromMarkdown, gfm } = await loadParser();\n const tree = fromMarkdown(this.content, {\n extensions: [gfm()],\n mdastExtensions: [gfmFromMarkdown()],\n });\n if (revision === this.parseRevision) this.tree = tree;\n } catch {\n if (revision === this.parseRevision) this.tree = null;\n }\n }\n\n private children(node: Nodes): MarkdownRender[] {\n if (!('children' in node)) return [];\n return node.children.map(child => this.renderNode(child));\n }\n\n private renderNode(node: Nodes): MarkdownRender {\n switch (node.type) {\n case 'root':\n return this.children(node);\n case 'text':\n // Keep prose text on an element boundary. Besides giving streaming updates a\n // stable render target, this avoids axe-core treating a bare Stencil text\n // vnode as an element while it generates a contrast-result selector.\n return <span class=\"markdown__text\">{node.value}</span>;\n case 'paragraph':\n return <p class=\"markdown__paragraph\">{this.children(node)}</p>;\n case 'heading': {\n const Tag = `h${node.depth}`;\n return <Tag class=\"markdown__heading\">{this.children(node)}</Tag>;\n }\n case 'strong':\n return <strong class=\"markdown__strong\">{this.children(node)}</strong>;\n case 'emphasis':\n return <em class=\"markdown__emphasis\">{this.children(node)}</em>;\n case 'delete':\n return <del class=\"markdown__delete\">{this.children(node)}</del>;\n case 'blockquote':\n return <blockquote class=\"markdown__blockquote\">{this.children(node)}</blockquote>;\n case 'break':\n return <br class=\"markdown__break\" />;\n case 'thematicBreak':\n return <hr class=\"markdown__thematic-break\" />;\n case 'inlineCode':\n return <code class=\"markdown__inline-code\">{node.value}</code>;\n case 'code':\n return (\n <ds-code-block\n class=\"markdown__code-block\"\n data-ds-prose=\"off\"\n code={node.value}\n language={node.lang ?? ''}\n filename={node.meta ?? ''}\n />\n );\n case 'link': {\n const href = safeHref(node.url);\n return href ? (\n <a class=\"markdown__link\" href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {this.children(node)}\n </a>\n ) : (\n this.children(node)\n );\n }\n case 'list': {\n const Tag = node.ordered ? 'ol' : 'ul';\n return (\n <Tag class=\"markdown__list\" start={node.ordered && node.start ? node.start : undefined}>\n {this.children(node)}\n </Tag>\n );\n }\n case 'listItem':\n return (\n <li class=\"markdown__list-item\">\n {typeof node.checked === 'boolean' ? (\n <input\n class=\"markdown__task-indicator\"\n type=\"checkbox\"\n checked={node.checked}\n disabled\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n ) : null}\n {this.children(node)}\n </li>\n );\n case 'table': {\n const [heading, ...rows] = node.children;\n return (\n <div class=\"markdown__table-wrap ds-prose__table-scroll\" tabIndex={0}>\n <table class=\"markdown__table\">\n {heading ? (\n <thead class=\"markdown__table-head\">\n <tr class=\"markdown__table-row\">\n {heading.children.map(cell => (\n <th class=\"markdown__table-heading\" scope=\"col\">\n {this.children(cell)}\n </th>\n ))}\n </tr>\n </thead>\n ) : null}\n <tbody class=\"markdown__table-body\">{rows.map(row => this.renderNode(row))}</tbody>\n </table>\n </div>\n );\n }\n case 'tableRow':\n return <tr class=\"markdown__table-row\">{this.children(node)}</tr>;\n case 'tableCell':\n return <td class=\"markdown__table-cell\">{this.children(node)}</td>;\n case 'image': {\n const href = safeHref(node.url);\n return href ? (\n <a class=\"markdown__image-link\" href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {node.alt || 'View image'}\n </a>\n ) : (\n node.alt || null\n );\n }\n case 'html':\n case 'definition':\n case 'footnoteDefinition':\n return null;\n case 'footnoteReference':\n return <sup class=\"markdown__footnote\">{node.label}</sup>;\n default:\n return this.children(node);\n }\n }\n\n render() {\n return (\n <Host aria-busy={this.streaming ? 'true' : undefined}>\n <div class=\"markdown ds-prose\">\n {this.tree ? (\n this.renderNode(this.tree)\n ) : (\n <p class=\"markdown__paragraph\">\n <span class=\"markdown__text\">{this.content}</span>\n </p>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"kTAAA,MAAMA,EAAc,IAAM,4wOCU1B,IAAIC,EAEJ,SAASC,IACPD,MAAkBE,QAAQC,IAAI,CAC5BC,OAAO,mBACPA,OAAO,mBACPA,OAAO,qBACNC,MAAK,EAAEC,EAAoBC,EAAuBC,MAAU,CAC7DC,aAAcH,EAAmBG,aACjCC,gBAAiBH,EAAsBG,gBACvCC,IAAKH,EAAUG,SAEjB,OAAOX,CACT,CAEA,SAASY,EAASC,GAChB,IAAKA,EAAO,OAAOC,UACnB,IACE,MAAMC,EAAM,IAAIC,IAAIH,EAAOI,SAASC,SACpC,IAAK,CAAC,QAAS,SAAU,WAAWC,SAASJ,EAAIK,UAAW,OAAON,UACnE,OAAOC,EAAIM,I,CACX,MACA,OAAOP,S,CAEX,C,MAOaQ,EAAQC,EAAA,MAAAD,UAAAE,EALrB,WAAAC,CAAAC,G,4CAMUC,KAAAC,QAAkB,GAClBD,KAAAE,UAAqB,MAEZF,KAAAG,KAAoB,KAE7BH,KAAAI,cAAgB,CAmLzB,CAjLC,iBAAAC,GAIE,UAAWf,WAAa,YAAa,OAAOU,KAAKM,O,CAGnD,oBAAAC,GACEP,KAAKI,eAAiB,EACtB,GAAIJ,KAAKQ,mBAAqBC,uBAAyB,WAAY,CACjEA,qBAAqBT,KAAKQ,W,EAK9B,aAAAE,GACE,UAAWC,wBAA0B,WAAY,OACjD,GAAIX,KAAKQ,WAAYC,qBAAqBT,KAAKQ,YAC/CR,KAAKQ,WAAaG,uBAAsB,KACtCX,KAAKQ,WAAarB,eACba,KAAKM,OAAO,G,CAIb,WAAMA,GACZ,MAAMM,IAAaZ,KAAKI,cACxB,IACE,MAAMtB,aAAEA,EAAYC,gBAAEA,EAAeC,IAAEA,SAAcV,IACrD,MAAM6B,EAAOrB,EAAakB,KAAKC,QAAS,CACtCY,WAAY,CAAC7B,KACb8B,gBAAiB,CAAC/B,OAEpB,GAAI6B,IAAaZ,KAAKI,cAAeJ,KAAKG,KAAOA,C,CACjD,MACA,GAAIS,IAAaZ,KAAKI,cAAeJ,KAAKG,KAAO,I,EAI7C,QAAAY,CAASC,GACf,KAAM,aAAcA,GAAO,MAAO,GAClC,OAAOA,EAAKD,SAASE,KAAIC,GAASlB,KAAKmB,WAAWD,I,CAG5C,UAAAC,CAAWH,GACjB,OAAQA,EAAKI,MACX,IAAK,OACH,OAAOpB,KAAKe,SAASC,GACvB,IAAK,OAIH,OAAOK,EAAA,QAAMC,MAAM,kBAAkBN,EAAK9B,OAC5C,IAAK,YACH,OAAOmC,EAAA,KAAGC,MAAM,uBAAuBtB,KAAKe,SAASC,IACvD,IAAK,UAAW,CACd,MAAMO,EAAM,IAAIP,EAAKQ,QACrB,OAAOH,EAACE,EAAG,CAACD,MAAM,qBAAqBtB,KAAKe,SAASC,G,CAEvD,IAAK,SACH,OAAOK,EAAA,UAAQC,MAAM,oBAAoBtB,KAAKe,SAASC,IACzD,IAAK,WACH,OAAOK,EAAA,MAAIC,MAAM,sBAAsBtB,KAAKe,SAASC,IACvD,IAAK,SACH,OAAOK,EAAA,OAAKC,MAAM,oBAAoBtB,KAAKe,SAASC,IACtD,IAAK,aACH,OAAOK,EAAA,cAAYC,MAAM,wBAAwBtB,KAAKe,SAASC,IACjE,IAAK,QACH,OAAOK,EAAA,MAAIC,MAAM,oBACnB,IAAK,gBACH,OAAOD,EAAA,MAAIC,MAAM,6BACnB,IAAK,aACH,OAAOD,EAAA,QAAMC,MAAM,yBAAyBN,EAAK9B,OACnD,IAAK,OACH,OACEmC,EAAA,iBACEC,MAAM,uBAAsB,gBACd,MACdG,KAAMT,EAAK9B,MACXwC,SAAUV,EAAKW,MAAQ,GACvBC,SAAUZ,EAAKa,MAAQ,KAG7B,IAAK,OAAQ,CACX,MAAMnC,EAAOT,EAAS+B,EAAK5B,KAC3B,OAAOM,EACL2B,EAAA,KAAGC,MAAM,iBAAiB5B,KAAMA,EAAMoC,OAAO,SAASC,IAAI,uBACvD/B,KAAKe,SAASC,IAGjBhB,KAAKe,SAASC,E,CAGlB,IAAK,OAAQ,CACX,MAAMO,EAAMP,EAAKgB,QAAU,KAAO,KAClC,OACEX,EAACE,EAAG,CAACD,MAAM,iBAAiBW,MAAOjB,EAAKgB,SAAWhB,EAAKiB,MAAQjB,EAAKiB,MAAQ9C,WAC1Ea,KAAKe,SAASC,G,CAIrB,IAAK,WACH,OACEK,EAAA,MAAIC,MAAM,8BACAN,EAAKkB,UAAY,UACvBb,EAAA,SACEC,MAAM,2BACNF,KAAK,WACLc,QAASlB,EAAKkB,QACdC,SAAQ,mBACI,OACZC,UAAU,IAEV,KACHpC,KAAKe,SAASC,IAGrB,IAAK,QAAS,CACZ,MAAOqB,KAAYC,GAAQtB,EAAKD,SAChC,OACEM,EAAA,OAAKC,MAAM,8CAA8Cc,SAAU,GACjEf,EAAA,SAAOC,MAAM,mBACVe,EACChB,EAAA,SAAOC,MAAM,wBACXD,EAAA,MAAIC,MAAM,uBACPe,EAAQtB,SAASE,KAAIsB,GACpBlB,EAAA,MAAIC,MAAM,0BAA0BkB,MAAM,OACvCxC,KAAKe,SAASwB,QAKrB,KACJlB,EAAA,SAAOC,MAAM,wBAAwBgB,EAAKrB,KAAIwB,GAAOzC,KAAKmB,WAAWsB,O,CAK7E,IAAK,WACH,OAAOpB,EAAA,MAAIC,MAAM,uBAAuBtB,KAAKe,SAASC,IACxD,IAAK,YACH,OAAOK,EAAA,MAAIC,MAAM,wBAAwBtB,KAAKe,SAASC,IACzD,IAAK,QAAS,CACZ,MAAMtB,EAAOT,EAAS+B,EAAK5B,KAC3B,OAAOM,EACL2B,EAAA,KAAGC,MAAM,uBAAuB5B,KAAMA,EAAMoC,OAAO,SAASC,IAAI,uBAC7Df,EAAK0B,KAAO,cAGf1B,EAAK0B,KAAO,I,CAGhB,IAAK,OACL,IAAK,aACL,IAAK,qBACH,OAAO,KACT,IAAK,oBACH,OAAOrB,EAAA,OAAKC,MAAM,sBAAsBN,EAAK2B,OAC/C,QACE,OAAO3C,KAAKe,SAASC,G,CAI3B,MAAA4B,GACE,OACEvB,EAACwB,EAAI,CAAAC,IAAA,uDAAY9C,KAAKE,UAAY,OAASf,WACzCkC,EAAA,OAAAyB,IAAA,2CAAKxB,MAAM,qBACRtB,KAAKG,KACJH,KAAKmB,WAAWnB,KAAKG,MAErBkB,EAAA,KAAGC,MAAM,uBACPD,EAAA,QAAMC,MAAM,kBAAkBtB,KAAKC,W","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as e,H as s,c as i,h as a,a as d,t as o}from"./index.js";import{g as r}from"./p-BQq26pt9.js";import{d as t}from"./p-CIiBpjCn.js";import{d as n}from"./p-CGVXbXv9.js";import{d as c}from"./p-CCzG5xDD.js";import{d as h}from"./p-DCvA3Dc9.js";import{d as m}from"./p-Re2kPrXm.js";import{d as l}from"./p-Cr3tEx7o.js";const b=()=>`.ds-chrome-space--sm.sc-ds-mobile-header-h,.ds-chrome-space--sm.sc-ds-mobile-header{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-mobile-header-h,.ds-chrome-space--md.sc-ds-mobile-header{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-mobile-header-h,.ds-chrome-space--lg.sc-ds-mobile-header{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-mobile-header-h,.ds-chrome-row.sc-ds-mobile-header,.ds-chrome-column.sc-ds-mobile-header-h,.ds-chrome-column.sc-ds-mobile-header,.ds-chrome-grid.sc-ds-mobile-header-h,.ds-chrome-grid.sc-ds-mobile-header{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-mobile-header-h,.ds-chrome-row.sc-ds-mobile-header{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-mobile-header-h,.ds-chrome-column.sc-ds-mobile-header{flex-direction:column}.ds-chrome-grid.sc-ds-mobile-header-h,.ds-chrome-grid.sc-ds-mobile-header{display:grid;align-items:center}.sc-ds-mobile-header-h{display:block;min-width:0;box-sizing:border-box;background:var(--color-background-primary);color:var(--color-foreground-primary)}[tone='brand'].sc-ds-mobile-header-h{background:var(--color-background-bold-brand);color:var(--color-foreground-on-bold)}.mobile-header.sc-ds-mobile-header{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;box-sizing:border-box;background:inherit;color:inherit}.mobile-header__primary.sc-ds-mobile-header{grid-template-columns:minmax(var(--dimension-size-400), 1fr) minmax(0, auto) minmax(var(--dimension-size-400), 1fr);width:100%;height:var(--dimension-size-600);min-width:0;background:inherit;color:inherit}.sc-ds-mobile-header-h:not([tone='brand']) .mobile-header.sc-ds-mobile-header::after{content:'';position:absolute;inset-inline:0;inset-block-end:0;height:var(--dimension-stroke-width-012);background:var(--color-border-tertiary);pointer-events:none}.mobile-header__subsections.sc-ds-mobile-header{display:flex;align-items:center;justify-content:center;min-width:0;height:var(--dimension-size-600);padding:var(--dimension-space-100) var(--dimension-space-200);box-sizing:border-box}.mobile-header__subsections.sc-ds-mobile-header ds-mobile-section-switcher.sc-ds-mobile-header{min-width:0;max-width:100%}.mobile-header__lane.sc-ds-mobile-header{display:flex;align-items:center;gap:var(--dimension-space-050);min-width:0}.mobile-header__lane--leading.sc-ds-mobile-header{justify-content:flex-start}.mobile-header__lane--trailing.sc-ds-mobile-header{justify-content:flex-end}.mobile-header__center.sc-ds-mobile-header{position:relative;min-width:0;max-width:100%;justify-self:center}.mobile-header__heading.sc-ds-mobile-header{display:block;min-width:0;max-width:100%;text-align:center}.mobile-header__semantic-heading.sc-ds-mobile-header{position:absolute;width:var(--dimension-stroke-width-012);height:var(--dimension-stroke-width-012);padding:0;margin:calc(var(--dimension-stroke-width-012) * -1);overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sc-ds-mobile-header-s>[slot='leading'],.sc-ds-mobile-header-s>[slot='trailing']{flex:0 0 auto}`;const p=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsSectionChange=i(this,"dsSectionChange");this.dsSubsectionChange=i(this,"dsSubsectionChange");this.heading="";this.headingLevel="h1";this.sections=[];this.sectionsJson="";this.value="";this.sectionsAriaLabel="Change page section";this.subsections=[];this.subsectionsJson="";this.subvalue="";this.subsectionsAriaLabel="Change page subsection";this.tone="default";this.handleSectionChange=e=>{e.stopPropagation();this.dsSectionChange.emit(e.detail)};this.handleSubsectionChange=e=>{e.stopPropagation();this.dsSubsectionChange.emit(e.detail)}}parseSections(e,s){if(!s.trim())return e??[];try{const e=JSON.parse(s);return Array.isArray(e)?e:[]}catch{return[]}}get resolvedSections(){return this.parseSections(this.sections,this.sectionsJson)}get resolvedSubsections(){return this.parseSections(this.subsections,this.subsectionsJson)}get selectedLabel(){const e=r(this.resolvedSections);return e.find((e=>e.id===this.value))?.label??e[0]?.label??this.heading}render(){const e=this.headingLevel;const s=r(this.resolvedSections);const i=s.length>1;const o=r(this.resolvedSubsections).length>1;const t=this.tone==="brand"?"on-bold":"primary";return a(d,{key:"3a5bc4c056ac9ce7cb037d701d90f989aa3f0a48"},a("header",{key:"055e80af39073fd30c9e3188ece7c81513007727",class:"mobile-header"},a("div",{key:"896092422f21ae17ec964316ba81d92179e67e76",class:"mobile-header__primary ds-chrome-grid ds-chrome-space--md"},a("div",{key:"4d1acc9f5d05cd192a107f666da43192da29a51e",class:"mobile-header__lane mobile-header__lane--leading"},a("slot",{key:"3c8aa694eb5038de0630aa98da0135fa2f2488ec",name:"leading"})),a("div",{key:"a68e7f46d2f130cd62ba4bcc87b6c976fee07840",class:"mobile-header__center"},i?[a("span",{class:"mobile-header__semantic-heading",role:"heading","aria-level":this.headingLevel==="h1"?"1":"2"},this.selectedLabel),a("ds-mobile-section-switcher",{sections:this.resolvedSections,value:this.value,navigationLabel:this.sectionsAriaLabel,onDsChange:this.handleSectionChange})]:a("ds-text",{class:"mobile-header__heading",as:e,variant:"text-body-medium",emphasis:true,color:t,lineTruncation:1},this.selectedLabel)),a("div",{key:"f2145d0861c38b7b87106c6f74a2cd3f6acd101b",class:"mobile-header__lane mobile-header__lane--trailing"},a("slot",{key:"3780b94a26a1cf3fa2a831cb3b7832b4fd9bc484",name:"trailing"}))),o?a("nav",{class:"mobile-header__subsections","aria-label":this.subsectionsAriaLabel},a("ds-mobile-section-switcher",{sections:this.resolvedSubsections,value:this.subvalue,navigationLabel:this.subsectionsAriaLabel,onDsChange:this.handleSubsectionChange})):null))}static get style(){return b()}},[262,"ds-mobile-header",{heading:[1],headingLevel:[1,"heading-level"],sections:[16],sectionsJson:[1,"sections-json"],value:[1],sectionsAriaLabel:[1,"sections-aria-label"],subsections:[16],subsectionsJson:[1,"subsections-json"],subvalue:[1],subsectionsAriaLabel:[1,"subsections-aria-label"],tone:[513]}]);function g(){if(typeof customElements==="undefined"){return}const e=["ds-mobile-header","ds-badge","ds-menu","ds-mobile-section-switcher","ds-swatch-picker","ds-switch","ds-text"];e.forEach((e=>{switch(e){case"ds-mobile-header":if(!customElements.get(o(e))){customElements.define(o(e),p)}break;case"ds-badge":if(!customElements.get(o(e))){t()}break;case"ds-menu":if(!customElements.get(o(e))){n()}break;case"ds-mobile-section-switcher":if(!customElements.get(o(e))){c()}break;case"ds-swatch-picker":if(!customElements.get(o(e))){h()}break;case"ds-switch":if(!customElements.get(o(e))){m()}break;case"ds-text":if(!customElements.get(o(e))){l()}break}}))}g();export{p as M,g as d};
|
|
2
|
-
//# sourceMappingURL=p-nkYN0Bub.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mobileHeaderCss","MobileHeader","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","heading","headingLevel","sections","sectionsJson","value","sectionsAriaLabel","subsections","subsectionsJson","subvalue","subsectionsAriaLabel","tone","handleSectionChange","event","stopPropagation","dsSectionChange","emit","detail","handleSubsectionChange","dsSubsectionChange","parseSections","json","trim","parsed","JSON","parse","Array","isArray","resolvedSections","resolvedSubsections","selectedLabel","selectable","getSelectableTabs","find","section","id","label","render","Heading","hasSwitcher","length","hasSubsections","foreground","h","Host","key","class","name","role","navigationLabel","onDsChange","as","variant","emphasis","color","lineTruncation"],"sources":["src/wc/components/MobileHeader/MobileHeader.css?tag=ds-mobile-header&encapsulation=scoped","src/wc/components/MobileHeader/MobileHeader.tsx"],"sourcesContent":["@import '../../utils/chrome-layout.css';\n\n:host {\n display: block;\n min-width: 0;\n box-sizing: border-box;\n background: var(--color-background-primary);\n color: var(--color-foreground-primary);\n}\n\n:host([tone='brand']) {\n background: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold);\n}\n\n.mobile-header {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n background: inherit;\n color: inherit;\n}\n\n.mobile-header__primary {\n grid-template-columns: minmax(var(--dimension-size-400), 1fr) minmax(0, auto) minmax(var(--dimension-size-400), 1fr);\n width: 100%;\n height: var(--dimension-size-600);\n min-width: 0;\n background: inherit;\n color: inherit;\n}\n\n:host(:not([tone='brand'])) .mobile-header::after {\n content: '';\n position: absolute;\n inset-inline: 0;\n inset-block-end: 0;\n height: var(--dimension-stroke-width-012);\n background: var(--color-border-tertiary);\n pointer-events: none;\n}\n\n.mobile-header__subsections {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n height: var(--dimension-size-600);\n padding: var(--dimension-space-100) var(--dimension-space-200);\n box-sizing: border-box;\n}\n\n.mobile-header__subsections ds-mobile-section-switcher {\n min-width: 0;\n max-width: 100%;\n}\n\n.mobile-header__lane {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n min-width: 0;\n}\n\n.mobile-header__lane--leading {\n justify-content: flex-start;\n}\n\n.mobile-header__lane--trailing {\n justify-content: flex-end;\n}\n\n.mobile-header__center {\n position: relative;\n min-width: 0;\n max-width: 100%;\n justify-self: center;\n}\n\n.mobile-header__heading {\n display: block;\n min-width: 0;\n max-width: 100%;\n text-align: center;\n}\n\n.mobile-header__semantic-heading {\n position: absolute;\n width: var(--dimension-stroke-width-012);\n height: var(--dimension-stroke-width-012);\n padding: 0;\n margin: calc(var(--dimension-stroke-width-012) * -1);\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n::slotted([slot='leading']),\n::slotted([slot='trailing']) {\n flex: 0 0 auto;\n}\n","import { Component, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport { getSelectableTabs, type TabItem } from '../TabGroup/tab-item-utils';\nimport type {\n MobileHeaderHeadingLevel,\n MobileHeaderTone,\n} from './mobile-header-types';\n\n@Component({\n tag: 'ds-mobile-header',\n styleUrl: 'MobileHeader.css',\n scoped: true,\n})\nexport class MobileHeader {\n /** Static title used when no peer sections are supplied. */\n @Prop() heading: string = '';\n /** Semantic heading level for the active mobile screen. */\n @Prop() headingLevel: MobileHeaderHeadingLevel = 'h1';\n /** Controlled peer sections. Their selected label replaces the static title. */\n @Prop() sections: TabItem[] = [];\n /** JSON fallback for `sections`. */\n @Prop({ attribute: 'sections-json' }) sectionsJson: string = '';\n /** Controlled selected section id. */\n @Prop() value: string = '';\n /** Accessible name for the section chooser. */\n @Prop() sectionsAriaLabel: string = 'Change page section';\n /** Controlled child sections within the selected page or detail screen. */\n @Prop() subsections: TabItem[] = [];\n /** JSON fallback for `subsections`. */\n @Prop({ attribute: 'subsections-json' }) subsectionsJson: string = '';\n /** Controlled selected child-section id. */\n @Prop() subvalue: string = '';\n /** Accessible name for the child-section chooser. */\n @Prop() subsectionsAriaLabel: string = 'Change page subsection';\n /** Default page chrome or bold-brand workflow chrome. */\n @Prop({ reflect: true }) tone: MobileHeaderTone = 'default';\n\n /** Section selection intent. */\n @Event() dsSectionChange!: EventEmitter<string>;\n /** Child-section selection intent. */\n @Event() dsSubsectionChange!: EventEmitter<string>;\n\n private parseSections(value: TabItem[], json: string): TabItem[] {\n if (!json.trim()) return value ?? [];\n try {\n const parsed = JSON.parse(json);\n return Array.isArray(parsed) ? (parsed as TabItem[]) : [];\n } catch {\n return [];\n }\n }\n\n private get resolvedSections(): TabItem[] {\n return this.parseSections(this.sections, this.sectionsJson);\n }\n\n private get resolvedSubsections(): TabItem[] {\n return this.parseSections(this.subsections, this.subsectionsJson);\n }\n\n private get selectedLabel(): string {\n const selectable = getSelectableTabs(this.resolvedSections);\n return selectable.find(section => section.id === this.value)?.label ??\n selectable[0]?.label ??\n this.heading;\n }\n\n private handleSectionChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n this.dsSectionChange.emit(event.detail);\n };\n\n private handleSubsectionChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n this.dsSubsectionChange.emit(event.detail);\n };\n\n render() {\n const Heading = this.headingLevel;\n const selectable = getSelectableTabs(this.resolvedSections);\n const hasSwitcher = selectable.length > 1;\n const hasSubsections = getSelectableTabs(this.resolvedSubsections).length > 1;\n const foreground = this.tone === 'brand' ? 'on-bold' : 'primary';\n\n return (\n <Host>\n <header class=\"mobile-header\">\n <div class=\"mobile-header__primary ds-chrome-grid ds-chrome-space--md\">\n <div class=\"mobile-header__lane mobile-header__lane--leading\">\n <slot name=\"leading\" />\n </div>\n <div class=\"mobile-header__center\">\n {hasSwitcher ? (\n [\n <span\n class=\"mobile-header__semantic-heading\"\n role=\"heading\"\n aria-level={this.headingLevel === 'h1' ? '1' : '2'}\n >\n {this.selectedLabel}\n </span>,\n <ds-mobile-section-switcher\n sections={this.resolvedSections}\n value={this.value}\n navigationLabel={this.sectionsAriaLabel}\n onDsChange={this.handleSectionChange}\n />,\n ]\n ) : (\n <ds-text\n class=\"mobile-header__heading\"\n as={Heading}\n variant=\"text-body-medium\"\n emphasis\n color={foreground}\n lineTruncation={1}\n >\n {this.selectedLabel}\n </ds-text>\n )}\n </div>\n <div class=\"mobile-header__lane mobile-header__lane--trailing\">\n <slot name=\"trailing\" />\n </div>\n </div>\n {hasSubsections ? (\n <nav class=\"mobile-header__subsections\" aria-label={this.subsectionsAriaLabel}>\n <ds-mobile-section-switcher\n sections={this.resolvedSubsections}\n value={this.subvalue}\n navigationLabel={this.subsectionsAriaLabel}\n onDsChange={this.handleSubsectionChange}\n />\n </nav>\n ) : null}\n </header>\n </Host>\n );\n }\n}\n"],"mappings":"8TAAA,MAAMA,EAAkB,IAAM,+xG,MCYjBC,EAAYC,EAAA,MAAAD,UAAAE,EALzB,WAAAC,CAAAC,G,gJAOUC,KAAAC,QAAkB,GAElBD,KAAAE,aAAyC,KAEzCF,KAAAG,SAAsB,GAEQH,KAAAI,aAAuB,GAErDJ,KAAAK,MAAgB,GAEhBL,KAAAM,kBAA4B,sBAE5BN,KAAAO,YAAyB,GAEQP,KAAAQ,gBAA0B,GAE3DR,KAAAS,SAAmB,GAEnBT,KAAAU,qBAA+B,yBAEdV,KAAAW,KAAyB,UAgC1CX,KAAAY,oBAAuBC,IAC7BA,EAAMC,kBACNd,KAAKe,gBAAgBC,KAAKH,EAAMI,OAAO,EAGjCjB,KAAAkB,uBAA0BL,IAChCA,EAAMC,kBACNd,KAAKmB,mBAAmBH,KAAKH,EAAMI,OAAO,CAiE7C,CAjGS,aAAAG,CAAcf,EAAkBgB,GACtC,IAAKA,EAAKC,OAAQ,OAAOjB,GAAS,GAClC,IACE,MAAMkB,EAASC,KAAKC,MAAMJ,GAC1B,OAAOK,MAAMC,QAAQJ,GAAWA,EAAuB,E,CACvD,MACA,MAAO,E,EAIX,oBAAYK,GACV,OAAO5B,KAAKoB,cAAcpB,KAAKG,SAAUH,KAAKI,a,CAGhD,uBAAYyB,GACV,OAAO7B,KAAKoB,cAAcpB,KAAKO,YAAaP,KAAKQ,gB,CAGnD,iBAAYsB,GACV,MAAMC,EAAaC,EAAkBhC,KAAK4B,kBAC1C,OAAOG,EAAWE,MAAKC,GAAWA,EAAQC,KAAOnC,KAAKK,SAAQ+B,OAC5DL,EAAW,IAAIK,OACfpC,KAAKC,O,CAaT,MAAAoC,GACE,MAAMC,EAAUtC,KAAKE,aACrB,MAAM6B,EAAaC,EAAkBhC,KAAK4B,kBAC1C,MAAMW,EAAcR,EAAWS,OAAS,EACxC,MAAMC,EAAiBT,EAAkBhC,KAAK6B,qBAAqBW,OAAS,EAC5E,MAAME,EAAa1C,KAAKW,OAAS,QAAU,UAAY,UAEvD,OACEgC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,UAAAE,IAAA,2CAAQC,MAAM,iBACZH,EAAA,OAAAE,IAAA,2CAAKC,MAAM,6DACTH,EAAA,OAAAE,IAAA,2CAAKC,MAAM,oDACTH,EAAA,QAAAE,IAAA,2CAAME,KAAK,aAEbJ,EAAA,OAAAE,IAAA,2CAAKC,MAAM,yBACRP,EAAW,CAERI,EAAA,QACEG,MAAM,kCACNE,KAAK,UAAS,aACFhD,KAAKE,eAAiB,KAAO,IAAM,KAE9CF,KAAK8B,eAERa,EAAA,8BACExC,SAAUH,KAAK4B,iBACfvB,MAAOL,KAAKK,MACZ4C,gBAAiBjD,KAAKM,kBACtB4C,WAAYlD,KAAKY,uBAIrB+B,EAAA,WACEG,MAAM,yBACNK,GAAIb,EACJc,QAAQ,mBACRC,SAAQ,KACRC,MAAOZ,EACPa,eAAgB,GAEfvD,KAAK8B,gBAIZa,EAAA,OAAAE,IAAA,2CAAKC,MAAM,qDACTH,EAAA,QAAAE,IAAA,2CAAME,KAAK,eAGdN,EACCE,EAAA,OAAKG,MAAM,6BAA4B,aAAa9C,KAAKU,sBACvDiC,EAAA,8BACExC,SAAUH,KAAK6B,oBACfxB,MAAOL,KAAKS,SACZwC,gBAAiBjD,KAAKU,qBACtBwC,WAAYlD,KAAKkB,0BAGnB,M","ignoreList":[]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ElementRef } from '@angular/core';
|
|
2
|
-
import { ValueAccessor } from '../angular/value-accessor';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SelectMultiValueAccessor extends ValueAccessor {
|
|
5
|
-
constructor(el: ElementRef<HTMLDsSelectMultiElement>);
|
|
6
|
-
writeValue(value: unknown): void;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SelectMultiValueAccessor, never>;
|
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SelectMultiValueAccessor, "ds-select-multi", never, {}, {}, never, never, true, never>;
|
|
9
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Directive, forwardRef } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from '../angular/value-accessor.js';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class SelectMultiValueAccessor extends ValueAccessor {
|
|
6
|
-
constructor(el) {
|
|
7
|
-
super(el);
|
|
8
|
-
}
|
|
9
|
-
writeValue(value) {
|
|
10
|
-
const values = Array.isArray(value)
|
|
11
|
-
? value.filter((item) => typeof item === 'string')
|
|
12
|
-
: [];
|
|
13
|
-
this.el.nativeElement.values = values;
|
|
14
|
-
this.lastValue = values;
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SelectMultiValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: SelectMultiValueAccessor, isStandalone: true, selector: "ds-select-multi", host: { listeners: { "dsChange": "handleChangeEvent($event.target?.[\"values\"])" } }, providers: [
|
|
18
|
-
{
|
|
19
|
-
provide: NG_VALUE_ACCESSOR,
|
|
20
|
-
useExisting: forwardRef(() => SelectMultiValueAccessor),
|
|
21
|
-
multi: true,
|
|
22
|
-
},
|
|
23
|
-
], usesInheritance: true, ngImport: i0 }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SelectMultiValueAccessor, decorators: [{
|
|
26
|
-
type: Directive,
|
|
27
|
-
args: [{
|
|
28
|
-
selector: 'ds-select-multi',
|
|
29
|
-
host: {
|
|
30
|
-
'(dsChange)': 'handleChangeEvent($event.target?.["values"])',
|
|
31
|
-
},
|
|
32
|
-
providers: [
|
|
33
|
-
{
|
|
34
|
-
provide: NG_VALUE_ACCESSOR,
|
|
35
|
-
useExisting: forwardRef(() => SelectMultiValueAccessor),
|
|
36
|
-
multi: true,
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
}]
|
|
40
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/** Per-badge background-position for shell gradient ring sampling. */
|
|
2
|
-
export declare const BADGE_GRADIENT_POSITION_VAR = "--_badge-gradient-position";
|
|
3
|
-
export interface GradientSurface {
|
|
4
|
-
element: HTMLElement;
|
|
5
|
-
chromeHost: HTMLElement;
|
|
6
|
-
positionVar: string;
|
|
7
|
-
}
|
|
8
|
-
/** Whether the badge sits under a shell with an active wash preset. */
|
|
9
|
-
export declare function isShellGradientActive(from: HTMLElement): boolean;
|
|
10
|
-
/** Bar or panel chrome surface that owns the shell gradient stack. */
|
|
11
|
-
export declare function findGradientSurface(from: HTMLElement): GradientSurface | null;
|
|
12
|
-
interface ParsedPosition {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
}
|
|
16
|
-
/** Parse a two-value CSS background-position (e.g. `-200px 0`). */
|
|
17
|
-
export declare function parseCssBackgroundPosition(value: string): ParsedPosition;
|
|
18
|
-
/**
|
|
19
|
-
* Background position for a badge ring so the shell gradient aligns with nav chrome.
|
|
20
|
-
* Uses badge center relative to the painted chrome surface.
|
|
21
|
-
*/
|
|
22
|
-
export declare function badgeGradientPosition(badgeHost: HTMLElement, surface: GradientSurface, shellPosition: string): string;
|
|
23
|
-
/** Resolve shell gradient position from chrome host custom properties. */
|
|
24
|
-
export declare function readShellGradientPosition(surface: GradientSurface): string;
|
|
25
|
-
/** Stamp `--_badge-gradient-position` on the badge host (fixed viewport chrome). */
|
|
26
|
-
export declare function syncBadgeGradientPosition(badgeHost: HTMLElement): void;
|
|
27
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/** Bubbling/composed events — `ds-shell-app` and `ds-bar-nav` coordinate during width motion. */
|
|
2
|
-
export declare const CHROME_TRANSITION_START = "dsChromeTransitionStart";
|
|
3
|
-
export declare const CHROME_TRANSITION_END = "dsChromeTransitionEnd";
|
|
4
|
-
export type ChromeTransitionSource = 'panel-nav' | 'panel-tools';
|
|
5
|
-
export interface ChromeTransitionDetail {
|
|
6
|
-
source: ChromeTransitionSource;
|
|
7
|
-
/** Panel-tools drawer motion direction; omitted for panel-nav. */
|
|
8
|
-
phase?: 'opening' | 'closing';
|
|
9
|
-
}
|
|
10
|
-
/** Reference-counted gate — used while panel-nav width is transitioning. */
|
|
11
|
-
export declare class ChromeTransitionDepth {
|
|
12
|
-
private depth;
|
|
13
|
-
enter(): void;
|
|
14
|
-
exit(): void;
|
|
15
|
-
get isActive(): boolean;
|
|
16
|
-
}
|
|
17
|
-
/** Idempotent gate for one physical chrome surface.
|
|
18
|
-
* Duplicate start notifications still require only one matching end. */
|
|
19
|
-
export declare class ChromeTransitionGate {
|
|
20
|
-
private active;
|
|
21
|
-
enter(): void;
|
|
22
|
-
exit(): void;
|
|
23
|
-
get isActive(): boolean;
|
|
24
|
-
}
|
|
25
|
-
export interface RafCoalescer {
|
|
26
|
-
schedule(): void;
|
|
27
|
-
cancel(): void;
|
|
28
|
-
}
|
|
29
|
-
/** Coalesce bursty layout work (ResizeObserver, prop churn) to one callback per frame. */
|
|
30
|
-
export declare function createRafCoalescer(onFrame: () => void): RafCoalescer;
|
|
31
|
-
export declare function readChromeTransitionSource(event: Event): ChromeTransitionSource | undefined;
|
|
32
|
-
export declare function readChromeTransitionPhase(event: Event): ChromeTransitionDetail['phase'];
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/** Read a `var(--token)` width in px using a hidden probe (works with calc() tokens). */
|
|
2
|
-
export declare function readCssVarWidthPx(context: HTMLElement, cssVarName: string): number;
|
|
3
|
-
export interface PanelNavWidthTokens {
|
|
4
|
-
expandedPx: number;
|
|
5
|
-
collapsedPx: number;
|
|
6
|
-
}
|
|
7
|
-
/** Resolve panel-nav expanded/collapsed widths from scoped CSS vars on `.panel-nav`. */
|
|
8
|
-
export declare function readPanelNavWidthTokens(navRoot: HTMLElement): PanelNavWidthTokens;
|
|
9
|
-
export declare function isPanelNavCollapsed(panelNavHost: HTMLElement | null, navRoot: HTMLElement | null): boolean;
|
|
10
|
-
export declare function panelWidthPxFromTokens(tokens: PanelNavWidthTokens, collapsed: boolean): number;
|
|
11
|
-
export declare function barGradientPositionFromPanelWidth(panelWidthPx: number): string;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/** CSS var names consumed by `ds-panel-nav` / `ds-bar-nav` inside `ds-shell-app`. */
|
|
2
|
-
import type { ShellGradientPreset } from './shell-gradient-presets';
|
|
3
|
-
export type { ShellGradientPreset } from './shell-gradient-presets';
|
|
4
|
-
export { DEFAULT_SHELL_GRADIENT_PRESET, SHELL_GRADIENT_PRESETS, SHELL_GRADIENT_PRESET_LABELS, buildShellRadialGradientForPreset, buildShellRadialGradientFromStops, isShellGradientPreset, shellGradientPresetOpacity, shellGradientPresetRecipe, shellGradientPresetStopToken, } from './shell-gradient-presets';
|
|
5
|
-
export declare const SHELL_GRADIENT_IMAGE_VAR = "--ds-shell-gradient-image";
|
|
6
|
-
export declare const SHELL_GRADIENT_SIZE_VAR = "--ds-shell-gradient-size";
|
|
7
|
-
export declare const SHELL_GRADIENT_POSITION_PANEL_VAR = "--ds-shell-gradient-position-panel";
|
|
8
|
-
export declare const SHELL_GRADIENT_POSITION_BAR_VAR = "--ds-shell-gradient-position-bar";
|
|
9
|
-
export declare const SHELL_GRADIENT_OPACITY_VAR = "--ds-shell-gradient-opacity";
|
|
10
|
-
/** Per chrome-surface background-position — offsets wash + grid to shell row origin. */
|
|
11
|
-
export declare const SHELL_CHROME_SURFACE_POSITION_VAR = "--ds-shell-chrome-surface-position";
|
|
12
|
-
/** Whether the shared chrome layer (secondary bg + optional wash) should mount. */
|
|
13
|
-
export declare function shellChromeLayerActive(preset: ShellGradientPreset): boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Shell radial wash — same for panel and bar nav.
|
|
16
|
-
* Tokens follow `data-theme` (light/dark intent stops).
|
|
17
|
-
*/
|
|
18
|
-
export declare function buildShellRadialGradient(preset?: ShellGradientPreset): string;
|
|
19
|
-
/** Built-in radial image for the selected shell preset. */
|
|
20
|
-
export declare function shellGradientImage(preset?: ShellGradientPreset): string;
|
|
21
|
-
export interface ShellViewportDimensions {
|
|
22
|
-
width: number;
|
|
23
|
-
height: number;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Viewport size for shell chrome with `background-attachment: fixed`.
|
|
27
|
-
* Must not use the `ds-shell-app` element box — the shell can be shorter or
|
|
28
|
-
* taller than the viewport when host height chains break or content overflows.
|
|
29
|
-
*/
|
|
30
|
-
export declare function readShellViewportDimensions(win?: Window): ShellViewportDimensions;
|
|
31
|
-
export interface ShellGradientLayout {
|
|
32
|
-
width: number;
|
|
33
|
-
height: number;
|
|
34
|
-
panelWidth: number;
|
|
35
|
-
}
|
|
36
|
-
/** Pixel `background-size` for the fixed-attachment radial wash. */
|
|
37
|
-
export declare function shellGradientSize(layout: Pick<ShellGradientLayout, 'width' | 'height'>): string;
|
|
38
|
-
export declare function shellGradientPositionPanel(): string;
|
|
39
|
-
export declare function shellGradientPositionBar(panelWidth: number): string;
|
|
40
|
-
/** Phase-lock a chrome rect to the shell row coordinate system (wash + grid). */
|
|
41
|
-
export declare function shellChromeSurfacePosition(leftPx: number, topPx: number): string;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { parseCssTimeMs } from '../utils/resolve-css-time-ms';
|
|
2
|
-
/** `view-transition-name` on `ds-bar-nav` — pairs with root reveal in shell apps. */
|
|
3
|
-
export declare const SHELL_BAR_NAV_VT_NAME = "ds-shell-bar-nav";
|
|
4
|
-
export { parseCssTimeMs };
|
|
5
|
-
/** TokoMo tokens for the dashboard ↔ settings radial reveal (WAAPI). */
|
|
6
|
-
export declare const SHELL_NAV_REVEAL_DURATION_VAR = "--effect-animation-duration-medium-3";
|
|
7
|
-
export declare const SHELL_NAV_REVEAL_EASING_VAR = "--effect-animation-easing-ease-in-out";
|
|
8
|
-
/** Suppress default cross-fade and pin new snapshots to a 0px circle for WAAPI reveal. */
|
|
9
|
-
export declare function ensureShellNavVtStyle(): void;
|
|
10
|
-
export interface ShellNavRevealOrigin {
|
|
11
|
-
x: number;
|
|
12
|
-
y: number;
|
|
13
|
-
maxRadius: number;
|
|
14
|
-
}
|
|
15
|
-
/** Origin for the radial reveal — defaults to panel-nav footer gear, then viewport center. */
|
|
16
|
-
export declare function resolveShellNavRevealOrigin(originEl?: HTMLElement | null): ShellNavRevealOrigin;
|
|
17
|
-
export declare function setShellNavRevealOriginVars(origin: ShellNavRevealOrigin): void;
|
|
18
|
-
/** Animate root + bar-nav snapshots with the same radial clip-path reveal. */
|
|
19
|
-
export declare function animateShellNavRadialReveal(origin: ShellNavRevealOrigin, durationMs?: number): void;
|
|
20
|
-
/** Run radial reveal when a view transition's `ready` promise settles (app/router driver). */
|
|
21
|
-
export declare function runShellNavStyleRevealOnReady(transition: {
|
|
22
|
-
ready: Promise<void>;
|
|
23
|
-
}, originEl?: HTMLElement | null): void;
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "card-data-viz-bar",
|
|
4
|
-
"title": "CardDataVizBar",
|
|
5
|
-
"description": "Canonical bar-chart dashboard card with shared data-viz chrome, a filter action, a fill chart region, and an optional static legend.",
|
|
6
|
-
"type": "registry:ui",
|
|
7
|
-
"meta": {
|
|
8
|
-
"library": "@ds-mo/ui",
|
|
9
|
-
"distribution": "npm",
|
|
10
|
-
"storybook": "https://zainadeel.github.io/compomo/?path=/story/card-data-viz-bar",
|
|
11
|
-
"source": "src/wc/components/CardDataVizBar/CardDataVizBar.tsx",
|
|
12
|
-
"intentStatus": "complete",
|
|
13
|
-
"intent": {
|
|
14
|
-
"audience": "specialized",
|
|
15
|
-
"status": "experimental",
|
|
16
|
-
"summary": "Canonical bar-chart dashboard card with shared data-viz chrome, a filter action, a fill chart region, and an optional static legend.",
|
|
17
|
-
"useWhen": [
|
|
18
|
-
"A dashboard widget needs a regular, stacked, or percentage bar chart in the standard data-viz card.",
|
|
19
|
-
"A stacked bar chart needs a visible static series key beneath the chart."
|
|
20
|
-
],
|
|
21
|
-
"avoidWhen": [
|
|
22
|
-
"The visualization needs selectable legend rows or chart-to-legend hover synchronization.",
|
|
23
|
-
"The product needs supporting metrics or an alternate chart layout beyond the chart and optional legend."
|
|
24
|
-
],
|
|
25
|
-
"alternatives": [
|
|
26
|
-
{
|
|
27
|
-
"when": "The bar chart needs a custom layout without card chrome.",
|
|
28
|
-
"component": "component:ds-chart-bar",
|
|
29
|
-
"reason": "Compose ChartBar directly in the product-owned layout."
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"when": "The visualization communicates change as continuous lines.",
|
|
33
|
-
"component": "component:ds-card-data-viz-line",
|
|
34
|
-
"reason": "CardDataVizLine owns the canonical line-chart card layout."
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"when": "The visualization communicates parts of one total with synchronized slice emphasis.",
|
|
38
|
-
"component": "component:ds-card-data-viz-donut",
|
|
39
|
-
"reason": "CardDataVizDonut owns the donut layout and bidirectional hover synchronization."
|
|
40
|
-
}
|
|
41
|
-
],
|
|
42
|
-
"commonlyComposedWith": [
|
|
43
|
-
"component:ds-card-shell-data-viz",
|
|
44
|
-
"component:ds-chart-bar",
|
|
45
|
-
"component:ds-chart-bar-stacked",
|
|
46
|
-
"component:ds-chart-legend",
|
|
47
|
-
"component:ds-button-unfilled"
|
|
48
|
-
],
|
|
49
|
-
"accessibility": [
|
|
50
|
-
"Provide a concise heading that identifies the measure and meaningful visible labels for every legend entry.",
|
|
51
|
-
"Keep essential series and value context available textually rather than relying on bar color alone.",
|
|
52
|
-
"The card disables decorative legend-row hover; genuine legend links retain native link semantics and affordances."
|
|
53
|
-
],
|
|
54
|
-
"states": [
|
|
55
|
-
"Bar, Line, and Donut cards share the same fill-chart and content-sized-legend body contract so dashboard card geometry remains aligned across chart types.",
|
|
56
|
-
"The chart region fills the remaining card body while an optional legend remains content-sized.",
|
|
57
|
-
"The card disables local hover highlighting on a slotted ChartLegend because bar legends are static keys.",
|
|
58
|
-
"Chart and legend regions render only when their corresponding slots contain content, avoiding empty region spacing.",
|
|
59
|
-
"The owning product controls data, filtering, loading, empty, and error state; the card emits the filter action only."
|
|
60
|
-
],
|
|
61
|
-
"responsiveBehavior": [
|
|
62
|
-
"The selected sm, md, or lg shell size controls the card dimensions while the bar chart reflows to the chart region without visually scaling its primitives.",
|
|
63
|
-
"The horizontal legend wraps complete entries when the available width is constrained.",
|
|
64
|
-
"The parent dashboard owns card wrapping and breakpoint changes."
|
|
65
|
-
],
|
|
66
|
-
"frameworkCaveats": {
|
|
67
|
-
"customElements": [
|
|
68
|
-
"Assign data or series and categories as JavaScript properties, then place the bar chart and optional legend in their named slots."
|
|
69
|
-
],
|
|
70
|
-
"react": [
|
|
71
|
-
"Keep filter and dataset state in the owner; pass the chart and optional legend with chart and legend slot attributes."
|
|
72
|
-
],
|
|
73
|
-
"angular": [
|
|
74
|
-
"Keep filter and dataset state in the owner; project the chart and optional legend into the chart and legend slots."
|
|
75
|
-
]
|
|
76
|
-
},
|
|
77
|
-
"references": [
|
|
78
|
-
{
|
|
79
|
-
"label": "Storybook examples",
|
|
80
|
-
"path": "src/wc/components/CardDataVizBar/CardDataVizBar.stories.ts"
|
|
81
|
-
}
|
|
82
|
-
]
|
|
83
|
-
},
|
|
84
|
-
"api": {
|
|
85
|
-
"props": {
|
|
86
|
-
"cardWidth": {
|
|
87
|
-
"type": "CardDataVizBarWidth",
|
|
88
|
-
"resolvedType": "\"lg\" | \"md\" | \"sm\"",
|
|
89
|
-
"attribute": "card-width",
|
|
90
|
-
"default": "'md'",
|
|
91
|
-
"required": false,
|
|
92
|
-
"mutable": false,
|
|
93
|
-
"description": "Card width token — also sets matching min-height."
|
|
94
|
-
},
|
|
95
|
-
"filterLabel": {
|
|
96
|
-
"type": "string",
|
|
97
|
-
"resolvedType": "string",
|
|
98
|
-
"attribute": "filter-label",
|
|
99
|
-
"default": "'Filter'",
|
|
100
|
-
"required": false,
|
|
101
|
-
"mutable": false
|
|
102
|
-
},
|
|
103
|
-
"heading": {
|
|
104
|
-
"type": "string",
|
|
105
|
-
"resolvedType": "string",
|
|
106
|
-
"attribute": "heading",
|
|
107
|
-
"required": true,
|
|
108
|
-
"mutable": false,
|
|
109
|
-
"description": "Widget heading shown in the card header."
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
"events": [
|
|
113
|
-
{
|
|
114
|
-
"name": "dsFilterClick",
|
|
115
|
-
"detail": "void",
|
|
116
|
-
"bubbles": true,
|
|
117
|
-
"cancelable": true,
|
|
118
|
-
"composed": true,
|
|
119
|
-
"description": "Emits when the header filter control is activated."
|
|
120
|
-
}
|
|
121
|
-
],
|
|
122
|
-
"methods": [],
|
|
123
|
-
"slots": []
|
|
124
|
-
},
|
|
125
|
-
"props": {
|
|
126
|
-
"cardWidth": {
|
|
127
|
-
"type": "CardDataVizBarWidth",
|
|
128
|
-
"resolvedType": "\"lg\" | \"md\" | \"sm\"",
|
|
129
|
-
"attribute": "card-width",
|
|
130
|
-
"default": "'md'",
|
|
131
|
-
"required": false,
|
|
132
|
-
"mutable": false,
|
|
133
|
-
"description": "Card width token — also sets matching min-height."
|
|
134
|
-
},
|
|
135
|
-
"filterLabel": {
|
|
136
|
-
"type": "string",
|
|
137
|
-
"resolvedType": "string",
|
|
138
|
-
"attribute": "filter-label",
|
|
139
|
-
"default": "'Filter'",
|
|
140
|
-
"required": false,
|
|
141
|
-
"mutable": false
|
|
142
|
-
},
|
|
143
|
-
"heading": {
|
|
144
|
-
"type": "string",
|
|
145
|
-
"resolvedType": "string",
|
|
146
|
-
"attribute": "heading",
|
|
147
|
-
"required": true,
|
|
148
|
-
"mutable": false,
|
|
149
|
-
"description": "Widget heading shown in the card header."
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
"events": [
|
|
153
|
-
{
|
|
154
|
-
"name": "dsFilterClick",
|
|
155
|
-
"detail": "void",
|
|
156
|
-
"bubbles": true,
|
|
157
|
-
"cancelable": true,
|
|
158
|
-
"composed": true,
|
|
159
|
-
"description": "Emits when the header filter control is activated."
|
|
160
|
-
}
|
|
161
|
-
],
|
|
162
|
-
"methods": [],
|
|
163
|
-
"slots": [],
|
|
164
|
-
"exports": {
|
|
165
|
-
"customElement": "ds-card-data-viz-bar",
|
|
166
|
-
"react": "DsCardDataVizBar",
|
|
167
|
-
"angular": "DsCardDataVizBar"
|
|
168
|
-
},
|
|
169
|
-
"consumption": {
|
|
170
|
-
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
171
|
-
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
172
|
-
"customElements": {
|
|
173
|
-
"import": "import '@ds-mo/ui/dist/components/ds-card-data-viz-bar.js';",
|
|
174
|
-
"example": "<ds-card-data-viz-bar></ds-card-data-viz-bar>"
|
|
175
|
-
},
|
|
176
|
-
"react": {
|
|
177
|
-
"import": "import { DsCardDataVizBar } from '@ds-mo/ui/react';",
|
|
178
|
-
"example": "<DsCardDataVizBar />"
|
|
179
|
-
},
|
|
180
|
-
"angular": {
|
|
181
|
-
"import": "import { DsCardDataVizBar } from '@ds-mo/ui/angular/ds-card-data-viz-bar';",
|
|
182
|
-
"example": "<ds-card-data-viz-bar></ds-card-data-viz-bar>"
|
|
183
|
-
},
|
|
184
|
-
"peerDependencies": {
|
|
185
|
-
"required": [
|
|
186
|
-
"@ds-mo/tokens ^5.0.0",
|
|
187
|
-
"@ds-mo/icons ^6.4.0"
|
|
188
|
-
],
|
|
189
|
-
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
},
|
|
193
|
-
"dependencies": [
|
|
194
|
-
"@ds-mo/ui",
|
|
195
|
-
"@ds-mo/tokens"
|
|
196
|
-
],
|
|
197
|
-
"registryDependencies": [
|
|
198
|
-
"button-unfilled",
|
|
199
|
-
"card-shell-data-viz"
|
|
200
|
-
],
|
|
201
|
-
"files": [
|
|
202
|
-
{
|
|
203
|
-
"path": "src/wc/components/CardDataVizBar/CardDataVizBar.css",
|
|
204
|
-
"content": "@import '../../utils/data-viz-card-layout.css';\n\n:host {\n display: contents;\n}\n",
|
|
205
|
-
"type": "registry:ui"
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
"path": "src/wc/components/CardDataVizBar/CardDataVizBar.tsx",
|
|
209
|
-
"content": "import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { CardShellDataVizWidth } from '../CardShellDataViz/CardShellDataViz';\n\nexport type CardDataVizBarWidth = CardShellDataVizWidth;\n\ntype StaticLegendSlot = HTMLElement & {\n highlightOnHover?: boolean;\n};\n\n/**\n * Bar-chart data-viz card — dedicated `ds-card-shell-data-viz` chrome with a fill chart\n * region and an optional, content-sized static legend.\n */\n@Component({\n tag: 'ds-card-data-viz-bar',\n styleUrl: 'CardDataVizBar.css',\n scoped: true,\n})\nexport class CardDataVizBar {\n @Element() el!: HTMLElement;\n\n /** Widget heading shown in the card header. */\n @Prop() heading!: string;\n\n /** Card width token — also sets matching min-height. */\n @Prop() cardWidth: CardDataVizBarWidth = 'md';\n @Prop() filterLabel: string = 'Filter';\n\n /** Emits when the header filter control is activated. */\n @Event() dsFilterClick!: EventEmitter<void>;\n\n @State() private hasChartSlot = false;\n @State() private hasLegendSlot = false;\n\n componentWillRender() {\n this.hasChartSlot = !!this.el.querySelector('[slot=\"chart\"]');\n this.hasLegendSlot = !!this.el.querySelector('[slot=\"legend\"]');\n }\n\n componentDidRender() {\n const legend = this.el.querySelector(\n 'ds-chart-legend[slot=\"legend\"]'\n ) as StaticLegendSlot | null;\n if (!legend) return;\n legend.setAttribute('highlight-on-hover', 'false');\n if ('highlightOnHover' in legend) legend.highlightOnHover = false;\n }\n\n private handleFilterClick = () => {\n this.dsFilterClick.emit();\n };\n\n render() {\n return (\n <Host class=\"card-data-viz-bar\">\n <ds-card-shell-data-viz heading={this.heading} cardWidth={this.cardWidth}>\n <ds-button-unfilled\n slot=\"actions\"\n variant=\"icon\"\n type=\"button\"\n icon=\"Filters\"\n aria-label={this.filterLabel}\n onDsClick={this.handleFilterClick}\n />\n <div class=\"ds-data-viz-card-layout\">\n {this.hasChartSlot && (\n <div class=\"ds-data-viz-card-chart\">\n <slot name=\"chart\" />\n </div>\n )}\n {this.hasLegendSlot && (\n <div class=\"ds-data-viz-card-legend\">\n <slot name=\"legend\" />\n </div>\n )}\n </div>\n </ds-card-shell-data-viz>\n </Host>\n );\n }\n}\n",
|
|
210
|
-
"type": "registry:ui"
|
|
211
|
-
}
|
|
212
|
-
]
|
|
213
|
-
}
|