@ds-mo/ui 12.3.0 → 12.4.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.
Files changed (143) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/agent-patterns.json +89 -11
  3. package/dist/agent.json +543 -9
  4. package/dist/angular/ds-shell-app.d.ts +13 -2
  5. package/dist/angular/ds-shell-app.js +9 -5
  6. package/dist/angular/ds-shell-mobile-bar.d.ts +18 -0
  7. package/dist/angular/ds-shell-mobile-bar.js +46 -0
  8. package/dist/angular/ds-shell-mobile-nav.d.ts +23 -0
  9. package/dist/angular/ds-shell-mobile-nav.js +51 -0
  10. package/dist/angular/ds-shell-mobile-section-nav.d.ts +18 -0
  11. package/dist/angular/ds-shell-mobile-section-nav.js +42 -0
  12. package/dist/angular/ds-shell-tools.d.ts +42 -0
  13. package/dist/angular/ds-shell-tools.js +52 -0
  14. package/dist/angular/index.d.ts +1 -1
  15. package/dist/angular/index.js +4 -0
  16. package/dist/angular/proxies.d.ts +4 -0
  17. package/dist/angular/proxies.js +4 -0
  18. package/dist/components/ds-agent-response.js +1 -1
  19. package/dist/components/ds-bar-nav.js +1 -1
  20. package/dist/components/ds-bar-title.js +1 -1
  21. package/dist/components/ds-bar-workflow.js +1 -1
  22. package/dist/components/ds-chart-donut.js +1 -1
  23. package/dist/components/ds-code-block.js +1 -1
  24. package/dist/components/ds-conversation-list-item.js +1 -1
  25. package/dist/components/ds-conversation-list-item.js.map +1 -1
  26. package/dist/components/ds-markdown.js +1 -1
  27. package/dist/components/ds-menu.js +1 -1
  28. package/dist/components/ds-message-composer.js +1 -1
  29. package/dist/components/ds-message-scroller.js +1 -1
  30. package/dist/components/ds-modal.js +1 -1
  31. package/dist/components/ds-modal.js.map +1 -1
  32. package/dist/components/ds-panel-nav.js +1 -1
  33. package/dist/components/ds-panel-nav.js.map +1 -1
  34. package/dist/components/ds-panel-tool-header.js +1 -1
  35. package/dist/components/ds-panel-tool-search.js +1 -1
  36. package/dist/components/ds-panel-tools.js +1 -1
  37. package/dist/components/ds-panel-tools.js.map +1 -1
  38. package/dist/components/ds-select-multi.js +1 -1
  39. package/dist/components/ds-select-multi.js.map +1 -1
  40. package/dist/components/ds-select.js +1 -1
  41. package/dist/components/ds-select.js.map +1 -1
  42. package/dist/components/ds-shell-app.js +1 -1
  43. package/dist/components/ds-shell-app.js.map +1 -1
  44. package/dist/components/ds-shell-gradient-picker.js +1 -1
  45. package/dist/components/ds-shell-gradient-picker.js.map +1 -1
  46. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  47. package/dist/components/ds-shell-mobile-bar.d.ts +11 -0
  48. package/dist/components/ds-shell-mobile-bar.js +2 -0
  49. package/dist/components/ds-shell-mobile-bar.js.map +1 -0
  50. package/dist/components/ds-shell-mobile-nav.d.ts +11 -0
  51. package/dist/components/ds-shell-mobile-nav.js +2 -0
  52. package/dist/components/ds-shell-mobile-nav.js.map +1 -0
  53. package/dist/components/ds-shell-mobile-section-nav.d.ts +11 -0
  54. package/dist/components/ds-shell-mobile-section-nav.js +2 -0
  55. package/dist/components/ds-shell-mobile-section-nav.js.map +1 -0
  56. package/dist/components/ds-shell-page.js +1 -1
  57. package/dist/components/ds-shell-page.js.map +1 -1
  58. package/dist/components/ds-shell-tools.d.ts +11 -0
  59. package/dist/components/ds-shell-tools.js +2 -0
  60. package/dist/components/ds-shell-tools.js.map +1 -0
  61. package/dist/components/ds-swatch-picker.js +1 -1
  62. package/dist/components/ds-tab-group.js +1 -1
  63. package/dist/components/ds-tab-group.js.map +1 -1
  64. package/dist/components/ds-toast.js +1 -1
  65. package/dist/components/ds-toast.js.map +1 -1
  66. package/dist/components/ds-tooltip-data-viz.js +1 -1
  67. package/dist/components/ds-tooltip.js +1 -1
  68. package/dist/components/ds-typing-indicator.js +1 -1
  69. package/dist/components/p-B6Vuayt6.js +2 -0
  70. package/dist/components/p-B6Vuayt6.js.map +1 -0
  71. package/dist/components/p-BPS9VExm.js +2 -0
  72. package/dist/components/{p-D3DYxbC5.js.map → p-BPS9VExm.js.map} +1 -1
  73. package/dist/components/{p-Bi_bxbih.js → p-Biz6xo-z.js} +2 -2
  74. package/dist/components/p-BrusnEYP.js +2 -0
  75. package/dist/components/p-BrusnEYP.js.map +1 -0
  76. package/dist/components/p-C_0Q8Cnp.js +2 -0
  77. package/dist/components/{p-Dg3xLna0.js.map → p-C_0Q8Cnp.js.map} +1 -1
  78. package/dist/components/p-CgHTNfC1.js +2 -0
  79. package/dist/components/p-CgHTNfC1.js.map +1 -0
  80. package/dist/components/p-Co8hD3P-.js +2 -0
  81. package/dist/components/{p-DC7yOUQx.js.map → p-Co8hD3P-.js.map} +1 -1
  82. package/dist/components/{p-Cuw2Lo2g.js → p-CtD24EyI.js} +2 -2
  83. package/dist/components/{p-C0NPJ0h2.js → p-DXnFhmZF.js} +2 -2
  84. package/dist/components/p-NUNsefU1.js +2 -0
  85. package/dist/components/{p-CWlh7HAg.js.map → p-NUNsefU1.js.map} +1 -1
  86. package/dist/components/p-PZ6R_nGI.js +2 -0
  87. package/dist/components/p-PZ6R_nGI.js.map +1 -0
  88. package/dist/components/{p-J6xK6Ihq.js → p-g40DTeV8.js} +2 -2
  89. package/dist/components/p-yhj1lIPx.js +2 -0
  90. package/dist/components/p-yhj1lIPx.js.map +1 -0
  91. package/dist/docs/components.json +2143 -115
  92. package/dist/lib/components/BarNav/bar-nav-types.d.ts +2 -0
  93. package/dist/lib/components/PanelNav/panel-nav-types.d.ts +29 -0
  94. package/dist/lib/components/PanelTools/panel-tools-types.d.ts +40 -0
  95. package/dist/lib/components/TabGroup/tab-item-utils.d.ts +31 -0
  96. package/dist/lib/shell/index.d.ts +5 -0
  97. package/dist/lib/shell/index.js +36 -0
  98. package/dist/lib/shell/index.js.map +3 -3
  99. package/dist/lib/shell/shell-responsive.d.ts +13 -0
  100. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  101. package/dist/mcp-data/registry/modal.json +1 -1
  102. package/dist/mcp-data/registry/registry.json +554 -8
  103. package/dist/mcp-data/registry/shell-app.json +71 -11
  104. package/dist/mcp-data/registry/shell-mobile-bar.json +314 -0
  105. package/dist/mcp-data/registry/shell-mobile-nav.json +348 -0
  106. package/dist/mcp-data/registry/shell-mobile-section-nav.json +267 -0
  107. package/dist/mcp-data/registry/shell-page.json +1 -1
  108. package/dist/mcp-data/registry/shell-tools.json +450 -0
  109. package/dist/react/components.d.ts +4 -0
  110. package/dist/react/components.js +4 -0
  111. package/dist/react/ds-shell-app.d.ts +7 -2
  112. package/dist/react/ds-shell-app.js +1 -1
  113. package/dist/react/ds-shell-mobile-bar.d.ts +13 -0
  114. package/dist/react/ds-shell-mobile-bar.js +15 -0
  115. package/dist/react/ds-shell-mobile-nav.d.ts +15 -0
  116. package/dist/react/ds-shell-mobile-nav.js +17 -0
  117. package/dist/react/ds-shell-mobile-section-nav.d.ts +12 -0
  118. package/dist/react/ds-shell-mobile-section-nav.js +12 -0
  119. package/dist/react/ds-shell-tools.d.ts +25 -0
  120. package/dist/react/ds-shell-tools.js +17 -0
  121. package/dist/types/components/ShellApp/ShellApp.d.ts +16 -0
  122. package/dist/types/components/ShellMobileBar/ShellMobileBar.d.ts +25 -0
  123. package/dist/types/components/ShellMobileBar/index.d.ts +4 -0
  124. package/dist/types/components/ShellMobileBar/shell-mobile-bar-types.d.ts +5 -0
  125. package/dist/types/components/ShellMobileNav/ShellMobileNav.d.ts +32 -0
  126. package/dist/types/components/ShellMobileNav/index.d.ts +2 -0
  127. package/dist/types/components/ShellMobileNav/shell-mobile-nav-types.d.ts +6 -0
  128. package/dist/types/components/ShellMobileSectionNav/ShellMobileSectionNav.d.ts +30 -0
  129. package/dist/types/components/ShellMobileSectionNav/index.d.ts +2 -0
  130. package/dist/types/components/ShellTools/ShellTools.d.ts +61 -0
  131. package/dist/types/components/ShellTools/index.d.ts +3 -0
  132. package/dist/types/components.d.ts +607 -2
  133. package/dist/types/shell/index.d.ts +5 -0
  134. package/dist/types/shell/shell-responsive.d.ts +14 -0
  135. package/package.json +1 -1
  136. package/dist/components/p-CWlh7HAg.js +0 -2
  137. package/dist/components/p-D3DYxbC5.js +0 -2
  138. package/dist/components/p-DC7yOUQx.js +0 -2
  139. package/dist/components/p-Dg3xLna0.js +0 -2
  140. /package/dist/components/{p-Bi_bxbih.js.map → p-Biz6xo-z.js.map} +0 -0
  141. /package/dist/components/{p-Cuw2Lo2g.js.map → p-CtD24EyI.js.map} +0 -0
  142. /package/dist/components/{p-C0NPJ0h2.js.map → p-DXnFhmZF.js.map} +0 -0
  143. /package/dist/components/{p-J6xK6Ihq.js.map → p-g40DTeV8.js.map} +0 -0
