@ds-mo/ui 12.8.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 +260 -1104
- 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-DB9XJm2c.js → p-6qXDqCj_.js} +2 -2
- package/dist/components/{p-CPwpgUWT.js → p-Ay1AX7Ql.js} +2 -2
- package/dist/components/p-Ay1AX7Ql.js.map +1 -0
- 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-DhLmoCe_.js → p-B1cbQ0SG.js} +2 -2
- package/dist/components/p-BBxcMVqk.js +2 -0
- package/dist/components/p-BBxcMVqk.js.map +1 -0
- package/dist/components/{p-BKOlvCGS.js → p-BUZXuod2.js} +2 -2
- package/dist/components/{p-Utr23NC-.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-BlHzmszE.js → p-BroVnDzE.js} +2 -2
- package/dist/components/{p-BFRMwl93.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-ukB-dPOK.js → p-CBazaRlE.js} +2 -2
- package/dist/components/{p-CNgPwd11.js → p-CHuh71-U.js} +2 -2
- package/dist/components/{p-D9u1_OEZ.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-CsX3ICz7.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-38PfdMkF.js → p-DeQwkbT1.js} +2 -2
- package/dist/components/{p-Vdufoj7G.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-69lHhJiX.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 +1006 -2356
- 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 +87 -16
- 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 +309 -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/mcp-data/registry/text.json +2 -2
- 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 +25 -3
- package/dist/types/components/CardOverview/card-overview-controller.d.ts +16 -0
- package/dist/types/components/CardOverview/card-overview-types.d.ts +2 -0
- package/dist/types/components/CardOverview/index.d.ts +1 -1
- 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 -5
- 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 +238 -895
- package/dist/types/shell/index.d.ts +5 -13
- package/dist/types/shell/shell-responsive.d.ts +2 -1
- package/dist/types/utils/anchored-position-controller.d.ts +9 -0
- 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-B6NvVdeO.js +0 -2
- package/dist/components/p-B6NvVdeO.js.map +0 -1
- package/dist/components/p-B6vE3ujd.js +0 -2
- package/dist/components/p-B6vE3ujd.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-BXaieghV.js +0 -2
- package/dist/components/p-BXaieghV.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-By_s1wNN.js +0 -2
- package/dist/components/p-By_s1wNN.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-CH3w-P2H.js +0 -2
- package/dist/components/p-CH3w-P2H.js.map +0 -1
- package/dist/components/p-CNjOyUQu.js +0 -2
- package/dist/components/p-CNjOyUQu.js.map +0 -1
- package/dist/components/p-CPwpgUWT.js.map +0 -1
- package/dist/components/p-CU2673IJ.js +0 -2
- package/dist/components/p-CU2673IJ.js.map +0 -1
- package/dist/components/p-CsX3ICz7.js.map +0 -1
- package/dist/components/p-D0e77tkd.js +0 -2
- package/dist/components/p-D0e77tkd.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-D1bNvIpb.js +0 -2
- package/dist/components/p-D1bNvIpb.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-DIFUsoM-.js +0 -2
- package/dist/components/p-DIFUsoM-.js.map +0 -1
- package/dist/components/p-DjbTFy2B.js.map +0 -1
- package/dist/components/p-DmAHufd5.js +0 -2
- package/dist/components/p-DmAHufd5.js.map +0 -1
- package/dist/components/p-DzM3SzPz.js +0 -2
- package/dist/components/p-DzM3SzPz.js.map +0 -1
- package/dist/components/p-G3qIxpQj.js +0 -2
- package/dist/components/p-G3qIxpQj.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-huw1oRbt.js +0 -2
- package/dist/components/p-huw1oRbt.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-DB9XJm2c.js.map → p-6qXDqCj_.js.map} +0 -0
- /package/dist/components/{p-DhLmoCe_.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-Utr23NC-.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-BlHzmszE.js.map → p-BroVnDzE.js.map} +0 -0
- /package/dist/components/{p-BFRMwl93.js.map → p-BsoqsbBh.js.map} +0 -0
- /package/dist/components/{p-ukB-dPOK.js.map → p-CBazaRlE.js.map} +0 -0
- /package/dist/components/{p-CNgPwd11.js.map → p-CHuh71-U.js.map} +0 -0
- /package/dist/components/{p-D9u1_OEZ.js.map → p-CMWata9g.js.map} +0 -0
- /package/dist/components/{p-38PfdMkF.js.map → p-DeQwkbT1.js.map} +0 -0
- /package/dist/components/{p-Vdufoj7G.js.map → p-Df17mJqI.js.map} +0 -0
- /package/dist/components/{p-69lHhJiX.js.map → p-ohsLFap_.js.map} +0 -0
package/README.md
CHANGED
|
@@ -76,6 +76,7 @@ co-located component agent JSON and executable patterns.
|
|
|
76
76
|
|
|
77
77
|
- [Storybook introduction and usage](src/docs/Introduction.mdx)
|
|
78
78
|
- [Framework integration](docs/framework-integration.md)
|
|
79
|
+
- [v13 migration guide](docs/migrations/v13.md)
|
|
79
80
|
- [Maintainer documentation router](docs/index.md)
|
|
80
81
|
- [Repository instructions](AGENTS.md)
|
|
81
82
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schemaVersion":1,"package":"@ds-mo/ui","version":"13.0.0","components":65,"digest":"6856eab5a9588cd7e3571d4f5eaa15f389ac205ae692f0f84b5cfb164d24e64d","completedAt":"2026-07-30T22:46:20.194Z"}
|
package/dist/agent-patterns.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"package": "@ds-mo/ui",
|
|
4
|
-
"packageVersion": "
|
|
4
|
+
"packageVersion": "13.0.0",
|
|
5
5
|
"kind": "patterns",
|
|
6
6
|
"entries": [
|
|
7
7
|
{
|
|
@@ -66,13 +66,13 @@
|
|
|
66
66
|
"react": {
|
|
67
67
|
"status": "planned",
|
|
68
68
|
"references": [
|
|
69
|
-
"
|
|
69
|
+
"docs/framework-integration.md"
|
|
70
70
|
]
|
|
71
71
|
},
|
|
72
72
|
"angular": {
|
|
73
73
|
"status": "planned",
|
|
74
74
|
"references": [
|
|
75
|
-
"
|
|
75
|
+
"docs/framework-integration.md"
|
|
76
76
|
]
|
|
77
77
|
}
|
|
78
78
|
},
|
|
@@ -83,111 +83,101 @@
|
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"id": "pattern:application-shell",
|
|
86
|
-
"status": "
|
|
87
|
-
"summary": "
|
|
86
|
+
"status": "stable",
|
|
87
|
+
"summary": "Standard authenticated application architecture: one managed ShellApp receives router-owned navigation and page data plus product-owned tool data and persistent slotted content.",
|
|
88
88
|
"useWhen": [
|
|
89
|
-
"Building
|
|
90
|
-
"
|
|
91
|
-
"
|
|
89
|
+
"Building a standard authenticated application or workspace with CompoMo.",
|
|
90
|
+
"Navigation, page chrome, global tools, and routed content must adapt across desktop, tablet, and mobile without parallel implementations.",
|
|
91
|
+
"Tool owners and routed content must preserve element identity while their responsive presentation changes."
|
|
92
92
|
],
|
|
93
93
|
"avoidWhen": [
|
|
94
94
|
"Building authentication, onboarding, public, marketing, print, error, or intentionally focused full-screen experiences.",
|
|
95
|
-
"The
|
|
96
|
-
"A
|
|
95
|
+
"The content is already rendered inside a ShellApp.",
|
|
96
|
+
"A specialized product has a verified reason to own every chrome component through composition=\"slotted\"."
|
|
97
97
|
],
|
|
98
98
|
"components": [
|
|
99
99
|
{
|
|
100
100
|
"component": "component:ds-shell-app",
|
|
101
|
-
"role": "
|
|
101
|
+
"role": "Standard managed owner of responsive application chrome, global-surface state, focus restoration, and stable application content slots.",
|
|
102
102
|
"required": true
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
105
|
"component": "component:ds-panel-nav",
|
|
106
|
-
"role": "
|
|
107
|
-
"required":
|
|
106
|
+
"role": "Managed desktop and tablet primary-navigation presentation; remains public for advanced slotted shells.",
|
|
107
|
+
"required": false
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"component": "component:ds-bar-nav",
|
|
111
|
-
"role": "
|
|
112
|
-
"required":
|
|
111
|
+
"role": "Managed desktop and tablet route-section presentation; remains public for advanced slotted shells.",
|
|
112
|
+
"required": false
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"component": "component:ds-shell-tools",
|
|
116
|
-
"role": "
|
|
117
|
-
"required":
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"component": "component:ds-mobile-sheet-nav",
|
|
121
|
-
"role": "Browses Dashboard and Settings primary areas in the mobile stage without navigating until an area is selected.",
|
|
122
|
-
"required": true
|
|
116
|
+
"role": "Managed responsive adapter that presents persistent product-owned tool views through PanelTools or the mobile stage.",
|
|
117
|
+
"required": false
|
|
123
118
|
},
|
|
124
119
|
{
|
|
125
120
|
"component": "component:ds-shell-page",
|
|
126
|
-
"role": "
|
|
127
|
-
"required":
|
|
121
|
+
"role": "Managed routed-page boundary with desktop BarTitle and mobile MobileHeader presentations.",
|
|
122
|
+
"required": false
|
|
128
123
|
},
|
|
129
124
|
{
|
|
130
|
-
"component": "component:ds-mobile-
|
|
131
|
-
"role": "
|
|
132
|
-
"required":
|
|
125
|
+
"component": "component:ds-mobile-sheet-nav",
|
|
126
|
+
"role": "Managed mobile browser for Dashboard and Settings destinations.",
|
|
127
|
+
"required": false
|
|
133
128
|
},
|
|
134
129
|
{
|
|
135
130
|
"component": "component:ds-mobile-bar-nav",
|
|
136
|
-
"role": "
|
|
137
|
-
"required":
|
|
131
|
+
"role": "Managed persistent mobile destinations for Menu, current area, Search, Agents, Inbox, and Help.",
|
|
132
|
+
"required": false
|
|
138
133
|
}
|
|
139
134
|
],
|
|
140
135
|
"stateOwnership": [
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
"The application router owns only the routed workspace. Search, Agents, Inbox, and Menu changes never change router history.",
|
|
149
|
-
"PanelNav groups and BarNav dividers visually organize peers and never introduce nested navigation hierarchy."
|
|
136
|
+
"Lab or the consuming application supplies navigation, pageChrome, and tools objects to managed ShellApp.",
|
|
137
|
+
"The application router owns authorization, current URLs, history, route changes, and the routed content placed in ShellApp's default slot.",
|
|
138
|
+
"ShellApp emits stable navigation and page intent events; it never mutates router history.",
|
|
139
|
+
"ShellApp owns responsive mode, PanelNav presentation, tool open state, active tool, mobile Inbox grouping, Menu state, fullscreen presentation, focus restoration, and breakpoint state preservation.",
|
|
140
|
+
"Tool products and routed content are instantiated once by the application in named tool-view and default slots; ShellApp changes presentation without recreating those owners.",
|
|
141
|
+
"The application owns account menus, tool product data, page actions, and the consequences of every emitted intent event.",
|
|
142
|
+
"Use composition=\"slotted\" only when a team intentionally needs to assemble the public lower-level chrome components itself."
|
|
150
143
|
],
|
|
151
144
|
"accessibility": [
|
|
152
|
-
"Render one
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"Preserve keyboard focus and route state across responsive and Dashboard/Settings context changes."
|
|
145
|
+
"Render exactly one managed ShellApp and one active routed main landmark.",
|
|
146
|
+
"Provide visible labels and accessible names in navigation, pageChrome, and tool definitions before passing them to ShellApp.",
|
|
147
|
+
"Handle ShellApp intent events without replacing focusable owners during responsive or fullscreen transitions.",
|
|
148
|
+
"Keep the canonical Search and Help tools available and preserve Inbox unread state when Messages, Stacks, and Activity are grouped on mobile.",
|
|
149
|
+
"Do not override browser keyboard chords when enabling shell shortcuts."
|
|
158
150
|
],
|
|
159
151
|
"responsiveBehavior": [
|
|
160
|
-
"
|
|
161
|
-
"Desktop
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"The routed workspace stays mounted and is only concealed and inert while a global surface or navigation pane occupies the stage.",
|
|
166
|
-
"Messages, Stacks, and Activity map to mobile Inbox and preserve the selected segment across destination and breakpoint changes."
|
|
152
|
+
"ShellApp automatically resolves desktop at 1200px and wider, tablet from 768px through 1199px, and mobile below 768px.",
|
|
153
|
+
"Desktop and tablet use PanelNav, BarNav, PanelTools through ShellTools, and ShellPage chrome.",
|
|
154
|
+
"Mobile uses MobileSheetNav, MobileBarNav, MobileHeader, ShellTools mobile presentation, and the same routed content owner.",
|
|
155
|
+
"Switching breakpoints changes presentation and inert state without recreating route or tool elements.",
|
|
156
|
+
"Messages, Stacks, and Activity use explicit mobile grouping metadata and default to the canonical Inbox recipe."
|
|
167
157
|
],
|
|
168
158
|
"implementations": {
|
|
169
159
|
"customElements": {
|
|
170
160
|
"status": "verified",
|
|
171
161
|
"recipes": [
|
|
172
162
|
{
|
|
173
|
-
"id": "
|
|
174
|
-
"title": "
|
|
175
|
-
"summary": "
|
|
163
|
+
"id": "managed-shell",
|
|
164
|
+
"title": "Managed application shell",
|
|
165
|
+
"summary": "Supply typed data and persistent application-owned content to one ShellApp.",
|
|
176
166
|
"files": [
|
|
177
167
|
{
|
|
178
168
|
"path": "app-shell.html",
|
|
179
169
|
"language": "html",
|
|
180
|
-
"content": "<ds-shell-app id=\"shell\"
|
|
170
|
+
"content": "<ds-shell-app id=\"shell\">\n <app-search slot=\"search-view\"></app-search>\n <app-agents slot=\"agents-view\"></app-agents>\n <app-messages slot=\"messages-view\"></app-messages>\n <app-stacks slot=\"stacks-view\"></app-stacks>\n <app-activity slot=\"activity-view\"></app-activity>\n <app-help slot=\"help-view\"></app-help>\n <app-route-content><!-- router-owned page --></app-route-content>\n</ds-shell-app>"
|
|
181
171
|
},
|
|
182
172
|
{
|
|
183
173
|
"path": "app-shell.ts",
|
|
184
174
|
"language": "typescript",
|
|
185
|
-
"content": "import '@ds-mo/ui/components/ds-shell-app.js'\nimport
|
|
175
|
+
"content": "import '@ds-mo/ui/components/ds-shell-app.js'\nimport { PANEL_TOOLS_DEFAULT_ITEMS } from '@ds-mo/ui/shell'\nimport type { ShellNavigationConfig, ShellPageChromeConfig, ShellToolsConfig } from '@ds-mo/ui/shell'\n\nconst shell = document.querySelector<HTMLDsShellAppElement>('#shell')!\nconst navigation: ShellNavigationConfig = {\n groups: [{ items: [{ id: 'overview', icon: 'Home', label: 'Overview', href: '/dashboard/overview' }] }],\n dashboardGroups: [{ items: [{ id: 'overview', icon: 'Home', label: 'Overview', href: '/dashboard/overview' }] }],\n currentUrl: location.pathname,\n browseContext: 'dashboard',\n routerMode: 'event',\n userName: 'User Name',\n userInitial: 'U',\n}\nconst pageChrome: ShellPageChromeConfig = {\n heading: 'Overview',\n tabs: [{ id: 'overview', label: 'Overview', href: '/dashboard/overview' }],\n value: 'overview',\n currentUrl: location.pathname,\n}\nconst tools: ShellToolsConfig = { items: PANEL_TOOLS_DEFAULT_ITEMS }\nshell.navigation = navigation\nshell.pageChrome = pageChrome\nshell.tools = tools\nshell.addEventListener('dsNavSelect', event => appRouter.navigate(event.detail))\nshell.addEventListener('dsTabChange', event => appRouter.navigate(event.detail))"
|
|
186
176
|
}
|
|
187
177
|
],
|
|
188
178
|
"notes": [
|
|
189
|
-
"
|
|
190
|
-
"
|
|
179
|
+
"Update navigation and pageChrome together after router navigation.",
|
|
180
|
+
"Keep every tool owner and the router-owned page mounted in its slot."
|
|
191
181
|
]
|
|
192
182
|
}
|
|
193
183
|
],
|
|
@@ -200,23 +190,24 @@
|
|
|
200
190
|
"status": "verified",
|
|
201
191
|
"recipes": [
|
|
202
192
|
{
|
|
203
|
-
"id": "
|
|
204
|
-
"title": "
|
|
205
|
-
"summary": "
|
|
193
|
+
"id": "managed-shell",
|
|
194
|
+
"title": "Managed React application shell",
|
|
195
|
+
"summary": "Use the generated ShellApp wrapper with memoized router-owned configuration and stable children.",
|
|
206
196
|
"files": [
|
|
207
197
|
{
|
|
208
198
|
"path": "AppShell.tsx",
|
|
209
199
|
"language": "tsx",
|
|
210
|
-
"content": "import {
|
|
200
|
+
"content": "import { useMemo } from 'react'\nimport { DsShellApp } from '@ds-mo/ui/react'\nimport { PANEL_TOOLS_DEFAULT_ITEMS } from '@ds-mo/ui/shell'\nimport type { ShellNavigationConfig, ShellPageChromeConfig } from '@ds-mo/ui/shell'\n\nexport function AppShell({ route, navigate, children }) {\n const navigation = useMemo<ShellNavigationConfig>(() => ({ groups: route.groups, dashboardGroups: route.dashboardGroups, settingsGroups: route.settingsGroups, currentUrl: route.url, browseContext: route.context, routerMode: 'event', userName: route.user.name, userInitial: route.user.initial }), [route])\n const pageChrome = useMemo<ShellPageChromeConfig>(() => ({ heading: route.heading, tabs: route.sections, value: route.section, currentUrl: route.url }), [route])\n return <DsShellApp navigation={navigation} pageChrome={pageChrome} tools={{ items: PANEL_TOOLS_DEFAULT_ITEMS }} onDsNavSelect={event => navigate(event.detail)} onDsTabChange={event => navigate(event.detail)}>\n <SearchProduct slot=\"search-view\" />\n <AgentsProduct slot=\"agents-view\" />\n <InboxProduct slot=\"messages-view\" />\n <HelpProduct slot=\"help-view\" />\n {children}\n </DsShellApp>\n}"
|
|
211
201
|
}
|
|
212
202
|
],
|
|
213
203
|
"notes": [
|
|
214
|
-
"
|
|
204
|
+
"Memoize structured configuration so unrelated product renders do not produce artificial shell input changes.",
|
|
205
|
+
"Do not conditionally recreate routed or tool children when responsive mode changes."
|
|
215
206
|
]
|
|
216
207
|
}
|
|
217
208
|
],
|
|
218
209
|
"references": [
|
|
219
|
-
"src/
|
|
210
|
+
"src/wc/components/ShellApp/ShellApp.mdx",
|
|
220
211
|
"docs/framework-integration.md"
|
|
221
212
|
]
|
|
222
213
|
},
|
|
@@ -224,23 +215,24 @@
|
|
|
224
215
|
"status": "verified",
|
|
225
216
|
"recipes": [
|
|
226
217
|
{
|
|
227
|
-
"id": "
|
|
228
|
-
"title": "
|
|
229
|
-
"summary": "
|
|
218
|
+
"id": "managed-shell",
|
|
219
|
+
"title": "Managed Angular application shell",
|
|
220
|
+
"summary": "Bind router-derived object properties to the generated standalone ShellApp adapter.",
|
|
230
221
|
"files": [
|
|
231
222
|
{
|
|
232
223
|
"path": "app-shell.component.html",
|
|
233
224
|
"language": "html",
|
|
234
|
-
"content": "<ds-shell-app [
|
|
225
|
+
"content": "<ds-shell-app [navigation]=\"navigation\" [pageChrome]=\"pageChrome\" [tools]=\"tools\" (dsNavSelect)=\"navigate($event.detail)\" (dsTabChange)=\"navigate($event.detail)\">\n <app-search slot=\"search-view\" />\n <app-agents slot=\"agents-view\" />\n <app-messages slot=\"messages-view\" />\n <app-help slot=\"help-view\" />\n <router-outlet />\n</ds-shell-app>"
|
|
235
226
|
},
|
|
236
227
|
{
|
|
237
228
|
"path": "app-shell.component.ts",
|
|
238
229
|
"language": "typescript",
|
|
239
|
-
"content": "import { Component } from '@angular/core'\nimport { RouterOutlet } from '@angular/router'\nimport
|
|
230
|
+
"content": "import { Component } from '@angular/core'\nimport { Router, RouterOutlet } from '@angular/router'\nimport { DsShellApp } from '@ds-mo/ui/angular/ds-shell-app'\nimport { PANEL_TOOLS_DEFAULT_ITEMS } from '@ds-mo/ui/shell'\nimport type { ShellNavigationConfig, ShellPageChromeConfig, ShellToolsConfig } from '@ds-mo/ui/shell'\n\n@Component({ selector: 'app-shell', standalone: true, imports: [DsShellApp, RouterOutlet], templateUrl: './app-shell.component.html' })\nexport class AppShellComponent {\n navigation: ShellNavigationConfig = { groups: [], dashboardGroups: [], settingsGroups: [], routerMode: 'event' }\n pageChrome: ShellPageChromeConfig = { heading: '' }\n tools: ShellToolsConfig = { items: PANEL_TOOLS_DEFAULT_ITEMS }\n constructor(private router: Router) {}\n navigate(target: string) { void this.router.navigateByUrl(target) }\n}"
|
|
240
231
|
}
|
|
241
232
|
],
|
|
242
233
|
"notes": [
|
|
243
|
-
"
|
|
234
|
+
"Resolve and replace navigation and pageChrome on completed router navigation.",
|
|
235
|
+
"The router outlet and tool components remain application-owned slots."
|
|
244
236
|
]
|
|
245
237
|
}
|
|
246
238
|
],
|
|
@@ -252,7 +244,8 @@
|
|
|
252
244
|
},
|
|
253
245
|
"references": [
|
|
254
246
|
"src/wc/components/ShellApp/ShellApp.mdx",
|
|
255
|
-
"docs/framework-integration.md"
|
|
247
|
+
"docs/framework-integration.md",
|
|
248
|
+
"docs/migrations/v13.md"
|
|
256
249
|
]
|
|
257
250
|
},
|
|
258
251
|
{
|
|
@@ -335,13 +328,13 @@
|
|
|
335
328
|
"react": {
|
|
336
329
|
"status": "planned",
|
|
337
330
|
"references": [
|
|
338
|
-
"
|
|
331
|
+
"docs/framework-integration.md"
|
|
339
332
|
]
|
|
340
333
|
},
|
|
341
334
|
"angular": {
|
|
342
335
|
"status": "planned",
|
|
343
336
|
"references": [
|
|
344
|
-
"
|
|
337
|
+
"docs/framework-integration.md"
|
|
345
338
|
]
|
|
346
339
|
}
|
|
347
340
|
},
|
|
@@ -461,8 +454,8 @@
|
|
|
461
454
|
}
|
|
462
455
|
],
|
|
463
456
|
"references": [
|
|
464
|
-
"
|
|
465
|
-
"src/
|
|
457
|
+
"docs/framework-integration.md",
|
|
458
|
+
"src/wc/components/Menu/Menu.stories.ts"
|
|
466
459
|
]
|
|
467
460
|
},
|
|
468
461
|
"angular": {
|
|
@@ -491,8 +484,8 @@
|
|
|
491
484
|
}
|
|
492
485
|
],
|
|
493
486
|
"references": [
|
|
494
|
-
"
|
|
495
|
-
"src/
|
|
487
|
+
"docs/framework-integration.md",
|
|
488
|
+
"src/wc/components/Menu/Menu.stories.ts"
|
|
496
489
|
]
|
|
497
490
|
}
|
|
498
491
|
},
|
|
@@ -505,135 +498,131 @@
|
|
|
505
498
|
{
|
|
506
499
|
"id": "pattern:shell-page",
|
|
507
500
|
"status": "stable",
|
|
508
|
-
"summary": "
|
|
501
|
+
"summary": "Supply route-owned page chrome and content to managed ShellApp, which composes ShellPage, BarTitle, and MobileHeader without duplicate page state.",
|
|
509
502
|
"useWhen": [
|
|
510
|
-
"A standard authenticated route needs shared
|
|
511
|
-
"The page
|
|
503
|
+
"A standard authenticated route needs a shared heading, sections, depth, actions, sticky compaction, and content inset.",
|
|
504
|
+
"The routed page must keep one content owner while desktop and mobile header presentations differ."
|
|
512
505
|
],
|
|
513
506
|
"avoidWhen": [
|
|
514
507
|
"The experience does not use the standard authenticated ShellApp layout.",
|
|
515
|
-
"The content belongs to a drawer, modal, card, or
|
|
516
|
-
"
|
|
508
|
+
"The content belongs to a drawer, modal, card, or global tool pane.",
|
|
509
|
+
"Another route owner already supplies the active ShellApp pageChrome."
|
|
517
510
|
],
|
|
518
511
|
"components": [
|
|
519
512
|
{
|
|
520
513
|
"component": "component:ds-shell-app",
|
|
521
|
-
"role": "
|
|
514
|
+
"role": "Receives pageChrome and persistent routed content, then owns responsive page presentation.",
|
|
522
515
|
"required": true
|
|
523
516
|
},
|
|
524
517
|
{
|
|
525
518
|
"component": "component:ds-shell-page",
|
|
526
|
-
"role": "
|
|
527
|
-
"required":
|
|
519
|
+
"role": "Managed internal page boundary; remains public for advanced slotted ShellApp composition.",
|
|
520
|
+
"required": false
|
|
528
521
|
},
|
|
529
522
|
{
|
|
530
523
|
"component": "component:ds-bar-title",
|
|
531
|
-
"role": "
|
|
532
|
-
"required":
|
|
524
|
+
"role": "Managed desktop/tablet page-header presentation; remains public for advanced slotted composition.",
|
|
525
|
+
"required": false
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"component": "component:ds-mobile-header",
|
|
529
|
+
"role": "Managed mobile page-header presentation using the same route-owned pageChrome data.",
|
|
530
|
+
"required": false
|
|
533
531
|
}
|
|
534
532
|
],
|
|
535
533
|
"stateOwnership": [
|
|
536
|
-
"
|
|
537
|
-
"
|
|
538
|
-
"
|
|
539
|
-
"
|
|
534
|
+
"The router owns heading copy, selected section, depth, available actions, route data, and product outcomes.",
|
|
535
|
+
"The application replaces pageChrome from completed route state and handles ShellApp page intent events.",
|
|
536
|
+
"ShellApp owns ShellPage, BarTitle, MobileHeader, the content scroller, sticky presentation, and responsive switching.",
|
|
537
|
+
"The default slot contains application-owned routed content and is not recreated for header compaction or breakpoint changes.",
|
|
538
|
+
"Use a directly slotted ShellPage only inside composition=\"slotted\"."
|
|
540
539
|
],
|
|
541
540
|
"accessibility": [
|
|
542
|
-
"
|
|
543
|
-
"Provide one
|
|
544
|
-
"
|
|
545
|
-
"
|
|
541
|
+
"Keep exactly one active routed main landmark, supplied by the managed ShellPage.",
|
|
542
|
+
"Provide one concise route heading and destination-specific Back and action labels through pageChrome.",
|
|
543
|
+
"Keep route loading, error, empty, success, and validation communication in the default page-content slot.",
|
|
544
|
+
"Handle section and Back intent through the router without replacing focused tool or page owners unnecessarily."
|
|
546
545
|
],
|
|
547
546
|
"responsiveBehavior": [
|
|
548
|
-
"
|
|
549
|
-
"
|
|
547
|
+
"ShellApp derives the desktop BarTitle and mobile MobileHeader from the same pageChrome object.",
|
|
548
|
+
"Route-level sections remain pageChrome tabs; subordinate local views use subsections.",
|
|
550
549
|
"Use contentInset none only for deliberately full-bleed products such as maps and canvases.",
|
|
551
|
-
"
|
|
550
|
+
"The routed content owner remains mounted while header presentation compacts or changes breakpoint."
|
|
552
551
|
],
|
|
553
552
|
"implementations": {
|
|
554
553
|
"customElements": {
|
|
555
554
|
"status": "verified",
|
|
556
555
|
"recipes": [
|
|
557
556
|
{
|
|
558
|
-
"id": "
|
|
559
|
-
"title": "
|
|
560
|
-
"summary": "
|
|
557
|
+
"id": "managed-page-chrome",
|
|
558
|
+
"title": "Managed routed page chrome",
|
|
559
|
+
"summary": "Assign route state to ShellApp and leave page structure to the managed composition.",
|
|
561
560
|
"files": [
|
|
562
561
|
{
|
|
563
|
-
"path": "page.
|
|
564
|
-
"language": "html",
|
|
565
|
-
"content": "<ds-shell-app>\n <ds-shell-page header-capacity=\"roomy\">\n <ds-bar-title\n id=\"drivers-header\"\n slot=\"header\"\n heading=\"Drivers\"\n value=\"active\"\n ></ds-bar-title>\n <section aria-label=\"Driver results\">Page content</section>\n </ds-shell-page>\n</ds-shell-app>"
|
|
566
|
-
},
|
|
567
|
-
{
|
|
568
|
-
"path": "page.ts",
|
|
562
|
+
"path": "drivers-page.ts",
|
|
569
563
|
"language": "typescript",
|
|
570
|
-
"content": "import
|
|
564
|
+
"content": "import type { ShellPageChromeConfig } from '@ds-mo/ui/shell'\n\nconst shell = document.querySelector<HTMLDsShellAppElement>('ds-shell-app')!\nconst pageChrome: ShellPageChromeConfig = {\n heading: 'Drivers',\n tabs: [{ id: 'active', label: 'Active' }, { id: 'inactive', label: 'Inactive' }],\n value: 'active',\n primaryAction: { id: 'create', label: 'Create driver' },\n}\nshell.pageChrome = pageChrome\nshell.addEventListener('dsTabChange', event => appRouter.navigate(event.detail))\nshell.addEventListener('dsPageAction', event => driverActions.run(event.detail))"
|
|
571
565
|
}
|
|
572
566
|
],
|
|
573
567
|
"notes": [
|
|
574
|
-
"
|
|
575
|
-
"
|
|
568
|
+
"Replace pageChrome after router navigation instead of maintaining duplicate local route selection.",
|
|
569
|
+
"Render routed content in the managed ShellApp default slot."
|
|
576
570
|
]
|
|
577
571
|
}
|
|
578
572
|
],
|
|
579
573
|
"references": [
|
|
580
|
-
"src/wc/components/
|
|
581
|
-
"
|
|
574
|
+
"src/wc/components/ShellApp/ShellApp.stories.ts",
|
|
575
|
+
"src/wc/components/ShellPage/ShellPage.stories.ts"
|
|
582
576
|
]
|
|
583
577
|
},
|
|
584
578
|
"react": {
|
|
585
579
|
"status": "verified",
|
|
586
580
|
"recipes": [
|
|
587
581
|
{
|
|
588
|
-
"id": "
|
|
589
|
-
"title": "React routed page
|
|
590
|
-
"summary": "
|
|
582
|
+
"id": "managed-page-chrome",
|
|
583
|
+
"title": "React managed routed page",
|
|
584
|
+
"summary": "Pass router-derived page chrome to the persistent ShellApp owner.",
|
|
591
585
|
"files": [
|
|
592
586
|
{
|
|
593
|
-
"path": "
|
|
587
|
+
"path": "DriversRoute.tsx",
|
|
594
588
|
"language": "tsx",
|
|
595
|
-
"content": "import
|
|
589
|
+
"content": "import type { ShellPageChromeConfig } from '@ds-mo/ui/shell'\n\nexport const driversPageChrome: ShellPageChromeConfig = {\n heading: 'Drivers',\n tabs: [{ id: 'active', label: 'Active' }, { id: 'inactive', label: 'Inactive' }],\n value: 'active',\n primaryAction: { id: 'create', label: 'Create driver' },\n}\n\nexport function DriversRoute() {\n return <section aria-label=\"Driver results\">Page content</section>\n}"
|
|
596
590
|
}
|
|
597
591
|
],
|
|
598
592
|
"notes": [
|
|
599
|
-
"
|
|
600
|
-
"
|
|
593
|
+
"The persistent application layout supplies driversPageChrome to DsShellApp.",
|
|
594
|
+
"Do not wrap the route in another ShellApp or ShellPage."
|
|
601
595
|
]
|
|
602
596
|
}
|
|
603
597
|
],
|
|
604
598
|
"references": [
|
|
605
|
-
"src/
|
|
606
|
-
"
|
|
599
|
+
"src/wc/components/ShellApp/ShellApp.mdx",
|
|
600
|
+
"docs/framework-integration.md"
|
|
607
601
|
]
|
|
608
602
|
},
|
|
609
603
|
"angular": {
|
|
610
604
|
"status": "verified",
|
|
611
605
|
"recipes": [
|
|
612
606
|
{
|
|
613
|
-
"id": "
|
|
614
|
-
"title": "Angular routed page
|
|
615
|
-
"summary": "
|
|
607
|
+
"id": "managed-page-chrome",
|
|
608
|
+
"title": "Angular managed routed page",
|
|
609
|
+
"summary": "Expose route-owned pageChrome to the persistent shell layout.",
|
|
616
610
|
"files": [
|
|
617
611
|
{
|
|
618
|
-
"path": "drivers-page.
|
|
619
|
-
"language": "html",
|
|
620
|
-
"content": "<ds-shell-page [headerCapacity]=\"headerCapacity\">\n <ds-bar-title\n slot=\"header\"\n heading=\"Drivers\"\n [sections]=\"sections\"\n [value]=\"selectedSection\"\n [primaryAction]=\"primaryAction\"\n (dsSectionChange)=\"selectSection($event.detail)\"\n ></ds-bar-title>\n <router-outlet />\n</ds-shell-page>"
|
|
621
|
-
},
|
|
622
|
-
{
|
|
623
|
-
"path": "drivers-page.component.ts",
|
|
612
|
+
"path": "drivers-page-chrome.ts",
|
|
624
613
|
"language": "typescript",
|
|
625
|
-
"content": "import
|
|
614
|
+
"content": "import type { ShellPageChromeConfig } from '@ds-mo/ui/shell'\n\nexport const DRIVERS_PAGE_CHROME: ShellPageChromeConfig = {\n heading: 'Drivers',\n tabs: [{ id: 'active', label: 'Active' }, { id: 'inactive', label: 'Inactive' }],\n value: 'active',\n primaryAction: { id: 'create', label: 'Create driver' },\n}"
|
|
626
615
|
}
|
|
627
616
|
],
|
|
628
617
|
"notes": [
|
|
629
|
-
"
|
|
630
|
-
"
|
|
618
|
+
"The persistent Angular shell binds the resolved pageChrome object to DsShellApp.",
|
|
619
|
+
"The routed component renders only product content."
|
|
631
620
|
]
|
|
632
621
|
}
|
|
633
622
|
],
|
|
634
623
|
"references": [
|
|
635
|
-
"
|
|
636
|
-
"
|
|
624
|
+
"docs/framework-integration.md",
|
|
625
|
+
"scripts/verify-package-imports.mjs"
|
|
637
626
|
]
|
|
638
627
|
}
|
|
639
628
|
},
|