@ds-mo/ui 11.1.0 → 12.0.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 (204) hide show
  1. package/README.md +1 -1
  2. package/dist/.build-stamp +1 -1
  3. package/dist/agent-patterns.json +150 -9
  4. package/dist/agent.json +481 -174
  5. package/dist/angular/ds-bar-title.d.ts +28 -0
  6. package/dist/angular/ds-bar-title.js +48 -0
  7. package/dist/angular/ds-panel-nav.d.ts +1 -1
  8. package/dist/angular/{ds-app-shell.d.ts → ds-shell-app.d.ts} +5 -5
  9. package/dist/angular/{ds-app-shell.js → ds-shell-app.js} +10 -10
  10. package/dist/angular/ds-shell-page.d.ts +12 -0
  11. package/dist/angular/ds-shell-page.js +38 -0
  12. package/dist/angular/index.d.ts +1 -1
  13. package/dist/angular/index.js +3 -1
  14. package/dist/angular/proxies.d.ts +3 -1
  15. package/dist/angular/proxies.js +3 -1
  16. package/dist/components/ds-agent-activity.js +1 -1
  17. package/dist/components/ds-agent-response.js +1 -1
  18. package/dist/components/ds-agent-response.js.map +1 -1
  19. package/dist/components/ds-agent-source-list.js +1 -1
  20. package/dist/components/ds-agent-tool-call.js +1 -1
  21. package/dist/components/ds-attachment-list.js +1 -1
  22. package/dist/components/ds-avatar.js +1 -1
  23. package/dist/components/ds-avatar.js.map +1 -1
  24. package/dist/components/ds-badge.js +1 -1
  25. package/dist/components/ds-bar-nav.js +1 -1
  26. package/dist/components/ds-bar-nav.js.map +1 -1
  27. package/dist/components/{ds-app-shell.d.ts → ds-bar-title.d.ts} +4 -4
  28. package/dist/components/ds-bar-title.js +2 -0
  29. package/dist/components/ds-bar-title.js.map +1 -0
  30. package/dist/components/ds-button-filled.js +1 -1
  31. package/dist/components/ds-button-unfilled.js +1 -1
  32. package/dist/components/ds-card-data-viz-donut.js +1 -1
  33. package/dist/components/ds-card-setting.js +1 -1
  34. package/dist/components/ds-card-shell-data-viz.js +1 -1
  35. package/dist/components/ds-chart-bar.js +1 -1
  36. package/dist/components/ds-chart-donut.js +1 -1
  37. package/dist/components/ds-chart-legend.js +1 -1
  38. package/dist/components/ds-chart-line.js +1 -1
  39. package/dist/components/ds-checkbox.js +1 -1
  40. package/dist/components/ds-chip.js +1 -1
  41. package/dist/components/ds-code-block.js +1 -1
  42. package/dist/components/ds-conversation-list-item.js +1 -1
  43. package/dist/components/ds-conversation-list-item.js.map +1 -1
  44. package/dist/components/ds-conversation-list-section.js +1 -1
  45. package/dist/components/ds-conversation-list.js +1 -1
  46. package/dist/components/ds-empty-state.js +1 -1
  47. package/dist/components/ds-field.js +1 -1
  48. package/dist/components/ds-input.js +1 -1
  49. package/dist/components/ds-markdown.js +1 -1
  50. package/dist/components/ds-menu.js +1 -1
  51. package/dist/components/ds-message-composer.js +1 -1
  52. package/dist/components/ds-message-composer.js.map +1 -1
  53. package/dist/components/ds-message-scroller.js +1 -1
  54. package/dist/components/ds-message-scroller.js.map +1 -1
  55. package/dist/components/ds-message.js +1 -1
  56. package/dist/components/ds-modal.js +1 -1
  57. package/dist/components/ds-modal.js.map +1 -1
  58. package/dist/components/ds-panel-nav.js +1 -1
  59. package/dist/components/ds-panel-nav.js.map +1 -1
  60. package/dist/components/ds-panel-sub-nav.js +1 -1
  61. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  62. package/dist/components/ds-panel-tool-header.js +1 -1
  63. package/dist/components/ds-panel-tool-search.js +1 -1
  64. package/dist/components/ds-panel-tool-search.js.map +1 -1
  65. package/dist/components/ds-panel-tools.js +1 -1
  66. package/dist/components/ds-panel-tools.js.map +1 -1
  67. package/dist/components/ds-radio.js +1 -1
  68. package/dist/components/ds-select-multi.js +1 -1
  69. package/dist/components/ds-select-multi.js.map +1 -1
  70. package/dist/components/ds-select.js +1 -1
  71. package/dist/components/ds-select.js.map +1 -1
  72. package/dist/components/ds-shell-app.d.ts +11 -0
  73. package/dist/components/ds-shell-app.js +2 -0
  74. package/dist/components/ds-shell-app.js.map +1 -0
  75. package/dist/components/ds-shell-gradient-picker.js +1 -1
  76. package/dist/components/ds-shell-gradient-picker.js.map +1 -1
  77. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  78. package/dist/components/ds-shell-page.d.ts +11 -0
  79. package/dist/components/ds-shell-page.js +2 -0
  80. package/dist/components/ds-shell-page.js.map +1 -0
  81. package/dist/components/ds-skeleton.js +1 -1
  82. package/dist/components/ds-slider.js +1 -1
  83. package/dist/components/ds-slider.js.map +1 -1
  84. package/dist/components/ds-swatch-picker.js +1 -1
  85. package/dist/components/ds-switch.js +1 -1
  86. package/dist/components/ds-tab-group.js +1 -1
  87. package/dist/components/ds-tag.js +1 -1
  88. package/dist/components/ds-text.js +1 -1
  89. package/dist/components/ds-toast.js +1 -1
  90. package/dist/components/ds-tooltip-data-viz.js +1 -1
  91. package/dist/components/ds-tooltip.js +1 -1
  92. package/dist/components/ds-typing-indicator.js +1 -1
  93. package/dist/components/{p-DJ78wdNv.js → p-6vj4kh70.js} +2 -2
  94. package/dist/components/{p-bNpFhP5L.js → p-B3YvoGjS.js} +2 -2
  95. package/dist/components/{p-BEWtqFX7.js → p-BH3es4p7.js} +2 -2
  96. package/dist/components/{p-BaZRP4Oo.js → p-BUmDHPr3.js} +2 -2
  97. package/dist/components/p-BYHKdFzV.js +2 -0
  98. package/dist/components/p-BYHKdFzV.js.map +1 -0
  99. package/dist/components/p-BZZwQfmN.js +2 -0
  100. package/dist/components/{p-B_qVPsEU.js.map → p-BZZwQfmN.js.map} +1 -1
  101. package/dist/components/{p-Dh4q5TSS.js → p-BhKhX1er.js} +2 -2
  102. package/dist/components/{p-CZZYGqKz.js → p-Bs6SS34m.js} +2 -2
  103. package/dist/components/p-CUik7PCi.js +2 -0
  104. package/dist/components/p-CUik7PCi.js.map +1 -0
  105. package/dist/components/{p-CyoHRqy6.js → p-Cf-i-6aE.js} +2 -2
  106. package/dist/components/p-Cf2J9MEo.js +2 -0
  107. package/dist/components/{p-Bet_UjML.js.map → p-Cf2J9MEo.js.map} +1 -1
  108. package/dist/components/{p-P_4vE1ub.js → p-CwTVEAl2.js} +2 -2
  109. package/dist/components/p-Cy04lXlc.js +2 -0
  110. package/dist/components/p-Cy04lXlc.js.map +1 -0
  111. package/dist/components/{p-BKhG2xrW.js → p-D2x17ei-.js} +1 -1
  112. package/dist/components/{p-BKhG2xrW.js.map → p-D2x17ei-.js.map} +1 -1
  113. package/dist/components/{p-CjP8sYlo.js → p-DABj3qTX.js} +2 -2
  114. package/dist/components/{p-DTqCBjUj.js → p-DUHcJWTQ.js} +2 -2
  115. package/dist/components/{p-CPPAndX2.js → p-DVk0wxxX.js} +2 -2
  116. package/dist/components/p-DfIch2Dk.js +2 -0
  117. package/dist/components/{p-BCCt2eT_.js.map → p-DfIch2Dk.js.map} +1 -1
  118. package/dist/components/{p-CrwU83-g.js → p-Dg3xLna0.js} +2 -2
  119. package/dist/components/{p-DrDHC7V6.js → p-DxeHimqk.js} +2 -2
  120. package/dist/components/{p-DrDHC7V6.js.map → p-DxeHimqk.js.map} +1 -1
  121. package/dist/components/{p-CLn7QnE0.js → p-Dy_sZ-dI.js} +2 -2
  122. package/dist/components/{p-0kEg-Z4f.js → p-liMPkhUP.js} +2 -2
  123. package/dist/components/p-xFbUt9Tc.js +2 -0
  124. package/dist/components/p-xFbUt9Tc.js.map +1 -0
  125. package/dist/docs/components.json +1082 -336
  126. package/dist/lib/shell/chrome-transition.d.ts +1 -1
  127. package/dist/lib/shell/index.js +1 -1
  128. package/dist/lib/shell/index.js.map +1 -1
  129. package/dist/lib/shell/shell-gradient.d.ts +2 -2
  130. package/dist/mcp-data/registry/avatar.json +1 -1
  131. package/dist/mcp-data/registry/badge.json +4 -4
  132. package/dist/mcp-data/registry/bar-nav.json +8 -8
  133. package/dist/mcp-data/registry/bar-title.json +431 -0
  134. package/dist/mcp-data/registry/code-block.json +4 -3
  135. package/dist/mcp-data/registry/menu.json +1 -1
  136. package/dist/mcp-data/registry/message-composer.json +7 -5
  137. package/dist/mcp-data/registry/message-scroller.json +4 -3
  138. package/dist/mcp-data/registry/modal.json +5 -4
  139. package/dist/mcp-data/registry/panel-nav.json +8 -8
  140. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  141. package/dist/mcp-data/registry/panel-tool-header.json +4 -3
  142. package/dist/mcp-data/registry/panel-tool-search.json +6 -5
  143. package/dist/mcp-data/registry/panel-tools.json +13 -13
  144. package/dist/mcp-data/registry/registry.json +489 -176
  145. package/dist/mcp-data/registry/select-multi.json +2 -1
  146. package/dist/mcp-data/registry/select.json +2 -1
  147. package/dist/mcp-data/registry/shell-app.json +213 -0
  148. package/dist/mcp-data/registry/shell-gradient-picker.json +8 -8
  149. package/dist/mcp-data/registry/shell-gradient-swatch.json +2 -2
  150. package/dist/mcp-data/registry/shell-page.json +199 -0
  151. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  152. package/dist/react/components.d.ts +3 -1
  153. package/dist/react/components.js +3 -1
  154. package/dist/react/ds-bar-title.d.ts +14 -0
  155. package/dist/react/ds-bar-title.js +16 -0
  156. package/dist/react/{ds-app-shell.d.ts → ds-shell-app.d.ts} +3 -3
  157. package/dist/react/ds-shell-app.js +12 -0
  158. package/dist/react/ds-shell-page.d.ts +9 -0
  159. package/dist/react/ds-shell-page.js +12 -0
  160. package/dist/types/components/Badge/Badge.d.ts +1 -1
  161. package/dist/types/components/BarTitle/BarTitle.d.ts +71 -0
  162. package/dist/types/components/BarTitle/bar-title-types.d.ts +29 -0
  163. package/dist/types/components/BarTitle/index.d.ts +2 -0
  164. package/dist/types/components/Menu/Menu.d.ts +5 -0
  165. package/dist/types/components/PanelNav/PanelNav.d.ts +1 -1
  166. package/dist/types/components/{AppShell/AppShell.d.ts → ShellApp/ShellApp.d.ts} +3 -3
  167. package/dist/types/components/ShellPage/ShellPage.d.ts +37 -0
  168. package/dist/types/components/ShellPage/index.d.ts +3 -0
  169. package/dist/types/components/ShellPage/shell-page-responsive.d.ts +12 -0
  170. package/dist/types/components/ShellPage/shell-page-types.d.ts +5 -0
  171. package/dist/types/components.d.ts +267 -55
  172. package/dist/types/shell/chrome-transition.d.ts +1 -1
  173. package/dist/types/shell/shell-gradient.d.ts +2 -2
  174. package/dist/types/shell/shell-shortcuts.d.ts +1 -1
  175. package/package.json +1 -1
  176. package/dist/components/ds-app-shell.js +0 -2
  177. package/dist/components/ds-app-shell.js.map +0 -1
  178. package/dist/components/p-BCCt2eT_.js +0 -2
  179. package/dist/components/p-B_qVPsEU.js +0 -2
  180. package/dist/components/p-Bet_UjML.js +0 -2
  181. package/dist/components/p-BsnezUUC.js +0 -2
  182. package/dist/components/p-BsnezUUC.js.map +0 -1
  183. package/dist/components/p-C1K5QGUZ.js +0 -2
  184. package/dist/components/p-C1K5QGUZ.js.map +0 -1
  185. package/dist/components/p-CKaJx0IX.js +0 -2
  186. package/dist/components/p-CKaJx0IX.js.map +0 -1
  187. package/dist/components/p-ZTugT4as.js +0 -2
  188. package/dist/components/p-ZTugT4as.js.map +0 -1
  189. package/dist/mcp-data/registry/app-shell.json +0 -210
  190. package/dist/react/ds-app-shell.js +0 -12
  191. /package/dist/components/{p-DJ78wdNv.js.map → p-6vj4kh70.js.map} +0 -0
  192. /package/dist/components/{p-bNpFhP5L.js.map → p-B3YvoGjS.js.map} +0 -0
  193. /package/dist/components/{p-BEWtqFX7.js.map → p-BH3es4p7.js.map} +0 -0
  194. /package/dist/components/{p-BaZRP4Oo.js.map → p-BUmDHPr3.js.map} +0 -0
  195. /package/dist/components/{p-Dh4q5TSS.js.map → p-BhKhX1er.js.map} +0 -0
  196. /package/dist/components/{p-CZZYGqKz.js.map → p-Bs6SS34m.js.map} +0 -0
  197. /package/dist/components/{p-CyoHRqy6.js.map → p-Cf-i-6aE.js.map} +0 -0
  198. /package/dist/components/{p-P_4vE1ub.js.map → p-CwTVEAl2.js.map} +0 -0
  199. /package/dist/components/{p-CjP8sYlo.js.map → p-DABj3qTX.js.map} +0 -0
  200. /package/dist/components/{p-DTqCBjUj.js.map → p-DUHcJWTQ.js.map} +0 -0
  201. /package/dist/components/{p-CPPAndX2.js.map → p-DVk0wxxX.js.map} +0 -0
  202. /package/dist/components/{p-CrwU83-g.js.map → p-Dg3xLna0.js.map} +0 -0
  203. /package/dist/components/{p-CLn7QnE0.js.map → p-Dy_sZ-dI.js.map} +0 -0
  204. /package/dist/components/{p-0kEg-Z4f.js.map → p-liMPkhUP.js.map} +0 -0