package/dist/agent.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "12.3.0",
4
+ "packageVersion": "12.4.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -6556,7 +6556,7 @@
6556
6556
  "summary": "The single required workspace root for standard authenticated application pages, coordinating primary and secondary navigation, tools chrome, responsive composition, content geometry, shared styling, and shell behavior.",
6557
6557
  "useWhen": [
6558
6558
  "Building any standard authenticated product or workspace page with CompoMo.",
6559
- "PanelNav, BarNav, PanelTools, page content, shared chrome, responsive behavior, and shell shortcuts must be composed as one application frame.",
6559
+ "PanelNav, BarNav, ShellTools, mobile navigation, page content, shared chrome, responsive behavior, and shell shortcuts must be composed as one application frame.",
6560
6560
  "Future application templates need the supported base-page composition boundary."
6561
6561
  ],
6562
6562
  "avoidWhen": [
@@ -6568,6 +6568,10 @@
6568
6568
  "component:ds-panel-nav",
6569
6569
  "component:ds-bar-nav",
6570
6570
  "component:ds-panel-tools",
6571
+ "component:ds-shell-tools",
6572
+ "component:ds-shell-mobile-nav",
6573
+ "component:ds-shell-mobile-section-nav",
6574
+ "component:ds-shell-mobile-bar",
6571
6575
  "component:ds-shell-page",
6572
6576
  "component:ds-swatch-picker"
6573
6577
  ],
