@ds-mo/ui 1.3.0 → 1.5.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 (160) hide show
  1. package/dist/.build-stamp +1 -0
  2. package/dist/components/ds-app-shell.d.ts +11 -0
  3. package/dist/components/ds-app-shell.js +2 -0
  4. package/dist/components/ds-app-shell.js.map +1 -0
  5. package/dist/components/ds-bar-nav-action.js +1 -1
  6. package/dist/components/ds-bar-nav.js +1 -1
  7. package/dist/components/ds-bar-nav.js.map +1 -1
  8. package/dist/components/ds-breadcrumb.js +1 -1
  9. package/dist/components/ds-button-group.js +1 -1
  10. package/dist/components/ds-button.js +1 -1
  11. package/dist/components/ds-card.js +1 -1
  12. package/dist/components/ds-checkbox.js +1 -1
  13. package/dist/components/ds-chip.js +1 -1
  14. package/dist/components/ds-divider.js +1 -1
  15. package/dist/components/ds-empty-state.js +1 -1
  16. package/dist/components/ds-fade.js +1 -1
  17. package/dist/components/ds-field.js +1 -1
  18. package/dist/components/ds-header.js +1 -1
  19. package/dist/components/ds-icon.js +1 -1
  20. package/dist/components/ds-input.js +1 -1
  21. package/dist/components/ds-modal.js +1 -1
  22. package/dist/components/ds-panel-nav.js +1 -1
  23. package/dist/components/ds-panel-nav.js.map +1 -1
  24. package/dist/components/ds-radio-group.js +1 -1
  25. package/dist/components/ds-radio-group.js.map +1 -1
  26. package/dist/components/ds-scrollbar.js +1 -1
  27. package/dist/components/ds-select.js +1 -1
  28. package/dist/components/ds-slider.js +1 -1
  29. package/dist/components/ds-surface.js +1 -1
  30. package/dist/components/ds-tab-group-nav.js +1 -1
  31. package/dist/components/ds-tab-group.js +1 -1
  32. package/dist/components/ds-table.js +1 -1
  33. package/dist/components/ds-table.js.map +1 -1
  34. package/dist/components/ds-tag.js +1 -1
  35. package/dist/components/ds-text.js +1 -1
  36. package/dist/components/ds-toast-provider.js +1 -1
  37. package/dist/components/ds-toggle-button-group.js +1 -1
  38. package/dist/components/ds-toggle-button.js +1 -1
  39. package/dist/components/ds-toggle.js +1 -1
  40. package/dist/components/ds-tooltip.js +1 -1
  41. package/dist/components/index.d.ts +3 -4
  42. package/dist/components/index.js +1 -1
  43. package/dist/components/index.js.map +1 -1
  44. package/dist/components/{p-COsKOwZR.js → p--YDw8Q4o.js} +2 -2
  45. package/dist/components/{p-OT-Q-NxH.js → p-C9za7IDu.js} +2 -2
  46. package/dist/components/p-DceSoh5V.js +2 -0
  47. package/dist/components/p-DceSoh5V.js.map +1 -0
  48. package/dist/components/{p-DrDrPeVV.js → p-DqBCQRRd.js} +2 -2
  49. package/dist/components/p-DznbYg1m.js +2 -0
  50. package/dist/components/p-DznbYg1m.js.map +1 -0
  51. package/dist/components/{p-qfvbc9w-.js → p-_LI2ymhS.js} +2 -2
  52. package/dist/components/p-_LI2ymhS.js.map +1 -0
  53. package/dist/components/{p-U1A-rprN.js → p-uMN1Ppw2.js} +2 -2
  54. package/dist/components/{p-X1N_ggsY.js → p-vW9EMP8s.js} +2 -2
  55. package/dist/types/components/AppShell/AppShell.d.ts +25 -0
  56. package/dist/types/{.stencil → components}/BarNav/BarNav.d.ts +6 -17
  57. package/dist/types/components/BarNav/bar-nav-types.d.ts +14 -0
  58. package/dist/types/{.stencil → components}/BarNav/bar-nav-utils.d.ts +1 -1
  59. package/dist/types/components/BarNav/index.d.ts +3 -0
  60. package/dist/types/{.stencil → components}/BarNavAction/BarNavAction.d.ts +1 -1
  61. package/dist/types/{.stencil → components}/PanelNav/PanelNav.d.ts +11 -26
  62. package/dist/types/components/PanelNav/index.d.ts +4 -0
  63. package/dist/types/components/PanelNav/panel-nav-types.d.ts +20 -0
  64. package/dist/types/components/PanelNav/panel-nav-utils.d.ts +26 -0
  65. package/dist/types/{.stencil → components}/TabGroupNav/TabGroupNav.d.ts +1 -1
  66. package/dist/types/components.d.ts +78 -28
  67. package/dist/types/nav/index.d.ts +7 -0
  68. package/dist/types/nav/nav-chrome.d.ts +14 -0
  69. package/dist/types/nav/shell-gradient.d.ts +25 -0
  70. package/dist/types/nav/shell-view-transition.d.ts +21 -0
  71. package/package.json +9 -4
  72. package/src/angular/index.ts +1 -0
  73. package/src/angular/proxies.ts +27 -4
  74. package/src/react/components.ts +1 -0
  75. package/src/react/ds-app-shell.ts +26 -0
  76. package/src/wc/components/AppShell/AppShell.tsx +180 -0
  77. package/src/wc/components/BarNav/BarNav.tsx +18 -26
  78. package/src/wc/components/BarNav/bar-nav-types.ts +15 -0
  79. package/src/wc/components/BarNav/bar-nav-utils.ts +1 -1
  80. package/src/wc/components/BarNav/index.ts +2 -1
  81. package/src/wc/components/BarNavAction/BarNavAction.tsx +2 -1
  82. package/src/wc/components/PanelNav/PanelNav.tsx +46 -90
  83. package/src/wc/components/PanelNav/index.ts +9 -4
  84. package/src/wc/components/PanelNav/panel-nav-types.ts +22 -0
  85. package/src/wc/components/PanelNav/panel-nav-utils.ts +32 -64
  86. package/src/wc/components/TabGroupNav/TabGroupNav.tsx +8 -2
  87. package/src/wc/components.d.ts +78 -28
  88. package/src/wc/nav/index.ts +33 -0
  89. package/src/wc/nav/nav-chrome.ts +45 -0
  90. package/src/wc/nav/shell-gradient.ts +44 -0
  91. package/src/wc/nav/shell-view-transition.ts +102 -0
  92. package/dist/components/p-DOtcc9UU.js +0 -2
  93. package/dist/components/p-DOtcc9UU.js.map +0 -1
  94. package/dist/components/p-qfvbc9w-.js.map +0 -1
  95. package/dist/types/.stencil/BarNav/index.d.ts +0 -2
  96. package/dist/types/.stencil/PanelNav/index.d.ts +0 -3
  97. package/dist/types/.stencil/PanelNav/panel-nav-utils.d.ts +0 -27
  98. /package/dist/components/{p-COsKOwZR.js.map → p--YDw8Q4o.js.map} +0 -0
  99. /package/dist/components/{p-OT-Q-NxH.js.map → p-C9za7IDu.js.map} +0 -0
  100. /package/dist/components/{p-DrDrPeVV.js.map → p-DqBCQRRd.js.map} +0 -0
  101. /package/dist/components/{p-U1A-rprN.js.map → p-uMN1Ppw2.js.map} +0 -0
  102. /package/dist/components/{p-X1N_ggsY.js.map → p-vW9EMP8s.js.map} +0 -0
  103. /package/dist/types/{.stencil → components}/Accordion/Accordion.d.ts +0 -0
  104. /package/dist/types/{.stencil → components}/Badge/Badge.d.ts +0 -0
  105. /package/dist/types/{.stencil → components}/Badge/index.d.ts +0 -0
  106. /package/dist/types/{.stencil → components}/Banner/Banner.d.ts +0 -0
  107. /package/dist/types/{.stencil → components}/BarNav/bar-nav-dom-utils.d.ts +0 -0
  108. /package/dist/types/{.stencil → components}/BarNav/bar-nav-tabs-menu-utils.d.ts +0 -0
  109. /package/dist/types/{.stencil → components}/BarNavAction/index.d.ts +0 -0
  110. /package/dist/types/{.stencil → components}/Breadcrumb/Breadcrumb.d.ts +0 -0
  111. /package/dist/types/{.stencil → components}/Button/Button.d.ts +0 -0
  112. /package/dist/types/{.stencil → components}/Button/index.d.ts +0 -0
  113. /package/dist/types/{.stencil → components}/ButtonGroup/ButtonGroup.d.ts +0 -0
  114. /package/dist/types/{.stencil → components}/Card/Card.d.ts +0 -0
  115. /package/dist/types/{.stencil → components}/Checkbox/Checkbox.d.ts +0 -0
  116. /package/dist/types/{.stencil → components}/Checkbox/index.d.ts +0 -0
  117. /package/dist/types/{.stencil → components}/Chip/Chip.d.ts +0 -0
  118. /package/dist/types/{.stencil → components}/Chip/index.d.ts +0 -0
  119. /package/dist/types/{.stencil → components}/Divider/Divider.d.ts +0 -0
  120. /package/dist/types/{.stencil → components}/Divider/index.d.ts +0 -0
  121. /package/dist/types/{.stencil → components}/EmptyState/EmptyState.d.ts +0 -0
  122. /package/dist/types/{.stencil → components}/Fade/Fade.d.ts +0 -0
  123. /package/dist/types/{.stencil → components}/Fade/index.d.ts +0 -0
  124. /package/dist/types/{.stencil → components}/Field/Field.d.ts +0 -0
  125. /package/dist/types/{.stencil → components}/Header/Header.d.ts +0 -0
  126. /package/dist/types/{.stencil → components}/Icon/Icon.d.ts +0 -0
  127. /package/dist/types/{.stencil → components}/Icon/flag-icon-catalog.d.ts +0 -0
  128. /package/dist/types/{.stencil → components}/Icon/index.d.ts +0 -0
  129. /package/dist/types/{.stencil → components}/Icon/system-icon-catalog.d.ts +0 -0
  130. /package/dist/types/{.stencil → components}/Input/Input.d.ts +0 -0
  131. /package/dist/types/{.stencil → components}/Input/index.d.ts +0 -0
  132. /package/dist/types/{.stencil → components}/Loader/Loader.d.ts +0 -0
  133. /package/dist/types/{.stencil → components}/Loader/index.d.ts +0 -0
  134. /package/dist/types/{.stencil → components}/Menu/Menu.d.ts +0 -0
  135. /package/dist/types/{.stencil → components}/Modal/Modal.d.ts +0 -0
  136. /package/dist/types/{.stencil → components}/Pagination/Pagination.d.ts +0 -0
  137. /package/dist/types/{.stencil → components}/RadioGroup/RadioGroup.d.ts +0 -0
  138. /package/dist/types/{.stencil → components}/RadioGroup/index.d.ts +0 -0
  139. /package/dist/types/{.stencil → components}/Scrollbar/Scrollbar.d.ts +0 -0
  140. /package/dist/types/{.stencil → components}/Select/Select.d.ts +0 -0
  141. /package/dist/types/{.stencil → components}/Sidebar/Sidebar.d.ts +0 -0
  142. /package/dist/types/{.stencil → components}/Skeleton/Skeleton.d.ts +0 -0
  143. /package/dist/types/{.stencil → components}/Skeleton/index.d.ts +0 -0
  144. /package/dist/types/{.stencil → components}/Slider/Slider.d.ts +0 -0
  145. /package/dist/types/{.stencil → components}/Slider/index.d.ts +0 -0
  146. /package/dist/types/{.stencil → components}/Surface/Surface.d.ts +0 -0
  147. /package/dist/types/{.stencil → components}/TabGroup/TabGroup.d.ts +0 -0
  148. /package/dist/types/{.stencil → components}/TabGroup/tab-item-utils.d.ts +0 -0
  149. /package/dist/types/{.stencil → components}/Table/Table.d.ts +0 -0
  150. /package/dist/types/{.stencil → components}/Tag/Tag.d.ts +0 -0
  151. /package/dist/types/{.stencil → components}/Tag/index.d.ts +0 -0
  152. /package/dist/types/{.stencil → components}/Text/Text.d.ts +0 -0
  153. /package/dist/types/{.stencil → components}/Text/index.d.ts +0 -0
  154. /package/dist/types/{.stencil → components}/Toast/Toast.d.ts +0 -0
  155. /package/dist/types/{.stencil → components}/Toast/toast-service.d.ts +0 -0
  156. /package/dist/types/{.stencil → components}/Toggle/Toggle.d.ts +0 -0
  157. /package/dist/types/{.stencil → components}/Toggle/index.d.ts +0 -0
  158. /package/dist/types/{.stencil → components}/ToggleButton/ToggleButton.d.ts +0 -0
  159. /package/dist/types/{.stencil → components}/ToggleButtonGroup/ToggleButtonGroup.d.ts +0 -0
  160. /package/dist/types/{.stencil → components}/Tooltip/Tooltip.d.ts +0 -0
