@ds-mo/ui 14.31.2 → 14.32.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 +15 -5
- package/dist/agent.json +229 -23
- package/dist/angular/ds-bar-page-title.d.ts +28 -0
- package/dist/angular/ds-bar-page-title.js +48 -0
- package/dist/angular/ds-card-settings-scope.d.ts +1 -1
- package/dist/angular/ds-card-settings-scope.js +3 -3
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +1 -0
- package/dist/angular/proxies.d.ts +1 -0
- package/dist/angular/proxies.js +1 -0
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-avatar.js +1 -1
- package/dist/components/ds-avatar.js.map +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-banner.js.map +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-action.js.map +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-page-title.d.ts +11 -0
- package/dist/components/ds-bar-page-title.js +2 -0
- package/dist/components/ds-bar-page-title.js.map +1 -0
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-bar-workflow.js.map +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-chart.js.map +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-navigation.js.map +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-card-setting.js.map +1 -1
- package/dist/components/ds-card-settings-scope.js +1 -1
- package/dist/components/ds-card-settings-scope.js.map +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart.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-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-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-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-swatch-picker.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-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-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-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-toast.js.map +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--VKxPUoV.js +2 -0
- package/dist/components/p--VKxPUoV.js.map +1 -0
- package/dist/components/p-14sMoeTr.js +2 -0
- package/dist/components/p-14sMoeTr.js.map +1 -0
- package/dist/components/p-9rzbZP-F.js +2 -0
- package/dist/components/p-9rzbZP-F.js.map +1 -0
- package/dist/components/p-B5W_r4vV.js +2 -0
- package/dist/components/p-B5W_r4vV.js.map +1 -0
- package/dist/components/{p-DjF2m7bf.js → p-B8ZonS3S.js} +2 -2
- package/dist/components/{p-BrW77sNB.js → p-B9WwU5vu.js} +2 -2
- package/dist/components/p-BCRPg1Xs.js +2 -0
- package/dist/components/p-BCRPg1Xs.js.map +1 -0
- package/dist/components/{p-KV3_5Cgo.js → p-BFd18avA.js} +2 -2
- package/dist/components/{p-DLDFPn9F.js → p-BGGIEmQj.js} +2 -2
- package/dist/components/p-BG_n-zQT.js +2 -0
- package/dist/components/p-BG_n-zQT.js.map +1 -0
- package/dist/components/p-BINlT3xz.js +2 -0
- package/dist/components/p-BINlT3xz.js.map +1 -0
- package/dist/components/p-BPTqn5zL.js +2 -0
- package/dist/components/p-BPTqn5zL.js.map +1 -0
- package/dist/components/p-BnWxbhFP.js +2 -0
- package/dist/components/p-BnWxbhFP.js.map +1 -0
- package/dist/components/{p-DhibZEq-.js → p-BonnrRtE.js} +2 -2
- package/dist/components/p-BxduVc5g.js +2 -0
- package/dist/components/p-BxduVc5g.js.map +1 -0
- package/dist/components/p-CD9AbaHQ.js +2 -0
- package/dist/components/p-CD9AbaHQ.js.map +1 -0
- package/dist/components/p-CN3roaMg.js +2 -0
- package/dist/components/p-CN3roaMg.js.map +1 -0
- package/dist/components/p-CR7G2BI6.js +2 -0
- package/dist/components/p-CR7G2BI6.js.map +1 -0
- package/dist/components/p-CakRq92x.js +2 -0
- package/dist/components/p-CakRq92x.js.map +1 -0
- package/dist/components/p-CumGY3uN.js +2 -0
- package/dist/components/p-CumGY3uN.js.map +1 -0
- package/dist/components/p-D59xX7JN.js +2 -0
- package/dist/components/p-D59xX7JN.js.map +1 -0
- package/dist/components/p-DFWJmuaR.js +2 -0
- package/dist/components/p-DFWJmuaR.js.map +1 -0
- package/dist/components/p-DGQUm3WL.js +2 -0
- package/dist/components/p-DGQUm3WL.js.map +1 -0
- package/dist/components/{p-DmTnBu5r.js → p-DJHshyyC.js} +2 -2
- package/dist/components/{p-BtUYEMwA.js → p-DPPM5T7q.js} +2 -2
- package/dist/components/p-DVRL3oem.js +2 -0
- package/dist/components/p-DVRL3oem.js.map +1 -0
- package/dist/components/p-DceM6xWR.js +2 -0
- package/dist/components/p-DceM6xWR.js.map +1 -0
- package/dist/components/p-Dhw_W8nk.js +2 -0
- package/dist/components/p-Dhw_W8nk.js.map +1 -0
- package/dist/components/{p-pkGqqLm-.js → p-DwxKwC5i.js} +2 -2
- package/dist/components/{p-DnhDgPJv.js → p-DzHXk0IG.js} +2 -2
- package/dist/components/p-OHT7lQVt.js +2 -0
- package/dist/components/p-OHT7lQVt.js.map +1 -0
- package/dist/components/{p-BQko6Yz3.js → p-P60MGUqZ.js} +2 -2
- package/dist/components/{p-BQko6Yz3.js.map → p-P60MGUqZ.js.map} +1 -1
- package/dist/components/{p-Bu-gu0mN.js → p-UxIgD24y.js} +2 -2
- package/dist/components/{p-BiIDQ5RW.js → p-YFrD62Ml.js} +2 -2
- package/dist/components/p-gR6G5azA.js +2 -0
- package/dist/components/p-gR6G5azA.js.map +1 -0
- package/dist/components/{p-ehZFKett.js → p-oFbI_M5B.js} +2 -2
- package/dist/components/p-r5td84fg.js +2 -0
- package/dist/components/p-r5td84fg.js.map +1 -0
- package/dist/components/p-skVhQk9d.js +2 -0
- package/dist/components/p-skVhQk9d.js.map +1 -0
- package/dist/components/p-z7Zj26BA.js +2 -0
- package/dist/components/p-z7Zj26BA.js.map +1 -0
- package/dist/components/{p-YDUM8xDg.js → p-zunBF381.js} +2 -2
- package/dist/docs/components.json +586 -40
- package/dist/mcp-data/registry/avatar.json +1 -1
- package/dist/mcp-data/registry/banner.json +1 -1
- package/dist/mcp-data/registry/bar-action.json +5 -5
- package/dist/mcp-data/registry/bar-nav.json +1 -1
- package/dist/mcp-data/registry/bar-page-title.json +433 -0
- package/dist/mcp-data/registry/bar-title.json +21 -5
- package/dist/mcp-data/registry/bar-workflow.json +1 -1
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/button-unfilled.json +1 -1
- package/dist/mcp-data/registry/card-chart.json +1 -1
- package/dist/mcp-data/registry/card-navigation.json +1 -1
- package/dist/mcp-data/registry/card-overview.json +1 -1
- package/dist/mcp-data/registry/card-setting.json +1 -1
- package/dist/mcp-data/registry/card-settings-scope.json +23 -5
- package/dist/mcp-data/registry/chart-legend.json +1 -1
- package/dist/mcp-data/registry/checkbox.json +1 -1
- package/dist/mcp-data/registry/chip.json +3 -2
- package/dist/mcp-data/registry/conversation-list-item.json +1 -1
- package/dist/mcp-data/registry/filter-menu.json +1 -1
- package/dist/mcp-data/registry/input.json +1 -1
- package/dist/mcp-data/registry/menu.json +1 -1
- package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
- package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
- package/dist/mcp-data/registry/modal.json +1 -1
- package/dist/mcp-data/registry/pagination.json +10 -10
- package/dist/mcp-data/registry/panel-nav.json +1 -1
- package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
- package/dist/mcp-data/registry/panel-tool-header.json +1 -1
- package/dist/mcp-data/registry/panel-tool-search.json +1 -1
- package/dist/mcp-data/registry/panel-tools.json +4 -2
- package/dist/mcp-data/registry/radio.json +1 -1
- package/dist/mcp-data/registry/registry.json +231 -22
- package/dist/mcp-data/registry/select.json +5 -4
- package/dist/mcp-data/registry/shell-app.json +9 -7
- package/dist/mcp-data/registry/skeleton.json +1 -1
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/table-group.json +1 -1
- package/dist/mcp-data/registry/table-search.json +1 -1
- package/dist/mcp-data/registry/table.json +2 -2
- package/dist/mcp-data/registry/tag.json +1 -1
- package/dist/mcp-data/registry/textarea.json +1 -1
- package/dist/mcp-data/registry/toast.json +1 -1
- package/dist/mcp-data/registry/tooltip-chart.json +1 -1
- package/dist/mcp-data/registry/tooltip.json +1 -1
- package/dist/react/components.d.ts +1 -0
- package/dist/react/components.js +1 -0
- package/dist/react/ds-bar-page-title.d.ts +14 -0
- package/dist/react/ds-bar-page-title.js +16 -0
- package/dist/styles/prose.css +20 -0
- package/dist/styles/table.css +1 -1
- package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +124 -0
- package/dist/types/components/BarPageTitle/index.d.ts +2 -0
- package/dist/types/components/BarTitle/BarTitle.d.ts +1 -7
- package/dist/types/components/BarTitle/bar-title-action-chrome.d.ts +76 -0
- package/dist/types/components/BarTitle/bar-title-actions.d.ts +1 -0
- package/dist/types/components/BarTitle/bar-title-sections.d.ts +11 -0
- package/dist/types/components/CardSettingsScope/CardSettingsScope.d.ts +3 -1
- package/dist/types/components/ShellApp/ShellApp.d.ts +1 -0
- package/dist/types/components.d.ts +183 -6
- package/dist/vue/components.d.ts +1 -0
- package/dist/vue/components.js +1 -0
- package/dist/vue/ds-bar-page-title.d.ts +3 -0
- package/dist/vue/ds-bar-page-title.js +26 -0
- package/dist/vue/ds-card-settings-scope.js +1 -0
- package/package.json +1 -1
- package/dist/components/p-BTsFFzfR.js +0 -2
- package/dist/components/p-BTsFFzfR.js.map +0 -1
- package/dist/components/p-BpSPAlOx.js +0 -2
- package/dist/components/p-BpSPAlOx.js.map +0 -1
- package/dist/components/p-Bwszi9p7.js +0 -2
- package/dist/components/p-Bwszi9p7.js.map +0 -1
- package/dist/components/p-C-MaZPyA.js +0 -2
- package/dist/components/p-C-MaZPyA.js.map +0 -1
- package/dist/components/p-CB5-uIY2.js +0 -2
- package/dist/components/p-CB5-uIY2.js.map +0 -1
- package/dist/components/p-CG4Fp3SY.js +0 -2
- package/dist/components/p-CG4Fp3SY.js.map +0 -1
- package/dist/components/p-CHCsDvJK.js +0 -2
- package/dist/components/p-CHCsDvJK.js.map +0 -1
- package/dist/components/p-CImwNex7.js +0 -2
- package/dist/components/p-CImwNex7.js.map +0 -1
- package/dist/components/p-CNZwk176.js +0 -2
- package/dist/components/p-CNZwk176.js.map +0 -1
- package/dist/components/p-CSZlbQ8_.js +0 -2
- package/dist/components/p-CSZlbQ8_.js.map +0 -1
- package/dist/components/p-CVNYRTEH.js +0 -2
- package/dist/components/p-CVNYRTEH.js.map +0 -1
- package/dist/components/p-D3sJXjcg.js +0 -2
- package/dist/components/p-D3sJXjcg.js.map +0 -1
- package/dist/components/p-D7Jc72Lw.js +0 -2
- package/dist/components/p-D7Jc72Lw.js.map +0 -1
- package/dist/components/p-DFOhxUQP.js +0 -2
- package/dist/components/p-DFOhxUQP.js.map +0 -1
- package/dist/components/p-DI7qbahC.js +0 -2
- package/dist/components/p-DI7qbahC.js.map +0 -1
- package/dist/components/p-DP75OhfU.js +0 -2
- package/dist/components/p-DP75OhfU.js.map +0 -1
- package/dist/components/p-DR1jV6Q5.js +0 -2
- package/dist/components/p-DR1jV6Q5.js.map +0 -1
- package/dist/components/p-DuJuqbcg.js +0 -2
- package/dist/components/p-DuJuqbcg.js.map +0 -1
- package/dist/components/p-E3RCUE7a.js +0 -2
- package/dist/components/p-E3RCUE7a.js.map +0 -1
- package/dist/components/p-JuKGR7Ay.js +0 -2
- package/dist/components/p-JuKGR7Ay.js.map +0 -1
- package/dist/components/p-Ui0Ir5li.js +0 -2
- package/dist/components/p-Ui0Ir5li.js.map +0 -1
- package/dist/components/p-eAX_M_QY.js +0 -2
- package/dist/components/p-eAX_M_QY.js.map +0 -1
- package/dist/components/p-eaCtnww1.js +0 -2
- package/dist/components/p-eaCtnww1.js.map +0 -1
- /package/dist/components/{p-DjF2m7bf.js.map → p-B8ZonS3S.js.map} +0 -0
- /package/dist/components/{p-BrW77sNB.js.map → p-B9WwU5vu.js.map} +0 -0
- /package/dist/components/{p-KV3_5Cgo.js.map → p-BFd18avA.js.map} +0 -0
- /package/dist/components/{p-DLDFPn9F.js.map → p-BGGIEmQj.js.map} +0 -0
- /package/dist/components/{p-DhibZEq-.js.map → p-BonnrRtE.js.map} +0 -0
- /package/dist/components/{p-DmTnBu5r.js.map → p-DJHshyyC.js.map} +0 -0
- /package/dist/components/{p-BtUYEMwA.js.map → p-DPPM5T7q.js.map} +0 -0
- /package/dist/components/{p-pkGqqLm-.js.map → p-DwxKwC5i.js.map} +0 -0
- /package/dist/components/{p-DnhDgPJv.js.map → p-DzHXk0IG.js.map} +0 -0
- /package/dist/components/{p-Bu-gu0mN.js.map → p-UxIgD24y.js.map} +0 -0
- /package/dist/components/{p-BiIDQ5RW.js.map → p-YFrD62Ml.js.map} +0 -0
- /package/dist/components/{p-ehZFKett.js.map → p-oFbI_M5B.js.map} +0 -0
- /package/dist/components/{p-YDUM8xDg.js.map → p-zunBF381.js.map} +0 -0
|
@@ -1030,9 +1030,9 @@
|
|
|
1030
1030
|
"The application updates the selected identities after dsClear, then moves focus to a stable collection control before the empty bar disappears; the bar never mutates selection or guesses a focus target."
|
|
1031
1031
|
],
|
|
1032
1032
|
"states": [
|
|
1033
|
-
"The bar is hidden while the selected count is below one and appears as the compact bold-brand elevated surface once at least one item is selected.",
|
|
1033
|
+
"The bar is hidden while the selected count is below one and appears as the compact pill bold-brand elevated surface once at least one item is selected.",
|
|
1034
1034
|
"Clear reports intent only. The application replaces the controlled selected identities.",
|
|
1035
|
-
"Slotted actions stay application-owned.
|
|
1035
|
+
"Slotted actions stay application-owned. Use the rounded ButtonFilled or ButtonUnfilled variant on a background matching the bold parent surface so those controls remain readable.",
|
|
1036
1036
|
"The component-owned visible surface owns medium control-elevation and removes the empty actions lane. Overlay inset, footer clearance, and stacking remain application layout."
|
|
1037
1037
|
],
|
|
1038
1038
|
"responsiveBehavior": [
|
|
@@ -1042,7 +1042,7 @@
|
|
|
1042
1042
|
"frameworkCaveats": {
|
|
1043
1043
|
"customElements": [
|
|
1044
1044
|
"Bind count from the current selected set, replace that set after dsClear, and return focus to a stable collection control.",
|
|
1045
|
-
"Project command controls through slot=actions with background matching the bold parent surface."
|
|
1045
|
+
"Project rounded command controls through slot=actions with background matching the bold parent surface."
|
|
1046
1046
|
],
|
|
1047
1047
|
"react": [
|
|
1048
1048
|
"Pass count from selected row or item state, clear that state from onDsClear, and return focus to a stable collection control.",
|
|
@@ -1050,7 +1050,7 @@
|
|
|
1050
1050
|
],
|
|
1051
1051
|
"angular": [
|
|
1052
1052
|
"Bind count from the controlled selected identities, handle dsClear in the collection owner, and return focus to a stable collection control.",
|
|
1053
|
-
"Project ds-button-unfilled or ds-button-filled into slot=actions with background matching the bold parent surface."
|
|
1053
|
+
"Project the rounded ds-button-unfilled or ds-button-filled variant into slot=actions with background matching the bold parent surface."
|
|
1054
1054
|
]
|
|
1055
1055
|
},
|
|
1056
1056
|
"references": [
|
|
@@ -1268,6 +1268,199 @@
|
|
|
1268
1268
|
"text"
|
|
1269
1269
|
]
|
|
1270
1270
|
},
|
|
1271
|
+
{
|
|
1272
|
+
"name": "bar-page-title",
|
|
1273
|
+
"title": "BarPageTitle",
|
|
1274
|
+
"description": "Compact shell-bar page chrome that shows every page-level section as a tab row after the title divider, and replaces that row with the compact section button when the complete set cannot fit.",
|
|
1275
|
+
"type": "registry:ui",
|
|
1276
|
+
"meta": {
|
|
1277
|
+
"library": "@ds-mo/ui",
|
|
1278
|
+
"distribution": "npm",
|
|
1279
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/bar-page-title",
|
|
1280
|
+
"source": "src/wc/components/BarPageTitle/BarPageTitle.tsx",
|
|
1281
|
+
"intentStatus": "complete",
|
|
1282
|
+
"intent": {
|
|
1283
|
+
"audience": "specialized",
|
|
1284
|
+
"status": "experimental",
|
|
1285
|
+
"summary": "Compact shell-bar page chrome that shows every page-level section as a tab row after the title divider, and replaces that row with the compact section button when the complete set cannot fit.",
|
|
1286
|
+
"useWhen": [
|
|
1287
|
+
"Managed ShellApp is in panel section navigation and the routed page has page-level subsections such as People or driver detail.",
|
|
1288
|
+
"The shell bar must keep page identity, Back, and page actions while presenting every page section together or not at all."
|
|
1289
|
+
],
|
|
1290
|
+
"avoidWhen": [
|
|
1291
|
+
"The chrome is a page-placed header; use BarTitle through ShellPage instead.",
|
|
1292
|
+
"The choices are peer area routes in bar-mode ShellApp; use BarNav instead.",
|
|
1293
|
+
"The choices are nested PanelNav child routes; keep those on PanelNav.",
|
|
1294
|
+
"Local in-page views should remain selectable as tabs inside content; use TabGroup instead."
|
|
1295
|
+
],
|
|
1296
|
+
"alternatives": [
|
|
1297
|
+
{
|
|
1298
|
+
"when": "The header sits in page content rather than the shell bar.",
|
|
1299
|
+
"component": "component:ds-bar-title",
|
|
1300
|
+
"reason": "BarTitle owns expanded, compact, and constrained page headers, including the compact section button without a tab row."
|
|
1301
|
+
},
|
|
1302
|
+
{
|
|
1303
|
+
"when": "The choices are peer routes of the active PanelNav destination.",
|
|
1304
|
+
"component": "component:ds-bar-nav",
|
|
1305
|
+
"reason": "BarNav owns area-level route sections and partial overflow rather than page subsections."
|
|
1306
|
+
},
|
|
1307
|
+
{
|
|
1308
|
+
"when": "The choices switch local content without changing page sections.",
|
|
1309
|
+
"component": "component:ds-tab-group",
|
|
1310
|
+
"reason": "TabGroup is the local content-view control rather than shell-bar page chrome."
|
|
1311
|
+
}
|
|
1312
|
+
],
|
|
1313
|
+
"commonlyComposedWith": [
|
|
1314
|
+
"component:ds-shell-app",
|
|
1315
|
+
"component:ds-bar-title",
|
|
1316
|
+
"component:ds-panel-nav",
|
|
1317
|
+
"component:ds-menu",
|
|
1318
|
+
"component:ds-text"
|
|
1319
|
+
],
|
|
1320
|
+
"patterns": [
|
|
1321
|
+
"pattern:application-shell",
|
|
1322
|
+
"pattern:shell-page"
|
|
1323
|
+
],
|
|
1324
|
+
"accessibility": [
|
|
1325
|
+
"Provide one concise heading; BarPageTitle renders exactly one h1.",
|
|
1326
|
+
"Give compact Back a destination-specific accessible name and handle dsBack in the route owner.",
|
|
1327
|
+
"Keep value synchronized with the current page section; dsSectionChange returns the selected section id.",
|
|
1328
|
+
"The tab row is a tablist with horizontal roving tabindex. The collapsed control exposes the current section, menu relationship, and expanded state, then restores focus after selection or dismissal.",
|
|
1329
|
+
"Use one filled primary action in the page decision area and keep every top-level action and nested menu-choice id non-empty and unique."
|
|
1330
|
+
],
|
|
1331
|
+
"states": [
|
|
1332
|
+
"Fewer than two selectable sections render title chrome only: no divider, tabs, or section button.",
|
|
1333
|
+
"Two or more selectable sections default to every tab after the compact title divider.",
|
|
1334
|
+
"When the unconstrained title, divider, and complete tab row cannot sit beside trailing actions, every tab is replaced by the compact section button and menu. BarPageTitle never keeps some tabs visible while overflowing the rest.",
|
|
1335
|
+
"Dividers in sections or actions create separate Menu groups without becoming selectable rows.",
|
|
1336
|
+
"Ordered actions preserve authored order with the same compact visible-action and overflow rules as compact BarTitle.",
|
|
1337
|
+
"showDivider=false removes the bottom seam; showCompactDivider can independently restore or remove that boundary.",
|
|
1338
|
+
"Section, action, split-menu, and overflow triggers retain the shared surface-open wash through exit."
|
|
1339
|
+
],
|
|
1340
|
+
"responsiveBehavior": [
|
|
1341
|
+
"BarPageTitle is compact-only shell-bar chrome. It does not offer expanded or constrained variants.",
|
|
1342
|
+
"ShellApp owns the managed panel-mode path and feeds pageChrome.subsections through the same section contract as BarTitle.",
|
|
1343
|
+
"Measurement uses a hidden unconstrained probe of Back, heading, divider, and every tab, compared with the width left after trailing actions, plus hysteresis so the control does not flicker at the boundary.",
|
|
1344
|
+
"Mobile continues to use MobileHeader; BarPageTitle is desktop and tablet shell-bar chrome.",
|
|
1345
|
+
"Long headings truncate while Back, tabs or the section button, and action controls retain complete hit targets and accessible names."
|
|
1346
|
+
],
|
|
1347
|
+
"frameworkCaveats": {
|
|
1348
|
+
"customElements": [
|
|
1349
|
+
"Assign sections, actionItems, primaryAction, and actions as JavaScript properties and replace array or object identities when controlled state changes.",
|
|
1350
|
+
"Handle dsBack, update value after dsSectionChange, and execute product commands from dsAction."
|
|
1351
|
+
],
|
|
1352
|
+
"react": [
|
|
1353
|
+
"Pass section and ordered action arrays directly to DsBarPageTitle and keep value controlled from route state."
|
|
1354
|
+
],
|
|
1355
|
+
"angular": [
|
|
1356
|
+
"Bind complex values on the standalone DsBarPageTitle adapter and handle Back, section, and action intent events in the route shell."
|
|
1357
|
+
]
|
|
1358
|
+
},
|
|
1359
|
+
"references": [
|
|
1360
|
+
{
|
|
1361
|
+
"label": "Storybook",
|
|
1362
|
+
"path": "src/wc/components/BarPageTitle/BarPageTitle.stories.ts"
|
|
1363
|
+
},
|
|
1364
|
+
{
|
|
1365
|
+
"label": "Managed panel-mode shell bar",
|
|
1366
|
+
"path": "src/wc/components/ShellApp/ShellApp.mdx"
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
"label": "All-or-nothing resize coverage",
|
|
1370
|
+
"path": "tests/e2e/bar-page-title.spec.ts"
|
|
1371
|
+
},
|
|
1372
|
+
{
|
|
1373
|
+
"label": "Surface ownership and trigger state",
|
|
1374
|
+
"path": "src/docs/SurfaceOwnership.mdx"
|
|
1375
|
+
}
|
|
1376
|
+
]
|
|
1377
|
+
},
|
|
1378
|
+
"props": {
|
|
1379
|
+
"actionItems": {
|
|
1380
|
+
"type": "BarTitleActionConfigItem[]",
|
|
1381
|
+
"required": false
|
|
1382
|
+
},
|
|
1383
|
+
"actions": {
|
|
1384
|
+
"type": "BarTitleActionItem[]",
|
|
1385
|
+
"required": false
|
|
1386
|
+
},
|
|
1387
|
+
"actionsAriaLabel": {
|
|
1388
|
+
"type": "string",
|
|
1389
|
+
"required": false
|
|
1390
|
+
},
|
|
1391
|
+
"backAriaLabel": {
|
|
1392
|
+
"type": "string",
|
|
1393
|
+
"required": false
|
|
1394
|
+
},
|
|
1395
|
+
"heading": {
|
|
1396
|
+
"type": "string",
|
|
1397
|
+
"required": true
|
|
1398
|
+
},
|
|
1399
|
+
"primaryAction": {
|
|
1400
|
+
"type": "BarTitlePrimaryAction | null",
|
|
1401
|
+
"required": false
|
|
1402
|
+
},
|
|
1403
|
+
"sections": {
|
|
1404
|
+
"type": "BarTitleSectionItem[]",
|
|
1405
|
+
"required": false
|
|
1406
|
+
},
|
|
1407
|
+
"sectionsAriaLabel": {
|
|
1408
|
+
"type": "string",
|
|
1409
|
+
"required": false
|
|
1410
|
+
},
|
|
1411
|
+
"showBack": {
|
|
1412
|
+
"type": "boolean",
|
|
1413
|
+
"required": false
|
|
1414
|
+
},
|
|
1415
|
+
"showCompactDivider": {
|
|
1416
|
+
"type": "boolean",
|
|
1417
|
+
"required": false
|
|
1418
|
+
},
|
|
1419
|
+
"showDivider": {
|
|
1420
|
+
"type": "boolean",
|
|
1421
|
+
"required": false
|
|
1422
|
+
},
|
|
1423
|
+
"value": {
|
|
1424
|
+
"type": "string",
|
|
1425
|
+
"required": false
|
|
1426
|
+
}
|
|
1427
|
+
},
|
|
1428
|
+
"events": [
|
|
1429
|
+
{
|
|
1430
|
+
"name": "dsAction",
|
|
1431
|
+
"detail": "string"
|
|
1432
|
+
},
|
|
1433
|
+
{
|
|
1434
|
+
"name": "dsBack",
|
|
1435
|
+
"detail": "MouseEvent"
|
|
1436
|
+
},
|
|
1437
|
+
{
|
|
1438
|
+
"name": "dsSectionChange",
|
|
1439
|
+
"detail": "string"
|
|
1440
|
+
}
|
|
1441
|
+
],
|
|
1442
|
+
"slots": [],
|
|
1443
|
+
"exports": {
|
|
1444
|
+
"customElement": "ds-bar-page-title",
|
|
1445
|
+
"react": "DsBarPageTitle",
|
|
1446
|
+
"vue": "DsBarPageTitle",
|
|
1447
|
+
"angular": "DsBarPageTitle"
|
|
1448
|
+
}
|
|
1449
|
+
},
|
|
1450
|
+
"dependencies": [
|
|
1451
|
+
"@ds-mo/ui",
|
|
1452
|
+
"@ds-mo/tokens",
|
|
1453
|
+
"@ds-mo/icons"
|
|
1454
|
+
],
|
|
1455
|
+
"registryDependencies": [
|
|
1456
|
+
"button-filled",
|
|
1457
|
+
"button-unfilled",
|
|
1458
|
+
"icon",
|
|
1459
|
+
"menu",
|
|
1460
|
+
"text",
|
|
1461
|
+
"tooltip"
|
|
1462
|
+
]
|
|
1463
|
+
},
|
|
1271
1464
|
{
|
|
1272
1465
|
"name": "bar-title",
|
|
1273
1466
|
"title": "BarTitle",
|
|
@@ -1291,12 +1484,18 @@
|
|
|
1291
1484
|
],
|
|
1292
1485
|
"avoidWhen": [
|
|
1293
1486
|
"The title belongs to a PanelTools drawer or fullscreen pane; use PanelToolHeader through PanelTools instead.",
|
|
1487
|
+
"The chrome is the managed panel-mode shell bar; use BarPageTitle.",
|
|
1294
1488
|
"The choices are primary application destinations or BarNav destinations rather than sections within the current page.",
|
|
1295
1489
|
"The heading belongs to a card, modal, or other bounded region rather than the page.",
|
|
1296
1490
|
"Local panels inside page content should remain directly selectable; use TabGroup instead.",
|
|
1297
1491
|
"Automatic sticky or responsive page orchestration is required; compose BarTitle in ShellPage rather than implementing it in the header."
|
|
1298
1492
|
],
|
|
1299
1493
|
"alternatives": [
|
|
1494
|
+
{
|
|
1495
|
+
"when": "The chrome is the managed panel-mode shell bar with page-level sections.",
|
|
1496
|
+
"component": "component:ds-bar-page-title",
|
|
1497
|
+
"reason": "BarPageTitle owns compact shell-bar identity and all-or-nothing page-section tabs."
|
|
1498
|
+
},
|
|
1300
1499
|
{
|
|
1301
1500
|
"when": "A create or edit workflow needs Exit, persistent step navigation, and a final Save or Submit action.",
|
|
1302
1501
|
"component": "component:ds-bar-workflow",
|
|
@@ -1343,13 +1542,13 @@
|
|
|
1343
1542
|
"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.",
|
|
1344
1543
|
"The one visible ordered action collapses by default in constrained presentation. Use never for an exceptional action whose hierarchy must remain visible; explicit overflow actions never leave the shared menu.",
|
|
1345
1544
|
"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.",
|
|
1346
|
-
"placement=shell-bar
|
|
1545
|
+
"placement=shell-bar remains compact slotted chrome for advanced ShellApp composition. Managed panel-mode ShellApp uses BarPageTitle instead. It omits description and breadcrumb presentation and preserves applicable Back, section, primary, and overflow controls.",
|
|
1347
1546
|
"Section, action, split-menu, and overflow triggers automatically retain the shared surface-open wash through exit. The expanded header presentation is layout, not surface ownership, and does not itself acquire a pressed wash."
|
|
1348
1547
|
],
|
|
1349
1548
|
"responsiveBehavior": [
|
|
1350
1549
|
"BarTitle does not observe viewport, shell, scroll, or container state. Its owner selects an explicit variant.",
|
|
1351
1550
|
"ShellPage is the standard owner for automatic expanded, compact, and constrained selection.",
|
|
1352
|
-
"ShellApp owns shell-bar placement and always selects compact presentation there;
|
|
1551
|
+
"ShellApp owns shell-bar placement for slotted composition and always selects compact presentation there; managed panel mode uses BarPageTitle. Mobile continues to use MobileHeader.",
|
|
1353
1552
|
"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.",
|
|
1354
1553
|
"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.",
|
|
1355
1554
|
"A never-collapse action remains visible in constrained mode; the title and section label yield space first.",
|
|
@@ -2900,7 +3099,7 @@
|
|
|
2900
3099
|
"The shared text-action recipe supplies brand foreground, hover underline, and keyboard focus indication."
|
|
2901
3100
|
],
|
|
2902
3101
|
"states": [
|
|
2903
|
-
"The application owns the selected area, profile, available choices, permissions, and empty-state copy.",
|
|
3102
|
+
"The application owns the selected area, profile, available choices, permissions, and empty-state copy. Existing complete area-trigger labels remain compatible. Applications that separate the localizable settings noun from the control supply the area-only trigger label and noun together.",
|
|
2904
3103
|
"The card reports popup requests without changing selection or expanded state.",
|
|
2905
3104
|
"The surface follows the active theme rather than imposing always-dark colors."
|
|
2906
3105
|
],
|
|
@@ -2960,6 +3159,10 @@
|
|
|
2960
3159
|
"scopeLabel": {
|
|
2961
3160
|
"type": "string",
|
|
2962
3161
|
"required": false
|
|
3162
|
+
},
|
|
3163
|
+
"settingsLabel": {
|
|
3164
|
+
"type": "string",
|
|
3165
|
+
"required": false
|
|
2963
3166
|
}
|
|
2964
3167
|
},
|
|
2965
3168
|
"events": [
|
|
@@ -3460,8 +3663,9 @@
|
|
|
3460
3663
|
"Semantic state describes the represented value; active does not mean selected or pressed.",
|
|
3461
3664
|
"The dismiss action is the chip's only interaction, and the parent owns data mutation after dsRemove.",
|
|
3462
3665
|
"Long labels remain on one line and truncate only when the consuming layout supplies a maximum width; otherwise the chip sizes to its content.",
|
|
3666
|
+
"When the chip is wider than its label, the dismiss control stays on the trailing edge.",
|
|
3463
3667
|
"Rounded shape is a visual choice and does not change semantics or interaction.",
|
|
3464
|
-
"
|
|
3668
|
+
"The dismiss orb is 4px smaller than the chip on every recipe, including single and double inset, with 2px on top, bottom, and the trailing edge. isInset opts into reduced outer geometry only when Chip 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.",
|
|
3465
3669
|
"Chip is designed only for primary surfaces and has no surface-context API."
|
|
3466
3670
|
],
|
|
3467
3671
|
"responsiveBehavior": [
|
|
@@ -6502,7 +6706,7 @@
|
|
|
6502
6706
|
{
|
|
6503
6707
|
"name": "pagination",
|
|
6504
6708
|
"title": "Pagination",
|
|
6505
|
-
"description": "Controlled fixed or fitted page-size,
|
|
6709
|
+
"description": "Controlled fixed or fitted page-size, page position, adjacent-page navigation, and optional first/last controls for application-owned data windows.",
|
|
6506
6710
|
"type": "registry:ui",
|
|
6507
6711
|
"meta": {
|
|
6508
6712
|
"library": "@ds-mo/ui",
|
|
@@ -6513,10 +6717,10 @@
|
|
|
6513
6717
|
"intent": {
|
|
6514
6718
|
"audience": "general",
|
|
6515
6719
|
"status": "stable",
|
|
6516
|
-
"summary": "Controlled fixed or fitted page-size,
|
|
6720
|
+
"summary": "Controlled fixed or fitted page-size, page position, adjacent-page navigation, and optional first/last controls for application-owned data windows.",
|
|
6517
6721
|
"useWhen": [
|
|
6518
6722
|
"A result set is divided into discrete pages and the application owns fetching or slicing each page.",
|
|
6519
|
-
"A table or list needs a compact page-size selector,
|
|
6723
|
+
"A table or list needs a compact page-size selector, page position, and boundary-aware navigation.",
|
|
6520
6724
|
"Direct first-page and last-page navigation is useful enough to opt into alongside the default Previous and Next controls."
|
|
6521
6725
|
],
|
|
6522
6726
|
"avoidWhen": [
|
|
@@ -6530,7 +6734,7 @@
|
|
|
6530
6734
|
],
|
|
6531
6735
|
"accessibility": [
|
|
6532
6736
|
"The component renders a named navigation region, gives its compact page-size noun a complete accessible label, and gives every icon-only boundary control an explicit page action name.",
|
|
6533
|
-
"The visible page-size cluster states the localized noun
|
|
6737
|
+
"The visible page-size cluster states the localized noun and selected size, then a vertical divider, then page position, for example Rows: [25] | 1 of 20. A polite atomic status update retains the complete current range and ‘Page’ phrasing with the localized item noun.",
|
|
6534
6738
|
"Left and Right Arrow request the adjacent page while focus is within pagination navigation controls. The page-size combobox retains its own arrow-key behavior.",
|
|
6535
6739
|
"Inactive boundary controls and every control during loading remain non-interactive while retaining their accessible names.",
|
|
6536
6740
|
"showFirstLastButtons adds explicitly named First page and Last page controls; Previous and Next remain present in either mode."
|
|
@@ -6538,14 +6742,14 @@
|
|
|
6538
6742
|
"states": [
|
|
6539
6743
|
"pageIndex, numeric effective pageSize, pageSizeMode, totalItems, and pageSizeOptions are controlled inputs. dsChange reports the complete next pagination state, previous index, size, and mode, and whether the request changed the page, page size, or fitted capacity; it never mutates controlled inputs.",
|
|
6540
6744
|
"Page-size changes request the first page. Out-of-range page indexes and invalid numeric inputs normalize only for presentation; the owner remains authoritative.",
|
|
6541
|
-
"Zero results display
|
|
6745
|
+
"Zero results display Page 1 of 1. A partial final page still derives from totalItems. Assistive status keeps the complete item range.",
|
|
6542
6746
|
"loading preserves the full pagination surface, applies aria-busy to the navigation region, and prevents page or page-size requests.",
|
|
6543
|
-
"fitToPage appends a Fit to page choice. fitPageSize supplies its effective whole-item capacity; the closed trigger says Fit while
|
|
6747
|
+
"fitToPage appends a Fit to page choice. fitPageSize supplies its effective whole-item capacity; the closed trigger says Fit while page position reflects the resulting window. fitToPageInactive keeps that choice visible but unavailable when fitting is not meaningful for the current data shape. Pagination does not measure layouts itself.",
|
|
6544
6748
|
"showFirstLastButtons defaults to false. Enable it when direct jumps to both result boundaries materially help the workflow."
|
|
6545
6749
|
],
|
|
6546
6750
|
"responsiveBehavior": [
|
|
6547
|
-
"The full-width controls remain on one line with noun, selected size,
|
|
6548
|
-
"Inside a ds-table container narrower than 900px, pagination hides
|
|
6751
|
+
"The full-width controls remain on one line with noun, selected size, a vertical divider, page position, Previous and Next, plus optional First and Last navigation.",
|
|
6752
|
+
"Inside a ds-table container narrower than 900px, pagination hides any opted-in first/last controls while retaining the page-size noun and selector plus Previous, page position, and Next. The complete current range remains available to assistive technology."
|
|
6549
6753
|
],
|
|
6550
6754
|
"frameworkCaveats": {
|
|
6551
6755
|
"customElements": [
|
|
@@ -7430,6 +7634,8 @@
|
|
|
7430
7634
|
"Use isInactive only for a temporarily unavailable visible tool; omit tools the user is not authorized to access.",
|
|
7431
7635
|
"Rail actions disable physical press scaling so notification-dot halos remain aligned to the shell gradient; hover and pressed washes continue to paint above the dot and halo.",
|
|
7432
7636
|
"Rail tooltips are shell-owned and position against the viewport so the narrow tools-lane collision boundary cannot clamp them beyond the viewport edge.",
|
|
7637
|
+
"The PanelTools host is the composed-tree overlay collision owner for menus and filter popups inside tool views. Drawer presentation keeps that rectangle on the rail-and-drawer column. Fullscreen presentation uses the fixed fullscreen surface, not the leftover ShellApp tools-lane box, so history-pane and header menus stay next to their triggers.",
|
|
7638
|
+
"ds-menu and ds-filter-menu remain on the native popover top layer. Applications must not set boundary=viewport or position those popups to work around fullscreen collision.",
|
|
7433
7639
|
"The application owns slotted tool products and data while PanelTools owns rail ordering, drawer selection, open state, motion, and shell events.",
|
|
7434
7640
|
"Opening and closing clip an already-rendered fixed-width surface. Header and tool content remain fully opaque and retained during width motion; transition completion is accepted only at the measured terminal clip width, after which the closed surface becomes inert and paint-skipped.",
|
|
7435
7641
|
"Entering and exiting fullscreen snaps without borrowing the drawer open or close animation.",
|
|
@@ -8076,6 +8282,7 @@
|
|
|
8076
8282
|
"Use errorMessage with error so the trigger is described by the rendered alert."
|
|
8077
8283
|
],
|
|
8078
8284
|
"states": [
|
|
8285
|
+
"Selected trigger foreground communicates the current value independently of fill. Opt into activeFill when the trigger needs additional selected emphasis; popup option selection keeps its own treatment.",
|
|
8079
8286
|
"The multiple property changes cardinality without changing the component family: scalar mode selects and closes, while multiple mode toggles array values and keeps the popup open.",
|
|
8080
8287
|
"Every size applies one complete control-density recipe across trigger height, inline padding, icon zones, text-container inset, gap, and radius; error content follows the shared 4px field flow.",
|
|
8081
8288
|
"Value is controlled through the mutable value property as a string in scalar mode or a string array in multiple mode; dsChange reports the matching shape.",
|
|
@@ -8380,6 +8587,7 @@
|
|
|
8380
8587
|
"commonlyComposedWith": [
|
|
8381
8588
|
"component:ds-panel-nav",
|
|
8382
8589
|
"component:ds-bar-nav",
|
|
8590
|
+
"component:ds-bar-page-title",
|
|
8383
8591
|
"component:ds-bar-title",
|
|
8384
8592
|
"component:ds-panel-tools",
|
|
8385
8593
|
"component:ds-shell-tools",
|
|
@@ -8411,7 +8619,7 @@
|
|
|
8411
8619
|
"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.",
|
|
8412
8620
|
"Desktop and tablet PanelNav and PanelTools width motion is one continuous layout transition: the shell bar or title and routed page must follow the same intermediate lane widths without terminal-state snapping, overlapping chrome, transform scaling, or temporary replacement backgrounds.",
|
|
8413
8621
|
"The application router owns authorization, current URLs, history, and route execution; ShellApp forwards navigation and page intent events without routing.",
|
|
8414
|
-
"sectionNavigation is an application-controlled preference: bar keeps route sections in BarNav, while panel renders them as nested PanelNav children and places
|
|
8622
|
+
"sectionNavigation is an application-controlled preference: bar keeps route sections in BarNav, while panel renders them as nested PanelNav children and places BarPageTitle in the shell bar.",
|
|
8415
8623
|
"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.",
|
|
8416
8624
|
"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.",
|
|
8417
8625
|
"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.",
|
|
@@ -8426,7 +8634,7 @@
|
|
|
8426
8634
|
"Dashboard represents day-to-day operational work while Settings represents administrative and configuration work; route state selects the context.",
|
|
8427
8635
|
"Replace navigation and pageChrome together from one completed route state.",
|
|
8428
8636
|
"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.",
|
|
8429
|
-
"Route-owned ordered page actions drive
|
|
8637
|
+
"Route-owned ordered page actions drive BarTitle, BarPageTitle, 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.",
|
|
8430
8638
|
"Managed mobile Back and page-action controls use the same large touch density as the mobile navigation header without increasing the shared header height.",
|
|
8431
8639
|
"Managed ShellApp keeps the selected desktop section-navigation presentation and ShellPage present and owns page header stickiness and the content scroller.",
|
|
8432
8640
|
"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.",
|
|
@@ -8437,8 +8645,8 @@
|
|
|
8437
8645
|
"ShellApp owns the fixed system breakpoints and resolves desktop at 1200px and wider, tablet from 768px through 1199px, and mobile below 768px.",
|
|
8438
8646
|
"On desktop, PanelNav defaults expanded, permits user collapse or expansion, and respects the locally persisted desktop preference.",
|
|
8439
8647
|
"On tablet, ShellApp keeps PanelNav permanently collapsed and prevents user expansion without overwriting the desktop preference.",
|
|
8440
|
-
"On desktop and tablet, panel section navigation replaces BarNav with
|
|
8441
|
-
"When panel section navigation moves
|
|
8648
|
+
"On desktop and tablet, panel section navigation replaces BarNav with BarPageTitle; collapsed PanelNav exposes child sections through its anchored flyout.",
|
|
8649
|
+
"When panel section navigation moves BarPageTitle 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.",
|
|
8442
8650
|
"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.",
|
|
8443
8651
|
"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.",
|
|
8444
8652
|
"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.",
|
|
@@ -8450,7 +8658,7 @@
|
|
|
8450
8658
|
"Mobile global surfaces conceal and inert the routed workspace without unmounting it, preserving nested routes and scroll state.",
|
|
8451
8659
|
"Managed rail accessories are intentionally omitted below 768px. Applications that need equivalent persistent mobile status provide it through the top banner or status region; ShellApp does not convert rail accessories into mobile tool views.",
|
|
8452
8660
|
"Keep PanelNav width, BarNav height, PanelTools chrome, and main-content origin stable except during intentional responsive or collapse transitions.",
|
|
8453
|
-
"The routed content cell and tools cell expose separate anchored-overlay collision boundaries, so top-layer menus and tooltips remain above local clipping without crossing into neighboring shell lanes. Full-screen modal overlays remain viewport-owned.",
|
|
8661
|
+
"The routed content cell and tools cell expose separate anchored-overlay collision boundaries, so top-layer menus and tooltips remain above local clipping without crossing into neighboring shell lanes. Full-screen modal overlays remain viewport-owned. While PanelTools is fullscreen, the tools-lane marker is omitted so collision follows the fullscreen PanelTools surface (or the viewport fallback) instead of the in-flow drawer-width tools column.",
|
|
8454
8662
|
"Paper texture chrome is desktop/tablet-only and follows the fixed viewport phase of the shell chrome; mobile remains a solid primary stage.",
|
|
8455
8663
|
"Managed page-header capacity follows only the fixed shell breakpoint: roomy on desktop and compact on tablet. Opening PanelTools does not compact or constrain BarTitle.",
|
|
8456
8664
|
"Mobile keeps at most the first eligible ordered icon command visible and moves labeled buttons, menu choices, split actions, and explicit overflow commands into one shell-owned text-only page-actions menu.",
|
|
@@ -8624,6 +8832,7 @@
|
|
|
8624
8832
|
],
|
|
8625
8833
|
"registryDependencies": [
|
|
8626
8834
|
"bar-nav",
|
|
8835
|
+
"bar-page-title",
|
|
8627
8836
|
"bar-title",
|
|
8628
8837
|
"button-filled",
|
|
8629
8838
|
"button-unfilled",
|
|
@@ -9849,7 +10058,7 @@
|
|
|
9849
10058
|
"Scrollable table regions become keyboard focusable and named only when overflow exists.",
|
|
9850
10059
|
"Incremental loading, newly appended row counts, failures, and end-of-results transitions are announced through a polite status region without replacing visible state. In grouped tables, announcements name the independently loading group.",
|
|
9851
10060
|
"Applications may pass their controlled literal search terms through highlightTerms after applying their own filtering. When TableSearch scopes the query, pass the same selected field identities through highlightFieldIds. A compound column maps its ordered headerSegments to primary, secondary-run, and tertiary-run data points; simple columns map their column ID to every owned text track. With no highlightFieldIds every text track remains eligible. Matching text is rendered with semantic mark elements, so the emphasis is identifiable independently of its faint-brand background and bold-brand foreground. Highlight markup preserves source order, the cell's complete accessible text, and does not create extra announcements.",
|
|
9852
|
-
"Static and infinite tables may show an optional result summary footer when displayedCount and totalCount are finite. Virtual mode shows a total-only summary and ignores displayedCount. Pagination mode instead renders a named Pagination control with a
|
|
10061
|
+
"Static and infinite tables may show an optional result summary footer when displayedCount and totalCount are finite. Virtual mode shows a total-only summary and ignores displayedCount. Pagination mode instead renders a named Pagination control with a page-size picker, vertical divider, and page position; range changes are announced independently with complete phrasing. Unmodified Left and Right Arrow request the adjacent page while focus is inside a paginated table or on a containing page scroller that owns it; editable fields, choice controls, sliders, open menus, and modified key combinations retain their own keyboard behavior. A table-owned footer slot can replace summary copy, while footer-leading and footer-trailing remain available in the same compact-bar anatomy. Nested dialog footers are ignored."
|
|
9853
10062
|
],
|
|
9854
10063
|
"states": [
|
|
9855
10064
|
"Columns, rows, groups, grouping, sorting, selected row IDs, collapsed group IDs, highlightTerms, highlightFieldIds, hiddenColumnIds, columnOrder, dataMode, pagination, displayedCount, totalCount, and incremental-loading state are controlled inputs. Events communicate intent and never mutate those inputs. The optional header is one composable table-local surface: the component owns its 48px chrome, 8px inset on every side, and sticky placement while the application owns the leading slot's internal layout, controls, labels, filtering behavior, and action handling. highlightTerms only marks matching table-owned text and never filters rows, changes query semantics, or highlights Tag labels. highlightFieldIds optionally narrows that marking to matching column IDs or compound header-segment sort keys. Opting into dataModeSwitcher and columnCustomizer adds their trailing Menu triggers and requires caption visibility. When both are present, Customize precedes a decorative divider and the data-mode trigger remains the final action. The Customize trigger keeps one stable label and neutral resting foreground whether or not hiddenColumnIds or columnOrder differ from the catalog default; the configured state remains visible inside the Menu. The table closes one trailing Menu before opening the other. The footer retains its compact-bar composition: application-owned leading status sits left while a controlled result summary or Pagination aligns right, before any trailing action. Content-sized tables remain natural for sparse or fixed-count results. height bounds the complete header, frame, and footer composition. fitViewport reserves the compact-state composition height in the nearest vertical scrollport while growing the visible table into that reservation as surrounding page chrome collapses.",
|