@@ -6578,16 +6582,17 @@
6578
6582
  "accessibility": [
6579
6583
  "Keep primary destinations in PanelNav and secondary route sections in BarNav.",
6580
6584
  "Ensure the default content region contains the page's single main landmark.",
6581
- "Keep PanelNav, BarNav, and PanelTools chrome available in the shell's supported desktop and tablet compositions.",
6585
+ "Keep PanelNav, BarNav, and PanelTools-compatible chrome available in desktop and tablet compositions and the persistent mobile bar available below 768px.",
6582
6586
  "Do not override browser keyboard chords when enabling shell shortcuts.",
6583
6587
  "Require Search and Help as the minimum PanelTools actions and provide accessible labels for every tool.",
6584
6588
  "Preserve focus and accessible names across navigation, collapse, overflow, and responsive presentation changes."
6585
6589
  ],
6586
6590
  "states": [
6587
6591
  "Render exactly one ShellApp as the workspace root and never nest it.",
6588
- "PanelNav, BarNav, and PanelTools are required shell regions; PanelTools contains at least Search and Help even when no additional product tools apply.",
6592
+ "PanelNav, BarNav, and ShellTools are the responsive shell regions; ShellTools contains at least Search and Help even when no additional product tools apply.",
6589
6593
  "The application router owns the current route, authorization filtering, Dashboard or Settings context, destination collections, section collections, and localized content labels.",
6590
- "ShellApp propagates navStyle and coordinates layout, gradient alignment, transitions, metrics, shortcuts, and responsive composition.",
6594
+ "ShellApp propagates navStyle and resolved responsive mode and coordinates layout, gradient alignment, transitions, metrics, shortcuts, and mobile-stage visibility.",
6595
+ "The application controls mobileDestination and mobileNavigationOpen and keeps router state independent from global tool-surface changes.",
6591
6596
  "Set gradientPreset to the single resolved global chrome preference: neutral by default, none for solid chrome, or cool, neutral, warm, and fresh for token-based washes.",
6592
6597
  "The application owns gradient preference persistence, cross-tab synchronization, and server or account precedence; ShellApp owns rendering the resolved preset across authenticated routes.",
6593
6598
  "Dashboard represents day-to-day operational work while Settings represents administrative and configuration work; route state selects the context.",
@@ -6600,9 +6605,10 @@
6600
6605
  "ShellApp owns the fixed system breakpoints and resolves desktop at 1200px and wider, tablet from 768px through 1199px, and mobile below 768px.",
6601
6606
  "On desktop, PanelNav defaults expanded, permits user collapse or expansion, and respects the locally persisted desktop preference.",
6602
6607
  "On tablet, ShellApp keeps PanelNav permanently collapsed and prevents user expansion without overwriting the desktop preference.",
6603
- "On mobile, ShellApp remains the page root but replaces PanelNav and desktop navigation composition with a future dedicated mobile navigation design.",
6608
+ "On mobile, ShellApp hides and inerts PanelNav and BarNav, uses a solid primary stage, and composes MobileNav, MobileSectionNav, ShellTools, and the persistent five-item MobileBar.",
6609
+ "Mobile global surfaces conceal and inert the routed workspace without unmounting it, preserving nested routes and scroll state.",
6604
6610
  "Keep PanelNav width, BarNav height, PanelTools chrome, and main-content origin stable except during intentional responsive or collapse transitions.",
6605
- "The current runtime does not yet implement the complete desktop, tablet, and mobile composition contract; consuming applications must enforce missing breakpoint behavior until ShellApp provides it."
6611
+ "The bottom bar remains visible at all route and tool depths in the foundation release."
6606
6612
  ],
