@ds-mo/ui 14.27.1 → 14.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +28 -18
- package/dist/agent.json +436 -33
- package/dist/angular/ds-button-filled.d.ts +1 -1
- package/dist/angular/ds-button-filled.js +3 -3
- package/dist/angular/ds-button-unfilled.d.ts +1 -1
- package/dist/angular/ds-button-unfilled.js +3 -3
- package/dist/angular/ds-card-navigation.d.ts +20 -0
- package/dist/angular/ds-card-navigation.js +42 -0
- package/dist/angular/ds-card-settings-scope.d.ts +19 -0
- package/dist/angular/ds-card-settings-scope.js +42 -0
- package/dist/angular/ds-menu.d.ts +1 -1
- package/dist/angular/ds-menu.js +3 -3
- package/dist/angular/ds-mobile-bar-nav.d.ts +1 -1
- package/dist/angular/ds-mobile-bar-nav.js +3 -3
- 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-mobile-sheet-nav.d.ts +7 -1
- package/dist/angular/ds-mobile-sheet-nav.js +7 -4
- package/dist/angular/ds-panel-nav.d.ts +1 -1
- package/dist/angular/ds-panel-nav.js +3 -3
- package/dist/angular/ds-panel-tool-header.d.ts +1 -1
- package/dist/angular/ds-panel-tool-header.js +3 -3
- package/dist/angular/ds-panel-tool-search.d.ts +1 -1
- package/dist/angular/ds-panel-tool-search.js +3 -3
- package/dist/angular/ds-table.d.ts +1 -1
- package/dist/angular/ds-table.js +3 -3
- package/dist/angular/ds-tag.d.ts +1 -1
- package/dist/angular/ds-tag.js +3 -3
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +2 -0
- package/dist/angular/proxies.d.ts +2 -0
- package/dist/angular/proxies.js +2 -0
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-navigation.d.ts +11 -0
- package/dist/components/ds-card-navigation.js +2 -0
- package/dist/components/ds-card-navigation.js.map +1 -0
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-overview.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-settings-scope.d.ts +11 -0
- package/dist/components/ds-card-settings-scope.js +2 -0
- package/dist/components/ds-card-settings-scope.js.map +1 -0
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-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-filter-menu.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js.map +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tool-search.js.map +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-paper-texture.js +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-score.js +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table-filter.js +1 -1
- package/dist/components/ds-table-group.js +1 -1
- package/dist/components/ds-table-group.js.map +1 -1
- package/dist/components/ds-table-saved-views.js +1 -1
- package/dist/components/ds-table-saved-views.js.map +1 -1
- package/dist/components/ds-table-search.js +1 -1
- package/dist/components/ds-table-search.js.map +1 -1
- package/dist/components/ds-table-sort.js +1 -1
- package/dist/components/ds-table-sort.js.map +1 -1
- package/dist/components/ds-table-toolbar.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-textarea.js.map +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/p--yvQzZoO.js +2 -0
- package/dist/components/p--yvQzZoO.js.map +1 -0
- package/dist/components/{p-Is1lFmwp.js → p-1gt8QlyW.js} +2 -2
- package/dist/components/p-B5AZd41L.js +2 -0
- package/dist/components/p-B5AZd41L.js.map +1 -0
- package/dist/components/p-B5eMVBlz.js +2 -0
- package/dist/components/p-B5eMVBlz.js.map +1 -0
- package/dist/components/{p-Q7AOgrg5.js → p-BCFpqnAg.js} +2 -2
- package/dist/components/p-BFHWoNH3.js +2 -0
- package/dist/components/{p-BVz-r3g0.js.map → p-BFHWoNH3.js.map} +1 -1
- package/dist/components/p-BGnRFtBa.js +2 -0
- package/dist/components/p-BGnRFtBa.js.map +1 -0
- package/dist/components/p-BIDGQ4tc.js +2 -0
- package/dist/components/p-BIDGQ4tc.js.map +1 -0
- package/dist/components/{p-Ctnm9NJP.js → p-BLTHIBsE.js} +2 -2
- package/dist/components/{p-C68oSTb1.js → p-BXT2opmZ.js} +2 -2
- package/dist/components/p-BZDQLjE0.js +2 -0
- package/dist/components/p-BZDQLjE0.js.map +1 -0
- package/dist/components/{p-Q0dkeoJ6.js → p-BdC7wxhu.js} +2 -2
- package/dist/components/{p-Q0dkeoJ6.js.map → p-BdC7wxhu.js.map} +1 -1
- package/dist/components/p-BfVlFinS.js +2 -0
- package/dist/components/{p-CQjUOHiN.js.map → p-BfVlFinS.js.map} +1 -1
- package/dist/components/{p-DGkn8FwV.js → p-Bl5wd3v3.js} +2 -2
- package/dist/components/p-BmRHJ_jo.js +2 -0
- package/dist/components/p-BmRHJ_jo.js.map +1 -0
- package/dist/components/{p-Bb9dA7sl.js → p-BpB2EF9g.js} +2 -2
- package/dist/components/{p-2wIPUcSL.js → p-BwAWZAHk.js} +2 -2
- package/dist/components/{p-B3sRZBZk.js → p-By5TDnbF.js} +2 -2
- package/dist/components/{p-BVpn_e-r.js → p-CDXcINTO.js} +2 -2
- package/dist/components/p-CDXcINTO.js.map +1 -0
- package/dist/components/{p-B3Z5sQin.js → p-CE8gsv7V.js} +2 -2
- package/dist/components/p-CLcwh1kq.js +2 -0
- package/dist/components/p-CLcwh1kq.js.map +1 -0
- package/dist/components/{p-DW8ssbfI.js → p-CN8PQLZu.js} +2 -2
- package/dist/components/p-CcK3UiTu.js +2 -0
- package/dist/components/{p-1604KY3B.js.map → p-CcK3UiTu.js.map} +1 -1
- package/dist/components/{p-CaF5WCci.js → p-Cocq-utR.js} +2 -2
- package/dist/components/p-Cr5vn5JO.js +2 -0
- package/dist/components/{p-to8BxxgT.js.map → p-Cr5vn5JO.js.map} +1 -1
- package/dist/components/{p-Cf5Ai4xx.js → p-Crd3PEUx.js} +2 -2
- package/dist/components/{p-Cf5Ai4xx.js.map → p-Crd3PEUx.js.map} +1 -1
- package/dist/components/{p-BZiGtBBk.js → p-Ct90k-nz.js} +2 -2
- package/dist/components/p-Cx2dWjaW.js +2 -0
- package/dist/components/p-Cx2dWjaW.js.map +1 -0
- package/dist/components/p-CyoLh8su.js +2 -0
- package/dist/components/p-CyoLh8su.js.map +1 -0
- package/dist/components/{p-BXDLR072.js → p-CysCSinT.js} +2 -2
- package/dist/components/{p-BXDLR072.js.map → p-CysCSinT.js.map} +1 -1
- package/dist/components/p-CzbsTZt7.js.map +1 -1
- package/dist/components/p-D1pPq-y0.js +2 -0
- package/dist/components/p-D1pPq-y0.js.map +1 -0
- package/dist/components/{p-VT-5XDkB.js → p-DDOuPq-N.js} +2 -2
- package/dist/components/{p-DkxOEFHN.js → p-DF8W85Tz.js} +2 -2
- package/dist/components/{p-DDqRCDXh.js → p-DSJSnQ1U.js} +2 -2
- package/dist/components/{p-Cr6pDY-e.js → p-DYK0slTb.js} +2 -2
- package/dist/components/{p-D9wZlB_N.js → p-D_QtZZR8.js} +2 -2
- package/dist/components/{p-Bv6FSDPR.js → p-DbDYEEWq.js} +2 -2
- package/dist/components/{p-BEXkJ9lg.js → p-DnQN0pLp.js} +2 -2
- package/dist/components/{p-DIqAdmui.js → p-FiM3rF7B.js} +2 -2
- package/dist/components/p-GbtafFds.js +2 -0
- package/dist/components/p-GbtafFds.js.map +1 -0
- package/dist/components/{p-WFo1x6dN.js → p-Hzz2j1Je.js} +2 -2
- package/dist/components/{p-B9esvbYk.js → p-K39w53Bw.js} +2 -2
- package/dist/components/p-K39w53Bw.js.map +1 -0
- package/dist/components/{p-DQQsS9Rx.js → p-aMyflqva.js} +2 -2
- package/dist/components/{p-DZcIt_JJ.js → p-dgep63_i.js} +2 -2
- package/dist/components/p-frKsmPQn.js +2 -0
- package/dist/components/p-frKsmPQn.js.map +1 -0
- package/dist/components/{p-BMzn2Cmw.js → p-rSC7ZUpy.js} +2 -2
- package/dist/docs/components.json +1025 -44
- package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +11 -3
- package/dist/lib/components/PanelTools/panel-tools-types.d.ts +2 -0
- package/dist/lib/components/ShellApp/shell-app-types.d.ts +2 -0
- package/dist/lib/shell/index.js.map +1 -1
- package/dist/lib/utils/choice-list.d.ts +2 -0
- package/dist/mcp-data/registry/bar-nav.json +7 -2
- package/dist/mcp-data/registry/bar-title.json +8 -3
- package/dist/mcp-data/registry/button-filled.json +26 -5
- package/dist/mcp-data/registry/button-unfilled.json +27 -6
- package/dist/mcp-data/registry/card-navigation.json +255 -0
- package/dist/mcp-data/registry/card-settings-scope.json +314 -0
- package/dist/mcp-data/registry/filter-menu.json +7 -2
- package/dist/mcp-data/registry/menu.json +21 -2
- package/dist/mcp-data/registry/mobile-bar-nav.json +20 -1
- package/dist/mcp-data/registry/mobile-header.json +23 -3
- package/dist/mcp-data/registry/mobile-section-switcher.json +50 -6
- package/dist/mcp-data/registry/mobile-sheet-nav.json +40 -3
- package/dist/mcp-data/registry/panel-nav.json +27 -6
- package/dist/mcp-data/registry/panel-tool-header.json +23 -2
- package/dist/mcp-data/registry/panel-tool-search.json +23 -2
- package/dist/mcp-data/registry/panel-tools.json +7 -2
- package/dist/mcp-data/registry/registry.json +441 -32
- package/dist/mcp-data/registry/select.json +8 -3
- package/dist/mcp-data/registry/shell-app.json +14 -8
- package/dist/mcp-data/registry/shell-tools.json +7 -2
- package/dist/mcp-data/registry/table-group.json +7 -2
- package/dist/mcp-data/registry/table-saved-views.json +7 -2
- package/dist/mcp-data/registry/table-search.json +7 -2
- package/dist/mcp-data/registry/table-sort.json +7 -2
- package/dist/mcp-data/registry/table.json +24 -3
- package/dist/mcp-data/registry/tag.json +24 -3
- package/dist/react/components.d.ts +2 -0
- package/dist/react/components.js +2 -0
- package/dist/react/ds-card-navigation.d.ts +12 -0
- package/dist/react/ds-card-navigation.js +12 -0
- package/dist/react/ds-card-settings-scope.d.ts +12 -0
- package/dist/react/ds-card-settings-scope.js +12 -0
- package/dist/react/ds-mobile-sheet-nav.d.ts +2 -1
- package/dist/react/ds-mobile-sheet-nav.js +1 -0
- package/dist/styles/table.css +1 -0
- package/dist/types/components/BarTitle/BarTitle.d.ts +3 -0
- package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +11 -3
- package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +11 -5
- package/dist/types/components/CardNavigation/CardNavigation.d.ts +31 -0
- package/dist/types/components/CardNavigation/index.d.ts +2 -0
- package/dist/types/components/CardSettingsScope/CardSettingsScope.d.ts +33 -0
- package/dist/types/components/CardSettingsScope/index.d.ts +2 -0
- package/dist/types/components/Menu/Menu.d.ts +4 -0
- package/dist/types/components/MobileBarNav/MobileBarNav.d.ts +2 -0
- package/dist/types/components/MobileHeader/MobileHeader.d.ts +3 -0
- package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +19 -0
- package/dist/types/components/MobileSheetNav/MobileSheetNav.d.ts +15 -2
- package/dist/types/components/PanelNav/PanelNav.d.ts +4 -1
- package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +2 -0
- package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +2 -0
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +2 -0
- package/dist/types/components/ShellApp/ShellApp.d.ts +5 -2
- package/dist/types/components/ShellApp/shell-app-types.d.ts +2 -0
- package/dist/types/components/Table/Table.d.ts +10 -0
- package/dist/types/components/Table/table-row-view.d.ts +6 -1
- package/dist/types/components/TableSort/TableSort.d.ts +1 -0
- package/dist/types/components/Tag/Tag.d.ts +3 -0
- package/dist/types/components.d.ts +369 -8
- package/dist/types/utils/choice-list.d.ts +2 -0
- package/dist/vue/components.d.ts +2 -0
- package/dist/vue/components.js +2 -0
- package/dist/vue/ds-button-filled.js +1 -0
- package/dist/vue/ds-button-unfilled.js +1 -0
- package/dist/vue/ds-card-navigation.d.ts +3 -0
- package/dist/vue/ds-card-navigation.js +15 -0
- package/dist/vue/ds-card-settings-scope.d.ts +3 -0
- package/dist/vue/ds-card-settings-scope.js +20 -0
- package/dist/vue/ds-menu.js +1 -0
- package/dist/vue/ds-mobile-bar-nav.js +1 -0
- package/dist/vue/ds-mobile-header.js +1 -0
- package/dist/vue/ds-mobile-section-switcher.js +2 -0
- package/dist/vue/ds-mobile-sheet-nav.js +3 -0
- package/dist/vue/ds-panel-nav.js +1 -0
- package/dist/vue/ds-panel-tool-header.js +1 -0
- package/dist/vue/ds-panel-tool-search.js +1 -0
- package/dist/vue/ds-table.js +1 -0
- package/dist/vue/ds-tag.js +1 -0
- package/package.json +1 -1
- package/dist/components/p-1604KY3B.js +0 -2
- package/dist/components/p-537t6oRD.js +0 -2
- package/dist/components/p-537t6oRD.js.map +0 -1
- package/dist/components/p-6_CNVbqa.js +0 -2
- package/dist/components/p-6_CNVbqa.js.map +0 -1
- package/dist/components/p-B9esvbYk.js.map +0 -1
- package/dist/components/p-BIGpc__9.js +0 -2
- package/dist/components/p-BIGpc__9.js.map +0 -1
- package/dist/components/p-BRLDf-NK.js +0 -2
- package/dist/components/p-BRLDf-NK.js.map +0 -1
- package/dist/components/p-BUh2GkPJ.js +0 -2
- package/dist/components/p-BUh2GkPJ.js.map +0 -1
- package/dist/components/p-BVpn_e-r.js.map +0 -1
- package/dist/components/p-BVz-r3g0.js +0 -2
- package/dist/components/p-Bjt_8sLe.js +0 -2
- package/dist/components/p-Bjt_8sLe.js.map +0 -1
- package/dist/components/p-BssZ4SbT.js +0 -2
- package/dist/components/p-BssZ4SbT.js.map +0 -1
- package/dist/components/p-CGQnHNuW.js +0 -2
- package/dist/components/p-CGQnHNuW.js.map +0 -1
- package/dist/components/p-CQjUOHiN.js +0 -2
- package/dist/components/p-Cy1oWIaV.js +0 -2
- package/dist/components/p-Cy1oWIaV.js.map +0 -1
- package/dist/components/p-DQsFmleZ.js +0 -2
- package/dist/components/p-DQsFmleZ.js.map +0 -1
- package/dist/components/p-DlbhmXjH.js +0 -2
- package/dist/components/p-DlbhmXjH.js.map +0 -1
- package/dist/components/p-GEi3hDJQ.js +0 -2
- package/dist/components/p-GEi3hDJQ.js.map +0 -1
- package/dist/components/p-LMmrjmI_.js +0 -2
- package/dist/components/p-LMmrjmI_.js.map +0 -1
- package/dist/components/p-to8BxxgT.js +0 -2
- /package/dist/components/{p-Is1lFmwp.js.map → p-1gt8QlyW.js.map} +0 -0
- /package/dist/components/{p-Q7AOgrg5.js.map → p-BCFpqnAg.js.map} +0 -0
- /package/dist/components/{p-Ctnm9NJP.js.map → p-BLTHIBsE.js.map} +0 -0
- /package/dist/components/{p-C68oSTb1.js.map → p-BXT2opmZ.js.map} +0 -0
- /package/dist/components/{p-DGkn8FwV.js.map → p-Bl5wd3v3.js.map} +0 -0
- /package/dist/components/{p-Bb9dA7sl.js.map → p-BpB2EF9g.js.map} +0 -0
- /package/dist/components/{p-2wIPUcSL.js.map → p-BwAWZAHk.js.map} +0 -0
- /package/dist/components/{p-B3sRZBZk.js.map → p-By5TDnbF.js.map} +0 -0
- /package/dist/components/{p-B3Z5sQin.js.map → p-CE8gsv7V.js.map} +0 -0
- /package/dist/components/{p-DW8ssbfI.js.map → p-CN8PQLZu.js.map} +0 -0
- /package/dist/components/{p-CaF5WCci.js.map → p-Cocq-utR.js.map} +0 -0
- /package/dist/components/{p-BZiGtBBk.js.map → p-Ct90k-nz.js.map} +0 -0
- /package/dist/components/{p-VT-5XDkB.js.map → p-DDOuPq-N.js.map} +0 -0
- /package/dist/components/{p-DkxOEFHN.js.map → p-DF8W85Tz.js.map} +0 -0
- /package/dist/components/{p-DDqRCDXh.js.map → p-DSJSnQ1U.js.map} +0 -0
- /package/dist/components/{p-Cr6pDY-e.js.map → p-DYK0slTb.js.map} +0 -0
- /package/dist/components/{p-D9wZlB_N.js.map → p-D_QtZZR8.js.map} +0 -0
- /package/dist/components/{p-Bv6FSDPR.js.map → p-DbDYEEWq.js.map} +0 -0
- /package/dist/components/{p-BEXkJ9lg.js.map → p-DnQN0pLp.js.map} +0 -0
- /package/dist/components/{p-DIqAdmui.js.map → p-FiM3rF7B.js.map} +0 -0
- /package/dist/components/{p-WFo1x6dN.js.map → p-Hzz2j1Je.js.map} +0 -0
- /package/dist/components/{p-DQQsS9Rx.js.map → p-aMyflqva.js.map} +0 -0
- /package/dist/components/{p-DZcIt_JJ.js.map → p-dgep63_i.js.map} +0 -0
- /package/dist/components/{p-BMzn2Cmw.js.map → p-rSC7ZUpy.js.map} +0 -0
|
@@ -66,7 +66,8 @@
|
|
|
66
66
|
"isInset opts into reduced outer geometry only when Tag is nested inside a control of the same density. The default single inset removes 4px overall; insetDepth double removes 8px overall and falls back to single at xs to protect minimum icon geometry. Semantic styling, typography, icons, gaps, radius, and interaction remain unchanged.",
|
|
67
67
|
"Labels stay on one line and truncate only when the owner supplies a maximum width.",
|
|
68
68
|
"Omitted interactive renders static metadata with no focus, event, or suffix. Interactive adds the fixed ChevronUpDown suffix and emits dsClick without toggling expanded internally.",
|
|
69
|
-
"isInactive disables only the interactive button and applies the shared inactive treatment."
|
|
69
|
+
"isInactive disables only the interactive button and applies the shared inactive treatment.",
|
|
70
|
+
"Interactive tags use surfaceOpen for the associated menu lifecycle, including exit motion. This holds the shared pressed wash without changing the intent that describes the metadata value. Static tags never acquire surface ownership."
|
|
70
71
|
],
|
|
71
72
|
"responsiveBehavior": [
|
|
72
73
|
"The owner selects md, sm, or xs density to match its local layout and owns collection wrapping, overflow, and condensation. Use isInset only for same-density control nesting.",
|
|
@@ -87,6 +88,10 @@
|
|
|
87
88
|
{
|
|
88
89
|
"label": "Storybook examples",
|
|
89
90
|
"path": "src/wc/components/Tag/Tag.stories.ts"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "Surface ownership and trigger state",
|
|
94
|
+
"path": "src/docs/SurfaceOwnership.mdx"
|
|
90
95
|
}
|
|
91
96
|
]
|
|
92
97
|
},
|
|
@@ -199,6 +204,14 @@
|
|
|
199
204
|
"default": "'md'",
|
|
200
205
|
"required": false,
|
|
201
206
|
"mutable": false
|
|
207
|
+
},
|
|
208
|
+
"surfaceOpen": {
|
|
209
|
+
"type": "boolean | undefined",
|
|
210
|
+
"resolvedType": "boolean | undefined",
|
|
211
|
+
"attribute": "surface-open",
|
|
212
|
+
"required": false,
|
|
213
|
+
"mutable": false,
|
|
214
|
+
"description": "Associated menu remains visible, including exit motion. Omission preserves\nthe deprecated expanded-derived wash; explicit false suppresses it."
|
|
202
215
|
}
|
|
203
216
|
},
|
|
204
217
|
"events": [
|
|
@@ -322,6 +335,14 @@
|
|
|
322
335
|
"default": "'md'",
|
|
323
336
|
"required": false,
|
|
324
337
|
"mutable": false
|
|
338
|
+
},
|
|
339
|
+
"surfaceOpen": {
|
|
340
|
+
"type": "boolean | undefined",
|
|
341
|
+
"resolvedType": "boolean | undefined",
|
|
342
|
+
"attribute": "surface-open",
|
|
343
|
+
"required": false,
|
|
344
|
+
"mutable": false,
|
|
345
|
+
"description": "Associated menu remains visible, including exit motion. Omission preserves\nthe deprecated expanded-derived wash; explicit false suppresses it."
|
|
325
346
|
}
|
|
326
347
|
},
|
|
327
348
|
"events": [
|
|
@@ -382,12 +403,12 @@
|
|
|
382
403
|
"files": [
|
|
383
404
|
{
|
|
384
405
|
"path": "src/wc/components/Tag/Tag.css",
|
|
385
|
-
"content": "@import '../../utils/tag-chip.css';\n@import '../../utils/control-density-inset.css';\n\n/* A one-character rounded Tag resolves to a circle at every density. */\n:host {\n min-inline-size: var(--ds-control-height);\n}\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) {\n background-color: var(--color-background-strong-neutral);\n color: var(--color-foreground-medium-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-strong) {\n background-color: var(--color-background-strong-brand);\n color: var(--color-foreground-on-strong-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-strong) {\n background-color: var(--color-background-strong-ai);\n color: var(--color-foreground-medium-ai);\n}\n:host(.tag--intent-negative.tag--contrast-strong) {\n background-color: var(--color-background-strong-negative);\n color: var(--color-foreground-medium-negative);\n}\n:host(.tag--intent-warning.tag--contrast-strong) {\n background-color: var(--color-background-strong-warning);\n color: var(--color-foreground-medium-warning);\n}\n:host(.tag--intent-caution.tag--contrast-strong) {\n background-color: var(--color-background-strong-caution);\n color: var(--color-foreground-medium-caution);\n}\n:host(.tag--intent-positive.tag--contrast-strong) {\n background-color: var(--color-background-strong-positive);\n color: var(--color-foreground-medium-positive);\n}\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) {\n background-color: var(--color-background-bold-neutral);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-brand.tag--contrast-bold) {\n background-color: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-bold) {\n background-color: var(--color-background-bold-ai);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-negative.tag--contrast-bold) {\n background-color: var(--color-background-bold-negative);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-warning.tag--contrast-bold) {\n background-color: var(--color-background-bold-warning);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-caution.tag--contrast-bold) {\n background-color: var(--color-background-bold-caution);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-positive.tag--contrast-bold) {\n background-color: var(--color-background-bold-positive);\n color: var(--color-foreground-on-bold-background-primary);\n}\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) {\n background-color: var(--color-background-medium-neutral);\n color: var(--color-foreground-strong-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-medium) {\n background-color: var(--color-background-medium-brand);\n color: var(--color-foreground-on-medium-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-medium) {\n background-color: var(--color-background-medium-ai);\n color: var(--color-foreground-strong-ai);\n}\n:host(.tag--intent-negative.tag--contrast-medium) {\n background-color: var(--color-background-medium-negative);\n color: var(--color-foreground-strong-negative);\n}\n:host(.tag--intent-warning.tag--contrast-medium) {\n background-color: var(--color-background-medium-warning);\n color: var(--color-foreground-strong-warning);\n}\n:host(.tag--intent-caution.tag--contrast-medium) {\n background-color: var(--color-background-medium-caution);\n color: var(--color-foreground-strong-caution);\n}\n:host(.tag--intent-positive.tag--contrast-medium) {\n background-color: var(--color-background-medium-positive);\n color: var(--color-foreground-strong-positive);\n}\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) {\n background-color: var(--color-background-faint-neutral);\n color: var(--color-foreground-bold-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-faint) {\n background-color: var(--color-background-faint-brand);\n color: var(--color-foreground-bold-brand);\n}\n:host(.tag--intent-ai.tag--contrast-faint) {\n background-color: var(--color-background-faint-ai);\n color: var(--color-foreground-bold-ai);\n}\n:host(.tag--intent-negative.tag--contrast-faint) {\n background-color: var(--color-background-faint-negative);\n color: var(--color-foreground-bold-negative);\n}\n:host(.tag--intent-warning.tag--contrast-faint) {\n background-color: var(--color-background-faint-warning);\n color: var(--color-foreground-bold-warning);\n}\n:host(.tag--intent-caution.tag--contrast-faint) {\n background-color: var(--color-background-faint-caution);\n color: var(--color-foreground-bold-caution);\n}\n:host(.tag--intent-positive.tag--contrast-faint) {\n background-color: var(--color-background-faint-positive);\n color: var(--color-foreground-bold-positive);\n}\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: default;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n
|
|
406
|
+
"content": "@import '../../utils/tag-chip.css';\n@import '../../utils/control-density-inset.css';\n\n/* A one-character rounded Tag resolves to a circle at every density. */\n:host {\n min-inline-size: var(--ds-control-height);\n}\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) {\n background-color: var(--color-background-strong-neutral);\n color: var(--color-foreground-medium-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-strong) {\n background-color: var(--color-background-strong-brand);\n color: var(--color-foreground-on-strong-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-strong) {\n background-color: var(--color-background-strong-ai);\n color: var(--color-foreground-medium-ai);\n}\n:host(.tag--intent-negative.tag--contrast-strong) {\n background-color: var(--color-background-strong-negative);\n color: var(--color-foreground-medium-negative);\n}\n:host(.tag--intent-warning.tag--contrast-strong) {\n background-color: var(--color-background-strong-warning);\n color: var(--color-foreground-medium-warning);\n}\n:host(.tag--intent-caution.tag--contrast-strong) {\n background-color: var(--color-background-strong-caution);\n color: var(--color-foreground-medium-caution);\n}\n:host(.tag--intent-positive.tag--contrast-strong) {\n background-color: var(--color-background-strong-positive);\n color: var(--color-foreground-medium-positive);\n}\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) {\n background-color: var(--color-background-bold-neutral);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-brand.tag--contrast-bold) {\n background-color: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-bold) {\n background-color: var(--color-background-bold-ai);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-negative.tag--contrast-bold) {\n background-color: var(--color-background-bold-negative);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-warning.tag--contrast-bold) {\n background-color: var(--color-background-bold-warning);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-caution.tag--contrast-bold) {\n background-color: var(--color-background-bold-caution);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-positive.tag--contrast-bold) {\n background-color: var(--color-background-bold-positive);\n color: var(--color-foreground-on-bold-background-primary);\n}\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) {\n background-color: var(--color-background-medium-neutral);\n color: var(--color-foreground-strong-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-medium) {\n background-color: var(--color-background-medium-brand);\n color: var(--color-foreground-on-medium-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-medium) {\n background-color: var(--color-background-medium-ai);\n color: var(--color-foreground-strong-ai);\n}\n:host(.tag--intent-negative.tag--contrast-medium) {\n background-color: var(--color-background-medium-negative);\n color: var(--color-foreground-strong-negative);\n}\n:host(.tag--intent-warning.tag--contrast-medium) {\n background-color: var(--color-background-medium-warning);\n color: var(--color-foreground-strong-warning);\n}\n:host(.tag--intent-caution.tag--contrast-medium) {\n background-color: var(--color-background-medium-caution);\n color: var(--color-foreground-strong-caution);\n}\n:host(.tag--intent-positive.tag--contrast-medium) {\n background-color: var(--color-background-medium-positive);\n color: var(--color-foreground-strong-positive);\n}\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) {\n background-color: var(--color-background-faint-neutral);\n color: var(--color-foreground-bold-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-faint) {\n background-color: var(--color-background-faint-brand);\n color: var(--color-foreground-bold-brand);\n}\n:host(.tag--intent-ai.tag--contrast-faint) {\n background-color: var(--color-background-faint-ai);\n color: var(--color-foreground-bold-ai);\n}\n:host(.tag--intent-negative.tag--contrast-faint) {\n background-color: var(--color-background-faint-negative);\n color: var(--color-foreground-bold-negative);\n}\n:host(.tag--intent-warning.tag--contrast-faint) {\n background-color: var(--color-background-faint-warning);\n color: var(--color-foreground-bold-warning);\n}\n:host(.tag--intent-caution.tag--contrast-faint) {\n background-color: var(--color-background-faint-caution);\n color: var(--color-foreground-bold-caution);\n}\n:host(.tag--intent-positive.tag--contrast-faint) {\n background-color: var(--color-background-faint-positive);\n color: var(--color-foreground-bold-positive);\n}\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: default;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n/* Hover/press wash stays above the Tag's semantic background. */\n\n/* ── Icons ──────────────────────────────────────────────────────────────── */\n\n.tag__prefix-icon,\n.tag__suffix-icon {\n position: relative;\n z-index: 2;\n display: inline-flex;\n flex-shrink: 0;\n width: var(--ds-control-icon);\n height: var(--ds-control-icon);\n}\n",
|
|
386
407
|
"type": "registry:ui"
|
|
387
408
|
},
|
|
388
409
|
{
|
|
389
410
|
"path": "src/wc/components/Tag/Tag.tsx",
|
|
390
|
-
"content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT, type ControlInsetDepth } from '../../utils';\n\nexport type TagIntent =\n | 'neutral'\n | 'brand'\n | 'ai'\n | 'negative'\n | 'warning'\n | 'caution'\n | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n /** Use the reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const doubleInset = this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n\n const maxWidthStyle =\n this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n tag: true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'ds-control--inset': this.isInset && !doubleInset,\n 'ds-control--inset-double': doubleInset,\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n {content}\n </Host>\n );\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class={{\n tag__button: true,\n 'tag__button--expanded': this.expanded,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n }}\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
|
|
411
|
+
"content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT, type ControlInsetDepth } from '../../utils';\n\nexport type TagIntent =\n | 'neutral'\n | 'brand'\n | 'ai'\n | 'negative'\n | 'warning'\n | 'caution'\n | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n /** Use the reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** Associated menu remains visible, including exit motion. Omission preserves\n * the deprecated expanded-derived wash; explicit false suppresses it. */\n @Prop() surfaceOpen: boolean | undefined;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const doubleInset = this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n\n const maxWidthStyle =\n this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n tag: true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'ds-control--inset': this.isInset && !doubleInset,\n 'ds-control--inset-double': doubleInset,\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n {content}\n </Host>\n );\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class={{\n tag__button: true,\n 'tag__button--expanded': this.expanded,\n 'ds-interaction-fill--surface-open':\n (this.surfaceOpen ?? this.expanded) && !this.isInactive,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n }}\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
|
|
391
412
|
"type": "registry:ui"
|
|
392
413
|
}
|
|
393
414
|
]
|
|
@@ -19,8 +19,10 @@ export { DsBreadcrumb } from "./ds-breadcrumb.js";
|
|
|
19
19
|
export { DsButtonFilled } from "./ds-button-filled.js";
|
|
20
20
|
export { DsButtonUnfilled } from "./ds-button-unfilled.js";
|
|
21
21
|
export { DsCardChart } from "./ds-card-chart.js";
|
|
22
|
+
export { DsCardNavigation } from "./ds-card-navigation.js";
|
|
22
23
|
export { DsCardOverview } from "./ds-card-overview.js";
|
|
23
24
|
export { DsCardSetting } from "./ds-card-setting.js";
|
|
25
|
+
export { DsCardSettingsScope } from "./ds-card-settings-scope.js";
|
|
24
26
|
export { DsChartLegend } from "./ds-chart-legend.js";
|
|
25
27
|
export { DsChart } from "./ds-chart.js";
|
|
26
28
|
export { DsCheckbox } from "./ds-checkbox.js";
|
package/dist/react/components.js
CHANGED
|
@@ -20,8 +20,10 @@ export { DsBreadcrumb } from "./ds-breadcrumb.js";
|
|
|
20
20
|
export { DsButtonFilled } from "./ds-button-filled.js";
|
|
21
21
|
export { DsButtonUnfilled } from "./ds-button-unfilled.js";
|
|
22
22
|
export { DsCardChart } from "./ds-card-chart.js";
|
|
23
|
+
export { DsCardNavigation } from "./ds-card-navigation.js";
|
|
23
24
|
export { DsCardOverview } from "./ds-card-overview.js";
|
|
24
25
|
export { DsCardSetting } from "./ds-card-setting.js";
|
|
26
|
+
export { DsCardSettingsScope } from "./ds-card-settings-scope.js";
|
|
25
27
|
export { DsChartLegend } from "./ds-chart-legend.js";
|
|
26
28
|
export { DsChart } from "./ds-chart.js";
|
|
27
29
|
export { DsCheckbox } from "./ds-checkbox.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by the Stencil React Output Target.
|
|
3
|
+
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
|
+
*/
|
|
5
|
+
import type { EventName, StencilReactComponent } from './react-runtime.js';
|
|
6
|
+
import { type CardNavigationDetail, type DsCardNavigationCustomEvent } from "@ds-mo/ui";
|
|
7
|
+
import type { Components } from "@ds-mo/ui/dist/components";
|
|
8
|
+
import { DsCardNavigation as DsCardNavigationElement } from "@ds-mo/ui/dist/components/ds-card-navigation.js";
|
|
9
|
+
export type DsCardNavigationEvents = {
|
|
10
|
+
onDsNavigate: EventName<DsCardNavigationCustomEvent<CardNavigationDetail>>;
|
|
11
|
+
};
|
|
12
|
+
export declare const DsCardNavigation: StencilReactComponent<DsCardNavigationElement, DsCardNavigationEvents, Components.DsCardNavigation, 'href' | 'heading'>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createComponent } from './react-runtime.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DsCardNavigation as DsCardNavigationElement, defineCustomElement as defineDsCardNavigation } from "@ds-mo/ui/dist/components/ds-card-navigation.js";
|
|
5
|
+
export const DsCardNavigation = /*@__PURE__*/ createComponent({
|
|
6
|
+
tagName: 'ds-card-navigation',
|
|
7
|
+
elementClass: DsCardNavigationElement,
|
|
8
|
+
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
|
+
react: React,
|
|
10
|
+
events: { onDsNavigate: 'dsNavigate' },
|
|
11
|
+
defineCustomElement: defineDsCardNavigation
|
|
12
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by the Stencil React Output Target.
|
|
3
|
+
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
|
+
*/
|
|
5
|
+
import type { EventName, StencilReactComponent } from './react-runtime.js';
|
|
6
|
+
import { type DsCardSettingsScopeCustomEvent, type SettingsScopeRequest } from "@ds-mo/ui";
|
|
7
|
+
import type { Components } from "@ds-mo/ui/dist/components";
|
|
8
|
+
import { DsCardSettingsScope as DsCardSettingsScopeElement } from "@ds-mo/ui/dist/components/ds-card-settings-scope.js";
|
|
9
|
+
export type DsCardSettingsScopeEvents = {
|
|
10
|
+
onDsScopeRequest: EventName<DsCardSettingsScopeCustomEvent<SettingsScopeRequest>>;
|
|
11
|
+
};
|
|
12
|
+
export declare const DsCardSettingsScope: StencilReactComponent<DsCardSettingsScopeElement, DsCardSettingsScopeEvents, Components.DsCardSettingsScope>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createComponent } from './react-runtime.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DsCardSettingsScope as DsCardSettingsScopeElement, defineCustomElement as defineDsCardSettingsScope } from "@ds-mo/ui/dist/components/ds-card-settings-scope.js";
|
|
5
|
+
export const DsCardSettingsScope = /*@__PURE__*/ createComponent({
|
|
6
|
+
tagName: 'ds-card-settings-scope',
|
|
7
|
+
elementClass: DsCardSettingsScopeElement,
|
|
8
|
+
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
9
|
+
react: React,
|
|
10
|
+
events: { onDsScopeRequest: 'dsScopeRequest' },
|
|
11
|
+
defineCustomElement: defineDsCardSettingsScope
|
|
12
|
+
});
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
|
|
4
4
|
*/
|
|
5
5
|
import type { EventName, StencilReactComponent } from './react-runtime.js';
|
|
6
|
-
import { type DsMobileSheetNavCustomEvent, type NavChromeStyle } from "@ds-mo/ui";
|
|
6
|
+
import { type DsMobileSheetNavCustomEvent, type NavChromeStyle, type PanelNavChildSelectDetail } from "@ds-mo/ui";
|
|
7
7
|
import type { Components } from "@ds-mo/ui/dist/components";
|
|
8
8
|
import { DsMobileSheetNav as DsMobileSheetNavElement } from "@ds-mo/ui/dist/components/ds-mobile-sheet-nav.js";
|
|
9
9
|
export type DsMobileSheetNavEvents = {
|
|
10
10
|
onDsAreaSelect: EventName<DsMobileSheetNavCustomEvent<string>>;
|
|
11
|
+
onDsNavChildSelect: EventName<DsMobileSheetNavCustomEvent<PanelNavChildSelectDetail>>;
|
|
11
12
|
onDsBrowseContextChange: EventName<DsMobileSheetNavCustomEvent<NavChromeStyle>>;
|
|
12
13
|
onDsClose: EventName<DsMobileSheetNavCustomEvent<void>>;
|
|
13
14
|
};
|
package/dist/styles/table.css
CHANGED
|
@@ -1206,6 +1206,7 @@
|
|
|
1206
1206
|
|
|
1207
1207
|
:where(.ds-table__row > .ds-table__cell.ds-interaction-fill) {
|
|
1208
1208
|
--ds-interaction-active: var(--_table-row-selected);
|
|
1209
|
+
--ds-interaction-pressed: var(--_table-row-pressed);
|
|
1209
1210
|
--ds-interaction-group-fill: transparent;
|
|
1210
1211
|
}
|
|
1211
1212
|
|
|
@@ -52,6 +52,8 @@ export declare class BarTitle {
|
|
|
52
52
|
dsAction: EventEmitter<string>;
|
|
53
53
|
private sectionMenuOpen;
|
|
54
54
|
private openActionMenuId;
|
|
55
|
+
private surfaceActionMenuId;
|
|
56
|
+
private sectionSurfaceOpen;
|
|
55
57
|
private sectionMenuInitialFocusVisible;
|
|
56
58
|
private actionMenuInitialFocusVisible;
|
|
57
59
|
private readonly instanceId;
|
|
@@ -92,6 +94,7 @@ export declare class BarTitle {
|
|
|
92
94
|
private closeSectionMenu;
|
|
93
95
|
private handleSectionSelect;
|
|
94
96
|
private toggleActionMenu;
|
|
97
|
+
private finishActionMenuClose;
|
|
95
98
|
private closeActionMenu;
|
|
96
99
|
private handleActionSelect;
|
|
97
100
|
private renderSectionSelector;
|
|
@@ -62,11 +62,18 @@ export declare class ButtonFilled {
|
|
|
62
62
|
/** ID of the popup this button controls. */
|
|
63
63
|
controls: string | undefined;
|
|
64
64
|
/**
|
|
65
|
-
* Controlled
|
|
66
|
-
*
|
|
67
|
-
*
|
|
65
|
+
* Controlled disclosure state forwarded to aria-expanded.
|
|
66
|
+
* Using expanded alone for surface-open styling is deprecated; set surfaceOpen
|
|
67
|
+
* explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
68
68
|
*/
|
|
69
69
|
expanded: boolean | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* The associated menu, picker, or panel is visible, including its exit motion.
|
|
72
|
+
* Holds only the pressed wash; does not set ARIA, selection, or press scaling.
|
|
73
|
+
* In split mode this applies only to the menu segment. Explicit false disables
|
|
74
|
+
* the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
75
|
+
*/
|
|
76
|
+
surfaceOpen: boolean | undefined;
|
|
70
77
|
/** Popup type exposed to assistive technology. */
|
|
71
78
|
haspopup: ButtonFilledPopup | undefined;
|
|
72
79
|
/**
|
|
@@ -95,6 +102,7 @@ export declare class ButtonFilled {
|
|
|
95
102
|
private handleClick;
|
|
96
103
|
private handleMenuClick;
|
|
97
104
|
private get resolvedHaspopup();
|
|
105
|
+
private get resolvedSurfaceOpen();
|
|
98
106
|
private get accessibleName();
|
|
99
107
|
private get doubleInset();
|
|
100
108
|
private buttonClass;
|
|
@@ -61,11 +61,18 @@ export declare class ButtonUnfilled {
|
|
|
61
61
|
ariaLabel: string | null;
|
|
62
62
|
controls: string | undefined;
|
|
63
63
|
/**
|
|
64
|
-
* Controlled disclosure
|
|
65
|
-
*
|
|
66
|
-
*
|
|
64
|
+
* Controlled disclosure state forwarded to aria-expanded.
|
|
65
|
+
* Using expanded alone for surface-open styling is deprecated; set surfaceOpen
|
|
66
|
+
* explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
67
67
|
*/
|
|
68
68
|
expanded: boolean | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* The associated menu, picker, or panel is visible, including its exit motion.
|
|
71
|
+
* Holds only the pressed wash; does not set ARIA, selection, or press scaling.
|
|
72
|
+
* In split mode this applies only to the menu segment. Explicit false disables
|
|
73
|
+
* the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
74
|
+
*/
|
|
75
|
+
surfaceOpen: boolean | undefined;
|
|
69
76
|
haspopup: ButtonUnfilledPopup | undefined;
|
|
70
77
|
/**
|
|
71
78
|
* Append a separate ChevronDown menu segment while preserving this button's
|
|
@@ -126,8 +133,7 @@ export declare class ButtonUnfilled {
|
|
|
126
133
|
private disconnectCaptionCompactObserver;
|
|
127
134
|
private get resolvedHaspopup();
|
|
128
135
|
private get doubleInset();
|
|
129
|
-
|
|
130
|
-
private get expandedPopup();
|
|
136
|
+
private get resolvedSurfaceOpen();
|
|
131
137
|
private get visuallyActive();
|
|
132
138
|
/** Knock-out ring: selected fill → active wash; otherwise surface token. */
|
|
133
139
|
private get dotRing();
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
export type CardNavigationWidth = 'sm' | 'md' | 'lg';
|
|
3
|
+
export type CardNavigationVariant = 'navigation-only' | 'content';
|
|
4
|
+
export interface CardNavigationDetail {
|
|
5
|
+
href: string;
|
|
6
|
+
originalEvent: MouseEvent;
|
|
7
|
+
}
|
|
8
|
+
export declare class CardNavigation {
|
|
9
|
+
/** Destination for the card's native link. */
|
|
10
|
+
href: string;
|
|
11
|
+
/** Section or destination heading shown in the card header. */
|
|
12
|
+
heading: string;
|
|
13
|
+
/** Optional supporting copy shown below the heading. */
|
|
14
|
+
description: string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* `navigation-only` makes the complete card the link. `content` keeps the
|
|
17
|
+
* header as the link and exposes a non-interactive body slot below it.
|
|
18
|
+
*/
|
|
19
|
+
variant: CardNavigationVariant;
|
|
20
|
+
/** Card width token (`sm` / `md` / `lg`). */
|
|
21
|
+
cardWidth: CardNavigationWidth;
|
|
22
|
+
/**
|
|
23
|
+
* Emits before native navigation. Prevent this event to take over routing;
|
|
24
|
+
* the component will then prevent the original link navigation.
|
|
25
|
+
*/
|
|
26
|
+
dsNavigate: EventEmitter<CardNavigationDetail>;
|
|
27
|
+
private handleNavigation;
|
|
28
|
+
private renderHeader;
|
|
29
|
+
render(): any;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=CardNavigation.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
export interface SettingsScopeRequest {
|
|
3
|
+
scope: 'area' | 'profile';
|
|
4
|
+
anchor: HTMLButtonElement;
|
|
5
|
+
originalEvent: MouseEvent;
|
|
6
|
+
}
|
|
7
|
+
export declare class CardSettingsScope {
|
|
8
|
+
/** Current product area or the label for the combined settings view. */
|
|
9
|
+
areaLabel: string;
|
|
10
|
+
/** Current organization or settings profile. */
|
|
11
|
+
profileLabel: string;
|
|
12
|
+
/** Sentence prefix, supplied separately for localization. */
|
|
13
|
+
managingLabel: string;
|
|
14
|
+
/** Sentence connector, supplied separately for localization. */
|
|
15
|
+
forLabel: string;
|
|
16
|
+
/** Accessible name for this context region. */
|
|
17
|
+
scopeLabel: string;
|
|
18
|
+
/** ID of the application-owned product-area menu. */
|
|
19
|
+
areaControls: string | undefined;
|
|
20
|
+
/** ID of the application-owned profiles popup. */
|
|
21
|
+
profileControls: string | undefined;
|
|
22
|
+
/** Whether the product-area menu is open. */
|
|
23
|
+
areaExpanded: boolean;
|
|
24
|
+
/** Whether the profiles popup is open. */
|
|
25
|
+
profileExpanded: boolean;
|
|
26
|
+
/** Empty informational profile popups use dialog semantics instead of a menu. */
|
|
27
|
+
profilePopup: 'menu' | 'dialog';
|
|
28
|
+
/** Requests a popup; the owner supplies choices, open state, and selection. */
|
|
29
|
+
dsScopeRequest: EventEmitter<SettingsScopeRequest>;
|
|
30
|
+
private request;
|
|
31
|
+
render(): any;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=CardSettingsScope.d.ts.map
|
|
@@ -34,6 +34,8 @@ export declare class Menu {
|
|
|
34
34
|
initialFocusVisible: boolean;
|
|
35
35
|
/** Accessible name for the popup menu. */
|
|
36
36
|
menuLabel: string;
|
|
37
|
+
/** Informational message shown when there are no choices. Uses a non-modal dialog, not a fake menu item. */
|
|
38
|
+
emptyMessage: string;
|
|
37
39
|
private shouldRender;
|
|
38
40
|
private closing;
|
|
39
41
|
private pos;
|
|
@@ -66,6 +68,8 @@ export declare class Menu {
|
|
|
66
68
|
/** Last content actually painted while open; retained unchanged through exit motion. */
|
|
67
69
|
private lastRenderedSections;
|
|
68
70
|
private closingSections;
|
|
71
|
+
private readonly emptyMessageId;
|
|
72
|
+
private lastRenderedEmptyMessage;
|
|
69
73
|
componentDidLoad(): void;
|
|
70
74
|
disconnectedCallback(): void;
|
|
71
75
|
onOpenChange(isOpen: boolean): void;
|
|
@@ -5,6 +5,8 @@ import type { MobileBarNavDestinationDetail } from './mobile-bar-nav-types';
|
|
|
5
5
|
export declare class MobileBarNav {
|
|
6
6
|
el: HTMLElement;
|
|
7
7
|
activeDestination: MobileDestination;
|
|
8
|
+
/** Context destination retained while a different global tool is active. */
|
|
9
|
+
primaryDestination: 'area' | 'help';
|
|
8
10
|
currentArea: PanelNavItem;
|
|
9
11
|
sheetNavExpanded: boolean;
|
|
10
12
|
menuLabel: string;
|
|
@@ -23,6 +23,8 @@ export declare class MobileHeader {
|
|
|
23
23
|
subvalue: string;
|
|
24
24
|
/** Accessible name for the child-section chooser. */
|
|
25
25
|
subsectionsAriaLabel: string;
|
|
26
|
+
/** Place local sections below, beside, or combined with the page title in one sheet trigger. */
|
|
27
|
+
subsectionsPlacement: 'below' | 'inline' | 'combined';
|
|
26
28
|
/** Default page chrome or bold-brand workflow chrome. */
|
|
27
29
|
tone: MobileHeaderTone;
|
|
28
30
|
/** Section selection intent. */
|
|
@@ -35,5 +37,6 @@ export declare class MobileHeader {
|
|
|
35
37
|
private handleSectionChange;
|
|
36
38
|
private handleSubsectionChange;
|
|
37
39
|
render(): any;
|
|
40
|
+
private renderSubsections;
|
|
38
41
|
}
|
|
39
42
|
//# sourceMappingURL=MobileHeader.d.ts.map
|
|
@@ -8,14 +8,32 @@ export declare class MobileSectionSwitcher {
|
|
|
8
8
|
value: string;
|
|
9
9
|
/** Accessible name for the section chooser. */
|
|
10
10
|
navigationLabel: string;
|
|
11
|
+
/** Anchored local-view menu or viewport-edge sheet for primary page sections. */
|
|
12
|
+
presentation: 'menu' | 'sheet';
|
|
13
|
+
/** Stable page identity shown before the selected section in a sheet trigger. */
|
|
14
|
+
pageLabel: string;
|
|
11
15
|
/** Selection intent. The route, tool, or workflow owner updates `value`. */
|
|
12
16
|
dsChange: EventEmitter<string>;
|
|
13
17
|
private menuOpen;
|
|
18
|
+
private menuSurfaceOpen;
|
|
14
19
|
private initialFocusVisible;
|
|
20
|
+
private sheetClosing;
|
|
21
|
+
private focusedSection;
|
|
15
22
|
private readonly instanceId;
|
|
16
23
|
private readonly triggerId;
|
|
17
24
|
private readonly menuId;
|
|
18
25
|
private triggerEl;
|
|
26
|
+
private dialogEl;
|
|
27
|
+
private closeTimer;
|
|
28
|
+
private visibilityObserver?;
|
|
29
|
+
componentDidLoad(): void;
|
|
30
|
+
componentDidRender(): void;
|
|
31
|
+
disconnectedCallback(): void;
|
|
32
|
+
handlePresentationChange(): void;
|
|
33
|
+
handleContextChange(): void;
|
|
34
|
+
private finishSheetClose;
|
|
35
|
+
private focusSheetItem;
|
|
36
|
+
private handleSheetKeyDown;
|
|
19
37
|
private get resolvedSections();
|
|
20
38
|
private get selectableSections();
|
|
21
39
|
private get selectedIndex();
|
|
@@ -27,6 +45,7 @@ export declare class MobileSectionSwitcher {
|
|
|
27
45
|
handleSectionsChange(): void;
|
|
28
46
|
private toggleMenu;
|
|
29
47
|
private closeMenu;
|
|
48
|
+
private renderSheet;
|
|
30
49
|
private handleSelect;
|
|
31
50
|
render(): any;
|
|
32
51
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
2
|
import type { NavChromeStyle } from '../../shell/nav-chrome';
|
|
3
|
-
import type { PanelNavGroup } from '../PanelNav/panel-nav-types';
|
|
3
|
+
import type { PanelNavChildSelectDetail, PanelNavGroup, PanelNavPresentation } from '../PanelNav/panel-nav-types';
|
|
4
4
|
export declare class MobileSheetNav {
|
|
5
5
|
el: HTMLElement;
|
|
6
6
|
open: boolean;
|
|
@@ -8,6 +8,8 @@ export declare class MobileSheetNav {
|
|
|
8
8
|
dashboardGroups: PanelNavGroup[];
|
|
9
9
|
settingsGroups: PanelNavGroup[];
|
|
10
10
|
currentUrl: string;
|
|
11
|
+
/** Flat area navigation or inline disclosure of each area's child routes. */
|
|
12
|
+
presentation: PanelNavPresentation;
|
|
11
13
|
/** Whether the router-derived current area owns the active mobile stage. */
|
|
12
14
|
routeSelectionActive: boolean;
|
|
13
15
|
navigationLabel: string;
|
|
@@ -18,14 +20,25 @@ export declare class MobileSheetNav {
|
|
|
18
20
|
/** Show the optional Account shortcut in the sheet header. */
|
|
19
21
|
showAccount: boolean;
|
|
20
22
|
dsAreaSelect: EventEmitter<string>;
|
|
23
|
+
/** Selecting a child requests routing; expanding its parent never navigates. */
|
|
24
|
+
dsNavChildSelect: EventEmitter<PanelNavChildSelectDetail>;
|
|
21
25
|
dsBrowseContextChange: EventEmitter<NavChromeStyle>;
|
|
22
26
|
dsClose: EventEmitter<void>;
|
|
27
|
+
private expandedParentId;
|
|
28
|
+
private readonly instanceId;
|
|
23
29
|
private get groups();
|
|
24
|
-
private get
|
|
30
|
+
private get selection();
|
|
31
|
+
componentWillLoad(): void;
|
|
32
|
+
syncExpandedParent(): void;
|
|
25
33
|
handleOpenChange(open: boolean): void;
|
|
26
34
|
handleKeyDown(event: KeyboardEvent): void;
|
|
27
35
|
private handleContextChange;
|
|
28
36
|
private renderItem;
|
|
37
|
+
private parentId;
|
|
38
|
+
private childrenId;
|
|
39
|
+
private renderChild;
|
|
40
|
+
private renderBranchDivider;
|
|
41
|
+
private renderBranch;
|
|
29
42
|
private renderLogo;
|
|
30
43
|
private renderHeaderDestination;
|
|
31
44
|
render(): any;
|
|
@@ -40,8 +40,11 @@ export declare class PanelNav {
|
|
|
40
40
|
dashboardLabel: string;
|
|
41
41
|
settingsLabel: string;
|
|
42
42
|
accountLabel: string;
|
|
43
|
-
/**
|
|
43
|
+
/** Account disclosure state. Expanded-derived styling is deprecated; use accountMenuSurfaceOpen for the rendered lifetime. */
|
|
44
44
|
accountMenuExpanded: boolean;
|
|
45
|
+
/** External account surface is visible, including exit motion. Omission
|
|
46
|
+
* preserves the deprecated accountMenuExpanded-derived wash. */
|
|
47
|
+
accountMenuSurfaceOpen: boolean | undefined;
|
|
45
48
|
dashboardNavigationLabel: string;
|
|
46
49
|
settingsNavigationLabel: string;
|
|
47
50
|
expandNavigationLabel: string;
|
|
@@ -20,6 +20,8 @@ export declare class PanelToolHeader {
|
|
|
20
20
|
menuControls: string | undefined;
|
|
21
21
|
/** Whether the controlled menu is open. */
|
|
22
22
|
menuExpanded: boolean;
|
|
23
|
+
/** Associated menu surface is visible, including exit motion. */
|
|
24
|
+
menuSurfaceOpen: boolean | undefined;
|
|
23
25
|
/** Trailing application-owned icon actions. When present, these replace the legacy menu action. */
|
|
24
26
|
actions: PanelToolsHeaderAction[];
|
|
25
27
|
dsBack: EventEmitter<MouseEvent>;
|
|
@@ -21,6 +21,8 @@ export declare class PanelToolSearch {
|
|
|
21
21
|
filterControls: string | undefined;
|
|
22
22
|
/** Whether the controlled filter menu is open. */
|
|
23
23
|
filterExpanded: boolean;
|
|
24
|
+
/** Associated filter surface is visible, including exit motion. */
|
|
25
|
+
filterSurfaceOpen: boolean | undefined;
|
|
24
26
|
/** Promote the trigger foreground when one or more filters are applied. */
|
|
25
27
|
filterActive: boolean;
|
|
26
28
|
dsChange: EventEmitter<string>;
|
|
@@ -113,6 +113,8 @@ export interface PanelToolsHeaderAction {
|
|
|
113
113
|
triggerId?: string;
|
|
114
114
|
controls?: string;
|
|
115
115
|
expanded?: boolean;
|
|
116
|
+
/** Associated surface remains visible, including exit motion. */
|
|
117
|
+
surfaceOpen?: boolean;
|
|
116
118
|
haspopup?: 'menu' | 'dialog' | 'listbox' | 'tree' | 'grid';
|
|
117
119
|
pressed?: boolean;
|
|
118
120
|
isInactive?: boolean;
|
|
@@ -14,7 +14,7 @@ export declare class ShellApp {
|
|
|
14
14
|
composition: ShellAppComposition;
|
|
15
15
|
/** Router-owned navigation data used by managed composition. */
|
|
16
16
|
navigation: ShellNavigationConfig;
|
|
17
|
-
/**
|
|
17
|
+
/** Route sections in bar/header pickers, or nested beneath desktop and mobile menu parents. */
|
|
18
18
|
sectionNavigation: ShellSectionNavigation;
|
|
19
19
|
/** Route-owned page title and section data used by managed composition. */
|
|
20
20
|
pageChrome: ShellPageChromeConfig;
|
|
@@ -86,10 +86,12 @@ export declare class ShellApp {
|
|
|
86
86
|
private managedActiveTool;
|
|
87
87
|
private managedToolPresentation;
|
|
88
88
|
private managedMobileDestination;
|
|
89
|
+
private managedMobilePrimaryDestination;
|
|
89
90
|
private managedMobileSheetNavOpen;
|
|
90
91
|
private managedInboxTool;
|
|
91
92
|
private managedBrowseContext;
|
|
92
93
|
private mobileActionMenuOpen;
|
|
94
|
+
private mobileActionSurfaceOpen;
|
|
93
95
|
private mobileActionMenuInitialFocusVisible;
|
|
94
96
|
private readonly instanceId;
|
|
95
97
|
private readonly mobileActionMenuTriggerId;
|
|
@@ -119,7 +121,7 @@ export declare class ShellApp {
|
|
|
119
121
|
}>): void;
|
|
120
122
|
disconnectedCallback(): void;
|
|
121
123
|
onShellPropsChange(): void;
|
|
122
|
-
handleNavigationChange(): void;
|
|
124
|
+
handleNavigationChange(next: ShellNavigationConfig, previous: ShellNavigationConfig): void;
|
|
123
125
|
handlePageChromeChange(): void;
|
|
124
126
|
handleToolsChange(): void;
|
|
125
127
|
onMobileStateChange(_next: unknown, previous: unknown): void;
|
|
@@ -173,6 +175,7 @@ export declare class ShellApp {
|
|
|
173
175
|
private activateManagedMobileTool;
|
|
174
176
|
private handleManagedMobileDestination;
|
|
175
177
|
private handleManagedAreaSelect;
|
|
178
|
+
private handleManagedMobileChildSelect;
|
|
176
179
|
private handleManagedBrowseContext;
|
|
177
180
|
private handleManagedSheetClose;
|
|
178
181
|
private handleManagedNavFooterAction;
|
|
@@ -32,6 +32,8 @@ export interface ShellNavigationConfig {
|
|
|
32
32
|
userName?: string;
|
|
33
33
|
userInitial?: string;
|
|
34
34
|
accountMenuExpanded?: boolean;
|
|
35
|
+
/** Associated account surface remains visible, including exit motion. */
|
|
36
|
+
accountMenuSurfaceOpen?: boolean;
|
|
35
37
|
dashboardLabel?: string;
|
|
36
38
|
settingsLabel?: string;
|
|
37
39
|
accountLabel?: string;
|