@ds-mo/ui 14.27.0 → 14.28.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 +2 -2
- package/dist/agent.json +290 -10
- 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/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-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.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-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-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-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-saved-views.js +1 -1
- package/dist/components/ds-table-search.js +1 -1
- package/dist/components/ds-table-sort.js +1 -1
- package/dist/components/ds-table-toolbar.js +1 -1
- package/dist/components/ds-table.js +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-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-Is1lFmwp.js → p-1gt8QlyW.js} +2 -2
- package/dist/components/{p-CGQnHNuW.js → p-6iF6gdoc.js} +2 -2
- package/dist/components/{p-B3sRZBZk.js → p-8atLxerP.js} +2 -2
- package/dist/components/{p-DkxOEFHN.js → p-B3iy9Rl_.js} +2 -2
- 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-BLTHIBsE.js +2 -0
- package/dist/components/p-BLTHIBsE.js.map +1 -0
- package/dist/components/p-BWDbER5T.js +2 -0
- package/dist/components/p-BWDbER5T.js.map +1 -0
- package/dist/components/{p-C68oSTb1.js → p-BXT2opmZ.js} +2 -2
- package/dist/components/{p-B9esvbYk.js → p-B_NN7k8H.js} +2 -2
- package/dist/components/p-BdU6FPu4.js +2 -0
- package/dist/components/{p-BXDLR072.js.map → p-BdU6FPu4.js.map} +1 -1
- package/dist/components/{p-BVpn_e-r.js → p-BdXUd-tK.js} +2 -2
- package/dist/components/p-BdXUd-tK.js.map +1 -0
- package/dist/components/{p-BRLDf-NK.js → p-Bj018KMC.js} +2 -2
- package/dist/components/{p-DGkn8FwV.js → p-Bl5wd3v3.js} +2 -2
- package/dist/components/{p-Bb9dA7sl.js → p-BpB2EF9g.js} +2 -2
- package/dist/components/{p-537t6oRD.js → p-BxLF8b8a.js} +2 -2
- package/dist/components/{p-BIGpc__9.js → p-C1BJgnHY.js} +2 -2
- package/dist/components/p-C78uTz-n.js +2 -0
- package/dist/components/p-C78uTz-n.js.map +1 -0
- package/dist/components/p-C82vesh_.js +2 -0
- package/dist/components/p-C82vesh_.js.map +1 -0
- package/dist/components/{p-DW8ssbfI.js → p-CN8PQLZu.js} +2 -2
- package/dist/components/{p-DQsFmleZ.js → p-COn7l__5.js} +2 -2
- package/dist/components/{p-Cf5Ai4xx.js → p-CW7JhWlS.js} +2 -2
- package/dist/components/{p-CaF5WCci.js → p-Cocq-utR.js} +2 -2
- package/dist/components/{p-to8BxxgT.js → p-CsW_2w-s.js} +2 -2
- package/dist/components/p-CvB76TJn.js +2 -0
- package/dist/components/p-CvB76TJn.js.map +1 -0
- package/dist/components/{p-2wIPUcSL.js → p-CxbGZJBU.js} +2 -2
- package/dist/components/p-D4-RkuER.js +2 -0
- package/dist/components/p-D4-RkuER.js.map +1 -0
- package/dist/components/{p-Bjt_8sLe.js → p-DB_tlJ2d.js} +2 -2
- package/dist/components/{p-VT-5XDkB.js → p-DDOuPq-N.js} +2 -2
- package/dist/components/{p-B3Z5sQin.js → p-DGHeKNfG.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-Q0dkeoJ6.js → p-DmYZLH_L.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-WFo1x6dN.js → p-Hzz2j1Je.js} +2 -2
- package/dist/components/{p-BZiGtBBk.js → p-Kp8ifB1g.js} +2 -2
- package/dist/components/{p-1604KY3B.js → p-NB-SoVpo.js} +2 -2
- package/dist/components/{p-GEi3hDJQ.js → p-P9My22Z1.js} +2 -2
- package/dist/components/{p-CQjUOHiN.js → p-WM1GTEun.js} +2 -2
- 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-6_CNVbqa.js → p-oAbq-DLk.js} +2 -2
- package/dist/components/{p-BMzn2Cmw.js → p-rSC7ZUpy.js} +2 -2
- package/dist/docs/components.json +838 -39
- 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/field.json +1 -1
- 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 +45 -6
- package/dist/mcp-data/registry/mobile-sheet-nav.json +40 -3
- package/dist/mcp-data/registry/panel-nav.json +2 -2
- package/dist/mcp-data/registry/registry.json +295 -9
- package/dist/mcp-data/registry/shell-app.json +7 -6
- 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/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/Field/Field.d.ts +7 -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 +17 -0
- package/dist/types/components/MobileSheetNav/MobileSheetNav.d.ts +15 -2
- package/dist/types/components/ShellApp/ShellApp.d.ts +4 -2
- package/dist/types/components.d.ts +300 -2
- package/dist/vue/components.d.ts +2 -0
- package/dist/vue/components.js +2 -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/package.json +1 -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-BXDLR072.js +0 -2
- package/dist/components/p-BssZ4SbT.js +0 -2
- package/dist/components/p-BssZ4SbT.js.map +0 -1
- package/dist/components/p-Cy1oWIaV.js +0 -2
- package/dist/components/p-Cy1oWIaV.js.map +0 -1
- package/dist/components/p-DVLghmNY.js +0 -2
- package/dist/components/p-DVLghmNY.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-LMmrjmI_.js +0 -2
- package/dist/components/p-LMmrjmI_.js.map +0 -1
- /package/dist/components/{p-Is1lFmwp.js.map → p-1gt8QlyW.js.map} +0 -0
- /package/dist/components/{p-CGQnHNuW.js.map → p-6iF6gdoc.js.map} +0 -0
- /package/dist/components/{p-B3sRZBZk.js.map → p-8atLxerP.js.map} +0 -0
- /package/dist/components/{p-DkxOEFHN.js.map → p-B3iy9Rl_.js.map} +0 -0
- /package/dist/components/{p-Q7AOgrg5.js.map → p-BCFpqnAg.js.map} +0 -0
- /package/dist/components/{p-C68oSTb1.js.map → p-BXT2opmZ.js.map} +0 -0
- /package/dist/components/{p-B9esvbYk.js.map → p-B_NN7k8H.js.map} +0 -0
- /package/dist/components/{p-BRLDf-NK.js.map → p-Bj018KMC.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-537t6oRD.js.map → p-BxLF8b8a.js.map} +0 -0
- /package/dist/components/{p-BIGpc__9.js.map → p-C1BJgnHY.js.map} +0 -0
- /package/dist/components/{p-DW8ssbfI.js.map → p-CN8PQLZu.js.map} +0 -0
- /package/dist/components/{p-DQsFmleZ.js.map → p-COn7l__5.js.map} +0 -0
- /package/dist/components/{p-Cf5Ai4xx.js.map → p-CW7JhWlS.js.map} +0 -0
- /package/dist/components/{p-CaF5WCci.js.map → p-Cocq-utR.js.map} +0 -0
- /package/dist/components/{p-to8BxxgT.js.map → p-CsW_2w-s.js.map} +0 -0
- /package/dist/components/{p-2wIPUcSL.js.map → p-CxbGZJBU.js.map} +0 -0
- /package/dist/components/{p-Bjt_8sLe.js.map → p-DB_tlJ2d.js.map} +0 -0
- /package/dist/components/{p-VT-5XDkB.js.map → p-DDOuPq-N.js.map} +0 -0
- /package/dist/components/{p-B3Z5sQin.js.map → p-DGHeKNfG.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-Q0dkeoJ6.js.map → p-DmYZLH_L.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-BZiGtBBk.js.map → p-Kp8ifB1g.js.map} +0 -0
- /package/dist/components/{p-1604KY3B.js.map → p-NB-SoVpo.js.map} +0 -0
- /package/dist/components/{p-GEi3hDJQ.js.map → p-P9My22Z1.js.map} +0 -0
- /package/dist/components/{p-CQjUOHiN.js.map → p-WM1GTEun.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-6_CNVbqa.js.map → p-oAbq-DLk.js.map} +0 -0
- /package/dist/components/{p-BMzn2Cmw.js.map → p-rSC7ZUpy.js.map} +0 -0
|
@@ -2385,6 +2385,136 @@
|
|
|
2385
2385
|
"text"
|
|
2386
2386
|
]
|
|
2387
2387
|
},
|
|
2388
|
+
{
|
|
2389
|
+
"name": "card-navigation",
|
|
2390
|
+
"title": "CardNavigation",
|
|
2391
|
+
"description": "Settings-style navigation surface with a native destination link, optional supporting copy, a fixed ChevronRight affordance, and an optional application-owned body.",
|
|
2392
|
+
"type": "registry:ui",
|
|
2393
|
+
"meta": {
|
|
2394
|
+
"library": "@ds-mo/ui",
|
|
2395
|
+
"distribution": "npm",
|
|
2396
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/card-navigation",
|
|
2397
|
+
"source": "src/wc/components/CardNavigation/CardNavigation.tsx",
|
|
2398
|
+
"intentStatus": "complete",
|
|
2399
|
+
"intent": {
|
|
2400
|
+
"audience": "general",
|
|
2401
|
+
"status": "stable",
|
|
2402
|
+
"summary": "Settings-style navigation surface with a native destination link, optional supporting copy, a fixed ChevronRight affordance, and an optional application-owned body.",
|
|
2403
|
+
"useWhen": [
|
|
2404
|
+
"A settings page needs a card that leads to a deeper settings destination.",
|
|
2405
|
+
"A compact destination card needs the complete surface to act as one link.",
|
|
2406
|
+
"A settings summary must remain visible in a body while only the card header navigates."
|
|
2407
|
+
],
|
|
2408
|
+
"avoidWhen": [
|
|
2409
|
+
"The card edits its contents in place; use CardSetting for the edit-save-cancel workflow.",
|
|
2410
|
+
"The destination is an action without a navigable URL.",
|
|
2411
|
+
"The surface contains a chart, legend, metric visualization, or other data-visualization composition."
|
|
2412
|
+
],
|
|
2413
|
+
"alternatives": [
|
|
2414
|
+
{
|
|
2415
|
+
"when": "The section switches between read-only and editable content in place.",
|
|
2416
|
+
"component": "component:ds-card-setting",
|
|
2417
|
+
"reason": "CardSetting owns the controlled edit-save-cancel workflow."
|
|
2418
|
+
},
|
|
2419
|
+
{
|
|
2420
|
+
"when": "The surface contains a chart or specialized data-visualization composition.",
|
|
2421
|
+
"component": "component:ds-card-chart",
|
|
2422
|
+
"reason": "CardChart owns the independently evolving chart-card contract."
|
|
2423
|
+
}
|
|
2424
|
+
],
|
|
2425
|
+
"commonlyComposedWith": [
|
|
2426
|
+
"component:ds-text",
|
|
2427
|
+
"component:ds-card-setting"
|
|
2428
|
+
],
|
|
2429
|
+
"accessibility": [
|
|
2430
|
+
"CardNavigation renders a native link whenever href resolves to an allowed URL, so Enter activation, link context menus, and modified-click behavior remain available.",
|
|
2431
|
+
"The heading is rendered as an h2 and the optional description contributes to the link's accessible name.",
|
|
2432
|
+
"The ChevronRight icon is decorative because the link text already names the destination.",
|
|
2433
|
+
"Use the content variant only when interactive body content must remain outside the header link; never place interactive descendants inside the navigation-only card.",
|
|
2434
|
+
"dsNavigate is cancelable so client-side routers can prevent native navigation after accepting an unmodified activation."
|
|
2435
|
+
],
|
|
2436
|
+
"states": [
|
|
2437
|
+
"The native link owns hover, pressed, and focus-visible states across the complete card in navigation-only mode.",
|
|
2438
|
+
"In content mode, the native link owns those interaction states only across the header while the body remains application-owned.",
|
|
2439
|
+
"An empty or unsafe href renders non-interactive card chrome without a false keyboard target.",
|
|
2440
|
+
"The application owns destination loading, authorization, not-found, and recovery states after navigation."
|
|
2441
|
+
],
|
|
2442
|
+
"responsiveBehavior": [
|
|
2443
|
+
"Choose sm, md, or lg from the parent layout; the surface never exceeds its parent width.",
|
|
2444
|
+
"Supporting copy wraps while the chevron remains visible at the trailing edge.",
|
|
2445
|
+
"The parent owns wrapping, columns, stacking, and breakpoint changes between cards."
|
|
2446
|
+
],
|
|
2447
|
+
"frameworkCaveats": {
|
|
2448
|
+
"customElements": [
|
|
2449
|
+
"Set href to a valid relative or HTTP(S) URL.",
|
|
2450
|
+
"Prevent dsNavigate only when an application router takes ownership of the same activation."
|
|
2451
|
+
],
|
|
2452
|
+
"react": [
|
|
2453
|
+
"Pass href for native link semantics and use onDsNavigate only when coordinating with a client-side router.",
|
|
2454
|
+
"Use variant content when projecting interactive body content so those controls stay outside the link."
|
|
2455
|
+
],
|
|
2456
|
+
"angular": [
|
|
2457
|
+
"Bind href and prevent dsNavigate before calling Router.navigateByUrl for unmodified primary activations.",
|
|
2458
|
+
"Use variant content when projecting interactive body content so those controls stay outside the link."
|
|
2459
|
+
]
|
|
2460
|
+
},
|
|
2461
|
+
"references": [
|
|
2462
|
+
{
|
|
2463
|
+
"label": "Storybook navigation-only and content examples",
|
|
2464
|
+
"path": "src/wc/components/CardNavigation/CardNavigation.stories.ts"
|
|
2465
|
+
},
|
|
2466
|
+
{
|
|
2467
|
+
"label": "Rendered navigation and interaction coverage",
|
|
2468
|
+
"path": "tests/e2e/card-navigation.spec.ts"
|
|
2469
|
+
}
|
|
2470
|
+
]
|
|
2471
|
+
},
|
|
2472
|
+
"props": {
|
|
2473
|
+
"cardWidth": {
|
|
2474
|
+
"type": "CardNavigationWidth",
|
|
2475
|
+
"required": false
|
|
2476
|
+
},
|
|
2477
|
+
"description": {
|
|
2478
|
+
"type": "string | undefined",
|
|
2479
|
+
"required": false
|
|
2480
|
+
},
|
|
2481
|
+
"heading": {
|
|
2482
|
+
"type": "string",
|
|
2483
|
+
"required": true
|
|
2484
|
+
},
|
|
2485
|
+
"href": {
|
|
2486
|
+
"type": "string",
|
|
2487
|
+
"required": true
|
|
2488
|
+
},
|
|
2489
|
+
"variant": {
|
|
2490
|
+
"type": "CardNavigationVariant",
|
|
2491
|
+
"required": false
|
|
2492
|
+
}
|
|
2493
|
+
},
|
|
2494
|
+
"events": [
|
|
2495
|
+
{
|
|
2496
|
+
"name": "dsNavigate",
|
|
2497
|
+
"detail": "CardNavigationDetail"
|
|
2498
|
+
}
|
|
2499
|
+
],
|
|
2500
|
+
"slots": [],
|
|
2501
|
+
"exports": {
|
|
2502
|
+
"customElement": "ds-card-navigation",
|
|
2503
|
+
"react": "DsCardNavigation",
|
|
2504
|
+
"vue": "DsCardNavigation",
|
|
2505
|
+
"angular": "DsCardNavigation"
|
|
2506
|
+
}
|
|
2507
|
+
},
|
|
2508
|
+
"dependencies": [
|
|
2509
|
+
"@ds-mo/ui",
|
|
2510
|
+
"@ds-mo/tokens",
|
|
2511
|
+
"@ds-mo/icons"
|
|
2512
|
+
],
|
|
2513
|
+
"registryDependencies": [
|
|
2514
|
+
"icon",
|
|
2515
|
+
"text"
|
|
2516
|
+
]
|
|
2517
|
+
},
|
|
2388
2518
|
{
|
|
2389
2519
|
"name": "card-overview",
|
|
2390
2520
|
"title": "CardOverview",
|
|
@@ -2708,6 +2838,123 @@
|
|
|
2708
2838
|
"text"
|
|
2709
2839
|
]
|
|
2710
2840
|
},
|
|
2841
|
+
{
|
|
2842
|
+
"name": "card-settings-scope",
|
|
2843
|
+
"title": "CardSettingsScope",
|
|
2844
|
+
"description": "Compact, theme-aware settings context card with inline product-area and profile menu triggers.",
|
|
2845
|
+
"type": "registry:ui",
|
|
2846
|
+
"meta": {
|
|
2847
|
+
"library": "@ds-mo/ui",
|
|
2848
|
+
"distribution": "npm",
|
|
2849
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/card-settings-scope",
|
|
2850
|
+
"source": "src/wc/components/CardSettingsScope/CardSettingsScope.tsx",
|
|
2851
|
+
"intentStatus": "complete",
|
|
2852
|
+
"intent": {
|
|
2853
|
+
"audience": "general",
|
|
2854
|
+
"status": "stable",
|
|
2855
|
+
"summary": "Compact, theme-aware settings context card with inline product-area and profile menu triggers.",
|
|
2856
|
+
"useWhen": [
|
|
2857
|
+
"A settings workspace needs to show and change both its product area and the organization or profile being managed."
|
|
2858
|
+
],
|
|
2859
|
+
"avoidWhen": [
|
|
2860
|
+
"The content is a reporting period and metrics summary; use CardOverview.",
|
|
2861
|
+
"The card edits settings in place; use CardSetting."
|
|
2862
|
+
],
|
|
2863
|
+
"commonlyComposedWith": [
|
|
2864
|
+
"component:ds-menu",
|
|
2865
|
+
"component:ds-card-setting"
|
|
2866
|
+
],
|
|
2867
|
+
"accessibility": [
|
|
2868
|
+
"Both scope values are native buttons with popup relationships and controlled expanded state.",
|
|
2869
|
+
"Use the emitted native anchor for menu placement and focus return.",
|
|
2870
|
+
"An empty informational profiles popup uses dialog semantics.",
|
|
2871
|
+
"The shared text-action recipe supplies brand foreground, hover underline, and keyboard focus indication."
|
|
2872
|
+
],
|
|
2873
|
+
"states": [
|
|
2874
|
+
"The application owns the selected area, profile, available choices, permissions, and empty-state copy.",
|
|
2875
|
+
"The card reports popup requests without changing selection or expanded state.",
|
|
2876
|
+
"The surface follows the active theme rather than imposing always-dark colors."
|
|
2877
|
+
],
|
|
2878
|
+
"responsiveBehavior": [
|
|
2879
|
+
"The parent owns sticky positioning and shell offsets.",
|
|
2880
|
+
"The compact sentence wraps when space is constrained so both controls remain available."
|
|
2881
|
+
],
|
|
2882
|
+
"frameworkCaveats": {
|
|
2883
|
+
"angular": [
|
|
2884
|
+
"Import the generated standalone adapter; bind controlled labels and expanded states and handle dsScopeRequest."
|
|
2885
|
+
]
|
|
2886
|
+
},
|
|
2887
|
+
"references": [
|
|
2888
|
+
{
|
|
2889
|
+
"label": "Storybook examples",
|
|
2890
|
+
"path": "src/wc/components/CardSettingsScope/CardSettingsScope.stories.ts"
|
|
2891
|
+
}
|
|
2892
|
+
]
|
|
2893
|
+
},
|
|
2894
|
+
"props": {
|
|
2895
|
+
"areaControls": {
|
|
2896
|
+
"type": "string | undefined",
|
|
2897
|
+
"required": false
|
|
2898
|
+
},
|
|
2899
|
+
"areaExpanded": {
|
|
2900
|
+
"type": "boolean",
|
|
2901
|
+
"required": false
|
|
2902
|
+
},
|
|
2903
|
+
"areaLabel": {
|
|
2904
|
+
"type": "string",
|
|
2905
|
+
"required": false
|
|
2906
|
+
},
|
|
2907
|
+
"forLabel": {
|
|
2908
|
+
"type": "string",
|
|
2909
|
+
"required": false
|
|
2910
|
+
},
|
|
2911
|
+
"managingLabel": {
|
|
2912
|
+
"type": "string",
|
|
2913
|
+
"required": false
|
|
2914
|
+
},
|
|
2915
|
+
"profileControls": {
|
|
2916
|
+
"type": "string | undefined",
|
|
2917
|
+
"required": false
|
|
2918
|
+
},
|
|
2919
|
+
"profileExpanded": {
|
|
2920
|
+
"type": "boolean",
|
|
2921
|
+
"required": false
|
|
2922
|
+
},
|
|
2923
|
+
"profileLabel": {
|
|
2924
|
+
"type": "string",
|
|
2925
|
+
"required": false
|
|
2926
|
+
},
|
|
2927
|
+
"profilePopup": {
|
|
2928
|
+
"type": "'menu' | 'dialog'",
|
|
2929
|
+
"required": false
|
|
2930
|
+
},
|
|
2931
|
+
"scopeLabel": {
|
|
2932
|
+
"type": "string",
|
|
2933
|
+
"required": false
|
|
2934
|
+
}
|
|
2935
|
+
},
|
|
2936
|
+
"events": [
|
|
2937
|
+
{
|
|
2938
|
+
"name": "dsScopeRequest",
|
|
2939
|
+
"detail": "SettingsScopeRequest"
|
|
2940
|
+
}
|
|
2941
|
+
],
|
|
2942
|
+
"slots": [],
|
|
2943
|
+
"exports": {
|
|
2944
|
+
"customElement": "ds-card-settings-scope",
|
|
2945
|
+
"react": "DsCardSettingsScope",
|
|
2946
|
+
"vue": "DsCardSettingsScope",
|
|
2947
|
+
"angular": "DsCardSettingsScope"
|
|
2948
|
+
}
|
|
2949
|
+
},
|
|
2950
|
+
"dependencies": [
|
|
2951
|
+
"@ds-mo/ui",
|
|
2952
|
+
"@ds-mo/tokens"
|
|
2953
|
+
],
|
|
2954
|
+
"registryDependencies": [
|
|
2955
|
+
"text"
|
|
2956
|
+
]
|
|
2957
|
+
},
|
|
2711
2958
|
{
|
|
2712
2959
|
"name": "chart",
|
|
2713
2960
|
"title": "Chart",
|
|
@@ -4850,6 +5097,7 @@
|
|
|
4850
5097
|
"pattern:menu-trigger"
|
|
4851
5098
|
],
|
|
4852
5099
|
"accessibility": [
|
|
5100
|
+
"An empty choice collection can show informational copy in a focusable non-modal dialog instead of rendering a fake disabled action. Escape and Tab retain the normal popup dismissal and anchor-focus behavior.",
|
|
4853
5101
|
"Anchor the menu to the control that opens it and return focus to that control when the menu closes.",
|
|
4854
5102
|
"Open with visible initial focus only when the trigger was activated from the keyboard.",
|
|
4855
5103
|
"Keep disabled items discoverable only when their unavailable state is meaningful.",
|
|
@@ -4931,6 +5179,10 @@
|
|
|
4931
5179
|
"type": "HTMLElement | undefined",
|
|
4932
5180
|
"required": false
|
|
4933
5181
|
},
|
|
5182
|
+
"emptyMessage": {
|
|
5183
|
+
"type": "string",
|
|
5184
|
+
"required": false
|
|
5185
|
+
},
|
|
4934
5186
|
"initialFocusVisible": {
|
|
4935
5187
|
"type": "boolean",
|
|
4936
5188
|
"required": false
|
|
@@ -5546,6 +5798,7 @@
|
|
|
5546
5798
|
],
|
|
5547
5799
|
"states": [
|
|
5548
5800
|
"The fixed groups are Menu plus current area, followed by Search, Activity, Messages, and Agents.",
|
|
5801
|
+
"The shell may retain Help in the context position while another global tool is selected; context identity and active selection are independent.",
|
|
5549
5802
|
"Consumers that intentionally group multiple review tools can replace the Activity destination with Inbox.",
|
|
5550
5803
|
"Selection promotes foreground to primary without painting a selected fill; unselected destinations use tertiary foreground.",
|
|
5551
5804
|
"Opening Mobile Sheet Nav replaces the Menu glyph with Cross while preserving its accessible name.",
|
|
@@ -5617,6 +5870,10 @@
|
|
|
5617
5870
|
"type": "string",
|
|
5618
5871
|
"required": false
|
|
5619
5872
|
},
|
|
5873
|
+
"primaryDestination": {
|
|
5874
|
+
"type": "'area' | 'help'",
|
|
5875
|
+
"required": false
|
|
5876
|
+
},
|
|
5620
5877
|
"searchDot": {
|
|
5621
5878
|
"type": "boolean",
|
|
5622
5879
|
"required": false
|
|
@@ -5698,8 +5955,10 @@
|
|
|
5698
5955
|
"states": [
|
|
5699
5956
|
"Without multiple sections the center renders heading.",
|
|
5700
5957
|
"With multiple sections the center renders the controlled MobileSectionSwitcher by default or an explicitly requested segmented TabGroup.",
|
|
5958
|
+
"Primary section switching without subordinate navigation uses the viewport-edge sheet. Headers exposing both peer sections and subordinate views retain their two-level navigation.",
|
|
5701
5959
|
"The segmented presentation uses the shared fill-width TabGroup contract and divides its centered two-thirds top-bar lane equally between options.",
|
|
5702
|
-
"Optional subsections
|
|
5960
|
+
"Optional subsections use a second row by default. When navigation already exposes peer sections, local views can sit beside a stable page title in one row; they never replace that title or its semantic heading.",
|
|
5961
|
+
"The combined local-view presentation joins the page identity and selected subsection in one outlined sheet trigger. The semantic heading remains the page identity, while Back and page actions stay outside the trigger.",
|
|
5703
5962
|
"Sections represent peer destinations at the current navigation level; subsections represent local views beneath the selected page or detail identity.",
|
|
5704
5963
|
"Brand tone changes surface and foreground without changing geometry or interaction ownership."
|
|
5705
5964
|
],
|
|
@@ -5747,6 +6006,10 @@
|
|
|
5747
6006
|
"type": "string",
|
|
5748
6007
|
"required": false
|
|
5749
6008
|
},
|
|
6009
|
+
"subsectionsPlacement": {
|
|
6010
|
+
"type": "'below' | 'inline' | 'combined'",
|
|
6011
|
+
"required": false
|
|
6012
|
+
},
|
|
5750
6013
|
"subvalue": {
|
|
5751
6014
|
"type": "string",
|
|
5752
6015
|
"required": false
|
|
@@ -5791,7 +6054,7 @@
|
|
|
5791
6054
|
{
|
|
5792
6055
|
"name": "mobile-section-switcher",
|
|
5793
6056
|
"title": "MobileSectionSwitcher",
|
|
5794
|
-
"description": "Controlled mobile section chooser
|
|
6057
|
+
"description": "Controlled mobile section chooser with a viewport-edge sheet for primary pages and an anchored menu for local views.",
|
|
5795
6058
|
"type": "registry:ui",
|
|
5796
6059
|
"meta": {
|
|
5797
6060
|
"library": "@ds-mo/ui",
|
|
@@ -5802,7 +6065,7 @@
|
|
|
5802
6065
|
"intent": {
|
|
5803
6066
|
"audience": "specialized",
|
|
5804
6067
|
"status": "experimental",
|
|
5805
|
-
"summary": "Controlled mobile section chooser
|
|
6068
|
+
"summary": "Controlled mobile section chooser with a viewport-edge sheet for primary pages and an anchored menu for local views.",
|
|
5806
6069
|
"useWhen": [
|
|
5807
6070
|
"A mobile page or tool header must combine current-page identity with ordered peer-section navigation."
|
|
5808
6071
|
],
|
|
@@ -5819,13 +6082,16 @@
|
|
|
5819
6082
|
"accessibility": [
|
|
5820
6083
|
"The trigger exposes the current section, popup relationship, and expanded state.",
|
|
5821
6084
|
"Decorative previous and next position hints are hidden from assistive technology.",
|
|
5822
|
-
"The
|
|
6085
|
+
"The sheet is a native modal top-layer dialog: background content is inert, Escape and backdrop dismiss it, and focus returns to the trigger after exit motion. Arrow keys, Home, End, and initial-letter navigation move among enabled destinations.",
|
|
6086
|
+
"The sheet initially focuses the current enabled destination, uses emphasis for selection, and never adds decorative icons to its rows.",
|
|
5823
6087
|
"Peer destinations use menuitem semantics with aria-current on the active page; they do not present a radio-control affordance."
|
|
5824
6088
|
],
|
|
5825
6089
|
"states": [
|
|
5826
6090
|
"Selection is controlled and dsChange reports intent without mutating value.",
|
|
5827
6091
|
"Dividers group menu items but never participate in previous or next resolution.",
|
|
5828
|
-
"The
|
|
6092
|
+
"The anchored local-view menu retains its neighboring-direction hints; the primary-page sheet uses an unfilled perimeter trigger without hints.",
|
|
6093
|
+
"A sheet trigger can combine stable page identity and the current local view, separated by a decorative middle dot. The whole control opens only the supplied local destinations; long page names truncate before crowding out the active view.",
|
|
6094
|
+
"Sheet selection emits navigation intent immediately while exit motion runs independently, so the controlled title can update without waiting for dismissal. Removing the owner or hiding its header closes the top layer without leaving the application blocked."
|
|
5829
6095
|
],
|
|
5830
6096
|
"responsiveBehavior": [
|
|
5831
6097
|
"Use only in the dedicated mobile header presentation."
|
|
@@ -5842,6 +6108,14 @@
|
|
|
5842
6108
|
"type": "string",
|
|
5843
6109
|
"required": false
|
|
5844
6110
|
},
|
|
6111
|
+
"pageLabel": {
|
|
6112
|
+
"type": "string",
|
|
6113
|
+
"required": false
|
|
6114
|
+
},
|
|
6115
|
+
"presentation": {
|
|
6116
|
+
"type": "'menu' | 'sheet'",
|
|
6117
|
+
"required": false
|
|
6118
|
+
},
|
|
5845
6119
|
"sections": {
|
|
5846
6120
|
"type": "TabItem[]",
|
|
5847
6121
|
"required": false
|
|
@@ -5909,7 +6183,10 @@
|
|
|
5909
6183
|
"Escape requests dismissal and opening moves focus to the selected or first available area."
|
|
5910
6184
|
],
|
|
5911
6185
|
"states": [
|
|
5912
|
-
"Dashboard and Settings change only the
|
|
6186
|
+
"Dashboard and Settings change only the destination collection being browsed.",
|
|
6187
|
+
"In nested mode, parents with child routes disclose inline without navigating. Only selecting a child emits route intent; parents without children retain direct navigation.",
|
|
6188
|
+
"Nested branches use the same positional divider and staggered child motion as expanded desktop navigation, without adding disclosure chevrons. Dividers separate an expanded branch from its siblings, not from the outside edge of its group.",
|
|
6189
|
+
"Opening the sheet reveals the current route's branch. Collapsed child groups are inert and hidden from assistive technology while the shared navigation motion runs; child targets keep the mobile row density.",
|
|
5913
6190
|
"Area, Help, and Account events express intent while the application owns navigation and product behavior.",
|
|
5914
6191
|
"Set routeSelectionActive to false while a global tool owns the mobile stage so the underlying router URL remains available without marking its area current.",
|
|
5915
6192
|
"Set showAccount to false when account and user preferences already live in the supplied Settings navigation."
|
|
@@ -5960,6 +6237,10 @@
|
|
|
5960
6237
|
"type": "boolean",
|
|
5961
6238
|
"required": false
|
|
5962
6239
|
},
|
|
6240
|
+
"presentation": {
|
|
6241
|
+
"type": "PanelNavPresentation",
|
|
6242
|
+
"required": false
|
|
6243
|
+
},
|
|
5963
6244
|
"routeSelectionActive": {
|
|
5964
6245
|
"type": "boolean",
|
|
5965
6246
|
"required": false
|
|
@@ -5989,6 +6270,10 @@
|
|
|
5989
6270
|
{
|
|
5990
6271
|
"name": "dsClose",
|
|
5991
6272
|
"detail": "void"
|
|
6273
|
+
},
|
|
6274
|
+
{
|
|
6275
|
+
"name": "dsNavChildSelect",
|
|
6276
|
+
"detail": "PanelNavChildSelectDetail"
|
|
5992
6277
|
}
|
|
5993
6278
|
],
|
|
5994
6279
|
"slots": [],
|
|
@@ -8057,8 +8342,9 @@
|
|
|
8057
8342
|
"The optional paperTexture property adds a decorative Paper Design texture layer above the gradient or solid chrome frame; its color values are literal shader inputs rather than design tokens.",
|
|
8058
8343
|
"Dashboard represents day-to-day operational work while Settings represents administrative and configuration work; route state selects the context.",
|
|
8059
8344
|
"Replace navigation and pageChrome together from one completed route state.",
|
|
8060
|
-
"When pageChrome.showBack marks a detail depth, mobile chrome
|
|
8345
|
+
"When pageChrome.showBack marks a detail depth, mobile chrome combines the page heading and active local subsection in one sheet trigger; peer route tabs remain in desktop BarNav rather than replacing the detail identity.",
|
|
8061
8346
|
"Route-owned ordered page actions drive both BarTitle and MobileHeader. ShellApp forwards one flat page-action id and owns the derived mobile overflow menu so routes do not duplicate menu state or choices.",
|
|
8347
|
+
"Managed mobile Back and page-action controls use the same large touch density as the mobile navigation header without increasing the shared header height.",
|
|
8062
8348
|
"Managed ShellApp keeps the selected desktop section-navigation presentation and ShellPage present and owns page header stickiness and the content scroller.",
|
|
8063
8349
|
"Route-owned pageChrome independently selects ShellPage contentInset, page-header seams, scroll compaction, expanded and compact header-divider visibility, and contentSurface. ShellApp forwards them while resolving whether desktop title geometry is page-local or shell-bar-owned.",
|
|
8064
8350
|
"The application filters unauthorized destinations, sections, and tools before passing them into shell components."
|
|
@@ -8070,9 +8356,9 @@
|
|
|
8070
8356
|
"On desktop and tablet, panel section navigation replaces BarNav with compact BarTitle; collapsed PanelNav exposes child sections through its anchored flyout.",
|
|
8071
8357
|
"When panel section navigation moves BarTitle into the shell bar, routed content starts at the standard 32px desktop or 16px tablet gutter and ShellPage reports no page-local sticky-header height.",
|
|
8072
8358
|
"On mobile, ShellApp hides and inerts desktop chrome, uses a solid primary stage, and composes MobileHeader, MobileSheetNav, ShellTools, and the persistent MobileBarNav around the same application-owned content.",
|
|
8073
|
-
"
|
|
8359
|
+
"The section-navigation preference also selects mobile navigation: bar preserves flat area selection and the header section picker; panel expands child routes inline in MobileSheetNav and combines the page title with any local subsection in one sheet trigger.",
|
|
8074
8360
|
"Opening MobileSheetNav temporarily overlays the active routed page or global tool; closing it without selecting an area restores that same destination and its nested state. The sheet exposes the router-derived current area only while the routed area owns the mobile stage, so a global tool never leaves an underlying route highlighted.",
|
|
8075
|
-
"Selecting Help from the managed mobile sheet activates the configured Help tool and
|
|
8361
|
+
"Selecting Help from the managed mobile sheet activates the configured Help tool and retains Help as the primary mobile destination across other tool selections until a routed area is selected or navigation changes. This mobile context does not alter desktop or tablet routing.",
|
|
8076
8362
|
"Set navigation.showMobileAccount to false when the Settings destination collection already includes account and user preferences.",
|
|
8077
8363
|
"When a suspended mobile document returns to the foreground, ShellApp refreshes the complete stage paint layer without remounting routed content or tool owners.",
|
|
8078
8364
|
"When the application enables viewport-fit=cover, ShellApp reserves the shared top safe-area inset once for the complete mobile stage; nested routed, sheet, and tool headers must not add a second top inset.",
|