6607
6613
  "frameworkCaveats": {
6608
6614
  "customElements": [
@@ -6610,7 +6616,7 @@
6610
6616
  "Stamp route-derived nav-style before components connect when deterministic first paint is required."
6611
6617
  ],
6612
6618
  "react": [
6613
- "Use generated wrappers and preserve native slot names for PanelNav, BarNav, PanelTools, and main content.",
6619
+ "Use generated wrappers and preserve native slot names for desktop navigation, responsive tools, mobile navigation, and main content.",
6614
6620
  "Resolve all shell inputs from one router state before rendering the composition."
6615
6621
  ],
6616
6622
  "angular": [
@@ -6644,6 +6650,14 @@
6644
6650
  "type": "ShellGradientPreset",
6645
6651
  "required": false
6646
6652
  },
6653
+ "mobileDestination": {
6654
+ "type": "ShellMobileDestination",
6655
+ "required": false
6656
+ },
6657
+ "mobileNavigationOpen": {
6658
+ "type": "boolean",
6659
+ "required": false
6660
+ },
6647
6661
  "navStyle": {
6648
6662
  "type": "NavChromeStyle",
6649
6663
  "required": false
@@ -6653,7 +6667,12 @@
6653
6667
  "required": false
6654
6668
  }
6655
6669
  },
6656
- "events": [],
6670
+ "events": [
6671
+ {
6672
+ "name": "dsResponsiveModeChange",
6673
+ "detail": "{ mode: ShellResponsiveMode }"
6674
+ }
6675
+ ],
6657
6676
  "slots": []
6658
6677
  },
6659
6678
  "exports": {
@@ -6878,6 +6897,358 @@
6878
6897
  ],
6879
6898
  "componentDependencies": []
6880
6899
  },