@@ -0,0 +1,25 @@
1
+ import type { NavChromeStyle } from '../../nav/nav-chrome';
2
+ export declare class AppShell {
3
+ /** Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`. */
4
+ navStyle: NavChromeStyle;
5
+ /** When `true`, paints the shared L-shaped radial wash on panel + bar backgrounds. */
6
+ gradient: boolean;
7
+ /**
8
+ * Optional custom gradient for `background-image` (e.g. SVG URL).
9
+ * When set, overrides the built-in radial wash.
10
+ */
11
+ gradientSrc: string;
12
+ el: HTMLElement;
13
+ private resizeObserver;
14
+ componentDidLoad(): void;
15
+ private scheduleGradientVars;
16
+ disconnectedCallback(): void;
17
+ onShellPropsChange(): void;
18
+ private connectMetricsObserver;
19
+ private applyGradientVars;
20
+ private clearGradientVars;
21
+ private syncSlottedNavStyle;
22
+ private updateGradientVars;
23
+ render(): any;
24
+ }
25
+ //# sourceMappingURL=AppShell.d.ts.map
@@ -1,19 +1,6 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- import type { TabItem } from '../TabGroup/tab-item-utils';
3
- export type BarNavBackground = 'primary' | 'secondary' | 'transparent' | 'translucent';
4
- /** Same shape as `TabItem` — supports `{ type: 'divider' }` between tab groups. */
5
- export type BarNavTab = TabItem;
6
- export interface BarNavActionItem {
7
- id: string;
8
- /** Icon name for <ds-icon>. */
9
- icon: string;
10
- /** Whether this action button is currently pressed/active. */
11
- selected?: boolean;
12
- /** Show a notification dot. */
13
- dot?: boolean;
14
- inactive?: boolean;
15
- ariaLabel?: string;
16
- }
2
+ import type { NavChromeStyle } from '../../nav/nav-chrome';
3
+ import type { BarNavActionItem, BarNavTab } from './bar-nav-types';
17
4
  export declare class BarNav {
18
5
  /**
19
6
  * Tab items for the left section.
@@ -36,8 +23,9 @@ export declare class BarNav {
36
23
  * When tabs are present the heading is hidden.
37
24
  */
38
25
  heading: string | undefined;
39
- /** Surface background variant. */
40
- background: BarNavBackground;
26
+ /** Chrome style: `navigation` = navigation tokens, `default` = app tokens.
27
+ * Property: `navStyle`. HTML attribute: `nav-style`. */
28
+ navStyle: NavChromeStyle;
41
29
  /** Section base path (e.g. `/dashboard/safety`). Used with `currentUrl` to derive `value`. */
42
30
  basePath: string;
43
31
  /** Current route URL. When set with `basePath`, the active tab is derived automatically. */
@@ -107,6 +95,7 @@ export declare class BarNav {
107
95
  private handleActionChange;
108
96
  private toggleTabMenu;
109
97
  private handleTriggerKeyDown;
98
+ private get tabSurface();
110
99
  render(): any;
111
100
  }
112
101
  //# sourceMappingURL=BarNav.d.ts.map
@@ -0,0 +1,14 @@
1
+ import type { TabItem } from '../TabGroup/tab-item-utils';
2
+ export type BarNavTab = TabItem;
3
+ export interface BarNavActionItem {
4
+ id: string;
5
+ /** Icon name for <ds-icon>. */
6
+ icon: string;
7
+ /** Whether this action button is currently pressed/active. */
8
+ selected?: boolean;
9
+ /** Show a notification dot. */
10
+ dot?: boolean;
11
+ inactive?: boolean;
12
+ ariaLabel?: string;
13
+ }
14
+ //# sourceMappingURL=bar-nav-types.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { BarNavActionItem, BarNavTab } from './BarNav';
1
+ import type { BarNavActionItem, BarNavTab } from './bar-nav-types';
2
2
  export interface BarNavUrlState {
3
3
  /** Tab id derived from the URL, or empty when none applies. */
4
4
  value: string;
@@ -0,0 +1,3 @@
1
+ export type { BarNavTab, BarNavActionItem } from './bar-nav-types';
2
+ export type { NavChromeStyle } from '../../nav/nav-chrome';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- export type BarNavActionBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark';
2
+ export type BarNavActionBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark' | 'navigation';
3
3
  export declare class BarNavAction {
4
4
  /** Icon name passed to <ds-icon>. */
5
5
  icon: string;
@@ -1,26 +1,11 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- export type PanelNavVariant = 'dashboard' | 'settings';
3
- export type PanelNavRouterMode = 'anchor' | 'event';
4
- export interface PanelNavItem {
5
- id: string;
6
- icon: string;
7
- label: string;
8
- /** Show a notification dot badge on the item */
9
- dot?: boolean;
10
- flag?: boolean;
11
- /** Route path used for `currentUrl` matching. In `anchor` mode also sets `<a href>`.
12
- * In `event` mode navigation is delegated to the host via `dsNavSelect`. */
13
- href?: string;
14
- }
15
- export interface PanelNavGroup {
16
- id?: string;
17
- label?: string;
18
- items: PanelNavItem[];
19
- }
2
+ import type { NavChromeStyle } from '../../nav/nav-chrome';
3
+ import type { PanelNavGroup, PanelNavRouterMode } from './panel-nav-types';
20
4
  export declare class PanelNav {
21
- /** Visual variant: `dashboard` = always-dark surface, `settings` = light surface */
22
- variant: PanelNavVariant;
23
- /** When `true`, the component does not run its own View Transition on variant
5
+ /** Chrome style: `navigation` = navigation tokens, `default` = standard app tokens.
6
+ * Property: `navStyle`. HTML attribute: `nav-style`. */
7
+ navStyle: NavChromeStyle;
8
+ /** When `true`, the component does not run its own View Transition on style
24
9
  * change — it just updates the rendered surface synchronously. Use this when
25
10
  * the host app orchestrates the page transition itself (e.g. Angular Router's
26
11
  * `withViewTransitions`), so the two don't fight or nest. */
@@ -60,9 +45,9 @@ export declare class PanelNav {
60
45
  /** Emitted when the footer user button is clicked. */
61
46
  dsNavUserAction: EventEmitter<void>;
62
47
  el: HTMLElement;
63
- /** Mirrors `variant` but is only updated inside the VT callback so the
48
+ /** Mirrors `style` but is only updated inside the VT callback so the
64
49
  * View Transition captures a clean before/after snapshot. */
65
- private renderedVariant;
50
+ private renderedStyle;
66
51
  private parsedGroups;
67
52
  private atBottom;
68
53
  private isAnimating;
@@ -90,7 +75,7 @@ export declare class PanelNav {
90
75
  onGroupsChange(val: string | PanelNavGroup[]): void;
91
76
  onActiveIdChange(): void;
92
77
  onCurrentUrlChange(): void;
93
- onVariantChange(newVal: PanelNavVariant): Promise<void>;
78
+ onNavStyleChange(newVal: NavChromeStyle): Promise<void>;
94
79
  componentWillLoad(): void;
95
80
  componentDidLoad(): void;
96
81
  componentDidRender(): void;
@@ -103,8 +88,8 @@ export declare class PanelNav {
103
88
  private syncActiveFromUrl;
104
89
  /** Re-parse props assigned by the host after componentWillLoad (Angular ngAfterViewInit). */
105
90
  private syncHostPropsIfNeeded;
106
- /** Align `renderedVariant` with `variant` when host bindings land after first paint. */
107
- private syncRenderedVariantIfNeeded;
91
+ /** Align `renderedStyle` with `style` when host bindings land after first paint. */
92
+ private syncRenderedStyleIfNeeded;
108
93
  /** Poll across animation frames — host props may land without triggering @Watch. */
109
94
  private scheduleDeferredHostPropSync;
110
95
  /** Centralised toggle: always emits `dsNavToggle`; when `storageKey` is set
@@ -0,0 +1,4 @@
1
+ export type { PanelNavRouterMode, PanelNavItem, PanelNavGroup } from './panel-nav-types';
2
+ export type { NavChromeStyle } from '../../nav/nav-chrome';
3
+ export { NAV_STYLE_HINT_ATTR, setNavStyleHint, clearNavStyleHint, resolvePanelNavStyle, shouldResyncPanelNavStyle, ensurePanelNavVtStyle, deriveActiveIdFromUrl, parsePanelNavGroups, } from './panel-nav-utils';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,20 @@
1
+ import type { NavChromeStyle } from '../../nav/nav-chrome';
2
+ export type { NavChromeStyle };
3
+ export type PanelNavRouterMode = 'anchor' | 'event';
4
+ export interface PanelNavItem {
5
+ id: string;
6
+ icon: string;
7
+ label: string;
8
+ /** Show a notification dot badge on the item */
9
+ dot?: boolean;
10
+ flag?: boolean;
11
+ /** Route path used for `currentUrl` matching. In `anchor` mode also sets `<a href>`.
12
+ * In `event` mode navigation is delegated to the host via `dsNavSelect`. */
13
+ href?: string;
14
+ }
15
+ export interface PanelNavGroup {
16
+ id?: string;
17
+ label?: string;
18
+ items: PanelNavItem[];
19
+ }
20
+ //# sourceMappingURL=panel-nav-types.d.ts.map
@@ -0,0 +1,26 @@
1
+ import type { PanelNavGroup, PanelNavItem } from './panel-nav-types';
2
+ import { NAV_STYLE_HINT_ATTR, clearNavStyleHint, readNavStyleAttr, resolveNavChromeStyle, setNavStyleHint, shouldResyncNavChromeStyle } from '../../nav/nav-chrome';
3
+ import { ensureShellNavVtStyle } from '../../nav/shell-view-transition';
4
+ export type { NavChromeStyle } from '../../nav/nav-chrome';
5
+ export { NAV_STYLE_HINT_ATTR, readNavStyleAttr, setNavStyleHint, clearNavStyleHint, resolveNavChromeStyle as resolvePanelNavStyle, shouldResyncNavChromeStyle as shouldResyncPanelNavStyle, };
6
+ /** @deprecated Use `setNavStyleHint` */
7
+ export declare const setPanelNavStyleHint: typeof setNavStyleHint;
8
+ /** @deprecated Use `clearNavStyleHint` */
9
+ export declare const clearPanelNavStyleHint: typeof clearNavStyleHint;
10
+ /** @deprecated Use `NAV_STYLE_HINT_ATTR` */
11
+ export declare const PANEL_NAV_STYLE_HINT_ATTR = "data-nav-style";
12
+ /** @deprecated Use `ensureShellNavVtStyle` */
13
+ export declare const ensurePanelNavVtStyle: typeof ensureShellNavVtStyle;
14
+ /** Whether `path` matches `href` at a segment boundary (exact or child path). */
15
+ export declare function hrefMatchesPath(path: string, href: string): boolean;
16
+ /** Derive the active nav item id from a URL using longest segment-boundary prefix match. */
17
+ export declare function deriveActiveIdFromUrl(path: string, items: PanelNavItem[]): string;
18
+ /** Total nav item count across all groups. */
19
+ export declare function countPanelNavItems(groups: PanelNavGroup[]): number;
20
+ /** Parse `groups` from either a JSON attribute string or a JS property array. */
21
+ export declare function parsePanelNavGroups(groups: string | unknown): PanelNavGroup[];
22
+ /** Resolve whether VT is disabled from prop and/or host attribute. */
23
+ export declare function resolvePanelNavDisableVt(prop: boolean, attr: string | null): boolean;
24
+ /** True when host `groups` has items but internal parsed state is still empty. */
25
+ export declare function shouldResyncPanelNavGroups(parsedGroups: PanelNavGroup[], groups: string | unknown): boolean;
26
+ //# sourceMappingURL=panel-nav-utils.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { type TabItem } from '../TabGroup/tab-item-utils';
3
- export type TabGroupNavBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark';
3
+ export type TabGroupNavBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark' | 'navigation';
4
4
  export declare class TabGroupNav {
5
5
  el: HTMLElement;
6
6
  value: string;
@@ -6,9 +6,10 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { AccordionItemData } from "./components/Accordion/Accordion";
9
+ import { NavChromeStyle } from "./nav/nav-chrome";
9
10
  import { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
10
11
  import { BannerContrast, BannerIntent } from "./components/Banner/Banner";
11
- import { BarNavActionItem, BarNavBackground, BarNavTab } from "./components/BarNav/BarNav";
12
+ import { BarNavActionItem, BarNavTab } from "./components/BarNav/bar-nav-types";
12
13
  import { BarNavActionBackground } from "./components/BarNavAction/BarNavAction";
13
14
  import { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
14
15
  import { ButtonBackground, ButtonContrast, ButtonElevation, ButtonIntent, ButtonSize, ButtonVariant } from "./components/Button/Button";
@@ -23,7 +24,7 @@ import { IconColor, IconSize } from "./components/Icon/Icon";
23
24
  import { InputType } from "./components/Input/Input";
24
25
  import { MenuAlign, MenuItemData, MenuSection, MenuSide } from "./components/Menu/Menu";
25
26
  import { ModalWidth } from "./components/Modal/Modal";
26
- import { PanelNavGroup, PanelNavRouterMode, PanelNavVariant } from "./components/PanelNav/PanelNav";
27
+ import { PanelNavGroup, PanelNavRouterMode } from "./components/PanelNav/panel-nav-types";
27
28
  import { RadioOption } from "./components/RadioGroup/RadioGroup";
28
29
  import { ScrollbarVariant } from "./components/Scrollbar/Scrollbar";
29
30
  import { SelectOption } from "./components/Select/Select";
@@ -41,9 +42,10 @@ import { ToggleButtonBackground, ToggleButtonElevation, ToggleButtonSize } from
41
42
  import { ToggleGroupBackground, ToggleGroupElevation, ToggleGroupItem, ToggleGroupSize } from "./components/ToggleButtonGroup/ToggleButtonGroup";
42
43
  import { TooltipAlign, TooltipSide } from "./components/Tooltip/Tooltip";
43
44
  export { AccordionItemData } from "./components/Accordion/Accordion";
45
+ export { NavChromeStyle } from "./nav/nav-chrome";
44
46
  export { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
45
47
  export { BannerContrast, BannerIntent } from "./components/Banner/Banner";
46
- export { BarNavActionItem, BarNavBackground, BarNavTab } from "./components/BarNav/BarNav";
48
+ export { BarNavActionItem, BarNavTab } from "./components/BarNav/bar-nav-types";
47
49
  export { BarNavActionBackground } from "./components/BarNavAction/BarNavAction";
48
50
  export { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
49
51
  export { ButtonBackground, ButtonContrast, ButtonElevation, ButtonIntent, ButtonSize, ButtonVariant } from "./components/Button/Button";
@@ -58,7 +60,7 @@ export { IconColor, IconSize } from "./components/Icon/Icon";
58
60
  export { InputType } from "./components/Input/Input";
59
61
  export { MenuAlign, MenuItemData, MenuSection, MenuSide } from "./components/Menu/Menu";
60
62
  export { ModalWidth } from "./components/Modal/Modal";
61
- export { PanelNavGroup, PanelNavRouterMode, PanelNavVariant } from "./components/PanelNav/PanelNav";
63
+ export { PanelNavGroup, PanelNavRouterMode } from "./components/PanelNav/panel-nav-types";
62
64
  export { RadioOption } from "./components/RadioGroup/RadioGroup";
63
65
  export { ScrollbarVariant } from "./components/Scrollbar/Scrollbar";
64
66
  export { SelectOption } from "./components/Select/Select";
@@ -91,6 +93,23 @@ export namespace Components {
91
93
  */
92
94
  "multiple": boolean;
93
95
  }
96
+ interface DsAppShell {
97
+ /**
98
+ * When `true`, paints the shared L-shaped radial wash on panel + bar backgrounds.
99
+ * @default false
100
+ */
101
+ "gradient": boolean;
102
+ /**
103
+ * Optional custom gradient for `background-image` (e.g. SVG URL). When set, overrides the built-in radial wash.
104
+ * @default ''
105
+ */
106
+ "gradientSrc": string;
107
+ /**
108
+ * Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
109
+ * @default 'navigation'
110
+ */
111
+ "navStyle": NavChromeStyle;
112
+ }
94
113
  interface DsBadge {
95
114
  /**
96
115
  * Direct ring background override for component-local surfaces.
@@ -169,11 +188,6 @@ export namespace Components {
169
188
  * @default ''
170
189
  */
171
190
  "actionsJson": string;
172
- /**
173
- * Surface background variant.
174
- * @default 'secondary'
175
- */
176
- "background": BarNavBackground;
177
191
  /**
178
192
  * Section base path (e.g. `/dashboard/safety`). Used with `currentUrl` to derive `value`.
179
193
  * @default ''
@@ -188,6 +202,11 @@ export namespace Components {
188
202
  * Fallback heading shown when no tabs are provided. When tabs are present the heading is hidden.
189
203
  */
190
204
  "heading": string | undefined;
205
+ /**
206
+ * Chrome style: `navigation` = navigation tokens, `default` = app tokens. Property: `navStyle`. HTML attribute: `nav-style`.
207
+ * @default 'default'
208
+ */
209
+ "navStyle": NavChromeStyle;
191
210
  /**
192
211
  * Tab items for the left section. Set via JS property: `el.tabs = [...]`. Replace the array reference to update.
193
212
  * @default []
@@ -619,7 +638,7 @@ export namespace Components {
619
638
  */
620
639
  "currentUrl": string;
621
640
  /**
622
- * When `true`, the component does not run its own View Transition on variant change — it just updates the rendered surface synchronously. Use this when the host app orchestrates the page transition itself (e.g. Angular Router's `withViewTransitions`), so the two don't fight or nest.
641
+ * When `true`, the component does not run its own View Transition on style change — it just updates the rendered surface synchronously. Use this when the host app orchestrates the page transition itself (e.g. Angular Router's `withViewTransitions`), so the two don't fight or nest.
623
642
  * @default false
624
643
  */
625
644
  "disableViewTransition": boolean;
@@ -628,6 +647,11 @@ export namespace Components {
628
647
  * @default '[]'
629
648
  */
630
649
  "groups": string | PanelNavGroup[];
650
+ /**
651
+ * Chrome style: `navigation` = navigation tokens, `default` = standard app tokens. Property: `navStyle`. HTML attribute: `nav-style`.
652
+ * @default 'navigation'
653
+ */
654
+ "navStyle": NavChromeStyle;
631
655
  /**
632
656
  * How items with `href` render: - `anchor` (default): native `<a href>` — works with routers that intercept anchors. - `event`: always `<button>`; host handles navigation via `dsNavSelect`.
633
657
  * @default 'anchor'
@@ -648,11 +672,6 @@ export namespace Components {
648
672
  * @default ''
649
673
  */
650
674
  "userName": string;
651
- /**
652
- * Visual variant: `dashboard` = always-dark surface, `settings` = light surface
653
- * @default 'dashboard'
654
- */
655
- "variant": PanelNavVariant;
656
675
  }
657
676
  interface DsRadioGroup {
658
677
  "ariaLabel": string | undefined;
@@ -1167,6 +1186,12 @@ declare global {
1167
1186
  prototype: HTMLDsAccordionElement;
1168
1187
  new (): HTMLDsAccordionElement;
1169
1188
  };
1189
+ interface HTMLDsAppShellElement extends Components.DsAppShell, HTMLStencilElement {
1190
+ }
1191
+ var HTMLDsAppShellElement: {
1192
+ prototype: HTMLDsAppShellElement;
1193
+ new (): HTMLDsAppShellElement;
1194
+ };
1170
1195
  interface HTMLDsBadgeElement extends Components.DsBadge, HTMLStencilElement {
1171
1196
  }
1172
1197
  var HTMLDsBadgeElement: {
@@ -1669,6 +1694,7 @@ declare global {
1669
1694
  };
1670
1695
  interface HTMLElementTagNameMap {
1671
1696
  "ds-accordion": HTMLDsAccordionElement;
1697
+ "ds-app-shell": HTMLDsAppShellElement;
1672
1698
  "ds-badge": HTMLDsBadgeElement;
1673
1699
  "ds-banner": HTMLDsBannerElement;
1674
1700
  "ds-bar-nav": HTMLDsBarNavElement;
@@ -1729,6 +1755,23 @@ declare namespace LocalJSX {
1729
1755
  "multiple"?: boolean;
1730
1756
  "onDsExpandedChange"?: (event: DsAccordionCustomEvent<string[]>) => void;
1731
1757
  }
1758
+ interface DsAppShell {
1759
+ /**
1760
+ * When `true`, paints the shared L-shaped radial wash on panel + bar backgrounds.
1761
+ * @default false
1762
+ */
1763
+ "gradient"?: boolean;
1764
+ /**
1765
+ * Optional custom gradient for `background-image` (e.g. SVG URL). When set, overrides the built-in radial wash.
1766
+ * @default ''
1767
+ */
1768
+ "gradientSrc"?: string;
1769
+ /**
1770
+ * Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
1771
+ * @default 'navigation'
1772
+ */
1773
+ "navStyle"?: NavChromeStyle;
1774
+ }
1732
1775
  interface DsBadge {
1733
1776
  /**
1734
1777
  * Direct ring background override for component-local surfaces.
@@ -1808,11 +1851,6 @@ declare namespace LocalJSX {
1808
1851
  * @default ''
1809
1852
  */
1810
1853
  "actionsJson"?: string;
1811
- /**
1812
- * Surface background variant.
1813
- * @default 'secondary'
1814
- */
1815
- "background"?: BarNavBackground;
1816
1854
  /**
1817
1855
  * Section base path (e.g. `/dashboard/safety`). Used with `currentUrl` to derive `value`.
1818
1856
  * @default ''
@@ -1827,6 +1865,11 @@ declare namespace LocalJSX {
1827
1865
  * Fallback heading shown when no tabs are provided. When tabs are present the heading is hidden.
1828
1866
  */
1829
1867
  "heading"?: string | undefined;
1868
+ /**
1869
+ * Chrome style: `navigation` = navigation tokens, `default` = app tokens. Property: `navStyle`. HTML attribute: `nav-style`.
1870
+ * @default 'default'
1871
+ */
1872
+ "navStyle"?: NavChromeStyle;
1830
1873
  /**
1831
1874
  * Emitted when an action button is toggled. Detail = { id, selected }.
1832
1875
  */
@@ -2296,7 +2339,7 @@ declare namespace LocalJSX {
2296
2339
  */
2297
2340
  "currentUrl"?: string;
2298
2341
  /**
2299
- * When `true`, the component does not run its own View Transition on variant change — it just updates the rendered surface synchronously. Use this when the host app orchestrates the page transition itself (e.g. Angular Router's `withViewTransitions`), so the two don't fight or nest.
2342
+ * When `true`, the component does not run its own View Transition on style change — it just updates the rendered surface synchronously. Use this when the host app orchestrates the page transition itself (e.g. Angular Router's `withViewTransitions`), so the two don't fight or nest.
2300
2343
  * @default false
2301
2344
  */
2302
2345
  "disableViewTransition"?: boolean;
@@ -2305,6 +2348,11 @@ declare namespace LocalJSX {
2305
2348
  * @default '[]'
2306
2349
  */
2307
2350
  "groups"?: string | PanelNavGroup[];
2351
+ /**
2352
+ * Chrome style: `navigation` = navigation tokens, `default` = standard app tokens. Property: `navStyle`. HTML attribute: `nav-style`.
2353
+ * @default 'navigation'
2354
+ */
2355
+ "navStyle"?: NavChromeStyle;
2308
2356
  /**
2309
2357
  * Emitted when the footer left button (gear / dashboard) is clicked.
2310
2358
  */
@@ -2341,11 +2389,6 @@ declare namespace LocalJSX {
2341
2389
  * @default ''
2342
2390
  */
2343
2391
  "userName"?: string;
2344
- /**
2345
- * Visual variant: `dashboard` = always-dark surface, `settings` = light surface
2346
- * @default 'dashboard'
2347
- */
2348
- "variant"?: PanelNavVariant;
2349
2392
  }
2350
2393
  interface DsRadioGroup {
2351
2394
  "ariaLabel"?: string | undefined;
@@ -2772,6 +2815,11 @@ declare namespace LocalJSX {
2772
2815
  "multiple": boolean;
2773
2816
  "expandedIds": string;
2774
2817
  }
2818
+ interface DsAppShellAttributes {
2819
+ "navStyle": NavChromeStyle;
2820
+ "gradient": boolean;
2821
+ "gradientSrc": string;
2822
+ }
2775
2823
  interface DsBadgeAttributes {
2776
2824
  "variant": BadgeVariant;
2777
2825
  "count": number;
@@ -2795,7 +2843,7 @@ declare namespace LocalJSX {
2795
2843
  "value": string;
2796
2844
  "actionsJson": string;
2797
2845
  "heading": string | undefined;
2798
- "background": BarNavBackground;
2846
+ "navStyle": NavChromeStyle;
2799
2847
  "basePath": string;
2800
2848
  "currentUrl": string;
2801
2849
  }
@@ -2933,7 +2981,7 @@ declare namespace LocalJSX {
2933
2981
  "inactive": boolean;
2934
2982
  }
2935
2983
  interface DsPanelNavAttributes {
2936
- "variant": PanelNavVariant;
2984
+ "navStyle": NavChromeStyle;
2937
2985
  "disableViewTransition": boolean;
2938
2986
  "groups": string | PanelNavGroup[];
2939
2987
  "routerMode": PanelNavRouterMode;
@@ -3078,6 +3126,7 @@ declare namespace LocalJSX {
3078
3126
 
3079
3127
  interface IntrinsicElements {
3080
3128
  "ds-accordion": Omit<DsAccordion, keyof DsAccordionAttributes> & { [K in keyof DsAccordion & keyof DsAccordionAttributes]?: DsAccordion[K] } & { [K in keyof DsAccordion & keyof DsAccordionAttributes as `attr:${K}`]?: DsAccordionAttributes[K] } & { [K in keyof DsAccordion & keyof DsAccordionAttributes as `prop:${K}`]?: DsAccordion[K] };
3129
+ "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] };
3081
3130
  "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] };
3082
3131
  "ds-banner": Omit<DsBanner, keyof DsBannerAttributes> & { [K in keyof DsBanner & keyof DsBannerAttributes]?: DsBanner[K] } & { [K in keyof DsBanner & keyof DsBannerAttributes as `attr:${K}`]?: DsBannerAttributes[K] } & { [K in keyof DsBanner & keyof DsBannerAttributes as `prop:${K}`]?: DsBanner[K] };
3083
3132
  "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] };
@@ -3124,6 +3173,7 @@ declare module "@stencil/core" {
3124
3173
  export namespace JSX {
3125
3174
  interface IntrinsicElements {
3126
3175
  "ds-accordion": LocalJSX.IntrinsicElements["ds-accordion"] & JSXBase.HTMLAttributes<HTMLDsAccordionElement>;
3176
+ "ds-app-shell": LocalJSX.IntrinsicElements["ds-app-shell"] & JSXBase.HTMLAttributes<HTMLDsAppShellElement>;
3127
3177
  "ds-badge": LocalJSX.IntrinsicElements["ds-badge"] & JSXBase.HTMLAttributes<HTMLDsBadgeElement>;
3128
3178
  "ds-banner": LocalJSX.IntrinsicElements["ds-banner"] & JSXBase.HTMLAttributes<HTMLDsBannerElement>;
3129
3179
  "ds-bar-nav": LocalJSX.IntrinsicElements["ds-bar-nav"] & JSXBase.HTMLAttributes<HTMLDsBarNavElement>;
@@ -0,0 +1,7 @@
1
+ export type { NavChromeStyle } from './nav-chrome';
2
+ export { NAV_STYLE_HINT_ATTR, readNavStyleAttr, setNavStyleHint, clearNavStyleHint, resolveNavChromeStyle, shouldResyncNavChromeStyle, } from './nav-chrome';
3
+ export { SHELL_BAR_NAV_VT_NAME, parseCssTimeMs, ensureShellNavVtStyle, resolveShellNavRevealOrigin, setShellNavRevealOriginVars, animateShellNavRadialReveal, runShellNavStyleRevealOnReady, } from './shell-view-transition';
4
+ export type { ShellNavRevealOrigin } from './shell-view-transition';
5
+ export { SHELL_GRADIENT_IMAGE_VAR, SHELL_GRADIENT_SIZE_VAR, SHELL_GRADIENT_POSITION_PANEL_VAR, SHELL_GRADIENT_POSITION_BAR_VAR, SHELL_GRADIENT_OPACITY_VAR, SHELL_GRADIENT_OPACITY, buildShellRadialGradient, shellGradientImageForStyle, shellGradientSize, shellGradientPositionPanel, shellGradientPositionBar, } from './shell-gradient';
6
+ export type { ShellGradientLayout } from './shell-gradient';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,14 @@
1
+ /** Visual chrome family for primary/secondary navigation surfaces. */
2
+ export type NavChromeStyle = 'navigation' | 'default';
3
+ /** `document.documentElement` attribute for pre-bootstrap style hints (SPA hard reload). */
4
+ export declare const NAV_STYLE_HINT_ATTR = "data-nav-style";
5
+ /** Parse `nav-style` from a host or document hint attribute value. */
6
+ export declare function readNavStyleAttr(attr: string | null): NavChromeStyle | undefined;
7
+ /** Set a document-level style hint before nav custom elements upgrade (hard reload). */
8
+ export declare function setNavStyleHint(style: NavChromeStyle): void;
9
+ export declare function clearNavStyleHint(): void;
10
+ /** Resolve initial nav chrome style — host attr, then document hint, then prop default. */
11
+ export declare function resolveNavChromeStyle(styleProp: NavChromeStyle, styleAttr: string | null, documentStyleAttr?: string | null): NavChromeStyle;
12
+ /** True when internal rendered surface lags the host `style` prop. */
13
+ export declare function shouldResyncNavChromeStyle(renderedStyle: NavChromeStyle, style: NavChromeStyle): boolean;
14
+ //# sourceMappingURL=nav-chrome.d.ts.map
@@ -0,0 +1,25 @@
1
+ import type { NavChromeStyle } from './nav-chrome';
2
+ /** CSS var names consumed by `ds-panel-nav` / `ds-bar-nav` inside `ds-app-shell`. */
3
+ export declare const SHELL_GRADIENT_IMAGE_VAR = "--ds-shell-gradient-image";
4
+ export declare const SHELL_GRADIENT_SIZE_VAR = "--ds-shell-gradient-size";
5
+ export declare const SHELL_GRADIENT_POSITION_PANEL_VAR = "--ds-shell-gradient-position-panel";
6
+ export declare const SHELL_GRADIENT_POSITION_BAR_VAR = "--ds-shell-gradient-position-bar";
7
+ export declare const SHELL_GRADIENT_OPACITY_VAR = "--ds-shell-gradient-opacity";
8
+ /** Layer opacity for the nav gradient wash. */
9
+ export declare const SHELL_GRADIENT_OPACITY = "0.1";
10
+ /**
11
+ * Unified shell radial — same wash for all nav chrome styles.
12
+ * Tokens follow `data-theme` (light/dark blue intent).
13
+ */
14
+ export declare function buildShellRadialGradient(): string;
15
+ /** Built-in radial image (optional `gradientSrc` on shell overrides). */
16
+ export declare function shellGradientImageForStyle(_style: NavChromeStyle): string;
17
+ export interface ShellGradientLayout {
18
+ width: number;
19
+ height: number;
20
+ panelWidth: number;
21
+ }
22
+ export declare function shellGradientSize(layout: ShellGradientLayout): string;
23
+ export declare function shellGradientPositionPanel(): string;
24
+ export declare function shellGradientPositionBar(panelWidth: number): string;
25
+ //# sourceMappingURL=shell-gradient.d.ts.map
@@ -0,0 +1,21 @@
1
+ /** `view-transition-name` on `ds-bar-nav` — pairs with root reveal in shell apps. */
2
+ export declare const SHELL_BAR_NAV_VT_NAME = "ds-shell-bar-nav";
3
+ /** Parse a CSS <time> value to milliseconds. */
4
+ export declare function parseCssTimeMs(value: string, fallback: number): number;
5
+ /** Suppress default cross-fade and pin new snapshots to a 0px circle for WAAPI reveal. */
6
+ export declare function ensureShellNavVtStyle(): void;
7
+ export interface ShellNavRevealOrigin {
8
+ x: number;
9
+ y: number;
10
+ maxRadius: number;
11
+ }
12
+ /** Origin for the radial reveal — defaults to panel-nav footer gear, then viewport center. */
13
+ export declare function resolveShellNavRevealOrigin(originEl?: HTMLElement | null): ShellNavRevealOrigin;
14
+ export declare function setShellNavRevealOriginVars(origin: ShellNavRevealOrigin): void;
15
+ /** Animate root + bar-nav snapshots with the same radial clip-path reveal. */
16
+ export declare function animateShellNavRadialReveal(origin: ShellNavRevealOrigin, durationMs?: number): void;
17
+ /** Run radial reveal when a view transition's `ready` promise settles (app/router driver). */
18
+ export declare function runShellNavStyleRevealOnReady(transition: {
19
+ ready: Promise<void>;
20
+ }, originEl?: HTMLElement | null): void;
21
+ //# sourceMappingURL=shell-view-transition.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -41,6 +41,10 @@
41
41
  "types": "./src/wc/components.d.ts",
42
42
  "import": "./dist/components/index.js"
43
43
  },
44
+ "./nav": {
45
+ "types": "./src/wc/nav/index.ts",
46
+ "import": "./src/wc/nav/index.ts"
47
+ },
44
48
  "./dist/components/*": "./dist/components/*"
45
49
  },
46
50
  "files": [
@@ -50,6 +54,7 @@
50
54
  "src/wc/components/**/*.tsx",
51
55
  "!src/wc/components/**/*.stories.ts",
52
56
  "!src/wc/components/**/*.stories.tsx",
57
+ "src/wc/nav",
53
58
  "src/angular",
54
59
  "src/react"
55
60
  ],
@@ -57,13 +62,13 @@
57
62
  "prebuild": "node scripts/generate-icon-catalog.mjs",
58
63
  "pretypecheck": "node scripts/generate-icon-catalog.mjs",
59
64
  "pretest": "node scripts/generate-icon-catalog.mjs",
60
- "build": "stencil build && node scripts/patch-index-types.mjs && node scripts/verify-icons-externalized.mjs",
61
- "test": "node --import tsx/esm --test tests/panel-nav-utils.test.ts tests/bar-nav-utils.test.ts tests/bar-nav-tabs-menu-utils.test.ts tests/bar-nav-dom-utils.test.ts tests/icon-catalog.test.ts",
65
+ "build": "stencil build && node scripts/patch-index-types.mjs && node scripts/verify-icons-externalized.mjs && node scripts/write-build-stamp.mjs",
66
+ "test": "node --import tsx/esm --test tests/panel-nav-utils.test.ts tests/shell-view-transition.test.ts tests/shell-gradient.test.ts tests/bar-nav-utils.test.ts tests/bar-nav-tabs-menu-utils.test.ts tests/bar-nav-dom-utils.test.ts tests/icon-catalog.test.ts",
62
67
  "test:e2e": "npm run build && playwright test",
63
68
  "test:e2e:install": "playwright install chromium",
64
69
  "build:docs": "stencil build --docs",
65
70
  "dev": "node scripts/generate-icon-catalog.mjs && stencil build --watch",
66
- "storybook:ui": "storybook dev -p 6006 --no-open",
71
+ "storybook:ui": "node scripts/storybook-ui.mjs",
67
72
  "storybook": "node scripts/storybook-dev.mjs",
68
73
  "storybook:build": "storybook build",
69
74
  "clean": "rm -rf dist",
@@ -3,6 +3,7 @@ import * as d from './proxies';
3
3
 
4
4
  export const DIRECTIVES = [
5
5
  d.DsAccordion,
6
+ d.DsAppShell,
6
7
  d.DsBadge,
7
8
  d.DsBanner,
8
9
  d.DsBarNav,