@ds-mo/ui 1.8.1 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-stamp +1 -1
- package/dist/components/ds-app-shell.js +1 -1
- package/dist/components/ds-app-shell.js.map +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-nav-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-nav.js.map +1 -1
- package/dist/components/ds-fade.js +1 -1
- package/dist/components/ds-fade.js.map +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-nav.js.map +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-panel-tools.js.map +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-slider.js.map +1 -1
- package/dist/components/ds-tab-group-nav.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-toast-provider.js +1 -1
- package/dist/components/ds-toggle.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/{p-BvmooLHV.js → p-C1cBr-Ri.js} +2 -2
- package/dist/components/{p-DrvpsLK6.js → p-CCZFMcLe.js} +2 -2
- package/dist/components/p-CiEc8Nwx.js +2 -0
- package/dist/components/p-CiEc8Nwx.js.map +1 -0
- package/dist/components/{p-C4VSrrAB.js → p-CuuuDjJJ.js} +2 -2
- package/dist/components/p-Dl1GvZQ2.js +2 -0
- package/dist/components/p-Dl1GvZQ2.js.map +1 -0
- package/dist/components/{p-DZDXwEMg.js → p-DlsexsFg.js} +2 -2
- package/dist/components/p-g6MCxfm4.js +2 -0
- package/dist/components/p-g6MCxfm4.js.map +1 -0
- package/dist/types/components/AppShell/AppShell.d.ts +7 -5
- package/dist/types/components/BarNav/BarNav.d.ts +2 -4
- package/dist/types/components/PanelNav/PanelNav.d.ts +4 -13
- package/dist/types/components/PanelNav/index.d.ts +1 -1
- package/dist/types/components/PanelNav/panel-nav-utils.d.ts +0 -9
- package/dist/types/components/PanelTools/PanelTools.d.ts +29 -11
- package/dist/types/components/PanelTools/index.d.ts +2 -2
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +15 -2
- package/dist/types/components/PanelTools/panel-tools-utils.d.ts +4 -0
- package/dist/types/components.d.ts +67 -21
- package/dist/types/nav/badge-gradient-ring.d.ts +1 -1
- package/dist/types/nav/index.d.ts +1 -1
- package/dist/types/nav/nav-chrome.d.ts +4 -8
- package/dist/types/nav/shell-gradient.d.ts +6 -3
- package/package.json +1 -1
- package/src/angular/proxies.ts +12 -3
- package/src/react/ds-panel-tools.ts +4 -3
- package/src/wc/components/AppShell/AppShell.tsx +54 -38
- package/src/wc/components/Badge/Badge.tsx +3 -12
- package/src/wc/components/BarNav/BarNav.tsx +6 -18
- package/src/wc/components/PanelNav/PanelNav.tsx +23 -103
- package/src/wc/components/PanelNav/index.ts +0 -1
- package/src/wc/components/PanelNav/panel-nav-utils.ts +0 -13
- package/src/wc/components/PanelTools/PanelTools.tsx +162 -80
- package/src/wc/components/PanelTools/index.ts +6 -2
- package/src/wc/components/PanelTools/panel-tools-types.ts +18 -3
- package/src/wc/components/PanelTools/panel-tools-utils.ts +31 -0
- package/src/wc/components.d.ts +67 -21
- package/src/wc/nav/badge-gradient-ring.ts +3 -8
- package/src/wc/nav/index.ts +3 -1
- package/src/wc/nav/nav-chrome.ts +19 -17
- package/src/wc/nav/shell-gradient.ts +9 -4
- package/src/wc/nav/shell-view-transition.ts +13 -6
- package/dist/components/p-B8VZmH43.js +0 -2
- package/dist/components/p-B8VZmH43.js.map +0 -1
- package/dist/components/p-BucV1U6A.js +0 -2
- package/dist/components/p-BucV1U6A.js.map +0 -1
- package/dist/components/p-CX7-_qOW.js +0 -2
- package/dist/components/p-CX7-_qOW.js.map +0 -1
- package/dist/components/p-TtnqbcnR.js +0 -2
- package/dist/components/p-TtnqbcnR.js.map +0 -1
- /package/dist/components/{p-BvmooLHV.js.map → p-C1cBr-Ri.js.map} +0 -0
- /package/dist/components/{p-DrvpsLK6.js.map → p-CCZFMcLe.js.map} +0 -0
- /package/dist/components/{p-C4VSrrAB.js.map → p-CuuuDjJJ.js.map} +0 -0
- /package/dist/components/{p-DZDXwEMg.js.map → p-DlsexsFg.js.map} +0 -0
|
@@ -2,7 +2,7 @@ import type { NavChromeStyle } from '../../nav/nav-chrome';
|
|
|
2
2
|
export declare class AppShell {
|
|
3
3
|
/** Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`. */
|
|
4
4
|
navStyle: NavChromeStyle;
|
|
5
|
-
/** When `true`, paints the shared
|
|
5
|
+
/** When `true`, paints the shared chrome surface (bg + wash + grid) behind panel, bar, and tools. */
|
|
6
6
|
gradient: boolean;
|
|
7
7
|
/**
|
|
8
8
|
* Optional custom gradient for `background-image` (e.g. SVG URL).
|
|
@@ -12,14 +12,16 @@ export declare class AppShell {
|
|
|
12
12
|
el: HTMLElement;
|
|
13
13
|
private resizeObserver;
|
|
14
14
|
componentDidLoad(): void;
|
|
15
|
-
private
|
|
15
|
+
private scheduleChromeSync;
|
|
16
16
|
disconnectedCallback(): void;
|
|
17
17
|
onShellPropsChange(): void;
|
|
18
|
+
private syncSlottedNavStyle;
|
|
18
19
|
private connectMetricsObserver;
|
|
19
20
|
private applyGradientVars;
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
private
|
|
21
|
+
private clearGradientPaintVars;
|
|
22
|
+
/** Panel/bar wash offsets for scroll fades and badge rings. */
|
|
23
|
+
private syncChromeLayoutVars;
|
|
24
|
+
private syncChrome;
|
|
23
25
|
render(): any;
|
|
24
26
|
}
|
|
25
27
|
//# sourceMappingURL=AppShell.d.ts.map
|
|
@@ -2,6 +2,8 @@ import { EventEmitter } from '../../stencil-public-runtime';
|
|
|
2
2
|
import type { NavChromeStyle } from '../../nav/nav-chrome';
|
|
3
3
|
import type { BarNavActionItem, BarNavTab } from './bar-nav-types';
|
|
4
4
|
export declare class BarNav {
|
|
5
|
+
/** Style slot: `dashboard` or `settings`. Colors match for now. */
|
|
6
|
+
navStyle: NavChromeStyle;
|
|
5
7
|
el: HTMLElement;
|
|
6
8
|
/**
|
|
7
9
|
* Tab items for the left section.
|
|
@@ -24,9 +26,6 @@ export declare class BarNav {
|
|
|
24
26
|
* When tabs are present the heading is hidden.
|
|
25
27
|
*/
|
|
26
28
|
heading: string | undefined;
|
|
27
|
-
/** Chrome style: `navigation` = navigation tokens, `default` = app tokens.
|
|
28
|
-
* Property: `navStyle`. HTML attribute: `nav-style`. */
|
|
29
|
-
navStyle: NavChromeStyle;
|
|
30
29
|
/** Section base path (e.g. `/dashboard/safety`). Used with `currentUrl` to derive `value`. */
|
|
31
30
|
basePath: string;
|
|
32
31
|
/** Current route URL. When set with `basePath`, the active tab is derived automatically. */
|
|
@@ -103,7 +102,6 @@ export declare class BarNav {
|
|
|
103
102
|
private handleActionChange;
|
|
104
103
|
private toggleTabMenu;
|
|
105
104
|
private handleTriggerKeyDown;
|
|
106
|
-
private get tabSurface();
|
|
107
105
|
render(): any;
|
|
108
106
|
}
|
|
109
107
|
//# sourceMappingURL=BarNav.d.ts.map
|
|
@@ -2,13 +2,10 @@ import { EventEmitter } from '../../stencil-public-runtime';
|
|
|
2
2
|
import type { NavChromeStyle } from '../../nav/nav-chrome';
|
|
3
3
|
import { type PanelNavGroup, type PanelNavRouterMode, type PanelNavUserActionDetail } from './panel-nav-types';
|
|
4
4
|
export declare class PanelNav {
|
|
5
|
-
/**
|
|
6
|
-
* Property: `navStyle`.
|
|
5
|
+
/** Style slot: `dashboard` or `settings`. Colors match for now;
|
|
6
|
+
* class hooks reserved for texture/glyph layers. Property: `navStyle`. Attribute: `nav-style`. */
|
|
7
7
|
navStyle: NavChromeStyle;
|
|
8
|
-
/** When `true`,
|
|
9
|
-
* change — it just updates the rendered surface synchronously. Use this when
|
|
10
|
-
* the host app orchestrates the page transition itself (e.g. Angular Router's
|
|
11
|
-
* `withViewTransitions`), so the two don't fight or nest. */
|
|
8
|
+
/** When `true`, style changes apply synchronously — host app owns view transitions. */
|
|
12
9
|
disableViewTransition: boolean;
|
|
13
10
|
/** Nav groups — set via JS property (`el.groups = [...]`) or JSON string attribute. */
|
|
14
11
|
groups: string | PanelNavGroup[];
|
|
@@ -43,8 +40,6 @@ export declare class PanelNav {
|
|
|
43
40
|
/** Emitted when the footer user button is clicked. Detail includes the anchor for `ds-menu`. */
|
|
44
41
|
dsNavUserAction: EventEmitter<PanelNavUserActionDetail>;
|
|
45
42
|
el: HTMLElement;
|
|
46
|
-
/** Mirrors `style` but is only updated inside the VT callback so the
|
|
47
|
-
* View Transition captures a clean before/after snapshot. */
|
|
48
43
|
private renderedStyle;
|
|
49
44
|
private parsedGroups;
|
|
50
45
|
private atBottom;
|
|
@@ -66,17 +61,15 @@ export declare class PanelNav {
|
|
|
66
61
|
/** The ID that should be treated as active. `currentUrl` matching takes precedence
|
|
67
62
|
* over `activeId` when both are present. */
|
|
68
63
|
private get effectiveActiveId();
|
|
69
|
-
/** Host may set `disable-view-transition` as an attribute before the JS prop lands. */
|
|
70
64
|
private get effectiveDisableViewTransition();
|
|
71
65
|
onCollapsedChange(): void;
|
|
72
66
|
onBreakpointChange(): void;
|
|
73
67
|
onGroupsChange(val: string | PanelNavGroup[]): void;
|
|
74
68
|
onActiveIdChange(): void;
|
|
75
69
|
onCurrentUrlChange(): void;
|
|
76
|
-
onNavStyleChange(newVal: NavChromeStyle):
|
|
70
|
+
onNavStyleChange(newVal: NavChromeStyle): void;
|
|
77
71
|
componentWillLoad(): void;
|
|
78
72
|
componentDidLoad(): void;
|
|
79
|
-
componentDidRender(): void;
|
|
80
73
|
disconnectedCallback(): void;
|
|
81
74
|
private startCollapseAnimation;
|
|
82
75
|
private connectResizeObserver;
|
|
@@ -86,8 +79,6 @@ export declare class PanelNav {
|
|
|
86
79
|
private syncActiveFromUrl;
|
|
87
80
|
/** Re-parse props assigned by the host after componentWillLoad (Angular ngAfterViewInit). */
|
|
88
81
|
private syncHostPropsIfNeeded;
|
|
89
|
-
/** Align `renderedStyle` with `style` when host bindings land after first paint. */
|
|
90
|
-
private syncRenderedStyleIfNeeded;
|
|
91
82
|
/** Poll across animation frames — host props may land without triggering @Watch. */
|
|
92
83
|
private scheduleDeferredHostPropSync;
|
|
93
84
|
/** Centralised toggle: updates `collapsed`, emits `dsNavToggle`, optionally persists. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { PanelNavRouterMode, PanelNavItem, PanelNavGroup, PanelNavUserActionDetail, } from './panel-nav-types';
|
|
2
2
|
export { PANEL_NAV_USER_MENU_ANCHOR_ID } from './panel-nav-types';
|
|
3
3
|
export type { NavChromeStyle } from '../../nav/nav-chrome';
|
|
4
|
-
export { NAV_STYLE_HINT_ATTR, setNavStyleHint, clearNavStyleHint, resolvePanelNavStyle, shouldResyncPanelNavStyle,
|
|
4
|
+
export { NAV_STYLE_HINT_ATTR, setNavStyleHint, clearNavStyleHint, resolvePanelNavStyle, shouldResyncPanelNavStyle, deriveActiveIdFromUrl, parsePanelNavGroups, } from './panel-nav-utils';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import type { PanelNavGroup, PanelNavItem } from './panel-nav-types';
|
|
2
2
|
import { NAV_STYLE_HINT_ATTR, clearNavStyleHint, readNavStyleAttr, resolveNavChromeStyle, setNavStyleHint, shouldResyncNavChromeStyle } from '../../nav/nav-chrome';
|
|
3
|
-
import { ensureShellNavVtStyle } from '../../nav/shell-view-transition';
|
|
4
3
|
export type { NavChromeStyle } from '../../nav/nav-chrome';
|
|
5
4
|
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
5
|
/** Whether `path` matches `href` at a segment boundary (exact or child path). */
|
|
15
6
|
export declare function hrefMatchesPath(path: string, href: string): boolean;
|
|
16
7
|
/** Derive the active nav item id from a URL using longest segment-boundary prefix match. */
|
|
@@ -1,27 +1,45 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { type PanelToolsItem, type PanelToolsToolId } from './panel-tools-types';
|
|
2
3
|
export declare class PanelTools {
|
|
3
4
|
el: HTMLElement;
|
|
4
|
-
/** When false,
|
|
5
|
+
/** When false, only the icon rail is shown. */
|
|
5
6
|
open: boolean;
|
|
6
|
-
/** Active tool view — `search`, `
|
|
7
|
+
/** Active tool view — `search`, `agents`, `messages`, `stacks`, or `activity`. */
|
|
7
8
|
activeTool: PanelToolsToolId | '';
|
|
8
|
-
/**
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Rail items rendered in the right column.
|
|
11
|
+
* Set via JS property: `el.items = [...]`. Replace the array reference to update.
|
|
12
|
+
*/
|
|
13
|
+
items: PanelToolsItem[];
|
|
14
|
+
/** JSON fallback for `items` — useful when framework bindings don't propagate arrays. */
|
|
15
|
+
itemsJson: string;
|
|
16
|
+
/** Emitted when a rail button is toggled. Detail = { id, selected }. */
|
|
17
|
+
dsToolChange: EventEmitter<{
|
|
18
|
+
id: PanelToolsToolId;
|
|
19
|
+
selected: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
/** Arms open vs close easing for the in-flight width transition. */
|
|
22
|
+
private motion;
|
|
10
23
|
/** Suppresses width transition until the host has painted its initial open state. */
|
|
11
24
|
private readyForMotion;
|
|
12
25
|
private motionEnableGeneration;
|
|
13
|
-
|
|
14
|
-
componentDidLoad(): void;
|
|
26
|
+
private get railItems();
|
|
15
27
|
disconnectedCallback(): void;
|
|
16
|
-
/** Two rAFs after the last pre-ready prop change — host bindings may land late on refresh. */
|
|
17
28
|
private deferMotionEnable;
|
|
18
29
|
connectedCallback(): void;
|
|
19
|
-
openChanged(isOpen: boolean): void;
|
|
30
|
+
openChanged(isOpen: boolean, wasOpen?: boolean): void;
|
|
20
31
|
activeToolChanged(): void;
|
|
32
|
+
componentDidLoad(): void;
|
|
33
|
+
itemsChanged(): void;
|
|
21
34
|
private handleTransitionEnd;
|
|
22
|
-
|
|
23
|
-
private
|
|
35
|
+
/** Rail selection follows `open` immediately — independent of the slide animation. */
|
|
36
|
+
private isRailSelected;
|
|
37
|
+
/** Drawer body stays mounted while the clip frame animates closed. */
|
|
38
|
+
private isDrawerPresent;
|
|
39
|
+
private isViewActive;
|
|
24
40
|
private headerLabel;
|
|
41
|
+
private handleToolChange;
|
|
42
|
+
private renderRailAction;
|
|
25
43
|
render(): any;
|
|
26
44
|
}
|
|
27
45
|
//# sourceMappingURL=PanelTools.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type { PanelToolsToolId } from './panel-tools-types';
|
|
2
|
-
export { PANEL_TOOLS_LABELS, PANEL_TOOLS_TOOL_IDS } from './panel-tools-types';
|
|
1
|
+
export type { PanelToolsItem, PanelToolsToolId } from './panel-tools-types';
|
|
2
|
+
export { PANEL_TOOLS_LABELS, PANEL_TOOLS_PRIMARY_TOOL_ID, PANEL_TOOLS_TOOL_IDS, } from './panel-tools-types';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export type PanelToolsToolId = 'search' | '
|
|
1
|
+
/** Tool ids for the `ds-panel-tools` rail and drawer views. */
|
|
2
|
+
export type PanelToolsToolId = 'search' | 'agents' | 'messages' | 'stacks' | 'activity';
|
|
3
3
|
export declare const PANEL_TOOLS_TOOL_IDS: PanelToolsToolId[];
|
|
4
|
+
/** Rail header slot — mirrors panel-nav M logo row. */
|
|
5
|
+
export declare const PANEL_TOOLS_PRIMARY_TOOL_ID: PanelToolsToolId;
|
|
4
6
|
export declare const PANEL_TOOLS_LABELS: Record<PanelToolsToolId, string>;
|
|
7
|
+
export interface PanelToolsItem {
|
|
8
|
+
id: PanelToolsToolId;
|
|
9
|
+
/** Icon name for <ds-icon>. */
|
|
10
|
+
icon: string;
|
|
11
|
+
/** Whether this rail button is currently pressed/active. */
|
|
12
|
+
selected?: boolean;
|
|
13
|
+
/** Show a notification dot. */
|
|
14
|
+
dot?: boolean;
|
|
15
|
+
inactive?: boolean;
|
|
16
|
+
ariaLabel?: string;
|
|
17
|
+
}
|
|
5
18
|
//# sourceMappingURL=panel-tools-types.d.ts.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PanelToolsItem } from './panel-tools-types';
|
|
2
|
+
export declare function parsePanelToolsItems(items: PanelToolsItem[], itemsJson: string): PanelToolsItem[];
|
|
3
|
+
export declare function shouldResyncPanelToolsItems(prev: PanelToolsItem[], next: PanelToolsItem[]): boolean;
|
|
4
|
+
//# sourceMappingURL=panel-tools-utils.d.ts.map
|
|
@@ -26,7 +26,7 @@ import { MenuItemData, MenuSection } from "./components/Menu/menu-types";
|
|
|
26
26
|
import { MenuAlign, MenuSide } from "./components/Menu/menu-position";
|
|
27
27
|
import { ModalWidth } from "./components/Modal/Modal";
|
|
28
28
|
import { PanelNavGroup, PanelNavRouterMode, PanelNavUserActionDetail } from "./components/PanelNav/panel-nav-types";
|
|
29
|
-
import { PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
29
|
+
import { PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
30
30
|
import { RadioOption } from "./components/RadioGroup/RadioGroup";
|
|
31
31
|
import { ScrollbarVariant } from "./components/Scrollbar/Scrollbar";
|
|
32
32
|
import { SelectOption } from "./components/Select/Select";
|
|
@@ -63,7 +63,7 @@ export { MenuItemData, MenuSection } from "./components/Menu/menu-types";
|
|
|
63
63
|
export { MenuAlign, MenuSide } from "./components/Menu/menu-position";
|
|
64
64
|
export { ModalWidth } from "./components/Modal/Modal";
|
|
65
65
|
export { PanelNavGroup, PanelNavRouterMode, PanelNavUserActionDetail } from "./components/PanelNav/panel-nav-types";
|
|
66
|
-
export { PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
66
|
+
export { PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
67
67
|
export { RadioOption } from "./components/RadioGroup/RadioGroup";
|
|
68
68
|
export { ScrollbarVariant } from "./components/Scrollbar/Scrollbar";
|
|
69
69
|
export { SelectOption } from "./components/Select/Select";
|
|
@@ -97,7 +97,7 @@ export namespace Components {
|
|
|
97
97
|
}
|
|
98
98
|
interface DsAppShell {
|
|
99
99
|
/**
|
|
100
|
-
* When `true`, paints the shared
|
|
100
|
+
* When `true`, paints the shared chrome surface (bg + wash + grid) behind panel, bar, and tools.
|
|
101
101
|
* @default false
|
|
102
102
|
*/
|
|
103
103
|
"gradient": boolean;
|
|
@@ -108,7 +108,7 @@ export namespace Components {
|
|
|
108
108
|
"gradientSrc": string;
|
|
109
109
|
/**
|
|
110
110
|
* Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
|
|
111
|
-
* @default '
|
|
111
|
+
* @default 'dashboard'
|
|
112
112
|
*/
|
|
113
113
|
"navStyle": NavChromeStyle;
|
|
114
114
|
}
|
|
@@ -210,8 +210,8 @@ export namespace Components {
|
|
|
210
210
|
*/
|
|
211
211
|
"heading": string | undefined;
|
|
212
212
|
/**
|
|
213
|
-
*
|
|
214
|
-
* @default '
|
|
213
|
+
* Style slot: `dashboard` or `settings`. Colors match for now.
|
|
214
|
+
* @default 'dashboard'
|
|
215
215
|
*/
|
|
216
216
|
"navStyle": NavChromeStyle;
|
|
217
217
|
/**
|
|
@@ -647,7 +647,7 @@ export namespace Components {
|
|
|
647
647
|
*/
|
|
648
648
|
"currentUrl": string;
|
|
649
649
|
/**
|
|
650
|
-
* When `true`,
|
|
650
|
+
* When `true`, style changes apply synchronously — host app owns view transitions.
|
|
651
651
|
* @default false
|
|
652
652
|
*/
|
|
653
653
|
"disableViewTransition": boolean;
|
|
@@ -657,8 +657,8 @@ export namespace Components {
|
|
|
657
657
|
*/
|
|
658
658
|
"groups": string | PanelNavGroup[];
|
|
659
659
|
/**
|
|
660
|
-
*
|
|
661
|
-
* @default '
|
|
660
|
+
* Style slot: `dashboard` or `settings`. Colors match for now; class hooks reserved for texture/glyph layers. Property: `navStyle`. Attribute: `nav-style`.
|
|
661
|
+
* @default 'dashboard'
|
|
662
662
|
*/
|
|
663
663
|
"navStyle": NavChromeStyle;
|
|
664
664
|
/**
|
|
@@ -684,12 +684,22 @@ export namespace Components {
|
|
|
684
684
|
}
|
|
685
685
|
interface DsPanelTools {
|
|
686
686
|
/**
|
|
687
|
-
* Active tool view — `search`, `
|
|
687
|
+
* Active tool view — `search`, `agents`, `messages`, `stacks`, or `activity`.
|
|
688
688
|
* @default ''
|
|
689
689
|
*/
|
|
690
690
|
"activeTool": PanelToolsToolId | '';
|
|
691
691
|
/**
|
|
692
|
-
*
|
|
692
|
+
* Rail items rendered in the right column. Set via JS property: `el.items = [...]`. Replace the array reference to update.
|
|
693
|
+
* @default []
|
|
694
|
+
*/
|
|
695
|
+
"items": PanelToolsItem[];
|
|
696
|
+
/**
|
|
697
|
+
* JSON fallback for `items` — useful when framework bindings don't propagate arrays.
|
|
698
|
+
* @default ''
|
|
699
|
+
*/
|
|
700
|
+
"itemsJson": string;
|
|
701
|
+
/**
|
|
702
|
+
* When false, only the icon rail is shown.
|
|
693
703
|
* @default false
|
|
694
704
|
*/
|
|
695
705
|
"open": boolean;
|
|
@@ -1134,6 +1144,10 @@ export interface DsPanelNavCustomEvent<T> extends CustomEvent<T> {
|
|
|
1134
1144
|
detail: T;
|
|
1135
1145
|
target: HTMLDsPanelNavElement;
|
|
1136
1146
|
}
|
|
1147
|
+
export interface DsPanelToolsCustomEvent<T> extends CustomEvent<T> {
|
|
1148
|
+
detail: T;
|
|
1149
|
+
target: HTMLDsPanelToolsElement;
|
|
1150
|
+
}
|
|
1137
1151
|
export interface DsRadioGroupCustomEvent<T> extends CustomEvent<T> {
|
|
1138
1152
|
detail: T;
|
|
1139
1153
|
target: HTMLDsRadioGroupElement;
|
|
@@ -1479,7 +1493,21 @@ declare global {
|
|
|
1479
1493
|
prototype: HTMLDsPanelNavElement;
|
|
1480
1494
|
new (): HTMLDsPanelNavElement;
|
|
1481
1495
|
};
|
|
1496
|
+
interface HTMLDsPanelToolsElementEventMap {
|
|
1497
|
+
"dsToolChange": {
|
|
1498
|
+
id: PanelToolsToolId;
|
|
1499
|
+
selected: boolean;
|
|
1500
|
+
};
|
|
1501
|
+
}
|
|
1482
1502
|
interface HTMLDsPanelToolsElement extends Components.DsPanelTools, HTMLStencilElement {
|
|
1503
|
+
addEventListener<K extends keyof HTMLDsPanelToolsElementEventMap>(type: K, listener: (this: HTMLDsPanelToolsElement, ev: DsPanelToolsCustomEvent<HTMLDsPanelToolsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1504
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1505
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1506
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1507
|
+
removeEventListener<K extends keyof HTMLDsPanelToolsElementEventMap>(type: K, listener: (this: HTMLDsPanelToolsElement, ev: DsPanelToolsCustomEvent<HTMLDsPanelToolsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1508
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1509
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1510
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1483
1511
|
}
|
|
1484
1512
|
var HTMLDsPanelToolsElement: {
|
|
1485
1513
|
prototype: HTMLDsPanelToolsElement;
|
|
@@ -1747,7 +1775,7 @@ declare namespace LocalJSX {
|
|
|
1747
1775
|
}
|
|
1748
1776
|
interface DsAppShell {
|
|
1749
1777
|
/**
|
|
1750
|
-
* When `true`, paints the shared
|
|
1778
|
+
* When `true`, paints the shared chrome surface (bg + wash + grid) behind panel, bar, and tools.
|
|
1751
1779
|
* @default false
|
|
1752
1780
|
*/
|
|
1753
1781
|
"gradient"?: boolean;
|
|
@@ -1758,7 +1786,7 @@ declare namespace LocalJSX {
|
|
|
1758
1786
|
"gradientSrc"?: string;
|
|
1759
1787
|
/**
|
|
1760
1788
|
* Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`.
|
|
1761
|
-
* @default '
|
|
1789
|
+
* @default 'dashboard'
|
|
1762
1790
|
*/
|
|
1763
1791
|
"navStyle"?: NavChromeStyle;
|
|
1764
1792
|
}
|
|
@@ -1861,8 +1889,8 @@ declare namespace LocalJSX {
|
|
|
1861
1889
|
*/
|
|
1862
1890
|
"heading"?: string | undefined;
|
|
1863
1891
|
/**
|
|
1864
|
-
*
|
|
1865
|
-
* @default '
|
|
1892
|
+
* Style slot: `dashboard` or `settings`. Colors match for now.
|
|
1893
|
+
* @default 'dashboard'
|
|
1866
1894
|
*/
|
|
1867
1895
|
"navStyle"?: NavChromeStyle;
|
|
1868
1896
|
/**
|
|
@@ -2336,7 +2364,7 @@ declare namespace LocalJSX {
|
|
|
2336
2364
|
*/
|
|
2337
2365
|
"currentUrl"?: string;
|
|
2338
2366
|
/**
|
|
2339
|
-
* When `true`,
|
|
2367
|
+
* When `true`, style changes apply synchronously — host app owns view transitions.
|
|
2340
2368
|
* @default false
|
|
2341
2369
|
*/
|
|
2342
2370
|
"disableViewTransition"?: boolean;
|
|
@@ -2346,8 +2374,8 @@ declare namespace LocalJSX {
|
|
|
2346
2374
|
*/
|
|
2347
2375
|
"groups"?: string | PanelNavGroup[];
|
|
2348
2376
|
/**
|
|
2349
|
-
*
|
|
2350
|
-
* @default '
|
|
2377
|
+
* Style slot: `dashboard` or `settings`. Colors match for now; class hooks reserved for texture/glyph layers. Property: `navStyle`. Attribute: `nav-style`.
|
|
2378
|
+
* @default 'dashboard'
|
|
2351
2379
|
*/
|
|
2352
2380
|
"navStyle"?: NavChromeStyle;
|
|
2353
2381
|
/**
|
|
@@ -2389,12 +2417,29 @@ declare namespace LocalJSX {
|
|
|
2389
2417
|
}
|
|
2390
2418
|
interface DsPanelTools {
|
|
2391
2419
|
/**
|
|
2392
|
-
* Active tool view — `search`, `
|
|
2420
|
+
* Active tool view — `search`, `agents`, `messages`, `stacks`, or `activity`.
|
|
2393
2421
|
* @default ''
|
|
2394
2422
|
*/
|
|
2395
2423
|
"activeTool"?: PanelToolsToolId | '';
|
|
2396
2424
|
/**
|
|
2397
|
-
*
|
|
2425
|
+
* Rail items rendered in the right column. Set via JS property: `el.items = [...]`. Replace the array reference to update.
|
|
2426
|
+
* @default []
|
|
2427
|
+
*/
|
|
2428
|
+
"items"?: PanelToolsItem[];
|
|
2429
|
+
/**
|
|
2430
|
+
* JSON fallback for `items` — useful when framework bindings don't propagate arrays.
|
|
2431
|
+
* @default ''
|
|
2432
|
+
*/
|
|
2433
|
+
"itemsJson"?: string;
|
|
2434
|
+
/**
|
|
2435
|
+
* Emitted when a rail button is toggled. Detail = { id, selected }.
|
|
2436
|
+
*/
|
|
2437
|
+
"onDsToolChange"?: (event: DsPanelToolsCustomEvent<{
|
|
2438
|
+
id: PanelToolsToolId;
|
|
2439
|
+
selected: boolean;
|
|
2440
|
+
}>) => void;
|
|
2441
|
+
/**
|
|
2442
|
+
* When false, only the icon rail is shown.
|
|
2398
2443
|
* @default false
|
|
2399
2444
|
*/
|
|
2400
2445
|
"open"?: boolean;
|
|
@@ -2832,11 +2877,11 @@ declare namespace LocalJSX {
|
|
|
2832
2877
|
"dismissLabel": string;
|
|
2833
2878
|
}
|
|
2834
2879
|
interface DsBarNavAttributes {
|
|
2880
|
+
"navStyle": NavChromeStyle;
|
|
2835
2881
|
"tabsJson": string;
|
|
2836
2882
|
"value": string;
|
|
2837
2883
|
"actionsJson": string;
|
|
2838
2884
|
"heading": string | undefined;
|
|
2839
|
-
"navStyle": NavChromeStyle;
|
|
2840
2885
|
"basePath": string;
|
|
2841
2886
|
"currentUrl": string;
|
|
2842
2887
|
}
|
|
@@ -2989,6 +3034,7 @@ declare namespace LocalJSX {
|
|
|
2989
3034
|
interface DsPanelToolsAttributes {
|
|
2990
3035
|
"open": boolean;
|
|
2991
3036
|
"activeTool": PanelToolsToolId | '';
|
|
3037
|
+
"itemsJson": string;
|
|
2992
3038
|
}
|
|
2993
3039
|
interface DsRadioGroupAttributes {
|
|
2994
3040
|
"value": string;
|
|
@@ -22,7 +22,7 @@ export declare function parseCssBackgroundPosition(value: string): ParsedPositio
|
|
|
22
22
|
export declare function badgeGradientPosition(badgeHost: HTMLElement, surface: GradientSurface, shellPosition: string): string;
|
|
23
23
|
/** Resolve shell gradient position from chrome host custom properties. */
|
|
24
24
|
export declare function readShellGradientPosition(surface: GradientSurface): string;
|
|
25
|
-
/** Stamp `--_badge-gradient-position` on the badge host. */
|
|
25
|
+
/** Stamp `--_badge-gradient-position` on the badge host (fixed viewport chrome). */
|
|
26
26
|
export declare function syncBadgeGradientPosition(badgeHost: HTMLElement): void;
|
|
27
27
|
export {};
|
|
28
28
|
//# sourceMappingURL=badge-gradient-ring.d.ts.map
|
|
@@ -2,7 +2,7 @@ export type { NavChromeStyle } from './nav-chrome';
|
|
|
2
2
|
export { NAV_STYLE_HINT_ATTR, readNavStyleAttr, setNavStyleHint, clearNavStyleHint, resolveNavChromeStyle, shouldResyncNavChromeStyle, } from './nav-chrome';
|
|
3
3
|
export { SHELL_BAR_NAV_VT_NAME, SHELL_NAV_REVEAL_DURATION_VAR, SHELL_NAV_REVEAL_EASING_VAR, parseCssTimeMs, ensureShellNavVtStyle, resolveShellNavRevealOrigin, setShellNavRevealOriginVars, animateShellNavRadialReveal, runShellNavStyleRevealOnReady, } from './shell-view-transition';
|
|
4
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,
|
|
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_CHROME_SURFACE_POSITION_VAR, SHELL_GRADIENT_OPACITY, buildShellRadialGradient, shellGradientImage, shellGradientSize, shellGradientPositionPanel, shellGradientPositionBar, shellChromeSurfacePosition, } from './shell-gradient';
|
|
6
6
|
export type { ShellGradientLayout } from './shell-gradient';
|
|
7
7
|
export { BADGE_GRADIENT_POSITION_VAR, badgeGradientPosition, findGradientSurface, isShellGradientActive, parseCssBackgroundPosition, readShellGradientPosition, syncBadgeGradientPosition, } from './badge-gradient-ring';
|
|
8
8
|
export type { GradientSurface } from './badge-gradient-ring';
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export type NavChromeStyle = '
|
|
3
|
-
/**
|
|
1
|
+
/** Nav chrome style slot — dashboard vs settings. Colors unified for now; texture hooks use the class. */
|
|
2
|
+
export type NavChromeStyle = 'dashboard' | 'settings';
|
|
3
|
+
/** Document hint for first paint before framework props land. */
|
|
4
4
|
export declare const NAV_STYLE_HINT_ATTR = "data-nav-style";
|
|
5
|
-
/** Parse `nav-style` from a host or document hint attribute value. */
|
|
6
5
|
export declare function readNavStyleAttr(attr: string | null): NavChromeStyle | undefined;
|
|
7
|
-
/** Set a document-level style hint before nav custom elements upgrade (hard reload). */
|
|
8
6
|
export declare function setNavStyleHint(style: NavChromeStyle): void;
|
|
9
7
|
export declare function clearNavStyleHint(): void;
|
|
10
|
-
|
|
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. */
|
|
8
|
+
export declare function resolveNavChromeStyle(styleProp: NavChromeStyle, hostAttr: string | null, docHint?: string | null): NavChromeStyle;
|
|
13
9
|
export declare function shouldResyncNavChromeStyle(renderedStyle: NavChromeStyle, style: NavChromeStyle): boolean;
|
|
14
10
|
//# sourceMappingURL=nav-chrome.d.ts.map
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import type { NavChromeStyle } from './nav-chrome';
|
|
2
1
|
/** CSS var names consumed by `ds-panel-nav` / `ds-bar-nav` inside `ds-app-shell`. */
|
|
3
2
|
export declare const SHELL_GRADIENT_IMAGE_VAR = "--ds-shell-gradient-image";
|
|
4
3
|
export declare const SHELL_GRADIENT_SIZE_VAR = "--ds-shell-gradient-size";
|
|
5
4
|
export declare const SHELL_GRADIENT_POSITION_PANEL_VAR = "--ds-shell-gradient-position-panel";
|
|
6
5
|
export declare const SHELL_GRADIENT_POSITION_BAR_VAR = "--ds-shell-gradient-position-bar";
|
|
7
6
|
export declare const SHELL_GRADIENT_OPACITY_VAR = "--ds-shell-gradient-opacity";
|
|
7
|
+
/** Per chrome-surface background-position — offsets wash + grid to shell row origin. */
|
|
8
|
+
export declare const SHELL_CHROME_SURFACE_POSITION_VAR = "--ds-shell-chrome-surface-position";
|
|
8
9
|
/** Layer opacity for the nav gradient wash. */
|
|
9
10
|
export declare const SHELL_GRADIENT_OPACITY = "0.1";
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
+
* Shell radial wash — same for panel and bar nav.
|
|
12
13
|
* Tokens follow `data-theme` (light/dark blue intent).
|
|
13
14
|
*/
|
|
14
15
|
export declare function buildShellRadialGradient(): string;
|
|
15
16
|
/** Built-in radial image (optional `gradientSrc` on shell overrides). */
|
|
16
|
-
export declare function
|
|
17
|
+
export declare function shellGradientImage(): string;
|
|
17
18
|
export interface ShellGradientLayout {
|
|
18
19
|
width: number;
|
|
19
20
|
height: number;
|
|
@@ -22,4 +23,6 @@ export interface ShellGradientLayout {
|
|
|
22
23
|
export declare function shellGradientSize(layout: ShellGradientLayout): string;
|
|
23
24
|
export declare function shellGradientPositionPanel(): string;
|
|
24
25
|
export declare function shellGradientPositionBar(panelWidth: number): string;
|
|
26
|
+
/** Phase-lock a chrome rect to the shell row coordinate system (wash + grid). */
|
|
27
|
+
export declare function shellChromeSurfacePosition(leftPx: number, topPx: number): string;
|
|
25
28
|
//# sourceMappingURL=shell-gradient.d.ts.map
|
package/package.json
CHANGED
package/src/angular/proxies.ts
CHANGED
|
@@ -689,18 +689,20 @@ export declare interface DsPanelNav extends Components.DsPanelNav {
|
|
|
689
689
|
|
|
690
690
|
|
|
691
691
|
@ProxyCmp({
|
|
692
|
-
inputs: ['activeTool', 'open']
|
|
692
|
+
inputs: ['activeTool', 'items', 'itemsJson', 'open']
|
|
693
693
|
})
|
|
694
694
|
@Component({
|
|
695
695
|
selector: 'ds-panel-tools',
|
|
696
696
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
697
697
|
template: '<ng-content></ng-content>',
|
|
698
698
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
699
|
-
inputs: ['activeTool', 'open'],
|
|
699
|
+
inputs: ['activeTool', 'items', 'itemsJson', 'open'],
|
|
700
|
+
outputs: ['dsToolChange'],
|
|
700
701
|
standalone: false
|
|
701
702
|
})
|
|
702
703
|
export class DsPanelTools {
|
|
703
704
|
protected el: HTMLDsPanelToolsElement;
|
|
705
|
+
@Output() dsToolChange = new EventEmitter<CustomEvent<{ id: IDsPanelToolsPanelToolsToolId; selected: boolean; }>>();
|
|
704
706
|
constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {
|
|
705
707
|
c.detach();
|
|
706
708
|
this.el = r.nativeElement;
|
|
@@ -708,7 +710,14 @@ export class DsPanelTools {
|
|
|
708
710
|
}
|
|
709
711
|
|
|
710
712
|
|
|
711
|
-
|
|
713
|
+
import type { PanelToolsToolId as IDsPanelToolsPanelToolsToolId } from '@ds-mo/ui';
|
|
714
|
+
|
|
715
|
+
export declare interface DsPanelTools extends Components.DsPanelTools {
|
|
716
|
+
/**
|
|
717
|
+
* Emitted when a rail button is toggled. Detail = { id, selected }.
|
|
718
|
+
*/
|
|
719
|
+
dsToolChange: EventEmitter<CustomEvent<{ id: IDsPanelToolsPanelToolsToolId; selected: boolean; }>>;
|
|
720
|
+
}
|
|
712
721
|
|
|
713
722
|
|
|
714
723
|
@ProxyCmp({
|
|
@@ -7,20 +7,21 @@
|
|
|
7
7
|
|
|
8
8
|
/* eslint-disable */
|
|
9
9
|
|
|
10
|
-
import type { StencilReactComponent } from '@stencil/react-output-target/runtime';
|
|
10
|
+
import type { EventName, StencilReactComponent } from '@stencil/react-output-target/runtime';
|
|
11
11
|
import { createComponent } from '@stencil/react-output-target/runtime';
|
|
12
12
|
import React from 'react';
|
|
13
13
|
|
|
14
|
+
import { type DsPanelToolsCustomEvent, type PanelToolsToolId } from "@ds-mo/ui";
|
|
14
15
|
import type { Components } from "@ds-mo/ui/dist/components";
|
|
15
16
|
import { DsPanelTools as DsPanelToolsElement, defineCustomElement as defineDsPanelTools } from "@ds-mo/ui/dist/components/ds-panel-tools.js";
|
|
16
17
|
|
|
17
|
-
export type DsPanelToolsEvents =
|
|
18
|
+
export type DsPanelToolsEvents = { onDsToolChange: EventName<DsPanelToolsCustomEvent<{ id: PanelToolsToolId; selected: boolean; }>> };
|
|
18
19
|
|
|
19
20
|
export const DsPanelTools: StencilReactComponent<DsPanelToolsElement, DsPanelToolsEvents, Components.DsPanelTools> = /*@__PURE__*/ createComponent<DsPanelToolsElement, DsPanelToolsEvents, Components.DsPanelTools>({
|
|
20
21
|
tagName: 'ds-panel-tools',
|
|
21
22
|
elementClass: DsPanelToolsElement,
|
|
22
23
|
// @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
|
|
23
24
|
react: React,
|
|
24
|
-
events: {} as DsPanelToolsEvents,
|
|
25
|
+
events: { onDsToolChange: 'dsToolChange' } as DsPanelToolsEvents,
|
|
25
26
|
defineCustomElement: defineDsPanelTools
|
|
26
27
|
});
|