6900
+ {
6901
+ "id": "component:ds-shell-mobile-bar",
6902
+ "tag": "ds-shell-mobile-bar",
6903
+ "name": "shell-mobile-bar",
6904
+ "title": "ShellMobileBar",
6905
+ "summary": "Persistent mobile shell navigation for Menu, the router-derived current area, Search, Agents, and Inbox.",
6906
+ "intentStatus": "complete",
6907
+ "intent": {
6908
+ "audience": "specialized",
6909
+ "status": "experimental",
6910
+ "summary": "Persistent mobile shell navigation for Menu, the router-derived current area, Search, Agents, and Inbox.",
6911
+ "useWhen": [
6912
+ "ShellApp is rendering its dedicated below-768px application composition."
6913
+ ],
6914
+ "avoidWhen": [
6915
+ "Rendering desktop or tablet shell chrome.",
6916
+ "An arbitrary set of product tabs is required."
6917
+ ],
6918
+ "commonlyComposedWith": [
6919
+ "component:ds-shell-app"
6920
+ ],
6921
+ "patterns": [
6922
+ "pattern:application-shell"
6923
+ ],
6924
+ "accessibility": [
6925
+ "Every item keeps a visible label and accessible name.",
6926
+ "Only the active destination exposes aria-current; Menu exposes its controlled pane through aria-expanded."
6927
+ ],
6928
+ "states": [
6929
+ "The item order is fixed: Menu, current area, Search, Agents, Inbox.",
6930
+ "Reselecting an active destination does not reset its nested state."
6931
+ ],
6932
+ "responsiveBehavior": [
6933
+ "Render only below the mobile breakpoint and preserve safe-area clearance."
6934
+ ],
6935
+ "references": [
6936
+ {
6937
+ "label": "Storybook",
6938
+ "path": "src/wc/components/ShellMobileBar/ShellMobileBar.stories.ts"
6939
+ }
6940
+ ]
6941
+ },
6942
+ "api": {
6943
+ "props": {
6944
+ "activeDestination": {
6945
+ "type": "ShellMobileDestination",
6946
+ "required": false
6947
+ },
6948
+ "agentsDot": {
6949
+ "type": "boolean",
6950
+ "required": false
6951
+ },
6952
+ "agentsLabel": {
6953
+ "type": "string",
6954
+ "required": false
6955
+ },
6956
+ "currentArea": {
6957
+ "type": "PanelNavItem",
6958
+ "required": false
6959
+ },
6960
+ "inboxDot": {
6961
+ "type": "boolean",
6962
+ "required": false
6963
+ },
6964
+ "inboxLabel": {
6965
+ "type": "string",
6966
+ "required": false
6967
+ },
6968
+ "menuLabel": {
6969
+ "type": "string",
6970
+ "required": false
6971
+ },
6972
+ "navigationExpanded": {
6973
+ "type": "boolean",
6974
+ "required": false
6975
+ },
6976
+ "searchDot": {
6977
+ "type": "boolean",
6978
+ "required": false
6979
+ },
6980
+ "searchLabel": {
6981
+ "type": "string",
6982
+ "required": false
6983
+ }
6984
+ },
6985
+ "events": [
6986
+ {
6987
+ "name": "dsDestinationChange",
6988
+ "detail": "ShellMobileBarDestinationDetail"
6989
+ },
6990
+ {
6991
+ "name": "dsNavigationToggle",
6992
+ "detail": "boolean"
6993
+ }
6994
+ ],
6995
+ "slots": []
6996
+ },
6997
+ "exports": {
6998
+ "customElement": "ds-shell-mobile-bar",
6999
+ "react": "DsShellMobileBar",
7000
+ "angular": "DsShellMobileBar"
7001
+ },
7002
+ "dependencies": [
7003
+ "@ds-mo/ui",
7004
+ "@ds-mo/tokens",
7005
+ "@ds-mo/icons"
7006
+ ],
7007
+ "componentDependencies": [
7008
+ "icon",
7009
+ "text"
7010
+ ]
7011
+ },
7012
+ {
7013
+ "id": "component:ds-shell-mobile-nav",
7014
+ "tag": "ds-shell-mobile-nav",
7015
+ "name": "shell-mobile-nav",
7016
+ "title": "ShellMobileNav",
7017
+ "summary": "Full-height mobile primary navigation pane with local Dashboard and Settings browsing.",
7018
+ "intentStatus": "complete",
7019
+ "intent": {
7020
+ "audience": "specialized",
7021
+ "status": "experimental",
7022
+ "summary": "Full-height mobile primary navigation pane with local Dashboard and Settings browsing.",
7023
+ "useWhen": [
7024
+ "The mobile ShellApp Menu control needs to expose the complete primary navigation collection."
7025
+ ],
7026
+ "avoidWhen": [
7027
+ "Rendering desktop PanelNav.",
7028
+ "Switching local page content."
7029
+ ],
7030
+ "commonlyComposedWith": [
7031
+ "component:ds-shell-app",
7032
+ "component:ds-shell-mobile-bar"
7033
+ ],
7034
+ "patterns": [
7035
+ "pattern:application-shell"
7036
+ ],
7037
+ "accessibility": [
7038
+ "The pane is a named navigation landmark and retains visible labels for every destination.",
7039
+ "Escape requests dismissal and opening moves focus to the selected or first available area."
7040
+ ],
7041
+ "states": [
7042
+ "Dashboard and Settings change only the collection being browsed.",
7043
+ "Area, Help, and Account events express intent while the application owns navigation and product behavior."
7044
+ ],
7045
+ "responsiveBehavior": [
7046
+ "The pane fills the mobile content stage while the bottom bar remains available."
7047
+ ],
7048
+ "references": [
7049
+ {
7050
+ "label": "Storybook",
7051
+ "path": "src/wc/components/ShellMobileNav/ShellMobileNav.stories.ts"
7052
+ }
7053
+ ]
7054
+ },
7055
+ "api": {
7056
+ "props": {
7057
+ "accountLabel": {
7058
+ "type": "string",
7059
+ "required": false
7060
+ },
7061
+ "browseContext": {
7062
+ "type": "NavChromeStyle",
7063
+ "required": false
7064
+ },
7065
+ "currentUrl": {
7066
+ "type": "string",
7067
+ "required": false
7068
+ },
7069
+ "dashboardGroups": {
7070
+ "type": "PanelNavGroup[]",
7071
+ "required": false
7072
+ },
7073
+ "dashboardLabel": {
7074
+ "type": "string",
7075
+ "required": false
7076
+ },
7077
+ "heading": {
7078
+ "type": "string",
7079
+ "required": false
7080
+ },
7081
+ "helpLabel": {
7082
+ "type": "string",
7083
+ "required": false
7084
+ },
7085
+ "navigationLabel": {
7086
+ "type": "string",
7087
+ "required": false
7088
+ },
7089
+ "open": {
7090
+ "type": "boolean",
7091
+ "required": false
7092
+ },
7093
+ "settingsGroups": {
7094
+ "type": "PanelNavGroup[]",
7095
+ "required": false
7096
+ },
7097
+ "settingsLabel": {
7098
+ "type": "string",
7099
+ "required": false
7100
+ }
7101
+ },
7102
+ "events": [
7103
+ {
7104
+ "name": "dsAreaSelect",
7105
+ "detail": "string"
7106
+ },
7107
+ {
7108
+ "name": "dsAuxiliarySelect",
7109
+ "detail": "ShellMobileNavAuxiliaryDetail"
7110
+ },
7111
+ {
7112
+ "name": "dsBrowseContextChange",
7113
+ "detail": "NavChromeStyle"
7114
+ },
7115
+ {
7116
+ "name": "dsClose",
7117
+ "detail": "void"
7118
+ }
7119
+ ],
7120
+ "slots": []
7121
+ },
7122
+ "exports": {
7123
+ "customElement": "ds-shell-mobile-nav",
7124
+ "react": "DsShellMobileNav",
7125
+ "angular": "DsShellMobileNav"
7126
+ },
7127
+ "dependencies": [
7128
+ "@ds-mo/ui",
7129
+ "@ds-mo/tokens",
7130
+ "@ds-mo/icons"
7131
+ ],
7132
+ "componentDependencies": [
7133
+ "icon",
7134
+ "tab-group",
7135
+ "text"
7136
+ ]
7137
+ },
7138
+ {
7139
+ "id": "component:ds-shell-mobile-section-nav",
7140
+ "tag": "ds-shell-mobile-section-nav",
7141
+ "name": "shell-mobile-section-nav",
7142
+ "title": "ShellMobileSectionNav",
7143
+ "summary": "Horizontally scrollable mobile route navigation corresponding to the active area's desktop BarNav.",
7144
+ "intentStatus": "complete",
7145
+ "intent": {
7146
+ "audience": "specialized",
7147
+ "status": "experimental",
7148
+ "summary": "Horizontally scrollable mobile route navigation corresponding to the active area's desktop BarNav.",
7149
+ "useWhen": [
7150
+ "ShellApp is rendering the below-768px routed workspace and the active area has peer route sections."
7151
+ ],
7152
+ "avoidWhen": [
7153
+ "Choices switch local content without navigation; use TabGroup.",
7154
+ "Rendering the desktop or tablet secondary navigation; use BarNav."
7155
+ ],
7156
+ "alternatives": [
7157
+ {
7158
+ "when": "The choices switch local content without changing routes.",
7159
+ "component": "component:ds-tab-group",
7160
+ "reason": "TabGroup owns local view selection."
7161
+ }
7162
+ ],
7163
+ "commonlyComposedWith": [
7164
+ "component:ds-shell-app",
7165
+ "component:ds-shell-mobile-bar",
7166
+ "component:ds-bar-nav"
7167
+ ],
7168
+ "patterns": [
7169
+ "pattern:application-shell"
7170
+ ],
7171
+ "accessibility": [
7172
+ "The row is a named navigation landmark and the selected section exposes aria-current.",
7173
+ "Disabled route sections remain visible but cannot emit navigation intent."
7174
+ ],
7175
+ "states": [
7176
+ "The host router owns the current URL and handles dsTabChange.",
7177
+ "Detail routes that do not match a section show the active-area heading."
7178
+ ],
7179
+ "responsiveBehavior": [
7180
+ "The row scrolls horizontally without wrapping and centers the selected section when selection changes."
7181
+ ],
7182
+ "frameworkCaveats": {
7183
+ "customElements": [
7184
+ "Assign tabs as a JavaScript property and update currentUrl and basePath with router state."
7185
+ ],
7186
+ "react": [
7187
+ "Pass the same BarNavTab array used by the desktop BarNav through the generated React wrapper."
7188
+ ],
7189
+ "angular": [
7190
+ "Import the generated standalone adapter and bind tabs as a property."
7191
+ ]
7192
+ },
7193
+ "references": [
7194
+ {
7195
+ "label": "Storybook",
7196
+ "path": "src/wc/components/ShellMobileSectionNav/ShellMobileSectionNav.stories.ts"
7197
+ }
7198
+ ]
7199
+ },
7200
+ "api": {
7201
+ "props": {
7202
+ "basePath": {
7203
+ "type": "string",
7204
+ "required": false
7205
+ },
7206
+ "currentUrl": {
7207
+ "type": "string",
7208
+ "required": false
7209
+ },
7210
+ "heading": {
7211
+ "type": "string | undefined",
7212
+ "required": false
7213
+ },
7214
+ "navigationLabel": {
7215
+ "type": "string",
7216
+ "required": false
7217
+ },
7218
+ "tabs": {
7219
+ "type": "BarNavTab[]",
7220
+ "required": false
7221
+ },
7222
+ "tabsJson": {
7223
+ "type": "string",
7224
+ "required": false
7225
+ },
7226
+ "value": {
7227
+ "type": "string",
7228
+ "required": false
7229
+ }
7230
+ },
7231
+ "events": [
7232
+ {
7233
+ "name": "dsTabChange",
7234
+ "detail": "string"
7235
+ }
7236
+ ],
7237
+ "slots": []
7238
+ },
7239
+ "exports": {
7240
+ "customElement": "ds-shell-mobile-section-nav",
7241
+ "react": "DsShellMobileSectionNav",
7242
+ "angular": "DsShellMobileSectionNav"
7243
+ },
7244
+ "dependencies": [
7245
+ "@ds-mo/ui",
7246
+ "@ds-mo/tokens"
7247
+ ],
7248
+ "componentDependencies": [
7249
+ "text"
7250
+ ]
7251
+ },
6881
7252
  {
6882
7253
  "id": "component:ds-shell-page",
6883
7254
  "tag": "ds-shell-page",
@@ -7002,6 +7373,169 @@
7002
7373
  ],