@@ -6,11 +6,11 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { AgentActivityItem, AgentResponsePart, AgentSource, AgentToolState, ConversationAttachment, ConversationItemState, MessageComposerStatus, MessageDeliveryState, MessageDirection, MessageGroupPosition, MessageScrollerPosition } from "./components/conversation-types";
9
- import { NavChromeStyle } from "./shell/nav-chrome";
10
- import { ShellGradientPreset } from "./shell/shell-gradient-presets";
11
9
  import { IconColor, IconSize as IconSize1 } from "./components/Icon/Icon";
12
10
  import { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
11
+ import { NavChromeStyle } from "./shell/nav-chrome";
13
12
  import { BarNavTab } from "./components/BarNav/bar-nav-types";
13
+ import { BarTitleActionItem, BarTitlePrimaryAction, BarTitleSectionItem, BarTitleVariant } from "./components/BarTitle/bar-title-types";
14
14
  import { ButtonFilledBackground, ButtonFilledContrast, ButtonFilledIntent, ButtonFilledSize, ButtonFilledVariant, ButtonFilledWidth } from "./components/ButtonFilled/ButtonFilled";
15
15
  import { ButtonUnfilledBackground, ButtonUnfilledPopup, ButtonUnfilledSize, ButtonUnfilledVariant, ButtonUnfilledWidth } from "./components/ButtonUnfilled/ButtonUnfilled";
16
16
  import { CardDataVizDonutWidth } from "./components/CardDataVizDonut/CardDataVizDonut";
@@ -28,6 +28,7 @@ import { MenuItemData, MenuSection } from "./components/Menu/menu-types";
28
28
  import { MenuSelectionMode } from "./components/Menu/Menu";
29
29
  import { MenuAlign, MenuSide } from "./components/Menu/menu-position";
30
30
  import { ChoicePopupAnchorAlignment } from "./utils";
31
+ import { ShellGradientPreset } from "./shell/shell-gradient-presets";
31
32
  import { MessageBubbleVariant } from "./components/MessageBubble/MessageBubble";
32
33
  import { ButtonFilledIntent as ButtonFilledIntent1 } from "./components/ButtonFilled/ButtonFilled";
33
34
  import { ModalCloseDetail, ModalWidth } from "./components/Modal/Modal";
@@ -40,6 +41,7 @@ import { RadioOption, RadioSize } from "./components/Radio/Radio";
40
41
  import { SelectBackground, SelectOption, SelectSection, SelectSize, SelectWidth } from "./components/Select/Select";
41
42
  import { SelectMultiBackground, SelectMultiOption, SelectMultiSection, SelectMultiSize, SelectMultiWidth } from "./components/SelectMulti/SelectMulti";
42
43
  import { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
44
+ import { ShellPageContentInset, ShellPageHeaderPresentation } from "./components/ShellPage/shell-page-types";
43
45
  import { SkeletonBackground, SkeletonVariant } from "./components/Skeleton/Skeleton";
44
46
  import { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
45
47
  import { ControlSize } from "./utils/control-text";
@@ -52,11 +54,11 @@ import { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
52
54
  import { ToastActionEventDetail, ToastCloseEventDetail, ToastEventDetail, ToastManager, ToastSwipeDirection } from "./toast";
53
55
  import { TooltipAlign, TooltipSide, TooltipSize } from "./components/Tooltip/Tooltip";
54
56
  export { AgentActivityItem, AgentResponsePart, AgentSource, AgentToolState, ConversationAttachment, ConversationItemState, MessageComposerStatus, MessageDeliveryState, MessageDirection, MessageGroupPosition, MessageScrollerPosition } from "./components/conversation-types";
55
- export { NavChromeStyle } from "./shell/nav-chrome";
56
- export { ShellGradientPreset } from "./shell/shell-gradient-presets";
57
57
  export { IconColor, IconSize as IconSize1 } from "./components/Icon/Icon";
58
58
  export { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
59
+ export { NavChromeStyle } from "./shell/nav-chrome";
59
60
  export { BarNavTab } from "./components/BarNav/bar-nav-types";
61
+ export { BarTitleActionItem, BarTitlePrimaryAction, BarTitleSectionItem, BarTitleVariant } from "./components/BarTitle/bar-title-types";
60
62
  export { ButtonFilledBackground, ButtonFilledContrast, ButtonFilledIntent, ButtonFilledSize, ButtonFilledVariant, ButtonFilledWidth } from "./components/ButtonFilled/ButtonFilled";
61
63
  export { ButtonUnfilledBackground, ButtonUnfilledPopup, ButtonUnfilledSize, ButtonUnfilledVariant, ButtonUnfilledWidth } from "./components/ButtonUnfilled/ButtonUnfilled";
62
64
  export { CardDataVizDonutWidth } from "./components/CardDataVizDonut/CardDataVizDonut";
@@ -74,6 +76,7 @@ export { MenuItemData, MenuSection } from "./components/Menu/menu-types";
74
76
  export { MenuSelectionMode } from "./components/Menu/Menu";
75
77
  export { MenuAlign, MenuSide } from "./components/Menu/menu-position";
76
78
  export { ChoicePopupAnchorAlignment } from "./utils";
79
+ export { ShellGradientPreset } from "./shell/shell-gradient-presets";
77
80
  export { MessageBubbleVariant } from "./components/MessageBubble/MessageBubble";
78
81
  export { ButtonFilledIntent as ButtonFilledIntent1 } from "./components/ButtonFilled/ButtonFilled";
79
82
  export { ModalCloseDetail, ModalWidth } from "./components/Modal/Modal";
@@ -86,6 +89,7 @@ export { RadioOption, RadioSize } from "./components/Radio/Radio";
86
89
  export { SelectBackground, SelectOption, SelectSection, SelectSize, SelectWidth } from "./components/Select/Select";
87
90
  export { SelectMultiBackground, SelectMultiOption, SelectMultiSection, SelectMultiSize, SelectMultiWidth } from "./components/SelectMulti/SelectMulti";
88
91
  export { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
92
+ export { ShellPageContentInset, ShellPageHeaderPresentation } from "./components/ShellPage/shell-page-types";
89
93
  export { SkeletonBackground, SkeletonVariant } from "./components/Skeleton/Skeleton";
90
94
  export { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
91
95
  export { ControlSize } from "./utils/control-text";
@@ -173,23 +177,6 @@ export namespace Components {
173
177
  */
174
178
  "state": AgentToolState;
175
179
  }
176
- interface DsAppShell {
177
- /**
178
- * Shell chrome wash preset. `none` renders solid chrome; the remaining presets use token-based washes that adapt to the active color theme.
179
- * @default 'neutral'
180
- */
181
- "gradientPreset": ShellGradientPreset;
182
- /**
183
- * Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
184
- * @default 'dashboard'
185
- */
186
- "navStyle": NavChromeStyle;
187
- /**
188
- * When `true` (default), registers global shell keyboard shortcuts. `[` toggles panel nav; `]` closes tools; K/A/S/M/N/? toggle tool drawers. Modifiers are ignored so browser chords like ⌘N stay native.
189
- * @default true
190
- */
191
- "shortcutsEnabled": boolean;
192
- }
193
180
  interface DsAttachmentList {
194
181
  /**
195
182
  * @default []
@@ -227,7 +214,7 @@ export namespace Components {
227
214
  */
228
215
  "count": number;
229
216
  /**
230
- * Ring samples the shell gradient stack (base fill + wash) instead of a flat `box-shadow`. Auto-enabled under an AppShell with an active gradient preset; set `gradient-background` to opt in/out explicitly. The attribute must NOT start with `on` — Stencil's setAccessor routes any unknown `on*` member down the event-listener path during attribute reflection, calling addEventListener with a non-listener and throwing.
217
+ * Ring samples the shell gradient stack (base fill + wash) instead of a flat `box-shadow`. Auto-enabled under an ShellApp with an active gradient preset; set `gradient-background` to opt in/out explicitly. The attribute must NOT start with `on` — Stencil's setAccessor routes any unknown `on*` member down the event-listener path during attribute reflection, calling addEventListener with a non-listener and throwing.
231
218
  * @default false
232
219
  */
233
220
  "gradientBackground": boolean;
@@ -296,6 +283,67 @@ export namespace Components {
296
283
  */
297
284
  "value": string;
298
285
  }
286
+ interface DsBarTitle {
287
+ /**
288
+ * Secondary page actions shown in the overflow menu. Dividers create groups.
289
+ * @default []
290
+ */
291
+ "actions": BarTitleActionItem[];
292
+ /**
293
+ * Accessible name for the page-actions menu.
294
+ * @default 'More page actions'
295
+ */
296
+ "actionsAriaLabel": string;
297
+ /**
298
+ * Accessible name for the leading Back action.
299
+ * @default 'Back'
300
+ */
301
+ "backAriaLabel": string;
302
+ /**
303
+ * Visible parent-page label used by the expanded Back breadcrumb.
304
+ * @default 'Back'
305
+ */
306
+ "backLabel": string;
307
+ /**
308
+ * Optional supporting copy shown in the expanded presentation.
309
+ * @default ''
310
+ */
311
+ "description": string;
312
+ /**
313
+ * The page's single visible h1.
314
+ */
315
+ "heading": string;
316
+ /**
317
+ * The one highest-emphasis page action.
318
+ * @default null
319
+ */
320
+ "primaryAction": BarTitlePrimaryAction | null;
321
+ /**
322
+ * Optional page sections exposed through the active-section menu.
323
+ * @default []
324
+ */
325
+ "sections": BarTitleSectionItem[];
326
+ /**
327
+ * Accessible name for the page-section menu.
328
+ * @default 'Change page section'
329
+ */
330
+ "sectionsAriaLabel": string;
331
+ /**
332
+ * Show the leading page-level Back action.
333
+ * @default false
334
+ */
335
+ "showBack": boolean;
336
+ /**
337
+ * Id of the active page section.
338
+ * @default ''
339
+ */
340
+ "value": string;
341
+ /**
342
+ * Explicit visual/capacity variant. ShellPage owns automatic selection.
343
+ * @default 'expanded'
344
+ */
345
+ "variant": BarTitleVariant;
346
+ }
299
347
  interface DsButtonFilled {
300
348
  /**
301
349
  * Accessible name override. Required for icon-only buttons.
@@ -1808,6 +1856,23 @@ export namespace Components {
1808
1856
  */
1809
1857
  "width": SelectMultiWidth;
1810
1858
  }
1859
+ interface DsShellApp {
1860
+ /**
1861
+ * Shell chrome wash preset. `none` renders solid chrome; the remaining presets use token-based washes that adapt to the active color theme.
1862
+ * @default 'neutral'
1863
+ */
1864
+ "gradientPreset": ShellGradientPreset;
1865
+ /**
1866
+ * Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
1867
+ * @default 'dashboard'
1868
+ */
1869
+ "navStyle": NavChromeStyle;
1870
+ /**
1871
+ * When `true` (default), registers global shell keyboard shortcuts. `[` toggles panel nav; `]` closes tools; K, A, S, M, N, and / toggle tool drawers. Modifiers are ignored so browser chords like ⌘N stay native.
1872
+ * @default true
1873
+ */
1874
+ "shortcutsEnabled": boolean;
1875
+ }
1811
1876
  /**
1812
1877
  * @deprecated Use `ds-swatch-picker` with shell preset options.
1813
1878
  */
@@ -1845,6 +1910,18 @@ export namespace Components {
1845
1910
  */
1846
1911
  "selected": boolean;
1847
1912
  }
1913
+ interface DsShellPage {
1914
+ /**
1915
+ * Standard page gutters, or no inset for full-bleed page content.
1916
+ * @default 'default'
1917
+ */
1918
+ "contentInset": ShellPageContentInset;
1919
+ /**
1920
+ * Automatic container/scroll behavior, or an explicit header variant override.
1921
+ * @default 'auto'
1922
+ */
1923
+ "headerPresentation": ShellPageHeaderPresentation;
1924
+ }
1848
1925
  interface DsSkeleton {
1849
1926
  /**
1850
1927
  * Actual parent surface context. Omit on primary and secondary surfaces.
@@ -2312,6 +2389,10 @@ export interface DsBarNavCustomEvent<T> extends CustomEvent<T> {
2312
2389
  detail: T;
2313
2390
  target: HTMLDsBarNavElement;
2314
2391
  }
2392
+ export interface DsBarTitleCustomEvent<T> extends CustomEvent<T> {
2393
+ detail: T;
2394
+ target: HTMLDsBarTitleElement;
2395
+ }
2315
2396
  export interface DsButtonFilledCustomEvent<T> extends CustomEvent<T> {
2316
2397
  detail: T;
2317
2398
  target: HTMLDsButtonFilledElement;
@@ -2457,12 +2538,6 @@ declare global {
2457
2538
  prototype: HTMLDsAgentToolCallElement;
2458
2539
  new (): HTMLDsAgentToolCallElement;
2459
2540
  };
2460
- interface HTMLDsAppShellElement extends Components.DsAppShell, HTMLStencilElement {
2461
- }
2462
- var HTMLDsAppShellElement: {
2463
- prototype: HTMLDsAppShellElement;
2464
- new (): HTMLDsAppShellElement;
2465
- };
2466
2541
  interface HTMLDsAttachmentListElement extends Components.DsAttachmentList, HTMLStencilElement {
2467
2542
  }
2468
2543
  var HTMLDsAttachmentListElement: {
@@ -2498,6 +2573,25 @@ declare global {
2498
2573
  prototype: HTMLDsBarNavElement;
2499
2574
  new (): HTMLDsBarNavElement;
2500
2575
  };
2576
+ interface HTMLDsBarTitleElementEventMap {
2577
+ "dsBack": MouseEvent;
2578
+ "dsSectionChange": string;
2579
+ "dsAction": string;
2580
+ }
2581
+ interface HTMLDsBarTitleElement extends Components.DsBarTitle, HTMLStencilElement {
2582
+ addEventListener<K extends keyof HTMLDsBarTitleElementEventMap>(type: K, listener: (this: HTMLDsBarTitleElement, ev: DsBarTitleCustomEvent<HTMLDsBarTitleElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2583
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2584
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2585
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2586
+ removeEventListener<K extends keyof HTMLDsBarTitleElementEventMap>(type: K, listener: (this: HTMLDsBarTitleElement, ev: DsBarTitleCustomEvent<HTMLDsBarTitleElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2587
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2588
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2589
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2590
+ }
2591
+ var HTMLDsBarTitleElement: {
2592
+ prototype: HTMLDsBarTitleElement;
2593
+ new (): HTMLDsBarTitleElement;
2594
+ };
2501
2595
  interface HTMLDsButtonFilledElementEventMap {
2502
2596
  "dsClick": MouseEvent;
2503
2597
  }
@@ -3014,6 +3108,12 @@ declare global {
3014
3108
  prototype: HTMLDsSelectMultiElement;
3015
3109
  new (): HTMLDsSelectMultiElement;
3016
3110
  };
3111
+ interface HTMLDsShellAppElement extends Components.DsShellApp, HTMLStencilElement {
3112
+ }
3113
+ var HTMLDsShellAppElement: {
3114
+ prototype: HTMLDsShellAppElement;
3115
+ new (): HTMLDsShellAppElement;
3116
+ };
3017
3117
  interface HTMLDsShellGradientPickerElementEventMap {
3018
3118
  "dsChange": ShellGradientPreset1;
3019
3119
  }
@@ -3054,6 +3154,12 @@ declare global {
3054
3154
  prototype: HTMLDsShellGradientSwatchElement;
3055
3155
  new (): HTMLDsShellGradientSwatchElement;
3056
3156
  };
3157
+ interface HTMLDsShellPageElement extends Components.DsShellPage, HTMLStencilElement {
3158
+ }
3159
+ var HTMLDsShellPageElement: {
3160
+ prototype: HTMLDsShellPageElement;
3161
+ new (): HTMLDsShellPageElement;
3162
+ };
3057
3163
  interface HTMLDsSkeletonElement extends Components.DsSkeleton, HTMLStencilElement {
3058
3164
  }
3059
3165
  var HTMLDsSkeletonElement: {
@@ -3214,11 +3320,11 @@ declare global {
3214
3320
  "ds-agent-response": HTMLDsAgentResponseElement;
3215
3321
  "ds-agent-source-list": HTMLDsAgentSourceListElement;
3216
3322
  "ds-agent-tool-call": HTMLDsAgentToolCallElement;
3217
- "ds-app-shell": HTMLDsAppShellElement;
3218
3323
  "ds-attachment-list": HTMLDsAttachmentListElement;
3219
3324
  "ds-avatar": HTMLDsAvatarElement;
3220
3325
  "ds-badge": HTMLDsBadgeElement;
3221
3326
  "ds-bar-nav": HTMLDsBarNavElement;
3327
+ "ds-bar-title": HTMLDsBarTitleElement;
3222
3328
  "ds-button-filled": HTMLDsButtonFilledElement;
3223
3329
  "ds-button-unfilled": HTMLDsButtonUnfilledElement;
3224
3330
  "ds-card-data-viz-donut": HTMLDsCardDataVizDonutElement;
@@ -3255,8 +3361,10 @@ declare global {
3255
3361
  "ds-radio": HTMLDsRadioElement;
3256
3362
  "ds-select": HTMLDsSelectElement;
3257
3363
  "ds-select-multi": HTMLDsSelectMultiElement;
3364
+ "ds-shell-app": HTMLDsShellAppElement;
3258
3365
  "ds-shell-gradient-picker": HTMLDsShellGradientPickerElement;
3259
3366
  "ds-shell-gradient-swatch": HTMLDsShellGradientSwatchElement;
3367
+ "ds-shell-page": HTMLDsShellPageElement;
3260
3368
  "ds-skeleton": HTMLDsSkeletonElement;
3261
3369
  "ds-slider": HTMLDsSliderElement;
3262
3370
  "ds-swatch-picker": HTMLDsSwatchPickerElement;
@@ -3348,23 +3456,6 @@ declare namespace LocalJSX {
3348
3456
  */
3349
3457
  "state"?: AgentToolState;
3350
3458
  }
3351
- interface DsAppShell {
3352
- /**
3353
- * Shell chrome wash preset. `none` renders solid chrome; the remaining presets use token-based washes that adapt to the active color theme.
3354
- * @default 'neutral'
3355
- */
3356
- "gradientPreset"?: ShellGradientPreset;
3357
- /**
3358
- * Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
3359
- * @default 'dashboard'
3360
- */
3361
- "navStyle"?: NavChromeStyle;
3362
- /**
3363
- * When `true` (default), registers global shell keyboard shortcuts. `[` toggles panel nav; `]` closes tools; K/A/S/M/N/? toggle tool drawers. Modifiers are ignored so browser chords like ⌘N stay native.
3364
- * @default true
3365
- */
3366
- "shortcutsEnabled"?: boolean;
3367
- }
3368
3459
  interface DsAttachmentList {
3369
3460
  /**
3370
3461
  * @default []
@@ -3402,7 +3493,7 @@ declare namespace LocalJSX {
3402
3493
  */
3403
3494
  "count"?: number;
3404
3495
  /**
3405
- * Ring samples the shell gradient stack (base fill + wash) instead of a flat `box-shadow`. Auto-enabled under an AppShell with an active gradient preset; set `gradient-background` to opt in/out explicitly. The attribute must NOT start with `on` — Stencil's setAccessor routes any unknown `on*` member down the event-listener path during attribute reflection, calling addEventListener with a non-listener and throwing.
3496
+ * Ring samples the shell gradient stack (base fill + wash) instead of a flat `box-shadow`. Auto-enabled under an ShellApp with an active gradient preset; set `gradient-background` to opt in/out explicitly. The attribute must NOT start with `on` — Stencil's setAccessor routes any unknown `on*` member down the event-listener path during attribute reflection, calling addEventListener with a non-listener and throwing.
3406
3497
  * @default false
3407
3498
  */
3408
3499
  "gradientBackground"?: boolean;
@@ -3475,6 +3566,79 @@ declare namespace LocalJSX {
3475
3566
  */
3476
3567
  "value"?: string;
3477
3568
  }
3569
+ interface DsBarTitle {
3570
+ /**
3571
+ * Secondary page actions shown in the overflow menu. Dividers create groups.
3572
+ * @default []
3573
+ */
3574
+ "actions"?: BarTitleActionItem[];
3575
+ /**
3576
+ * Accessible name for the page-actions menu.
3577
+ * @default 'More page actions'
3578
+ */
3579
+ "actionsAriaLabel"?: string;
3580
+ /**
3581
+ * Accessible name for the leading Back action.
3582
+ * @default 'Back'
3583
+ */
3584
+ "backAriaLabel"?: string;
3585
+ /**
3586
+ * Visible parent-page label used by the expanded Back breadcrumb.
3587
+ * @default 'Back'
3588
+ */
3589
+ "backLabel"?: string;
3590
+ /**
3591
+ * Optional supporting copy shown in the expanded presentation.
3592
+ * @default ''
3593
+ */
3594
+ "description"?: string;
3595
+ /**
3596
+ * The page's single visible h1.
3597
+ */
3598
+ "heading": string;
3599
+ /**
3600
+ * Emitted with the activated primary or overflow action id.
3601
+ */
3602
+ "onDsAction"?: (event: DsBarTitleCustomEvent<string>) => void;
3603
+ /**
3604
+ * Emitted when the leading Back action is activated.
3605
+ */
3606
+ "onDsBack"?: (event: DsBarTitleCustomEvent<MouseEvent>) => void;
3607
+ /**
3608
+ * Emitted with the newly selected page-section id.
3609
+ */
3610
+ "onDsSectionChange"?: (event: DsBarTitleCustomEvent<string>) => void;
3611
+ /**
3612
+ * The one highest-emphasis page action.
3613
+ * @default null
3614
+ */
3615
+ "primaryAction"?: BarTitlePrimaryAction | null;
3616
+ /**
3617
+ * Optional page sections exposed through the active-section menu.
3618
+ * @default []
3619
+ */
3620
+ "sections"?: BarTitleSectionItem[];
3621
+ /**
3622
+ * Accessible name for the page-section menu.
3623
+ * @default 'Change page section'
3624
+ */
3625
+ "sectionsAriaLabel"?: string;
3626
+ /**
3627
+ * Show the leading page-level Back action.
3628
+ * @default false
3629
+ */
3630
+ "showBack"?: boolean;
3631
+ /**
3632
+ * Id of the active page section.
3633
+ * @default ''
3634
+ */
3635
+ "value"?: string;
3636
+ /**
3637
+ * Explicit visual/capacity variant. ShellPage owns automatic selection.
3638
+ * @default 'expanded'
3639
+ */
3640
+ "variant"?: BarTitleVariant;
3641
+ }
3478
3642
  interface DsButtonFilled {
3479
3643
  /**
3480
3644
  * Accessible name override. Required for icon-only buttons.
@@ -4470,7 +4634,7 @@ declare namespace LocalJSX {
4470
4634
  "navigationItemsLabel"?: string;
4471
4635
  "onDsChromeTransitionEnd"?: (event: DsPanelNavCustomEvent<ChromeTransitionDetail>) => void;
4472
4636
  /**
4473
- * Bubbling lifecycle — `ds-app-shell` pauses chrome metrics during width motion.
4637
+ * Bubbling lifecycle — `ds-shell-app` pauses chrome metrics during width motion.
4474
4638
  */
4475
4639
  "onDsChromeTransitionStart"?: (event: DsPanelNavCustomEvent<ChromeTransitionDetail>) => void;
4476
4640
  /**
@@ -5118,6 +5282,23 @@ declare namespace LocalJSX {
5118
5282
  */
5119
5283
  "width"?: SelectMultiWidth;
5120
5284
  }
5285
+ interface DsShellApp {
5286
+ /**
5287
+ * Shell chrome wash preset. `none` renders solid chrome; the remaining presets use token-based washes that adapt to the active color theme.
5288
+ * @default 'neutral'
5289
+ */
5290
+ "gradientPreset"?: ShellGradientPreset;
5291
+ /**
5292
+ * Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
5293
+ * @default 'dashboard'
5294
+ */
5295
+ "navStyle"?: NavChromeStyle;
5296
+ /**
5297
+ * When `true` (default), registers global shell keyboard shortcuts. `[` toggles panel nav; `]` closes tools; K, A, S, M, N, and / toggle tool drawers. Modifiers are ignored so browser chords like ⌘N stay native.
5298
+ * @default true
5299
+ */
5300
+ "shortcutsEnabled"?: boolean;
5301
+ }
5121
5302
  /**
5122
5303
  * @deprecated Use `ds-swatch-picker` with shell preset options.
5123
5304
  */
@@ -5157,6 +5338,18 @@ declare namespace LocalJSX {
5157
5338
  */
5158
5339
  "selected"?: boolean;
5159
5340
  }
5341
+ interface DsShellPage {
5342
+ /**
5343
+ * Standard page gutters, or no inset for full-bleed page content.
5344
+ * @default 'default'
5345
+ */
5346
+ "contentInset"?: ShellPageContentInset;
5347
+ /**
5348
+ * Automatic container/scroll behavior, or an explicit header variant override.
5349
+ * @default 'auto'
5350
+ */
5351
+ "headerPresentation"?: ShellPageHeaderPresentation;
5352
+ }
5160
5353
  interface DsSkeleton {
5161
5354
  /**
5162
5355
  * Actual parent surface context. Omit on primary and secondary surfaces.
@@ -5659,11 +5852,6 @@ declare namespace LocalJSX {
5659
5852
  "error": string;
5660
5853
  "open": boolean;
5661
5854
  }
5662
- interface DsAppShellAttributes {
5663
- "navStyle": NavChromeStyle;
5664
- "gradientPreset": ShellGradientPreset;
5665
- "shortcutsEnabled": boolean;
5666
- }
5667
5855
  interface DsAttachmentListAttributes {
5668
5856
  "label": string;
5669
5857
  }
@@ -5691,6 +5879,17 @@ declare namespace LocalJSX {
5691
5879
  "currentUrl": string;
5692
5880
  "moreTabsLabel": string;
5693
5881
  }
5882
+ interface DsBarTitleAttributes {
5883
+ "heading": string;
5884
+ "description": string;
5885
+ "showBack": boolean;
5886
+ "backAriaLabel": string;
5887
+ "backLabel": string;
5888
+ "value": string;
5889
+ "sectionsAriaLabel": string;
5890
+ "actionsAriaLabel": string;
5891
+ "variant": BarTitleVariant;
5892
+ }
5694
5893
  interface DsButtonFilledAttributes {
5695
5894
  "variant": ButtonFilledVariant;
5696
5895
  "size": ButtonFilledSize;
@@ -6060,6 +6259,11 @@ declare namespace LocalJSX {
6060
6259
  "ariaLabelledby": string | undefined;
6061
6260
  "ariaDescribedby": string | undefined;
6062
6261
  }
6262
+ interface DsShellAppAttributes {
6263
+ "navStyle": NavChromeStyle;
6264
+ "gradientPreset": ShellGradientPreset;
6265
+ "shortcutsEnabled": boolean;
6266
+ }
6063
6267
  interface DsShellGradientPickerAttributes {
6064
6268
  "value": ShellGradientPreset;
6065
6269
  "groupLabel": string;
@@ -6070,6 +6274,10 @@ declare namespace LocalJSX {
6070
6274
  "isInactive": boolean;
6071
6275
  "ariaLabel": string | null;
6072
6276
  }
6277
+ interface DsShellPageAttributes {
6278
+ "headerPresentation": ShellPageHeaderPresentation;
6279
+ "contentInset": ShellPageContentInset;
6280
+ }
6073
6281
  interface DsSkeletonAttributes {
6074
6282
  "variant": SkeletonVariant;
6075
6283
  "textVariant": TextVariant;
@@ -6193,11 +6401,11 @@ declare namespace LocalJSX {
6193
6401
  "ds-agent-response": Omit<DsAgentResponse, keyof DsAgentResponseAttributes> & { [K in keyof DsAgentResponse & keyof DsAgentResponseAttributes]?: DsAgentResponse[K] } & { [K in keyof DsAgentResponse & keyof DsAgentResponseAttributes as `attr:${K}`]?: DsAgentResponseAttributes[K] } & { [K in keyof DsAgentResponse & keyof DsAgentResponseAttributes as `prop:${K}`]?: DsAgentResponse[K] };
6194
6402
  "ds-agent-source-list": Omit<DsAgentSourceList, keyof DsAgentSourceListAttributes> & { [K in keyof DsAgentSourceList & keyof DsAgentSourceListAttributes]?: DsAgentSourceList[K] } & { [K in keyof DsAgentSourceList & keyof DsAgentSourceListAttributes as `attr:${K}`]?: DsAgentSourceListAttributes[K] } & { [K in keyof DsAgentSourceList & keyof DsAgentSourceListAttributes as `prop:${K}`]?: DsAgentSourceList[K] };
6195
6403
  "ds-agent-tool-call": Omit<DsAgentToolCall, keyof DsAgentToolCallAttributes> & { [K in keyof DsAgentToolCall & keyof DsAgentToolCallAttributes]?: DsAgentToolCall[K] } & { [K in keyof DsAgentToolCall & keyof DsAgentToolCallAttributes as `attr:${K}`]?: DsAgentToolCallAttributes[K] } & { [K in keyof DsAgentToolCall & keyof DsAgentToolCallAttributes as `prop:${K}`]?: DsAgentToolCall[K] };
6196
- "ds-app-shell": Omit<DsAppShell, keyof DsAppShellAttributes> & { [K in keyof DsAppShell & keyof DsAppShellAttributes]?: DsAppShell[K] } & { [K in keyof DsAppShell & keyof DsAppShellAttributes as `attr:${K}`]?: DsAppShellAttributes[K] } & { [K in keyof DsAppShell & keyof DsAppShellAttributes as `prop:${K}`]?: DsAppShell[K] };
6197
6404
  "ds-attachment-list": Omit<DsAttachmentList, keyof DsAttachmentListAttributes> & { [K in keyof DsAttachmentList & keyof DsAttachmentListAttributes]?: DsAttachmentList[K] } & { [K in keyof DsAttachmentList & keyof DsAttachmentListAttributes as `attr:${K}`]?: DsAttachmentListAttributes[K] } & { [K in keyof DsAttachmentList & keyof DsAttachmentListAttributes as `prop:${K}`]?: DsAttachmentList[K] };
6198
6405
  "ds-avatar": Omit<DsAvatar, keyof DsAvatarAttributes> & { [K in keyof DsAvatar & keyof DsAvatarAttributes]?: DsAvatar[K] } & { [K in keyof DsAvatar & keyof DsAvatarAttributes as `attr:${K}`]?: DsAvatarAttributes[K] } & { [K in keyof DsAvatar & keyof DsAvatarAttributes as `prop:${K}`]?: DsAvatar[K] };
6199
6406
  "ds-badge": Omit<DsBadge, keyof DsBadgeAttributes> & { [K in keyof DsBadge & keyof DsBadgeAttributes]?: DsBadge[K] } & { [K in keyof DsBadge & keyof DsBadgeAttributes as `attr:${K}`]?: DsBadgeAttributes[K] } & { [K in keyof DsBadge & keyof DsBadgeAttributes as `prop:${K}`]?: DsBadge[K] };
6200
6407
  "ds-bar-nav": Omit<DsBarNav, keyof DsBarNavAttributes> & { [K in keyof DsBarNav & keyof DsBarNavAttributes]?: DsBarNav[K] } & { [K in keyof DsBarNav & keyof DsBarNavAttributes as `attr:${K}`]?: DsBarNavAttributes[K] } & { [K in keyof DsBarNav & keyof DsBarNavAttributes as `prop:${K}`]?: DsBarNav[K] };
6408
+ "ds-bar-title": Omit<DsBarTitle, keyof DsBarTitleAttributes> & { [K in keyof DsBarTitle & keyof DsBarTitleAttributes]?: DsBarTitle[K] } & { [K in keyof DsBarTitle & keyof DsBarTitleAttributes as `attr:${K}`]?: DsBarTitleAttributes[K] } & { [K in keyof DsBarTitle & keyof DsBarTitleAttributes as `prop:${K}`]?: DsBarTitle[K] } & OneOf<"heading", DsBarTitle["heading"], DsBarTitleAttributes["heading"]>;
6201
6409
  "ds-button-filled": Omit<DsButtonFilled, keyof DsButtonFilledAttributes> & { [K in keyof DsButtonFilled & keyof DsButtonFilledAttributes]?: DsButtonFilled[K] } & { [K in keyof DsButtonFilled & keyof DsButtonFilledAttributes as `attr:${K}`]?: DsButtonFilledAttributes[K] } & { [K in keyof DsButtonFilled & keyof DsButtonFilledAttributes as `prop:${K}`]?: DsButtonFilled[K] };
6202
6410
  "ds-button-unfilled": Omit<DsButtonUnfilled, keyof DsButtonUnfilledAttributes> & { [K in keyof DsButtonUnfilled & keyof DsButtonUnfilledAttributes]?: DsButtonUnfilled[K] } & { [K in keyof DsButtonUnfilled & keyof DsButtonUnfilledAttributes as `attr:${K}`]?: DsButtonUnfilledAttributes[K] } & { [K in keyof DsButtonUnfilled & keyof DsButtonUnfilledAttributes as `prop:${K}`]?: DsButtonUnfilled[K] };
6203
6411
  "ds-card-data-viz-donut": Omit<DsCardDataVizDonut, keyof DsCardDataVizDonutAttributes> & { [K in keyof DsCardDataVizDonut & keyof DsCardDataVizDonutAttributes]?: DsCardDataVizDonut[K] } & { [K in keyof DsCardDataVizDonut & keyof DsCardDataVizDonutAttributes as `attr:${K}`]?: DsCardDataVizDonutAttributes[K] } & { [K in keyof DsCardDataVizDonut & keyof DsCardDataVizDonutAttributes as `prop:${K}`]?: DsCardDataVizDonut[K] } & OneOf<"heading", DsCardDataVizDonut["heading"], DsCardDataVizDonutAttributes["heading"]>;
@@ -6234,8 +6442,10 @@ declare namespace LocalJSX {
6234
6442
  "ds-radio": Omit<DsRadio, keyof DsRadioAttributes> & { [K in keyof DsRadio & keyof DsRadioAttributes]?: DsRadio[K] } & { [K in keyof DsRadio & keyof DsRadioAttributes as `attr:${K}`]?: DsRadioAttributes[K] } & { [K in keyof DsRadio & keyof DsRadioAttributes as `prop:${K}`]?: DsRadio[K] };
6235
6443
  "ds-select": Omit<DsSelect, keyof DsSelectAttributes> & { [K in keyof DsSelect & keyof DsSelectAttributes]?: DsSelect[K] } & { [K in keyof DsSelect & keyof DsSelectAttributes as `attr:${K}`]?: DsSelectAttributes[K] } & { [K in keyof DsSelect & keyof DsSelectAttributes as `prop:${K}`]?: DsSelect[K] };
6236
6444
  "ds-select-multi": Omit<DsSelectMulti, keyof DsSelectMultiAttributes> & { [K in keyof DsSelectMulti & keyof DsSelectMultiAttributes]?: DsSelectMulti[K] } & { [K in keyof DsSelectMulti & keyof DsSelectMultiAttributes as `attr:${K}`]?: DsSelectMultiAttributes[K] } & { [K in keyof DsSelectMulti & keyof DsSelectMultiAttributes as `prop:${K}`]?: DsSelectMulti[K] };
6445
+ "ds-shell-app": Omit<DsShellApp, keyof DsShellAppAttributes> & { [K in keyof DsShellApp & keyof DsShellAppAttributes]?: DsShellApp[K] } & { [K in keyof DsShellApp & keyof DsShellAppAttributes as `attr:${K}`]?: DsShellAppAttributes[K] } & { [K in keyof DsShellApp & keyof DsShellAppAttributes as `prop:${K}`]?: DsShellApp[K] };
6237
6446
  "ds-shell-gradient-picker": Omit<DsShellGradientPicker, keyof DsShellGradientPickerAttributes> & { [K in keyof DsShellGradientPicker & keyof DsShellGradientPickerAttributes]?: DsShellGradientPicker[K] } & { [K in keyof DsShellGradientPicker & keyof DsShellGradientPickerAttributes as `attr:${K}`]?: DsShellGradientPickerAttributes[K] } & { [K in keyof DsShellGradientPicker & keyof DsShellGradientPickerAttributes as `prop:${K}`]?: DsShellGradientPicker[K] };
6238
6447
  "ds-shell-gradient-swatch": Omit<DsShellGradientSwatch, keyof DsShellGradientSwatchAttributes> & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes]?: DsShellGradientSwatch[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `attr:${K}`]?: DsShellGradientSwatchAttributes[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `prop:${K}`]?: DsShellGradientSwatch[K] };
6448
+ "ds-shell-page": Omit<DsShellPage, keyof DsShellPageAttributes> & { [K in keyof DsShellPage & keyof DsShellPageAttributes]?: DsShellPage[K] } & { [K in keyof DsShellPage & keyof DsShellPageAttributes as `attr:${K}`]?: DsShellPageAttributes[K] } & { [K in keyof DsShellPage & keyof DsShellPageAttributes as `prop:${K}`]?: DsShellPage[K] };
6239
6449
  "ds-skeleton": Omit<DsSkeleton, keyof DsSkeletonAttributes> & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes]?: DsSkeleton[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `attr:${K}`]?: DsSkeletonAttributes[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `prop:${K}`]?: DsSkeleton[K] };
6240
6450
  "ds-slider": Omit<DsSlider, keyof DsSliderAttributes> & { [K in keyof DsSlider & keyof DsSliderAttributes]?: DsSlider[K] } & { [K in keyof DsSlider & keyof DsSliderAttributes as `attr:${K}`]?: DsSliderAttributes[K] } & { [K in keyof DsSlider & keyof DsSliderAttributes as `prop:${K}`]?: DsSlider[K] };
6241
6451
  "ds-swatch-picker": Omit<DsSwatchPicker, keyof DsSwatchPickerAttributes> & { [K in keyof DsSwatchPicker & keyof DsSwatchPickerAttributes]?: DsSwatchPicker[K] } & { [K in keyof DsSwatchPicker & keyof DsSwatchPickerAttributes as `attr:${K}`]?: DsSwatchPickerAttributes[K] } & { [K in keyof DsSwatchPicker & keyof DsSwatchPickerAttributes as `prop:${K}`]?: DsSwatchPicker[K] };
@@ -6257,11 +6467,11 @@ declare module "@stencil/core" {
6257
6467
  "ds-agent-response": LocalJSX.IntrinsicElements["ds-agent-response"] & JSXBase.HTMLAttributes<HTMLDsAgentResponseElement>;
6258
6468
  "ds-agent-source-list": LocalJSX.IntrinsicElements["ds-agent-source-list"] & JSXBase.HTMLAttributes<HTMLDsAgentSourceListElement>;
6259
6469
  "ds-agent-tool-call": LocalJSX.IntrinsicElements["ds-agent-tool-call"] & JSXBase.HTMLAttributes<HTMLDsAgentToolCallElement>;
6260
- "ds-app-shell": LocalJSX.IntrinsicElements["ds-app-shell"] & JSXBase.HTMLAttributes<HTMLDsAppShellElement>;
6261
6470
  "ds-attachment-list": LocalJSX.IntrinsicElements["ds-attachment-list"] & JSXBase.HTMLAttributes<HTMLDsAttachmentListElement>;
6262
6471
  "ds-avatar": LocalJSX.IntrinsicElements["ds-avatar"] & JSXBase.HTMLAttributes<HTMLDsAvatarElement>;
6263
6472
  "ds-badge": LocalJSX.IntrinsicElements["ds-badge"] & JSXBase.HTMLAttributes<HTMLDsBadgeElement>;
6264
6473
  "ds-bar-nav": LocalJSX.IntrinsicElements["ds-bar-nav"] & JSXBase.HTMLAttributes<HTMLDsBarNavElement>;
6474
+ "ds-bar-title": LocalJSX.IntrinsicElements["ds-bar-title"] & JSXBase.HTMLAttributes<HTMLDsBarTitleElement>;
6265
6475
  "ds-button-filled": LocalJSX.IntrinsicElements["ds-button-filled"] & JSXBase.HTMLAttributes<HTMLDsButtonFilledElement>;
6266
6476
  "ds-button-unfilled": LocalJSX.IntrinsicElements["ds-button-unfilled"] & JSXBase.HTMLAttributes<HTMLDsButtonUnfilledElement>;
6267
6477
  /**
@@ -6318,6 +6528,7 @@ declare module "@stencil/core" {
6318
6528
  "ds-radio": LocalJSX.IntrinsicElements["ds-radio"] & JSXBase.HTMLAttributes<HTMLDsRadioElement>;
6319
6529
  "ds-select": LocalJSX.IntrinsicElements["ds-select"] & JSXBase.HTMLAttributes<HTMLDsSelectElement>;
6320
6530
  "ds-select-multi": LocalJSX.IntrinsicElements["ds-select-multi"] & JSXBase.HTMLAttributes<HTMLDsSelectMultiElement>;
6531
+ "ds-shell-app": LocalJSX.IntrinsicElements["ds-shell-app"] & JSXBase.HTMLAttributes<HTMLDsShellAppElement>;
6321
6532
  /**
6322
6533
  * @deprecated Use `ds-swatch-picker` with shell preset options.
6323
6534
  */
@@ -6326,6 +6537,7 @@ declare module "@stencil/core" {
6326
6537
  * @deprecated Use `ds-swatch-picker`; individual swatches are implementation detail.
6327
6538
  */
6328
6539
  "ds-shell-gradient-swatch": LocalJSX.IntrinsicElements["ds-shell-gradient-swatch"] & JSXBase.HTMLAttributes<HTMLDsShellGradientSwatchElement>;
6540
+ "ds-shell-page": LocalJSX.IntrinsicElements["ds-shell-page"] & JSXBase.HTMLAttributes<HTMLDsShellPageElement>;
6329
6541
  "ds-skeleton": LocalJSX.IntrinsicElements["ds-skeleton"] & JSXBase.HTMLAttributes<HTMLDsSkeletonElement>;
6330
6542
  "ds-slider": LocalJSX.IntrinsicElements["ds-slider"] & JSXBase.HTMLAttributes<HTMLDsSliderElement>;
6331
6543
  "ds-swatch-picker": LocalJSX.IntrinsicElements["ds-swatch-picker"] & JSXBase.HTMLAttributes<HTMLDsSwatchPickerElement>;
@@ -1,4 +1,4 @@
1
- /** Bubbling/composed events — `ds-app-shell` and `ds-bar-nav` coordinate during width motion. */
1
+ /** Bubbling/composed events — `ds-shell-app` and `ds-bar-nav` coordinate during width motion. */
2
2
  export declare const CHROME_TRANSITION_START = "dsChromeTransitionStart";
3
3
  export declare const CHROME_TRANSITION_END = "dsChromeTransitionEnd";
4
4
  export type ChromeTransitionSource = 'panel-nav' | 'panel-tools';
@@ -1,4 +1,4 @@
1
- /** CSS var names consumed by `ds-panel-nav` / `ds-bar-nav` inside `ds-app-shell`. */
1
+ /** CSS var names consumed by `ds-panel-nav` / `ds-bar-nav` inside `ds-shell-app`. */
2
2
  import type { ShellGradientPreset } from './shell-gradient-presets';
3
3
  export type { ShellGradientPreset } from './shell-gradient-presets';
4
4
  export { DEFAULT_SHELL_GRADIENT_PRESET, SHELL_GRADIENT_PRESETS, SHELL_GRADIENT_PRESET_LABELS, buildShellRadialGradientForPreset, buildShellRadialGradientFromStops, isShellGradientPreset, shellGradientPresetOpacity, shellGradientPresetRecipe, shellGradientPresetStopToken, } from './shell-gradient-presets';
@@ -24,7 +24,7 @@ export interface ShellViewportDimensions {
24
24
  }
25
25
  /**
26
26
  * Viewport size for shell chrome with `background-attachment: fixed`.
27
- * Must not use the `ds-app-shell` element box — the shell can be shorter or
27
+ * Must not use the `ds-shell-app` element box — the shell can be shorter or
28
28
  * taller than the viewport when host height chains break or content overflows.
29
29
  */
30
30
  export declare function readShellViewportDimensions(win?: Window): ShellViewportDimensions;
@@ -1,6 +1,6 @@
1
1
  import type { PanelToolsToolId } from '../components/PanelTools/panel-tools-types';
2
2
  export type ShellShortcutAction = 'toggle-panel-nav' | 'close-panel-tools' | `open-tool:${PanelToolsToolId}`;
3
- /** Tool shortcut keys (K/A/S/M/N/?) toggle open/closed via `ds-panel-tools.activateTool`. */
3
+ /** Tool shortcut keys (K, A, S, M, N, /) toggle open/closed via `ds-panel-tools.activateTool`. */
4
4
  /** True when no modifier keys are held — avoids browser/app chords like ⌘N. */
5
5
  export declare function isBareShellShortcutKey(e: Pick<KeyboardEvent, 'metaKey' | 'ctrlKey' | 'altKey' | 'shiftKey'>): boolean;
6
6
  /** Skip shell shortcuts while typing in an editable control. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "11.1.0",
3
+ "version": "12.0.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,2 +0,0 @@
1
- import{p as e,H as s,h as t,a as n,t as i}from"./index.js";import{D as l,b as a,n as o,a as r}from"./p-D1HFMTdC.js";import{e as h,c,r as d,a as p,b as f}from"./p-BKhG2xrW.js";const u="--ds-shell-gradient-image";const b="--ds-shell-gradient-size";const g="--ds-shell-gradient-position-panel";const v="--ds-shell-gradient-position-bar";const m="--ds-shell-gradient-opacity";function y(e=l){return a(e)}function _(e){const s=typeof globalThis.window!=="undefined"?globalThis.window:undefined;if(!s)return{width:0,height:0};const t=s.visualViewport;return{width:Math.round(t?.width??s.innerWidth),height:Math.round(t?.height??s.innerHeight)}}function w(e){return`${Math.round(e.width)}px ${Math.round(e.height)}px`}function x(){return"0 0"}function k(e){return`${-Math.round(e)}px 0`}const P={k:"search",a:"agents",s:"stacks",m:"messages",n:"activity"};function z(e){return!e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey}function S(e){if(!e||typeof e!=="object")return false;if(!("closest"in e)||typeof e.closest!=="function")return false;const s=e;const t=s.closest('input, textarea, select, [contenteditable=""], [contenteditable="true"], [contenteditable="plaintext-only"]');if(t)return true;const n=s.getAttribute("role");if(n==="textbox"||n==="combobox"||n==="searchbox")return true;return Boolean(s.isContentEditable)}function C(e){if(e.key==="["||e.code==="BracketLeft")return"[";if(e.key==="]"||e.code==="BracketRight")return"]";return e.key.length===1?e.key.toLowerCase():e.key.toLowerCase()}function M(e){if((e.key==="?"||e.code==="Slash"&&e.shiftKey)&&!e.metaKey&&!e.ctrlKey&&!e.altKey){return"open-tool:help"}if(!z(e))return null;const s=C(e);if(s==="[")return"toggle-panel-nav";if(s==="]")return"close-panel-tools";const t=P[s];if(t)return`open-tool:${t}`;return null}function D(e,s){if(typeof document==="undefined")return 0;const t=document.createElement("div");t.style.cssText="position:absolute;visibility:hidden;pointer-events:none;height:0;width:var("+s+");";e.appendChild(t);const n=t.getBoundingClientRect().width;e.removeChild(t);return n}function L(e){return{expandedPx:D(e,"--_nav-width"),collapsedPx:D(e,"--_nav-width-collapsed")}}function T(e,s){if(s?.classList.contains("panel-nav--collapsed"))return true;const t=e?.collapsed;return t===true}function V(e,s){return s?e.collapsedPx:e.expandedPx}const j=()=>`.sc-ds-app-shell-h{display:block;height:100%;min-height:0;box-sizing:border-box;overflow:hidden;overscroll-behavior:none;--ds-shell-panel-tools-width:var(--dimension-panel-width-xs)}.app-shell.sc-ds-app-shell{display:flex;flex-direction:column;height:100%;min-height:0;box-sizing:border-box;overflow:hidden;overscroll-behavior:none;font-family:var(--typography-font-family, system-ui)}.sc-ds-app-shell-h{--_shell-chrome-bg:var(--color-background-secondary)}.app-shell__row.sc-ds-app-shell{display:flex;flex:1 1 auto;min-height:0;height:100%;position:relative}.app-shell__chrome.sc-ds-app-shell{position:absolute;inset:0;pointer-events:none;z-index:0;background-color:var(--_shell-chrome-bg)}.app-shell--gradient.sc-ds-app-shell-h .app-shell__chrome.sc-ds-app-shell::before{content:'';position:absolute;inset:0;pointer-events:none;background-position:0 0;background-attachment:fixed;z-index:1;opacity:var(--ds-shell-gradient-opacity, 1);background-image:var(--ds-shell-gradient-image, none);background-size:var(--ds-shell-gradient-size, auto);background-repeat:no-repeat}.app-shell__panel.sc-ds-app-shell{flex:0 0 auto;min-height:0;height:100%;position:relative;z-index:2}.app-shell__panel.sc-ds-app-shell-s>ds-panel-nav,.app-shell__panel .sc-ds-app-shell-s>ds-panel-nav{display:block;height:100%}.app-shell__main.sc-ds-app-shell{flex:1 1 auto;min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0, 1fr) auto;grid-template-rows:auto minmax(0, 1fr);grid-template-areas:'bar tools' 'content tools';position:relative;z-index:1}.app-shell__bar.sc-ds-app-shell{grid-area:bar;flex:0 0 auto;min-width:0}.app-shell__bar.sc-ds-app-shell-s>ds-bar-nav,.app-shell__bar .sc-ds-app-shell-s>ds-bar-nav{display:block}.app-shell__content.sc-ds-app-shell{grid-area:content;flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:none;contain:layout}.app-shell__content.sc-ds-app-shell{position:relative;z-index:1;background-color:var(--color-background-primary)}.app-shell__tools.sc-ds-app-shell{grid-area:tools;flex:0 0 auto;min-width:0;min-height:0;height:100%;display:flex;position:relative;z-index:0;overflow:hidden}.app-shell__tools.sc-ds-app-shell-s>ds-panel-tools,.app-shell__tools .sc-ds-app-shell-s>ds-panel-tools{display:block;height:100%;min-height:0}.app-shell--tools-fullscreen.sc-ds-app-shell-h .app-shell__panel.sc-ds-app-shell,.app-shell--tools-fullscreen.sc-ds-app-shell-h .app-shell__bar.sc-ds-app-shell,.app-shell--tools-fullscreen.sc-ds-app-shell-h .app-shell__content.sc-ds-app-shell{visibility:hidden}`;const W=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.navStyle="dashboard";this.gradientPreset=l;this.shortcutsEnabled=true;this.toolsFullscreen=false;this.resizeObserver=null;this.panelNavTransition=new h;this.chromeSyncCoalescer=c((()=>this.syncChrome()));this.panelWidthTokens={expandedPx:0,collapsedPx:0};this.cachedViewportWidth=0;this.cachedViewportHeight=0;this.onWindowResize=()=>{if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()};this.onVisualViewportChange=()=>{if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()};this.onChromeTransitionStart=e=>{if(d(e)!=="panel-nav")return;this.panelNavTransition.enter();const s=_();this.cachedViewportWidth=s.width;this.cachedViewportHeight=s.height;this.syncChrome()};this.onChromeTransitionEnd=e=>{if(d(e)!=="panel-nav")return;this.panelNavTransition.exit();if(!this.panelNavTransition.isActive){this.scheduleChromeSync()}}}componentDidLoad(){this.syncSlottedNavStyle();this.connectMetricsObserver();this.connectViewportListeners();this.el.addEventListener(p,this.onChromeTransitionStart);this.el.addEventListener(f,this.onChromeTransitionEnd);requestAnimationFrame((()=>{this.cachePanelWidthTokens();this.scheduleChromeSync()}));const e=this.el.querySelector("ds-panel-tools");this.toolsFullscreen=e?.getAttribute("presentation")==="fullscreen"}handleToolsPresentation(e){this.toolsFullscreen=e.detail?.presentation==="fullscreen"}disconnectedCallback(){this.resizeObserver?.disconnect();this.resizeObserver=null;this.disconnectViewportListeners();this.chromeSyncCoalescer.cancel();this.el.removeEventListener(p,this.onChromeTransitionStart);this.el.removeEventListener(f,this.onChromeTransitionEnd)}onShellPropsChange(){this.syncSlottedNavStyle();this.scheduleChromeSync()}scheduleChromeSync(){this.chromeSyncCoalescer.schedule()}syncSlottedNavStyle(){const e=this.el.querySelector("ds-panel-nav");const s=this.el.querySelector("ds-bar-nav");if(e){e.setAttribute("nav-style",this.navStyle);e.navStyle=this.navStyle}if(s){s.setAttribute("nav-style",this.navStyle);s.navStyle=this.navStyle}}connectMetricsObserver(){this.resizeObserver=new ResizeObserver((()=>{if(this.panelNavTransition.isActive)return;this.scheduleChromeSync()}));this.resizeObserver.observe(this.el);const e=this.el.querySelector(".app-shell__panel");if(e)this.resizeObserver.observe(e)}connectViewportListeners(){if(typeof window==="undefined")return;window.addEventListener("resize",this.onWindowResize,{passive:true});const e=window.visualViewport;if(e){e.addEventListener("resize",this.onVisualViewportChange,{passive:true});e.addEventListener("scroll",this.onVisualViewportChange,{passive:true})}}disconnectViewportListeners(){if(typeof window==="undefined")return;window.removeEventListener("resize",this.onWindowResize);const e=window.visualViewport;if(e){e.removeEventListener("resize",this.onVisualViewportChange);e.removeEventListener("scroll",this.onVisualViewportChange)}}cachePanelWidthTokens(){const e=this.el.querySelector("ds-panel-nav .panel-nav");if(!e)return;this.panelWidthTokens=L(e)}applyGradientVars(e,s){const t=e.style;for(const[e,n]of Object.entries(s)){if(n===null)t.removeProperty(e);else t.setProperty(e,n)}}clearGradientPaintVars(e){const s=[u,b,m];for(const t of e){for(const e of s)t.style.removeProperty(e)}}syncChromeLayoutVars(e,s,t,n){if(e){e.style.setProperty(g,t)}if(s){s.style.setProperty(v,n)}}resolvePanelWidthPx(e){const s=e?.querySelector(".panel-nav");if(this.panelNavTransition.isActive&&this.panelWidthTokens.expandedPx>0){const t=T(e,s);return V(this.panelWidthTokens,t)}const t=this.el.querySelector(".app-shell__panel");const n=t?.getBoundingClientRect().width??0;if(n>0)return n;if(this.panelWidthTokens.expandedPx>0){const t=T(e,s);return V(this.panelWidthTokens,t)}return 0}resolveViewportDimensions(){if(this.panelNavTransition.isActive&&this.cachedViewportWidth>0){return{width:this.cachedViewportWidth,height:this.cachedViewportHeight}}return _()}chromeLayerActive(){return o(this.gradientPreset)!=="none"}handleWindowKeyDown(e){if(!this.shortcutsEnabled)return;if(S(e.target))return;const s=M(e);if(!s)return;e.preventDefault();const t=this.el.querySelector("ds-panel-nav");const n=this.el.querySelector("ds-panel-tools");if(s==="toggle-panel-nav"){void t?.toggleCollapsed();return}if(s==="close-panel-tools"){void n?.closeDrawer();return}if(s.startsWith("open-tool:")&&n){const e=s.slice("open-tool:".length);void n.activateTool(e)}}syncChrome(){const e=this.el.querySelector("ds-panel-nav");const s=this.el.querySelector("ds-bar-nav");const t=[this.el,e,s].filter((e=>e!==null));const n=()=>{if(e)e.style.removeProperty(g);if(s)s.style.removeProperty(v)};const i=o(this.gradientPreset);if(i==="none"){this.clearGradientPaintVars(t);n();return}const l=this.resolveViewportDimensions();const a=this.resolvePanelWidthPx(e);const h=x();const c=k(a);this.syncChromeLayoutVars(e,s,h,c);const d=y(i);const p=w({width:l.width,height:l.height});const f=r(i);for(const e of t){if(e===this.el){this.applyGradientVars(e,{[u]:d,[b]:p,[g]:h,[v]:c,[m]:f});continue}const s=e.tagName.toLowerCase()==="ds-bar-nav";this.applyGradientVars(e,{[u]:d,[b]:p,[m]:f,[g]:s?null:h,[v]:s?c:null})}}render(){const e=this.chromeLayerActive();const s={"app-shell":true,"app-shell--gradient":e,[`app-shell--${this.navStyle}`]:true,"app-shell--tools-fullscreen":this.toolsFullscreen};return t(n,{key:"c6e4c96932fc51b12b3ca96fc2cdac92d368bd77",class:s},t("div",{key:"39acfcf2a9efce13a51d89d8f280ec6c5f7beb5a",class:"app-shell__row"},t("div",{key:"d23609ea2d5e2fbaba807470149c100a47529668",class:"app-shell__chrome","aria-hidden":"true"}),t("div",{key:"71de4580c1f3d4e9294a9d1fc6d802c41a1c5ebc",class:"app-shell__panel","aria-hidden":this.toolsFullscreen?"true":undefined,inert:this.toolsFullscreen?true:undefined},t("slot",{key:"5e0aba7074330e5e1078764b0cbf2d5bc898df0c",name:"panel"})),t("div",{key:"2eb15d98da1bff20b898360a4af835d6b892d10c",class:"app-shell__main"},t("div",{key:"f9481f00f17942e393e86530ffcd2a6c5e668ed1",class:"app-shell__bar","aria-hidden":this.toolsFullscreen?"true":undefined,inert:this.toolsFullscreen?true:undefined},t("slot",{key:"42911a0187f7e49ff65bdf3eb378f7aa21cd6a14",name:"bar"})),t("div",{key:"04dd3cbb566184f9f25913503278ecc36c3a10a9",class:"app-shell__tools"},t("slot",{key:"e9de481761975b4da31bb25cfed8cc620f3ecea2",name:"tools"})),t("div",{key:"851c84f10dd4676a86edf68c98ef7354e6bd2503",class:"app-shell__content","aria-hidden":this.toolsFullscreen?"true":undefined,inert:this.toolsFullscreen?true:undefined},t("slot",{key:"6bb422ba64bc48970e651ffe78ab520bd8e17c05"})))))}get el(){return this}static get watchers(){return{navStyle:[{onShellPropsChange:0}],gradientPreset:[{onShellPropsChange:0}]}}static get style(){return j()}},[262,"ds-app-shell",{navStyle:[513,"nav-style"],gradientPreset:[513,"gradient-preset"],shortcutsEnabled:[4,"shortcuts-enabled"],toolsFullscreen:[32]},[[0,"dsPresentationChange","handleToolsPresentation"],[10,"keydown","handleWindowKeyDown"]],{navStyle:[{onShellPropsChange:0}],gradientPreset:[{onShellPropsChange:0}]}]);function $(){if(typeof customElements==="undefined"){return}const e=["ds-app-shell"];e.forEach((e=>{switch(e){case"ds-app-shell":if(!customElements.get(i(e))){customElements.define(i(e),W)}break}}))}$();const B=W;const E=$;export{B as DsAppShell,E as defineCustomElement};
2
- //# sourceMappingURL=ds-app-shell.js.map