@ds-mo/ui 14.21.0 → 14.22.1
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 +8 -4
- package/dist/agent.json +62 -12
- package/dist/angular/ds-bar-title.d.ts +1 -1
- package/dist/angular/ds-bar-title.js +3 -3
- package/dist/angular/ds-panel-nav.d.ts +7 -1
- package/dist/angular/ds-panel-nav.js +7 -4
- package/dist/angular/ds-shell-app.d.ts +7 -1
- package/dist/angular/ds-shell-app.js +7 -4
- package/dist/angular/ds-shell-page.d.ts +1 -1
- package/dist/angular/ds-shell-page.js +3 -3
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-banner.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-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- 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-code-block.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-composer.js +1 -1
- package/dist/components/ds-message-scroller.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-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-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-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-search.js.map +1 -1
- package/dist/components/ds-table-sort.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/p--68f7nIx.js +2 -0
- package/dist/components/p--68f7nIx.js.map +1 -0
- package/dist/components/{p-CZ144LS5.js → p-0X-4KGQf.js} +2 -2
- package/dist/components/{p-DSy1oOnd.js → p-7MWaWl8w.js} +2 -2
- package/dist/components/{p-hYjmOPCI.js → p-9M0ak2q_.js} +2 -2
- package/dist/components/{p-pnO8tAYB.js → p-9X_p0bHr.js} +2 -2
- package/dist/components/p-B0OZx3JB.js +2 -0
- package/dist/components/p-B0OZx3JB.js.map +1 -0
- package/dist/components/{p-BFit8o0r.js → p-BIaHDBfP.js} +2 -2
- package/dist/components/{p-9ykZwPlI.js → p-CL0tECXf.js} +2 -2
- package/dist/components/{p-9ykZwPlI.js.map → p-CL0tECXf.js.map} +1 -1
- package/dist/components/{p-Bd8I2oXN.js → p-COFw_fcj.js} +2 -2
- package/dist/components/{p-D36EmETH.js → p-CilwchJH.js} +2 -2
- package/dist/components/{p-Cnsvgx1M.js → p-CrYJnDev.js} +2 -2
- package/dist/components/{p-_C-XRpCB.js → p-CvHrCyuz.js} +2 -2
- package/dist/components/p-D9wZlB_N.js +2 -0
- package/dist/components/p-D9wZlB_N.js.map +1 -0
- package/dist/components/{p-Bc_z1UwJ.js → p-DAFR4U9P.js} +2 -2
- package/dist/components/{p-CeKa4VbU.js → p-DXbryJHz.js} +2 -2
- package/dist/components/{p-CFkZSDwI.js → p-DeK_6Uym.js} +2 -2
- package/dist/components/{p-Dit6JmAK.js → p-DiyO47xX.js} +2 -2
- package/dist/components/{p-DCbKsABt.js → p-DjF2m7bf.js} +2 -2
- package/dist/components/{p-DCbKsABt.js.map → p-DjF2m7bf.js.map} +1 -1
- package/dist/components/p-DrVA5L25.js +2 -0
- package/dist/components/p-DrVA5L25.js.map +1 -0
- package/dist/components/{p-BbG7nOcz.js → p-DzVYGJJv.js} +2 -2
- package/dist/components/{p-B1wMpt1z.js → p-FitB53eM.js} +2 -2
- package/dist/components/{p-6rB0eAda.js → p-FxtgCvhA.js} +2 -2
- package/dist/components/{p-pxN8JGEh.js → p-nVv71P3f.js} +2 -2
- package/dist/docs/components.json +292 -13
- package/dist/lib/components/BarTitle/bar-title-types.d.ts +1 -0
- package/dist/lib/components/Menu/menu-placement.d.ts +13 -0
- package/dist/lib/components/PanelNav/panel-nav-types.d.ts +19 -0
- package/dist/lib/components/ShellApp/shell-app-types.d.ts +1 -0
- package/dist/lib/components/ShellPage/shell-page-types.d.ts +1 -0
- package/dist/lib/shell/index.d.ts +3 -3
- package/dist/lib/shell/index.js.map +2 -2
- package/dist/mcp-data/registry/bar-title.json +25 -4
- package/dist/mcp-data/registry/card-overview.json +1 -1
- package/dist/mcp-data/registry/menu.json +1 -1
- package/dist/mcp-data/registry/modal.json +1 -1
- package/dist/mcp-data/registry/panel-nav.json +71 -10
- package/dist/mcp-data/registry/registry.json +61 -11
- package/dist/mcp-data/registry/shell-app.json +47 -5
- package/dist/mcp-data/registry/shell-page.json +25 -5
- package/dist/mcp-data/registry/table-search.json +1 -1
- package/dist/mcp-data/registry/table.json +1 -1
- package/dist/react/ds-panel-nav.d.ts +2 -1
- package/dist/react/ds-panel-nav.js +1 -0
- package/dist/react/ds-shell-app.d.ts +2 -1
- package/dist/react/ds-shell-app.js +1 -0
- package/dist/types/components/BarTitle/BarTitle.d.ts +4 -1
- package/dist/types/components/BarTitle/bar-title-types.d.ts +1 -0
- package/dist/types/components/BarTitle/index.d.ts +1 -1
- package/dist/types/components/CardOverview/CardOverview.d.ts +1 -0
- package/dist/types/components/Menu/menu-placement.d.ts +13 -0
- package/dist/types/components/PanelNav/PanelNav.d.ts +29 -2
- package/dist/types/components/PanelNav/index.d.ts +2 -2
- package/dist/types/components/PanelNav/panel-nav-types.d.ts +19 -0
- package/dist/types/components/PanelNav/panel-nav-utils.d.ts +10 -2
- package/dist/types/components/ShellApp/ShellApp.d.ts +11 -1
- package/dist/types/components/ShellApp/shell-app-types.d.ts +1 -0
- package/dist/types/components/ShellPage/ShellPage.d.ts +6 -1
- package/dist/types/components/ShellPage/index.d.ts +1 -1
- package/dist/types/components/ShellPage/shell-page-types.d.ts +1 -0
- package/dist/types/components/Table/Table.d.ts +3 -0
- package/dist/types/components.d.ts +73 -8
- package/dist/types/shell/index.d.ts +3 -3
- package/dist/vue/ds-bar-title.js +1 -0
- package/dist/vue/ds-panel-nav.js +4 -0
- package/dist/vue/ds-shell-app.js +3 -0
- package/dist/vue/ds-shell-page.js +1 -0
- package/package.json +1 -1
- package/dist/components/p-CEnoPUn5.js +0 -2
- package/dist/components/p-CEnoPUn5.js.map +0 -1
- package/dist/components/p-Y5_MkCFn.js +0 -2
- package/dist/components/p-Y5_MkCFn.js.map +0 -1
- package/dist/components/p-YDxDyedE.js +0 -2
- package/dist/components/p-YDxDyedE.js.map +0 -1
- package/dist/components/p-rw0ZxIE4.js +0 -2
- package/dist/components/p-rw0ZxIE4.js.map +0 -1
- /package/dist/components/{p-CZ144LS5.js.map → p-0X-4KGQf.js.map} +0 -0
- /package/dist/components/{p-DSy1oOnd.js.map → p-7MWaWl8w.js.map} +0 -0
- /package/dist/components/{p-hYjmOPCI.js.map → p-9M0ak2q_.js.map} +0 -0
- /package/dist/components/{p-pnO8tAYB.js.map → p-9X_p0bHr.js.map} +0 -0
- /package/dist/components/{p-BFit8o0r.js.map → p-BIaHDBfP.js.map} +0 -0
- /package/dist/components/{p-Bd8I2oXN.js.map → p-COFw_fcj.js.map} +0 -0
- /package/dist/components/{p-D36EmETH.js.map → p-CilwchJH.js.map} +0 -0
- /package/dist/components/{p-Cnsvgx1M.js.map → p-CrYJnDev.js.map} +0 -0
- /package/dist/components/{p-_C-XRpCB.js.map → p-CvHrCyuz.js.map} +0 -0
- /package/dist/components/{p-Bc_z1UwJ.js.map → p-DAFR4U9P.js.map} +0 -0
- /package/dist/components/{p-CeKa4VbU.js.map → p-DXbryJHz.js.map} +0 -0
- /package/dist/components/{p-CFkZSDwI.js.map → p-DeK_6Uym.js.map} +0 -0
- /package/dist/components/{p-Dit6JmAK.js.map → p-DiyO47xX.js.map} +0 -0
- /package/dist/components/{p-BbG7nOcz.js.map → p-DzVYGJJv.js.map} +0 -0
- /package/dist/components/{p-B1wMpt1z.js.map → p-FitB53eM.js.map} +0 -0
- /package/dist/components/{p-6rB0eAda.js.map → p-FxtgCvhA.js.map} +0 -0
- /package/dist/components/{p-pxN8JGEh.js.map → p-nVv71P3f.js.map} +0 -0
|
@@ -1309,6 +1309,7 @@
|
|
|
1309
1309
|
],
|
|
1310
1310
|
"commonlyComposedWith": [
|
|
1311
1311
|
"component:ds-shell-page",
|
|
1312
|
+
"component:ds-shell-app",
|
|
1312
1313
|
"component:ds-button-filled",
|
|
1313
1314
|
"component:ds-button-unfilled",
|
|
1314
1315
|
"component:ds-breadcrumb",
|
|
@@ -1333,11 +1334,13 @@
|
|
|
1333
1334
|
"The overflow trigger uses its bordered treatment whenever the primary action is visible beside it; overflow-only and auto-collapsed-primary presentations keep the trigger borderless.",
|
|
1334
1335
|
"expanded renders the larger heading, optional description, inset divider, and a full-width caption breadcrumb row above the title. The breadcrumb begins after 32px top padding; the following title and right-side actions share one top alignment. Compact renders 48px chrome with the existing icon Back action; constrained uses compact chrome and moves an auto-collapse primary action into overflow.",
|
|
1335
1336
|
"primaryAction collapse defaults to auto. Use never for exceptional actions whose hierarchy must remain visible in constrained layouts.",
|
|
1336
|
-
"showDivider=false removes the bottom divider when the surrounding page composition supplies the boundary; showCompactDivider can independently restore or remove that boundary in compact and constrained variants."
|
|
1337
|
+
"showDivider=false removes the bottom divider when the surrounding page composition supplies the boundary; showCompactDivider can independently restore or remove that boundary in compact and constrained variants.",
|
|
1338
|
+
"placement=shell-bar is reserved for ShellApp panel section navigation. It remains compact, omits description and breadcrumb presentation, and preserves applicable Back, section, primary, and overflow controls."
|
|
1337
1339
|
],
|
|
1338
1340
|
"responsiveBehavior": [
|
|
1339
1341
|
"BarTitle does not observe viewport, shell, scroll, or container state. Its owner selects an explicit variant.",
|
|
1340
1342
|
"ShellPage is the standard owner for automatic expanded, compact, and constrained selection.",
|
|
1343
|
+
"ShellApp owns shell-bar placement and always selects compact presentation there; mobile continues to use MobileHeader.",
|
|
1341
1344
|
"When ShellPage owns BarTitle on a secondary desktop or tablet page, its expanded, compact, and constrained presentations all match that canvas; the separate MobileHeader component remains primary.",
|
|
1342
1345
|
"Compact titles use the shared compact-header geometry and md control inset so top-level headings align with BarNav and inline Back geometry aligns with PanelToolHeader. Long headings and section labels truncate independently while Back and action controls retain complete hit targets and accessible names.",
|
|
1343
1346
|
"A never-collapse primary action remains visible in constrained mode; the title and section label yield space first."
|
|
@@ -1404,6 +1407,10 @@
|
|
|
1404
1407
|
"type": "string",
|
|
1405
1408
|
"required": true
|
|
1406
1409
|
},
|
|
1410
|
+
"placement": {
|
|
1411
|
+
"type": "BarTitlePlacement",
|
|
1412
|
+
"required": false
|
|
1413
|
+
},
|
|
1407
1414
|
"primaryAction": {
|
|
1408
1415
|
"type": "BarTitlePrimaryAction | null",
|
|
1409
1416
|
"required": false
|
|
@@ -6283,7 +6290,7 @@
|
|
|
6283
6290
|
{
|
|
6284
6291
|
"name": "panel-nav",
|
|
6285
6292
|
"title": "PanelNav",
|
|
6286
|
-
"description": "The single persistent primary navigation for an application, providing grouped
|
|
6293
|
+
"description": "The single persistent primary navigation for an application, providing grouped destinations, optional nested route sections, active-route state, standard dashboard/settings switching, user access, and collapsible desktop and tablet presentation.",
|
|
6287
6294
|
"type": "registry:ui",
|
|
6288
6295
|
"meta": {
|
|
6289
6296
|
"library": "@ds-mo/ui",
|
|
@@ -6294,7 +6301,7 @@
|
|
|
6294
6301
|
"intent": {
|
|
6295
6302
|
"audience": "specialized",
|
|
6296
6303
|
"status": "stable",
|
|
6297
|
-
"summary": "The single persistent primary navigation for an application, providing grouped
|
|
6304
|
+
"summary": "The single persistent primary navigation for an application, providing grouped destinations, optional nested route sections, active-route state, standard dashboard/settings switching, user access, and collapsible desktop and tablet presentation.",
|
|
6298
6305
|
"useWhen": [
|
|
6299
6306
|
"Building the one primary navigation surface for an application that uses the CompoMo system.",
|
|
6300
6307
|
"Top-level destinations must remain consistently available while the application's page content changes.",
|
|
@@ -6302,14 +6309,14 @@
|
|
|
6302
6309
|
],
|
|
6303
6310
|
"avoidWhen": [
|
|
6304
6311
|
"A second navigation surface is needed within the same application; an application must have only one PanelNav.",
|
|
6305
|
-
"
|
|
6312
|
+
"Route sections belong in the shell bar for the application's selected navigation mode; use flat PanelNav with BarNav rather than mixing both section presentations.",
|
|
6306
6313
|
"The choices switch local content without changing the application's primary destination; use TabGroup instead.",
|
|
6307
6314
|
"The interaction performs a command or presents temporary contextual choices; use a button or Menu instead.",
|
|
6308
6315
|
"Building navigation below the mobile breakpoint; use the application's dedicated mobile navigation component instead."
|
|
6309
6316
|
],
|
|
6310
6317
|
"alternatives": [
|
|
6311
6318
|
{
|
|
6312
|
-
"when": "The
|
|
6319
|
+
"when": "The application uses the standard flat primary-navigation mode and route sections belong in the shell bar.",
|
|
6313
6320
|
"component": "component:ds-bar-nav",
|
|
6314
6321
|
"reason": "BarNav owns secondary section navigation within the destination selected by PanelNav."
|
|
6315
6322
|
},
|
|
@@ -6337,6 +6344,7 @@
|
|
|
6337
6344
|
"Give every primary destination a concise visible label and an icon that supports rather than replaces that label.",
|
|
6338
6345
|
"Provide localized dashboard, settings, account, navigation, collapse, and expand labels.",
|
|
6339
6346
|
"Preserve accessible destination names when the panel is collapsed to icon-only presentation.",
|
|
6347
|
+
"In nested presentation, expose parent expansion state, give only the active child aria-current, and focus the selected or first enabled child when a keyboard-opened flyout appears.",
|
|
6340
6348
|
"Use notification dots as supplemental status and never as the only indication of important information.",
|
|
6341
6349
|
"When the destination body overflows, it becomes a localized keyboard-focusable scroll region in addition to the roving destination controls.",
|
|
6342
6350
|
"Keep the standard dashboard/settings switch and user/account entry available in the footer."
|
|
@@ -6345,7 +6353,13 @@
|
|
|
6345
6353
|
"Render exactly one PanelNav per application; it owns primary application destinations and no other navigation role.",
|
|
6346
6354
|
"The host router owns the current route; prefer currentUrl for active destination matching and use activeId only when route matching is unavailable.",
|
|
6347
6355
|
"Use anchor mode for native links or routers that intercept anchors; use event mode when the host performs navigation from dsNavSelect.",
|
|
6348
|
-
"Groups visually organize top-level destinations
|
|
6356
|
+
"Groups visually organize top-level destinations. Use presentation=nested only when parent children replace BarNav route sections.",
|
|
6357
|
+
"A parent with children is not a standalone page: activating it while expanded resolves to the first enabled child; route state keeps that parent expanded and gives both parent and child selected styling.",
|
|
6358
|
+
"While one parent is expanded in nested presentation, other top-level destinations retain secondary foreground; flat and collapsed presentations keep their existing foreground treatment.",
|
|
6359
|
+
"Within a multi-item group, an expanded nested branch is bounded beside its siblings: the first branch adds a divider after its children, a middle branch adds dividers before its parent and after its children, and the final branch adds a divider before its parent. Single-item groups add neither. Divider space expands on the nested section-height timing while the line fades in, with equal visible spacing on both sides; collapsing the full rail contracts and fades the divider on the rail-collapse timing.",
|
|
6360
|
+
"Expanded nested branches animate to their full required height over 500ms while fixed-size child rows progressively fade over 500ms after a 250ms wait, with each row starting 50ms after the previous row. On close, child rows fade out in reverse order with secondary foreground and the height contraction waits 250ms; reduced-motion preferences collapse those transitions to the instant motion token.",
|
|
6361
|
+
"Collapsing the full navigation rail keeps the active nested branch mounted through the rail transition and contracts its height over the same duration, so following destinations reposition without snapping.",
|
|
6362
|
+
"Collapsed nested presentation opens a child-only flyout from the parent icon without navigating; the parent holds the transient pressed wash while the flyout is rendered, activates again to close, and emits navigation intent only after a child selection.",
|
|
6349
6363
|
"Dashboard presents day-to-day operational destinations; Settings presents administrative and configuration destinations.",
|
|
6350
6364
|
"The standard footer switches the entire destination collection and navStyle between Dashboard and Settings and exposes the user/account entry.",
|
|
6351
6365
|
"The host owns the external user menu opened from dsNavUserAction.",
|
|
@@ -6359,7 +6373,8 @@
|
|
|
6359
6373
|
"Below 768px, the consuming application replaces PanelNav with a dedicated mobile navigation component; PanelNav does not own mobile navigation.",
|
|
6360
6374
|
"Managed ShellApp permanently owns responsive composition: it determines shell mode, enforces tablet collapse, and presents MobileSheetNav below 768px.",
|
|
6361
6375
|
"When the viewport is below breakpoint, PanelNav locks collapsed, disables its header toggle affordance, and preserves the persisted desktop collapse preference.",
|
|
6362
|
-
"Collapsed presentation must preserve destination ordering, active state, notification status, and accessible names."
|
|
6376
|
+
"Collapsed presentation must preserve destination ordering, active state, notification status, and accessible names.",
|
|
6377
|
+
"Nested parents expose child routes inline while expanded and in an anchored flyout while collapsed; mobile navigation remains owned by ShellApp."
|
|
6363
6378
|
],
|
|
6364
6379
|
"frameworkCaveats": {
|
|
6365
6380
|
"customElements": [
|
|
@@ -6400,6 +6415,10 @@
|
|
|
6400
6415
|
"type": "boolean",
|
|
6401
6416
|
"required": false
|
|
6402
6417
|
},
|
|
6418
|
+
"activeChildId": {
|
|
6419
|
+
"type": "string",
|
|
6420
|
+
"required": false
|
|
6421
|
+
},
|
|
6403
6422
|
"activeId": {
|
|
6404
6423
|
"type": "string",
|
|
6405
6424
|
"required": false
|
|
@@ -6448,6 +6467,10 @@
|
|
|
6448
6467
|
"type": "string",
|
|
6449
6468
|
"required": false
|
|
6450
6469
|
},
|
|
6470
|
+
"presentation": {
|
|
6471
|
+
"type": "PanelNavPresentation",
|
|
6472
|
+
"required": false
|
|
6473
|
+
},
|
|
6451
6474
|
"routerMode": {
|
|
6452
6475
|
"type": "PanelNavRouterMode",
|
|
6453
6476
|
"required": false
|
|
@@ -6482,6 +6505,10 @@
|
|
|
6482
6505
|
"name": "dsChromeTransitionStart",
|
|
6483
6506
|
"detail": "ChromeTransitionDetail"
|
|
6484
6507
|
},
|
|
6508
|
+
{
|
|
6509
|
+
"name": "dsNavChildSelect",
|
|
6510
|
+
"detail": "PanelNavChildSelectDetail"
|
|
6511
|
+
},
|
|
6485
6512
|
{
|
|
6486
6513
|
"name": "dsNavFooterAction",
|
|
6487
6514
|
"detail": "void"
|
|
@@ -6516,6 +6543,7 @@
|
|
|
6516
6543
|
"badge",
|
|
6517
6544
|
"button-unfilled",
|
|
6518
6545
|
"icon",
|
|
6546
|
+
"menu",
|
|
6519
6547
|
"text",
|
|
6520
6548
|
"tooltip"
|
|
6521
6549
|
]
|
|
@@ -7801,6 +7829,7 @@
|
|
|
7801
7829
|
"commonlyComposedWith": [
|
|
7802
7830
|
"component:ds-panel-nav",
|
|
7803
7831
|
"component:ds-bar-nav",
|
|
7832
|
+
"component:ds-bar-title",
|
|
7804
7833
|
"component:ds-panel-tools",
|
|
7805
7834
|
"component:ds-shell-tools",
|
|
7806
7835
|
"component:ds-mobile-sheet-nav",
|
|
@@ -7830,6 +7859,10 @@
|
|
|
7830
7859
|
"The application router owns the current route, authorization filtering, Dashboard or Settings context, destination collections, section collections, and localized content labels.",
|
|
7831
7860
|
"ShellApp renders the lower-level desktop, tablet, and mobile chrome, coordinates layout, gradient alignment, transitions, shortcuts, global surfaces, optional Inbox state, focus restoration, and mobile-stage visibility.",
|
|
7832
7861
|
"The application router owns authorization, current URLs, history, and route execution; ShellApp forwards navigation and page intent events without routing.",
|
|
7862
|
+
"sectionNavigation is an application-controlled preference: bar keeps route sections in BarNav, while panel renders them as nested PanelNav children and places compact BarTitle in the shell bar.",
|
|
7863
|
+
"Managed ShellApp derives ShellPage desktop header placement from sectionNavigation. Panel mode removes page-local title geometry, restores the standard responsive top gutter, and preserves full-bleed page content without requiring route-specific navigation branches.",
|
|
7864
|
+
"Switch sectionNavigation at runtime without replacing routed content or tool owners; the application owns preference storage and defaults new users to bar unless product policy says otherwise.",
|
|
7865
|
+
"In panel mode, supply the same route sections as children on their PanelNav parent and handle dsNavChildSelect as structured parent, child, and href navigation intent.",
|
|
7833
7866
|
"The application supplies each routed content owner and tool view once. ShellApp changes visibility, inert state, and presentation without recreating those nodes.",
|
|
7834
7867
|
"The optional banner slot accepts one application-owned ds-banner above the complete shell row. The application owns its open state, orientation for the current shell capacity, action consequences, dismissal persistence, and resolution when several messages compete.",
|
|
7835
7868
|
"Use composition=slotted only for advanced application architectures that intentionally own all lower-level chrome wiring.",
|
|
@@ -7839,15 +7872,18 @@
|
|
|
7839
7872
|
"Dashboard represents day-to-day operational work while Settings represents administrative and configuration work; route state selects the context.",
|
|
7840
7873
|
"Replace navigation and pageChrome together from one completed route state.",
|
|
7841
7874
|
"When pageChrome.showBack marks a detail depth, mobile chrome keeps the page heading as its identity and presents only local subsections; peer route tabs remain in desktop BarNav rather than replacing the detail heading.",
|
|
7842
|
-
"Managed ShellApp keeps
|
|
7843
|
-
"Route-owned pageChrome independently selects ShellPage contentInset,
|
|
7875
|
+
"Managed ShellApp keeps the selected desktop section-navigation presentation and ShellPage present and owns page header stickiness and the content scroller.",
|
|
7876
|
+
"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.",
|
|
7844
7877
|
"The application filters unauthorized destinations, sections, and tools before passing them into shell components."
|
|
7845
7878
|
],
|
|
7846
7879
|
"responsiveBehavior": [
|
|
7847
7880
|
"ShellApp owns the fixed system breakpoints and resolves desktop at 1200px and wider, tablet from 768px through 1199px, and mobile below 768px.",
|
|
7848
7881
|
"On desktop, PanelNav defaults expanded, permits user collapse or expansion, and respects the locally persisted desktop preference.",
|
|
7849
7882
|
"On tablet, ShellApp keeps PanelNav permanently collapsed and prevents user expansion without overwriting the desktop preference.",
|
|
7883
|
+
"On desktop and tablet, panel section navigation replaces BarNav with compact BarTitle; collapsed PanelNav exposes child sections through its anchored flyout.",
|
|
7884
|
+
"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.",
|
|
7850
7885
|
"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.",
|
|
7886
|
+
"Changing sectionNavigation never changes mobile chrome; the preference may still be edited by an application Settings page.",
|
|
7851
7887
|
"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.",
|
|
7852
7888
|
"Selecting Help from the managed mobile sheet activates the configured Help tool and promotes Help to the primary mobile destination instead of forwarding it as route navigation.",
|
|
7853
7889
|
"Set navigation.showMobileAccount to false when the Settings destination collection already includes account and user preferences.",
|
|
@@ -7931,6 +7967,10 @@
|
|
|
7931
7967
|
"type": "PaperTextureConfig",
|
|
7932
7968
|
"required": false
|
|
7933
7969
|
},
|
|
7970
|
+
"sectionNavigation": {
|
|
7971
|
+
"type": "ShellSectionNavigation",
|
|
7972
|
+
"required": false
|
|
7973
|
+
},
|
|
7934
7974
|
"shortcutsEnabled": {
|
|
7935
7975
|
"type": "boolean",
|
|
7936
7976
|
"required": false
|
|
@@ -7957,6 +7997,10 @@
|
|
|
7957
7997
|
"name": "dsHeaderBack",
|
|
7958
7998
|
"detail": "{ tool: PanelToolsToolId }"
|
|
7959
7999
|
},
|
|
8000
|
+
{
|
|
8001
|
+
"name": "dsNavChildSelect",
|
|
8002
|
+
"detail": "PanelNavChildSelectDetail"
|
|
8003
|
+
},
|
|
7960
8004
|
{
|
|
7961
8005
|
"name": "dsNavFooterAction",
|
|
7962
8006
|
"detail": "void"
|
|
@@ -8074,7 +8118,7 @@
|
|
|
8074
8118
|
],
|
|
8075
8119
|
"accessibility": [
|
|
8076
8120
|
"ShellPage exposes the routed page as the main landmark; render exactly one active ShellPage inside ShellApp.",
|
|
8077
|
-
"Provide one BarTitle or BarWorkflow through the desktop header slot and one MobileHeader through mobile-header when the page participates in the mobile shell.",
|
|
8121
|
+
"Provide one BarTitle or BarWorkflow through the desktop header slot when desktopHeaderPlacement=page, and one MobileHeader through mobile-header when the page participates in the mobile shell.",
|
|
8078
8122
|
"Keep loading, empty, validation, error, progress, success, and failure communication in the default product-content slot.",
|
|
8079
8123
|
"Responsive variant changes preserve the same heading, controls, accessible names, and keyboard focus targets."
|
|
8080
8124
|
],
|
|
@@ -8082,6 +8126,7 @@
|
|
|
8082
8126
|
"headerCapacity=roomy, compact, or constrained is supplied before paint by the owning application shell and describes the page-header space available after viewport and shell-chrome policy are applied.",
|
|
8083
8127
|
"headerPresentation=auto selects the matching header variant from headerCapacity and scroll position.",
|
|
8084
8128
|
"expanded, compact, and constrained are explicit overrides for exceptional layouts and deterministic examples.",
|
|
8129
|
+
"desktopHeaderPlacement=page preserves page-local sticky title geometry. shell-bar declares that desktop and tablet title chrome is external and compact, restores the responsive top gutter, reports zero page-header block size, and disables page-header scroll compaction while preserving downstream compact-header behavior and full-bleed content.",
|
|
8085
8130
|
"contentInset=default supplies standard page gutters; none permits maps, canvases, and other full-bleed content.",
|
|
8086
8131
|
"contentInsetBlockStart=none removes only the gutter adjacent to the page header while retaining the responsive inline and bottom gutters.",
|
|
8087
8132
|
"contentInsetBlockStartSize can provide an exact roomy top seam, while compactContentInsetBlockStartSize independently defines the compact and constrained seam. ShellPage exposes their resolved sticky-header offset through --ds-shell-page-content-block-start-offset for viewport-fitted descendants.",
|
|
@@ -8098,6 +8143,7 @@
|
|
|
8098
8143
|
"responsiveMode=mobile hides and inerts the desktop header, exposes mobile-header, and disables desktop scroll-compaction geometry.",
|
|
8099
8144
|
"Update headerCapacity synchronously with shell layout state so opening tools or crossing application breakpoints cannot briefly render the wrong presentation.",
|
|
8100
8145
|
"The default content inset is balanced on every side: 32px in desktop mode and 16px in tablet and mobile modes.",
|
|
8146
|
+
"When desktopHeaderPlacement=shell-bar, desktop and tablet ignore page-header-specific block-start seam overrides and expose --ds-shell-page-content-block-start-offset as the responsive gutter only; mobile keeps its MobileHeader geometry and existing seam.",
|
|
8101
8147
|
"contentInsetBlockStart can independently remove the top gutter for table and canvas pages that should meet the sticky header; exact roomy and compact block-start sizes support pages whose seam changes with header capacity.",
|
|
8102
8148
|
"The selected content surface persists unchanged across desktop, tablet, and mobile modes.",
|
|
8103
8149
|
"On a secondary desktop or tablet page, BarTitle matches the page canvas across capacity and scroll-driven variant changes; the separate mobile-header presentation remains primary.",
|
|
@@ -8109,7 +8155,7 @@
|
|
|
8109
8155
|
],
|
|
8110
8156
|
"frameworkCaveats": {
|
|
8111
8157
|
"customElements": [
|
|
8112
|
-
"Import ShellPage with BarTitle or BarWorkflow in slot=header and MobileHeader in slot=mobile-header, then render route content as default children.",
|
|
8158
|
+
"Import ShellPage with BarTitle or BarWorkflow in slot=header when desktopHeaderPlacement=page and MobileHeader in slot=mobile-header, then render route content as default children.",
|
|
8113
8159
|
"Do not set BarTitle.variant while ShellPage owns headerPresentation."
|
|
8114
8160
|
],
|
|
8115
8161
|
"react": [
|
|
@@ -8157,6 +8203,10 @@
|
|
|
8157
8203
|
"type": "ShellPageContentSurface",
|
|
8158
8204
|
"required": false
|
|
8159
8205
|
},
|
|
8206
|
+
"desktopHeaderPlacement": {
|
|
8207
|
+
"type": "ShellPageDesktopHeaderPlacement",
|
|
8208
|
+
"required": false
|
|
8209
|
+
},
|
|
8160
8210
|
"headerCapacity": {
|
|
8161
8211
|
"type": "ShellPageCapacity",
|
|
8162
8212
|
"required": false
|