7003
7374
  "componentDependencies": []
7004
7375
  },
7376
+ {
7377
+ "id": "component:ds-shell-tools",
7378
+ "tag": "ds-shell-tools",
7379
+ "name": "shell-tools",
7380
+ "title": "ShellTools",
7381
+ "summary": "Responsive persistent host for shell tools, adapting PanelTools rail and drawer chrome to full-stage mobile Search, Agents, and Inbox surfaces.",
7382
+ "intentStatus": "complete",
7383
+ "intent": {
7384
+ "audience": "specialized",
7385
+ "status": "experimental",
7386
+ "summary": "Responsive persistent host for shell tools, adapting PanelTools rail and drawer chrome to full-stage mobile Search, Agents, and Inbox surfaces.",
7387
+ "useWhen": [
7388
+ "A ShellApp must preserve the same Search, Agents, Messages, Stacks, Activity, and Help product owners across desktop, tablet, and mobile."
7389
+ ],
7390
+ "avoidWhen": [
7391
+ "The tools exist only in desktop and tablet chrome; PanelTools remains supported for that case.",
7392
+ "The content is a routed primary application area."
7393
+ ],
7394
+ "alternatives": [
7395
+ {
7396
+ "when": "Only legacy rail and drawer behavior is required.",
7397
+ "component": "component:ds-panel-tools",
7398
+ "reason": "PanelTools remains the backward-compatible desktop and tablet primitive."
7399
+ }
7400
+ ],
7401
+ "commonlyComposedWith": [
7402
+ "component:ds-shell-app",
7403
+ "component:ds-panel-tool-header",
7404
+ "component:ds-shell-mobile-bar"
7405
+ ],
7406
+ "patterns": [
7407
+ "pattern:application-shell"
7408
+ ],
7409
+ "accessibility": [
7410
+ "Only the active mobile tool view participates in focus or the accessibility tree.",
7411
+ "Header Back and application-owned header actions preserve the PanelTools event contract.",
7412
+ "Inbox uses TabGroup semantics for Messages, Stacks, and Activity."
7413
+ ],
7414
+ "states": [
7415
+ "The application owns open and activeTool and replaces headers when tool depth changes.",
7416
+ "Messages, Stacks, and Activity map to one mobile Inbox destination while retaining the actual active tool id.",
7417
+ "Switching responsive mode must not recreate application-owned slotted product elements."
7418
+ ],
7419
+ "responsiveBehavior": [
7420
+ "Desktop and tablet compose PanelTools-compatible rail and drawer chrome.",
7421
+ "Mobile renders the active tool across the shell stage and groups available inbox tools in a segmented control."
7422
+ ],
7423
+ "frameworkCaveats": {
7424
+ "customElements": [
7425
+ "Assign items and headers as JavaScript properties and place each persistent owner in its named *-view slot."
7426
+ ],
7427
+ "react": [
7428
+ "Keep stable keyed product owner elements in the generated wrapper's named slots."
7429
+ ],
7430
+ "angular": [
7431
+ "Bind structured items and headers as properties and keep each tool owner mounted under a named *-view slot."
7432
+ ]
7433
+ },
7434
+ "references": [
7435
+ {
7436
+ "label": "Storybook",
7437
+ "path": "src/wc/components/ShellTools/ShellTools.stories.ts"
7438
+ },
7439
+ {
7440
+ "label": "PanelTools contract",
7441
+ "path": "src/wc/components/PanelTools/PanelTools.agent.json"
7442
+ }
7443
+ ]
7444
+ },
7445
+ "api": {
7446
+ "props": {
7447
+ "activeTool": {
7448
+ "type": "PanelToolsToolId | ''",
7449
+ "required": false
7450
+ },
7451
+ "fullscreenHeaderMode": {
7452
+ "type": "'shared' | 'split'",
7453
+ "required": false
7454
+ },
7455
+ "headers": {
7456
+ "type": "PanelToolsHeaders",
7457
+ "required": false
7458
+ },
7459
+ "headersJson": {
7460
+ "type": "string",
7461
+ "required": false
7462
+ },
7463
+ "inboxLabel": {
7464
+ "type": "string",
7465
+ "required": false
7466
+ },
7467
+ "inboxNavigationLabel": {
7468
+ "type": "string",
7469
+ "required": false
7470
+ },
7471
+ "items": {
7472
+ "type": "PanelToolsItem[]",
7473
+ "required": false
7474
+ },
7475
+ "itemsJson": {
7476
+ "type": "string",
7477
+ "required": false
7478
+ },
7479
+ "open": {
7480
+ "type": "boolean",
7481
+ "required": false
7482
+ },
7483
+ "presentation": {
7484
+ "type": "'drawer' | 'fullscreen'",
7485
+ "required": false
7486
+ },
7487
+ "responsiveMode": {
7488
+ "type": "ShellResponsiveMode",
7489
+ "required": false
7490
+ },
7491
+ "storageKey": {
7492
+ "type": "string",
7493
+ "required": false
7494
+ },
7495
+ "toolShortcutsLabel": {
7496
+ "type": "string",
7497
+ "required": false
7498
+ },
7499
+ "toolsLabel": {
7500
+ "type": "string",
7501
+ "required": false
7502
+ }
7503
+ },
7504
+ "events": [
7505
+ {
7506
+ "name": "dsHeaderAction",
7507
+ "detail": "{\n tool: PanelToolsToolId;\n id: string;\n }"
7508
+ },
7509
+ {
7510
+ "name": "dsHeaderBack",
7511
+ "detail": "{\n tool: PanelToolsToolId;\n }"
7512
+ },
7513
+ {
7514
+ "name": "dsPresentationChange",
7515
+ "detail": "{\n presentation: 'drawer' | 'fullscreen';\n }"
7516
+ },
7517
+ {
7518
+ "name": "dsToolChange",
7519
+ "detail": "{\n id: PanelToolsToolId;\n selected: boolean;\n }"
7520
+ }
7521
+ ],
7522
+ "slots": []
7523
+ },
7524
+ "exports": {
7525
+ "customElement": "ds-shell-tools",
7526
+ "react": "DsShellTools",
7527
+ "angular": "DsShellTools"
7528
+ },
7529
+ "dependencies": [
7530
+ "@ds-mo/ui",
7531
+ "@ds-mo/tokens"
7532
+ ],
7533
+ "componentDependencies": [
7534
+ "panel-tool-header",
7535
+ "panel-tools",
7536
+ "tab-group"
7537
+ ]
7538
+ },
7005
7539
  {
7006
7540
  "id": "component:ds-skeleton",
7007
7541
  "tag": "ds-skeleton",
@@ -1,12 +1,23 @@
1
- import { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';
1
+ import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
2
  import type { Components } from '@ds-mo/ui/components';
3
+ import type { DsShellAppCustomEvent } from '@ds-mo/ui/components';
4
+ import type { ShellResponsiveMode as IDsShellAppShellResponsiveMode } from '@ds-mo/ui/components';
3
5
  import * as i0 from "@angular/core";
4
6
  export declare class DsShellApp {
5
7
  protected z: NgZone;
6
8
  protected el: HTMLDsShellAppElement;
9
+ dsResponsiveModeChange: EventEmitter<DsShellAppCustomEvent<{
10
+ mode: IDsShellAppShellResponsiveMode;
11
+ }>>;
7
12
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
8
13
  static ɵfac: i0.ɵɵFactoryDeclaration<DsShellApp, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<DsShellApp, "ds-shell-app", never, { "gradientPreset": { "alias": "gradientPreset"; "required": false; }; "navStyle": { "alias": "navStyle"; "required": false; }; "shortcutsEnabled": { "alias": "shortcutsEnabled"; "required": false; }; }, {}, never, ["*"], true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsShellApp, "ds-shell-app", never, { "gradientPreset": { "alias": "gradientPreset"; "required": false; }; "mobileDestination": { "alias": "mobileDestination"; "required": false; }; "mobileNavigationOpen": { "alias": "mobileNavigationOpen"; "required": false; }; "navStyle": { "alias": "navStyle"; "required": false; }; "shortcutsEnabled": { "alias": "shortcutsEnabled"; "required": false; }; }, { "dsResponsiveModeChange": "dsResponsiveModeChange"; }, never, ["*"], true, never>;
10
15
  }
11
16
  export declare interface DsShellApp extends Components.DsShellApp {
17
+ /**
18
+ * Emitted after crossing the fixed 768px or 1200px shell boundaries.
19
+ */
20
+ dsResponsiveModeChange: EventEmitter<DsShellAppCustomEvent<{
21
+ mode: IDsShellAppShellResponsiveMode;
22
+ }>>;
12
23
  }