@ds-mo/ui 14.22.1 → 14.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +5 -1
- package/dist/agent.json +56 -13
- package/dist/angular/ds-panel-tools.d.ts +7 -1
- package/dist/angular/ds-panel-tools.js +7 -4
- package/dist/angular/ds-shell-app.d.ts +7 -1
- package/dist/angular/ds-shell-app.js +5 -2
- package/dist/angular/ds-shell-tools.d.ts +4 -1
- package/dist/angular/ds-shell-tools.js +7 -4
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message-scroller.js.map +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/p-Bd-Kpekh.js +2 -0
- package/dist/components/p-Bd-Kpekh.js.map +1 -0
- package/dist/components/{p-DrVA5L25.js → p-BmqnrfTf.js} +2 -2
- package/dist/components/p-BmqnrfTf.js.map +1 -0
- package/dist/components/p-C13fWp2x.js +2 -0
- package/dist/components/p-C13fWp2x.js.map +1 -0
- package/dist/docs/components.json +178 -3
- package/dist/lib/components/PanelTools/panel-tools-types.d.ts +76 -1
- package/dist/lib/components/ShellApp/shell-app-types.d.ts +3 -1
- package/dist/lib/shell/index.d.ts +1 -1
- package/dist/lib/shell/index.js.map +2 -2
- package/dist/mcp-data/registry/agent-activity.json +1 -1
- package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
- package/dist/mcp-data/registry/agent-response.json +1 -1
- package/dist/mcp-data/registry/agent-source-list.json +1 -1
- package/dist/mcp-data/registry/agent-tool-call.json +1 -1
- package/dist/mcp-data/registry/attachment-list.json +1 -1
- package/dist/mcp-data/registry/avatar.json +1 -1
- package/dist/mcp-data/registry/badge.json +1 -1
- package/dist/mcp-data/registry/banner.json +1 -1
- package/dist/mcp-data/registry/bar-action.json +1 -1
- package/dist/mcp-data/registry/bar-nav.json +1 -1
- package/dist/mcp-data/registry/bar-title.json +1 -1
- package/dist/mcp-data/registry/bar-workflow.json +1 -1
- package/dist/mcp-data/registry/breadcrumb.json +1 -1
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/button-unfilled.json +1 -1
- package/dist/mcp-data/registry/card-chart.json +1 -1
- package/dist/mcp-data/registry/card-overview.json +1 -1
- package/dist/mcp-data/registry/card-setting.json +1 -1
- package/dist/mcp-data/registry/chart-legend.json +1 -1
- package/dist/mcp-data/registry/chart.json +1 -1
- package/dist/mcp-data/registry/checkbox.json +1 -1
- package/dist/mcp-data/registry/chip.json +1 -1
- package/dist/mcp-data/registry/code-block.json +1 -1
- package/dist/mcp-data/registry/conversation-list-item.json +1 -1
- package/dist/mcp-data/registry/conversation-list-section.json +1 -1
- package/dist/mcp-data/registry/conversation-list.json +1 -1
- package/dist/mcp-data/registry/divider.json +1 -1
- package/dist/mcp-data/registry/empty-state.json +1 -1
- package/dist/mcp-data/registry/field.json +1 -1
- package/dist/mcp-data/registry/filter-menu.json +1 -1
- package/dist/mcp-data/registry/icon.json +1 -1
- package/dist/mcp-data/registry/input.json +1 -1
- package/dist/mcp-data/registry/loader.json +1 -1
- package/dist/mcp-data/registry/markdown.json +1 -1
- package/dist/mcp-data/registry/menu.json +1 -1
- package/dist/mcp-data/registry/message-actions.json +1 -1
- package/dist/mcp-data/registry/message-bubble.json +1 -1
- package/dist/mcp-data/registry/message-composer.json +1 -1
- package/dist/mcp-data/registry/message-scroller.json +9 -2
- package/dist/mcp-data/registry/message.json +1 -1
- package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
- package/dist/mcp-data/registry/mobile-header.json +1 -1
- package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
- package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
- package/dist/mcp-data/registry/modal.json +1 -1
- package/dist/mcp-data/registry/pagination.json +1 -1
- package/dist/mcp-data/registry/panel-nav.json +2 -2
- package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
- package/dist/mcp-data/registry/panel-tool-header.json +1 -1
- package/dist/mcp-data/registry/panel-tool-search.json +1 -1
- package/dist/mcp-data/registry/panel-tools.json +62 -15
- package/dist/mcp-data/registry/paper-texture.json +1 -1
- package/dist/mcp-data/registry/radio.json +1 -1
- package/dist/mcp-data/registry/registry.json +56 -13
- package/dist/mcp-data/registry/scroll-overlay.json +1 -1
- package/dist/mcp-data/registry/select.json +1 -1
- package/dist/mcp-data/registry/shell-app.json +22 -3
- package/dist/mcp-data/registry/shell-page.json +1 -1
- package/dist/mcp-data/registry/shell-tools.json +39 -6
- package/dist/mcp-data/registry/skeleton.json +1 -1
- package/dist/mcp-data/registry/slider.json +1 -1
- package/dist/mcp-data/registry/swatch-picker.json +1 -1
- package/dist/mcp-data/registry/switch.json +1 -1
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/table-filter.json +1 -1
- package/dist/mcp-data/registry/table-group.json +1 -1
- package/dist/mcp-data/registry/table-saved-views.json +1 -1
- package/dist/mcp-data/registry/table-search.json +1 -1
- package/dist/mcp-data/registry/table-sort.json +1 -1
- package/dist/mcp-data/registry/table-toolbar.json +1 -1
- package/dist/mcp-data/registry/table.json +1 -1
- package/dist/mcp-data/registry/tag.json +1 -1
- package/dist/mcp-data/registry/text.json +1 -1
- package/dist/mcp-data/registry/toast.json +1 -1
- package/dist/mcp-data/registry/tooltip-chart.json +1 -1
- package/dist/mcp-data/registry/tooltip.json +1 -1
- package/dist/mcp-data/registry/typing-indicator.json +1 -1
- package/dist/react/ds-panel-tools.d.ts +2 -1
- package/dist/react/ds-panel-tools.js +1 -0
- package/dist/react/ds-shell-app.d.ts +2 -1
- package/dist/react/ds-shell-app.js +1 -0
- package/dist/react/ds-shell-tools.d.ts +2 -1
- package/dist/react/ds-shell-tools.js +2 -1
- package/dist/types/components/MessageScroller/MessageScroller.d.ts +14 -0
- package/dist/types/components/MessageScroller/message-scroller-transcript.d.ts +9 -0
- package/dist/types/components/PanelNav/PanelNav.d.ts +6 -1
- package/dist/types/components/PanelTools/PanelTools.d.ts +17 -1
- package/dist/types/components/PanelTools/index.d.ts +1 -1
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +76 -1
- package/dist/types/components/PanelTools/panel-tools-utils.d.ts +17 -1
- package/dist/types/components/ShellApp/ShellApp.d.ts +4 -1
- package/dist/types/components/ShellApp/shell-app-types.d.ts +3 -1
- package/dist/types/components/ShellTools/ShellTools.d.ts +5 -1
- package/dist/types/components/ShellTools/index.d.ts +1 -1
- package/dist/types/components.d.ts +34 -2
- package/dist/types/shell/index.d.ts +1 -1
- package/dist/vue/ds-panel-tools.js +3 -0
- package/dist/vue/ds-shell-app.js +2 -0
- package/dist/vue/ds-shell-tools.js +5 -2
- package/package.json +3 -3
- package/dist/components/p-COFw_fcj.js +0 -2
- package/dist/components/p-COFw_fcj.js.map +0 -1
- package/dist/components/p-CvHrCyuz.js +0 -2
- package/dist/components/p-CvHrCyuz.js.map +0 -1
- package/dist/components/p-DrVA5L25.js.map +0 -1
|
@@ -9,6 +9,7 @@ export declare const PANEL_TOOLS_PRIMARY_TOOL_ID: CanonicalPanelToolsToolId;
|
|
|
9
9
|
export declare const PANEL_TOOLS_FOOTER_TOOL_ID: CanonicalPanelToolsToolId;
|
|
10
10
|
export declare const PANEL_TOOLS_LABELS: Record<CanonicalPanelToolsToolId, string>;
|
|
11
11
|
export declare const PANEL_TOOLS_SHORTCUTS: Partial<Record<CanonicalPanelToolsToolId, string>>;
|
|
12
|
+
export type PanelToolsRailPlacement = 'header' | 'body' | 'footer';
|
|
12
13
|
export interface PanelToolsItem {
|
|
13
14
|
id: PanelToolsToolId;
|
|
14
15
|
/** Icon name for <ds-icon>. */
|
|
@@ -16,7 +17,7 @@ export interface PanelToolsItem {
|
|
|
16
17
|
/** Visible and accessible fallback label for custom tool ids. */
|
|
17
18
|
label?: string;
|
|
18
19
|
/** Explicit rail region; canonical Agents/Help placement is the fallback. */
|
|
19
|
-
railPlacement?:
|
|
20
|
+
railPlacement?: PanelToolsRailPlacement;
|
|
20
21
|
/** Stable ordering within the selected rail region. */
|
|
21
22
|
order?: number;
|
|
22
23
|
/** Optional shortcut label displayed by the tooltip. */
|
|
@@ -30,6 +31,79 @@ export interface PanelToolsItem {
|
|
|
30
31
|
isInactive?: boolean;
|
|
31
32
|
ariaLabel?: string;
|
|
32
33
|
}
|
|
34
|
+
export type PanelToolsRailAccessoryVisual = {
|
|
35
|
+
type: 'icon';
|
|
36
|
+
icon: string;
|
|
37
|
+
} | {
|
|
38
|
+
type: 'initial';
|
|
39
|
+
initial: string;
|
|
40
|
+
} | {
|
|
41
|
+
type: 'image';
|
|
42
|
+
src: string;
|
|
43
|
+
};
|
|
44
|
+
export interface PanelToolsRailAccessoryAction {
|
|
45
|
+
/** Stable application-owned action id emitted with the accessory id. */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Overrides the accessory label for the primary action. */
|
|
48
|
+
ariaLabel?: string;
|
|
49
|
+
isInactive?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface PanelToolsRailAccessorySecondaryAction {
|
|
52
|
+
id: string;
|
|
53
|
+
icon: string;
|
|
54
|
+
ariaLabel: string;
|
|
55
|
+
isInactive?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export type PanelToolsRailTransientTone = 'active' | 'positive';
|
|
58
|
+
interface PanelToolsRailAccessoryBase {
|
|
59
|
+
/** Stable application-owned identity. Duplicate or blank ids are omitted. */
|
|
60
|
+
id: string;
|
|
61
|
+
/** Explicit rail region; accessories never infer placement from their id. */
|
|
62
|
+
railPlacement: PanelToolsRailPlacement;
|
|
63
|
+
/** Stable ordering within the selected rail region. */
|
|
64
|
+
order: number;
|
|
65
|
+
}
|
|
66
|
+
/** Decorative boundary between application-owned rail accessory groups. */
|
|
67
|
+
export interface PanelToolsRailDividerAccessory extends PanelToolsRailAccessoryBase {
|
|
68
|
+
type: 'divider';
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A compact one-action shortcut that matches standard tool-button geometry.
|
|
72
|
+
* PanelTools owns its initial orb, notification dot, and transient interaction paint.
|
|
73
|
+
*/
|
|
74
|
+
export interface PanelToolsRailShortcutAccessory extends PanelToolsRailAccessoryBase {
|
|
75
|
+
type: 'shortcut';
|
|
76
|
+
/** Accessible shortcut name and action-label fallback. */
|
|
77
|
+
ariaLabel: string;
|
|
78
|
+
/** One or two displayed graphemes. Longer values are truncated visually. */
|
|
79
|
+
initials: string;
|
|
80
|
+
/** Supplemental notification dot. Include its meaning in the accessible label when needed. */
|
|
81
|
+
dot?: boolean;
|
|
82
|
+
action: PanelToolsRailAccessoryAction;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A direct application intent that never selects a tool or changes drawer state.
|
|
86
|
+
* PanelTools owns the two-control-height surface and its focus behavior.
|
|
87
|
+
*/
|
|
88
|
+
export interface PanelToolsRailTransientAccessory extends PanelToolsRailAccessoryBase {
|
|
89
|
+
type: 'transient';
|
|
90
|
+
/** Accessible accessory name and primary-action fallback label. */
|
|
91
|
+
ariaLabel: string;
|
|
92
|
+
visual: PanelToolsRailAccessoryVisual;
|
|
93
|
+
/** State announced with the primary action and shown in its tooltip. */
|
|
94
|
+
statusText: string;
|
|
95
|
+
/** Bold surface treatment. Active uses brand; positive uses positive semantic color. */
|
|
96
|
+
statusTone: PanelToolsRailTransientTone;
|
|
97
|
+
primaryAction: PanelToolsRailAccessoryAction;
|
|
98
|
+
secondaryAction?: PanelToolsRailAccessorySecondaryAction;
|
|
99
|
+
}
|
|
100
|
+
export type PanelToolsRailAccessory = PanelToolsRailDividerAccessory | PanelToolsRailShortcutAccessory | PanelToolsRailTransientAccessory;
|
|
101
|
+
export interface PanelToolsRailAccessoryActionDetail {
|
|
102
|
+
accessoryId: string;
|
|
103
|
+
actionId: string;
|
|
104
|
+
/** Rendered action control, suitable for anchoring an application-owned overlay. */
|
|
105
|
+
anchor: HTMLElement;
|
|
106
|
+
}
|
|
33
107
|
/** Canonical shell recipe used by Lab and by managed ShellApp examples. */
|
|
34
108
|
export declare const PANEL_TOOLS_DEFAULT_ITEMS: PanelToolsItem[];
|
|
35
109
|
export interface PanelToolsHeaderAction {
|
|
@@ -64,4 +138,5 @@ export interface PanelToolsHeaderConfig {
|
|
|
64
138
|
}
|
|
65
139
|
/** Per-tool header state. The application replaces the object when a tool changes depth or actions. */
|
|
66
140
|
export type PanelToolsHeaders = Partial<Record<PanelToolsToolId, PanelToolsHeaderConfig>>;
|
|
141
|
+
export {};
|
|
67
142
|
//# sourceMappingURL=panel-tools-types.d.ts.map
|
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
import { type PanelToolsItem, type PanelToolsToolId } from './panel-tools-types';
|
|
1
|
+
import { type PanelToolsItem, type PanelToolsRailAccessory, type PanelToolsRailAccessoryActionDetail, type PanelToolsToolId } from './panel-tools-types';
|
|
2
2
|
export declare function orderPanelToolsItems(items: PanelToolsItem[]): PanelToolsItem[];
|
|
3
|
+
export type PanelToolsRailEntry = {
|
|
4
|
+
type: 'tool';
|
|
5
|
+
id: string;
|
|
6
|
+
item: PanelToolsItem;
|
|
7
|
+
} | {
|
|
8
|
+
type: 'accessory';
|
|
9
|
+
id: string;
|
|
10
|
+
accessory: PanelToolsRailAccessory;
|
|
11
|
+
};
|
|
12
|
+
/** Merge tools and governed accessories into one visual and keyboard order. */
|
|
13
|
+
export declare function orderPanelToolsRailEntries(items: PanelToolsItem[], accessories: PanelToolsRailAccessory[]): PanelToolsRailEntry[];
|
|
14
|
+
/** Flatten interactive entries while leaving decorative boundaries out of focus order. */
|
|
15
|
+
export declare function panelToolsRailFocusKeys(entries: PanelToolsRailEntry[]): string[];
|
|
16
|
+
/** Preserve the current target across collection changes, or choose its nearest survivor. */
|
|
17
|
+
export declare function reconcilePanelToolsRovingIndex(previousKeys: string[], nextKeys: string[], currentIndex: number): number;
|
|
18
|
+
export declare function panelToolsRailAccessoryActionDetail(accessoryId: string, actionId: string, anchor: HTMLElement): PanelToolsRailAccessoryActionDetail;
|
|
3
19
|
export declare function isPanelToolsToolId(value: string | null): value is PanelToolsToolId;
|
|
4
20
|
export declare function panelToolsRailPlacement(item: PanelToolsItem): 'header' | 'body' | 'footer';
|
|
5
21
|
export declare function reconcilePanelToolsAvailability(items: PanelToolsItem[], open: boolean, activeTool: PanelToolsToolId | ''): {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
2
|
import type { NavChromeStyle } from '../../shell/nav-chrome';
|
|
3
|
-
import type { PanelToolsToolId } from '../PanelTools/panel-tools-types';
|
|
3
|
+
import type { PanelToolsRailAccessoryActionDetail, PanelToolsToolId } from '../PanelTools/panel-tools-types';
|
|
4
4
|
import type { BreadcrumbSelectDetail } from '../Breadcrumb/breadcrumb-types';
|
|
5
5
|
import { type ShellGradientPreset } from '../../shell/shell-gradient-presets';
|
|
6
6
|
import { type MobileDestination, type ShellResponsiveMode } from '../../shell/shell-responsive';
|
|
@@ -67,6 +67,8 @@ export declare class ShellApp {
|
|
|
67
67
|
tool: PanelToolsToolId;
|
|
68
68
|
id: string;
|
|
69
69
|
}>;
|
|
70
|
+
/** Managed desktop/tablet rail accessory intent. */
|
|
71
|
+
dsRailAccessoryAction: EventEmitter<PanelToolsRailAccessoryActionDetail>;
|
|
70
72
|
/** Managed drawer/fullscreen presentation state. */
|
|
71
73
|
dsPresentationChange: EventEmitter<{
|
|
72
74
|
presentation: 'drawer' | 'fullscreen';
|
|
@@ -159,6 +161,7 @@ export declare class ShellApp {
|
|
|
159
161
|
private handleManagedPresentationChange;
|
|
160
162
|
private handleManagedHeaderBack;
|
|
161
163
|
private handleManagedHeaderAction;
|
|
164
|
+
private handleManagedRailAccessoryAction;
|
|
162
165
|
private handleManagedSheetToggle;
|
|
163
166
|
private activateManagedMobileTool;
|
|
164
167
|
private handleManagedMobileDestination;
|
|
@@ -3,7 +3,7 @@ import type { BarTitleActionItem, BarTitlePrimaryAction } from '../BarTitle/bar-
|
|
|
3
3
|
import type { BreadcrumbItem } from '../Breadcrumb/breadcrumb-types';
|
|
4
4
|
import type { MobileHeaderTone } from '../MobileHeader/mobile-header-types';
|
|
5
5
|
import type { PanelNavGroup, PanelNavItem, PanelNavRouterMode } from '../PanelNav/panel-nav-types';
|
|
6
|
-
import type { PanelToolsHeaders, PanelToolsHeaderAction, PanelToolsItem } from '../PanelTools/panel-tools-types';
|
|
6
|
+
import type { PanelToolsHeaders, PanelToolsHeaderAction, PanelToolsItem, PanelToolsRailAccessory } from '../PanelTools/panel-tools-types';
|
|
7
7
|
import type { NavChromeStyle } from '../../shell/nav-chrome';
|
|
8
8
|
import type { ShellPageContentInset, ShellPageContentSurface } from '../ShellPage/shell-page-types';
|
|
9
9
|
export type ShellAppComposition = 'managed' | 'slotted';
|
|
@@ -93,6 +93,8 @@ export interface ShellPageChromeConfig {
|
|
|
93
93
|
*/
|
|
94
94
|
export interface ShellToolsConfig {
|
|
95
95
|
items?: PanelToolsItem[];
|
|
96
|
+
/** Desktop/tablet-only direct rail intents and decorative group boundaries. */
|
|
97
|
+
accessories?: PanelToolsRailAccessory[];
|
|
96
98
|
headers?: PanelToolsHeaders;
|
|
97
99
|
storageKey?: string;
|
|
98
100
|
fullscreenHeaderMode?: 'shared' | 'split';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
-
import { type PanelToolsHeaders, type PanelToolsItem, type PanelToolsToolId } from '../PanelTools/panel-tools-types';
|
|
2
|
+
import { type PanelToolsHeaders, type PanelToolsItem, type PanelToolsRailAccessory, type PanelToolsRailAccessoryActionDetail, type PanelToolsToolId } from '../PanelTools/panel-tools-types';
|
|
3
3
|
import { type ShellResponsiveMode } from '../../shell/shell-responsive';
|
|
4
4
|
export declare class ShellTools {
|
|
5
5
|
el: HTMLElement;
|
|
@@ -10,6 +10,8 @@ export declare class ShellTools {
|
|
|
10
10
|
presentation: 'drawer' | 'fullscreen';
|
|
11
11
|
fullscreenHeaderMode: 'shared' | 'split';
|
|
12
12
|
items: PanelToolsItem[];
|
|
13
|
+
/** Desktop/tablet rail accessories. Intentionally omitted from the mobile tool stage. */
|
|
14
|
+
accessories: PanelToolsRailAccessory[];
|
|
13
15
|
headers: PanelToolsHeaders;
|
|
14
16
|
storageKey: string;
|
|
15
17
|
toolsLabel: string;
|
|
@@ -31,6 +33,7 @@ export declare class ShellTools {
|
|
|
31
33
|
tool: PanelToolsToolId;
|
|
32
34
|
id: string;
|
|
33
35
|
}>;
|
|
36
|
+
dsRailAccessoryAction: EventEmitter<PanelToolsRailAccessoryActionDetail>;
|
|
34
37
|
private panelToolsEl;
|
|
35
38
|
private get resolvedItems();
|
|
36
39
|
private get availableInboxTools();
|
|
@@ -46,6 +49,7 @@ export declare class ShellTools {
|
|
|
46
49
|
private selectInboxTool;
|
|
47
50
|
private handlePanelToolChange;
|
|
48
51
|
private handlePanelPresentationChange;
|
|
52
|
+
private handlePanelRailAccessoryAction;
|
|
49
53
|
private handleMobileHeaderAction;
|
|
50
54
|
/** Match PanelTools' imperative activation contract in every responsive mode. */
|
|
51
55
|
activateTool(id: PanelToolsToolId): Promise<void>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { ShellTools } from './ShellTools';
|
|
2
|
-
export type { PanelToolsHeaderAction, PanelToolsHeaderConfig, PanelToolsHeaders, PanelToolsItem, PanelToolsToolId, } from '../PanelTools/panel-tools-types';
|
|
2
|
+
export type { PanelToolsHeaderAction, PanelToolsHeaderConfig, PanelToolsHeaders, PanelToolsItem, PanelToolsRailAccessory, PanelToolsRailAccessoryAction, PanelToolsRailAccessoryActionDetail, PanelToolsRailAccessorySecondaryAction, PanelToolsRailAccessoryVisual, PanelToolsRailDividerAccessory, PanelToolsRailPlacement, PanelToolsRailShortcutAccessory, PanelToolsRailTransientAccessory, PanelToolsRailTransientTone, PanelToolsToolId, } from '../PanelTools/panel-tools-types';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -51,7 +51,7 @@ import { PaginationChangeDetail, PaginationPageSizeMode } from "./components/Pag
|
|
|
51
51
|
import { ChromeTransitionDetail } from "./shell/chrome-transition";
|
|
52
52
|
import { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
|
|
53
53
|
import { PanelSubNavBackground } from "./components/PanelSubNav/PanelSubNav";
|
|
54
|
-
import { PanelToolHeaderActionDetail, PanelToolsHeaderAction, PanelToolsHeaderActionDetail, PanelToolsHeaders, PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
54
|
+
import { PanelToolHeaderActionDetail, PanelToolsHeaderAction, PanelToolsHeaderActionDetail, PanelToolsHeaders, PanelToolsItem, PanelToolsRailAccessory, PanelToolsRailAccessoryActionDetail, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
55
55
|
import { PaperTextureConfig } from "./components/PaperTexture/paper-texture-types";
|
|
56
56
|
import { RadioOption, RadioSize } from "./components/Radio/Radio";
|
|
57
57
|
import { ScrollOverlayScrollDetail } from "./components/ScrollOverlay/ScrollOverlay";
|
|
@@ -121,7 +121,7 @@ export { PaginationChangeDetail, PaginationPageSizeMode } from "./components/Pag
|
|
|
121
121
|
export { ChromeTransitionDetail } from "./shell/chrome-transition";
|
|
122
122
|
export { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
|
|
123
123
|
export { PanelSubNavBackground } from "./components/PanelSubNav/PanelSubNav";
|
|
124
|
-
export { PanelToolHeaderActionDetail, PanelToolsHeaderAction, PanelToolsHeaderActionDetail, PanelToolsHeaders, PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
124
|
+
export { PanelToolHeaderActionDetail, PanelToolsHeaderAction, PanelToolsHeaderActionDetail, PanelToolsHeaders, PanelToolsItem, PanelToolsRailAccessory, PanelToolsRailAccessoryActionDetail, PanelToolsToolId } from "./components/PanelTools/panel-tools-types";
|
|
125
125
|
export { PaperTextureConfig } from "./components/PaperTexture/paper-texture-types";
|
|
126
126
|
export { RadioOption, RadioSize } from "./components/Radio/Radio";
|
|
127
127
|
export { ScrollOverlayScrollDetail } from "./components/ScrollOverlay/ScrollOverlay";
|
|
@@ -2249,6 +2249,11 @@ export namespace Components {
|
|
|
2249
2249
|
"value": string;
|
|
2250
2250
|
}
|
|
2251
2251
|
interface DsPanelTools {
|
|
2252
|
+
/**
|
|
2253
|
+
* Desktop/tablet-only application-owned rail boundaries and direct intents. Set via JS property and replace the array reference to update.
|
|
2254
|
+
* @default []
|
|
2255
|
+
*/
|
|
2256
|
+
"accessories": PanelToolsRailAccessory[];
|
|
2252
2257
|
/**
|
|
2253
2258
|
* Toggle any rail tool open/closed — shell shortcuts K/A/S/M/N call this.
|
|
2254
2259
|
*/
|
|
@@ -2699,6 +2704,11 @@ export namespace Components {
|
|
|
2699
2704
|
"scrollCompaction": boolean;
|
|
2700
2705
|
}
|
|
2701
2706
|
interface DsShellTools {
|
|
2707
|
+
/**
|
|
2708
|
+
* Desktop/tablet rail accessories. Intentionally omitted from the mobile tool stage.
|
|
2709
|
+
* @default []
|
|
2710
|
+
*/
|
|
2711
|
+
"accessories": PanelToolsRailAccessory[];
|
|
2702
2712
|
/**
|
|
2703
2713
|
* Match PanelTools' imperative activation contract in every responsive mode.
|
|
2704
2714
|
*/
|
|
@@ -4721,6 +4731,7 @@ declare global {
|
|
|
4721
4731
|
tool: PanelToolsToolId;
|
|
4722
4732
|
};
|
|
4723
4733
|
"dsHeaderAction": PanelToolsHeaderActionDetail;
|
|
4734
|
+
"dsRailAccessoryAction": PanelToolsRailAccessoryActionDetail;
|
|
4724
4735
|
"dsChromeTransitionStart": ChromeTransitionDetail;
|
|
4725
4736
|
"dsChromeTransitionEnd": ChromeTransitionDetail;
|
|
4726
4737
|
}
|
|
@@ -4812,6 +4823,7 @@ declare global {
|
|
|
4812
4823
|
"dsToolChange": { id: PanelToolsToolId; selected: boolean };
|
|
4813
4824
|
"dsHeaderBack": { tool: PanelToolsToolId };
|
|
4814
4825
|
"dsHeaderAction": { tool: PanelToolsToolId; id: string };
|
|
4826
|
+
"dsRailAccessoryAction": PanelToolsRailAccessoryActionDetail;
|
|
4815
4827
|
"dsPresentationChange": { presentation: 'drawer' | 'fullscreen' };
|
|
4816
4828
|
"dsBrowseContextChange": NavChromeStyle;
|
|
4817
4829
|
"dsNavFooterAction": void;
|
|
@@ -4852,6 +4864,7 @@ declare global {
|
|
|
4852
4864
|
tool: PanelToolsToolId;
|
|
4853
4865
|
id: string;
|
|
4854
4866
|
};
|
|
4867
|
+
"dsRailAccessoryAction": PanelToolsRailAccessoryActionDetail;
|
|
4855
4868
|
}
|
|
4856
4869
|
interface HTMLDsShellToolsElement extends Components.DsShellTools, HTMLStencilElement {
|
|
4857
4870
|
addEventListener<K extends keyof HTMLDsShellToolsElementEventMap>(type: K, listener: (this: HTMLDsShellToolsElement, ev: DsShellToolsCustomEvent<HTMLDsShellToolsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -7527,6 +7540,11 @@ declare namespace LocalJSX {
|
|
|
7527
7540
|
"value"?: string;
|
|
7528
7541
|
}
|
|
7529
7542
|
interface DsPanelTools {
|
|
7543
|
+
/**
|
|
7544
|
+
* Desktop/tablet-only application-owned rail boundaries and direct intents. Set via JS property and replace the array reference to update.
|
|
7545
|
+
* @default []
|
|
7546
|
+
*/
|
|
7547
|
+
"accessories"?: PanelToolsRailAccessory[];
|
|
7530
7548
|
/**
|
|
7531
7549
|
* Active tool view — `search`, `agents`, `messages`, `stacks`, `activity`, or `help`.
|
|
7532
7550
|
* @default ''
|
|
@@ -7568,6 +7586,10 @@ declare namespace LocalJSX {
|
|
|
7568
7586
|
"onDsPresentationChange"?: (event: DsPanelToolsCustomEvent<{
|
|
7569
7587
|
presentation: 'drawer' | 'fullscreen';
|
|
7570
7588
|
}>) => void;
|
|
7589
|
+
/**
|
|
7590
|
+
* Direct accessory intent. Emitting this event never changes the active tool or drawer.
|
|
7591
|
+
*/
|
|
7592
|
+
"onDsRailAccessoryAction"?: (event: DsPanelToolsCustomEvent<PanelToolsRailAccessoryActionDetail>) => void;
|
|
7571
7593
|
/**
|
|
7572
7594
|
* Emitted when a rail button is toggled. Detail = { id, selected }.
|
|
7573
7595
|
*/
|
|
@@ -7969,6 +7991,10 @@ declare namespace LocalJSX {
|
|
|
7969
7991
|
* Managed drawer/fullscreen presentation state.
|
|
7970
7992
|
*/
|
|
7971
7993
|
"onDsPresentationChange"?: (event: DsShellAppCustomEvent<{ presentation: 'drawer' | 'fullscreen' }>) => void;
|
|
7994
|
+
/**
|
|
7995
|
+
* Managed desktop/tablet rail accessory intent.
|
|
7996
|
+
*/
|
|
7997
|
+
"onDsRailAccessoryAction"?: (event: DsShellAppCustomEvent<PanelToolsRailAccessoryActionDetail>) => void;
|
|
7972
7998
|
/**
|
|
7973
7999
|
* Emitted after crossing the fixed 768px or 1200px shell boundaries.
|
|
7974
8000
|
*/
|
|
@@ -8060,6 +8086,11 @@ declare namespace LocalJSX {
|
|
|
8060
8086
|
"scrollCompaction"?: boolean;
|
|
8061
8087
|
}
|
|
8062
8088
|
interface DsShellTools {
|
|
8089
|
+
/**
|
|
8090
|
+
* Desktop/tablet rail accessories. Intentionally omitted from the mobile tool stage.
|
|
8091
|
+
* @default []
|
|
8092
|
+
*/
|
|
8093
|
+
"accessories"?: PanelToolsRailAccessory[];
|
|
8063
8094
|
/**
|
|
8064
8095
|
* @default ''
|
|
8065
8096
|
*/
|
|
@@ -8094,6 +8125,7 @@ declare namespace LocalJSX {
|
|
|
8094
8125
|
"onDsPresentationChange"?: (event: DsShellToolsCustomEvent<{
|
|
8095
8126
|
presentation: 'drawer' | 'fullscreen';
|
|
8096
8127
|
}>) => void;
|
|
8128
|
+
"onDsRailAccessoryAction"?: (event: DsShellToolsCustomEvent<PanelToolsRailAccessoryActionDetail>) => void;
|
|
8097
8129
|
"onDsToolChange"?: (event: DsShellToolsCustomEvent<{
|
|
8098
8130
|
id: PanelToolsToolId;
|
|
8099
8131
|
selected: boolean;
|
|
@@ -3,7 +3,7 @@ export type { PanelNavChildItem, PanelNavChildSelectDetail, PanelNavGroup, Panel
|
|
|
3
3
|
export type { BarNavTab } from '../components/BarNav/bar-nav-types';
|
|
4
4
|
export type { ShellPageContentInset, ShellPageContentSurface, ShellPageDesktopHeaderPlacement, } from '../components/ShellPage/shell-page-types';
|
|
5
5
|
export type { ShellAppComposition, ShellNavigationConfig, ShellNavigationSelectDetail, ShellPageChromeConfig, ShellSectionNavigation, ShellToolsConfig, } from '../components/ShellApp/shell-app-types';
|
|
6
|
-
export type { PanelToolsHeaderAction, PanelToolsHeaderActionDetail, PanelToolHeaderActionDetail, PanelToolsHeaderConfig, PanelToolsHeaders, PanelToolsItem, PanelToolsToolId, } from '../components/PanelTools/panel-tools-types';
|
|
6
|
+
export type { PanelToolsHeaderAction, PanelToolsHeaderActionDetail, PanelToolHeaderActionDetail, PanelToolsHeaderConfig, PanelToolsHeaders, PanelToolsItem, PanelToolsRailAccessory, PanelToolsRailAccessoryAction, PanelToolsRailAccessoryActionDetail, PanelToolsRailAccessorySecondaryAction, PanelToolsRailAccessoryVisual, PanelToolsRailDividerAccessory, PanelToolsRailPlacement, PanelToolsRailShortcutAccessory, PanelToolsRailTransientAccessory, PanelToolsRailTransientTone, PanelToolsToolId, } from '../components/PanelTools/panel-tools-types';
|
|
7
7
|
export { PANEL_TOOLS_DEFAULT_ITEMS } from '../components/PanelTools/panel-tools-types';
|
|
8
8
|
export { NAV_STYLE_HINT_ATTR, readNavStyleAttr, setNavStyleHint, clearNavStyleHint, } from './nav-chrome';
|
|
9
9
|
export type { MenuPlacement } from '../components/Menu/menu-placement';
|
|
@@ -9,6 +9,7 @@ export const DsPanelTools = /*@__PURE__*/ defineContainer('ds-panel-tools', defi
|
|
|
9
9
|
'fullscreenHeaderMode',
|
|
10
10
|
'activeTool',
|
|
11
11
|
'items',
|
|
12
|
+
'accessories',
|
|
12
13
|
'toolsLabel',
|
|
13
14
|
'toolShortcutsLabel',
|
|
14
15
|
'headers',
|
|
@@ -17,6 +18,7 @@ export const DsPanelTools = /*@__PURE__*/ defineContainer('ds-panel-tools', defi
|
|
|
17
18
|
'dsPresentationChange',
|
|
18
19
|
'dsHeaderBack',
|
|
19
20
|
'dsHeaderAction',
|
|
21
|
+
'dsRailAccessoryAction',
|
|
20
22
|
'dsChromeTransitionStart',
|
|
21
23
|
'dsChromeTransitionEnd'
|
|
22
24
|
], [
|
|
@@ -24,6 +26,7 @@ export const DsPanelTools = /*@__PURE__*/ defineContainer('ds-panel-tools', defi
|
|
|
24
26
|
'dsPresentationChange',
|
|
25
27
|
'dsHeaderBack',
|
|
26
28
|
'dsHeaderAction',
|
|
29
|
+
'dsRailAccessoryAction',
|
|
27
30
|
'dsChromeTransitionStart',
|
|
28
31
|
'dsChromeTransitionEnd'
|
|
29
32
|
]);
|
package/dist/vue/ds-shell-app.js
CHANGED
|
@@ -26,6 +26,7 @@ export const DsShellApp = /*@__PURE__*/ defineContainer('ds-shell-app', defineDs
|
|
|
26
26
|
'dsToolChange',
|
|
27
27
|
'dsHeaderBack',
|
|
28
28
|
'dsHeaderAction',
|
|
29
|
+
'dsRailAccessoryAction',
|
|
29
30
|
'dsPresentationChange',
|
|
30
31
|
'dsBrowseContextChange',
|
|
31
32
|
'dsNavFooterAction',
|
|
@@ -42,6 +43,7 @@ export const DsShellApp = /*@__PURE__*/ defineContainer('ds-shell-app', defineDs
|
|
|
42
43
|
'dsToolChange',
|
|
43
44
|
'dsHeaderBack',
|
|
44
45
|
'dsHeaderAction',
|
|
46
|
+
'dsRailAccessoryAction',
|
|
45
47
|
'dsPresentationChange',
|
|
46
48
|
'dsBrowseContextChange',
|
|
47
49
|
'dsNavFooterAction',
|
|
@@ -10,6 +10,7 @@ export const DsShellTools = /*@__PURE__*/ defineContainer('ds-shell-tools', defi
|
|
|
10
10
|
'presentation',
|
|
11
11
|
'fullscreenHeaderMode',
|
|
12
12
|
'items',
|
|
13
|
+
'accessories',
|
|
13
14
|
'headers',
|
|
14
15
|
'storageKey',
|
|
15
16
|
'toolsLabel',
|
|
@@ -19,10 +20,12 @@ export const DsShellTools = /*@__PURE__*/ defineContainer('ds-shell-tools', defi
|
|
|
19
20
|
'dsToolChange',
|
|
20
21
|
'dsPresentationChange',
|
|
21
22
|
'dsHeaderBack',
|
|
22
|
-
'dsHeaderAction'
|
|
23
|
+
'dsHeaderAction',
|
|
24
|
+
'dsRailAccessoryAction'
|
|
23
25
|
], [
|
|
24
26
|
'dsToolChange',
|
|
25
27
|
'dsPresentationChange',
|
|
26
28
|
'dsHeaderBack',
|
|
27
|
-
'dsHeaderAction'
|
|
29
|
+
'dsHeaderAction',
|
|
30
|
+
'dsRailAccessoryAction'
|
|
28
31
|
]);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ds-mo/ui",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.23.0",
|
|
4
4
|
"description": "CompoMo — composable web components styled with TokoMo design tokens",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"@angular/core": ">=19 <23",
|
|
126
126
|
"@angular/forms": ">=19 <23",
|
|
127
127
|
"@ds-mo/icons": "^7.0.0",
|
|
128
|
-
"@ds-mo/tokens": "^6.5.
|
|
128
|
+
"@ds-mo/tokens": "^6.5.1",
|
|
129
129
|
"react": "^18 || ^19",
|
|
130
130
|
"react-dom": "^18 || ^19",
|
|
131
131
|
"rxjs": "^7.8.0",
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"@angular/forms": "^22.0.7",
|
|
159
159
|
"@axe-core/playwright": "^4.12.1",
|
|
160
160
|
"@ds-mo/icons": "^7.0.0",
|
|
161
|
-
"@ds-mo/tokens": "^6.5.
|
|
161
|
+
"@ds-mo/tokens": "^6.5.1",
|
|
162
162
|
"@eslint/js": "^10.0.1",
|
|
163
163
|
"@fontsource-variable/inter": "^5.3.0",
|
|
164
164
|
"@fontsource/fira-code": "^5.3.0",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as e,H as s,c as t,h as o,a as i,t as n}from"./index.js";import{p as r}from"./p-CUL5_8JM.js";import{d as a}from"./p-DzPtYdXy.js";import{d as l}from"./p-7MWaWl8w.js";import{d}from"./p-Cea7rROU.js";import{d as c}from"./p-0XTyQNRG.js";import{d as h}from"./p-DzVYGJJv.js";import{d as f}from"./p-Cd1JnnVK.js";import{d as u}from"./p-9X_p0bHr.js";const p=["agents","messages","activity","search","stacks","help"];const m="agents";const g={search:"Search",messages:"Messages",stacks:"Stacks",activity:"Activity",agents:"Agents",help:"Help & Support"};const v={search:"K",agents:"A",messages:"M",stacks:"S",activity:"N",help:"/"};const b=[{id:"agents",icon:"AI",label:g.agents,railPlacement:"header",order:0,shortcutKey:v.agents,mobileDestination:"agents"},{id:"messages",icon:"MessageBubbleStack",label:g.messages,order:0,shortcutKey:v.messages,mobileDestination:"messages"},{id:"activity",icon:"Bell",label:g.activity,order:1,shortcutKey:v.activity,mobileDestination:"activity"},{id:"search",icon:"MagnifyingGlass",label:g.search,order:2,shortcutKey:v.search,mobileDestination:"search"},{id:"help",icon:"CircleQuestion",label:g.help,railPlacement:"footer",order:0,shortcutKey:v.help,mobileDestination:"help"}];function w(e){const s=new Map;for(const t of e){if(t.id.trim()&&!s.has(t.id))s.set(t.id,t)}const t={header:0,body:1,footer:2};return Array.from(s.values()).sort(((e,s)=>{const o=_(e);const i=_(s);const n=t[o]-t[i];if(n!==0)return n;const r=p.findIndex((s=>s===e.id));const a=p.findIndex((e=>e===s.id));const l=e.order??(r<0?Number.MAX_SAFE_INTEGER:r);const d=s.order??(a<0?Number.MAX_SAFE_INTEGER:a);return l-d}))}function y(e){return typeof e==="string"&&e.trim().length>0}function _(e){if(e.railPlacement)return e.railPlacement;if(e.id===m)return"header";if(e.id==="help")return"footer";return"body"}function x(e,s,t){if(!t||e.some((e=>e.id===t))){return{open:s,activeTool:t,removedTool:""}}return{open:false,activeTool:"",removedTool:t}}function k(e){const s=e.transitionProperty.split(",").map((e=>e.trim()));const t=e.transitionDuration.split(",").map((e=>r(e.trim(),0)));const o=e.transitionDelay.split(",").map((e=>r(e.trim(),0)));return s.reduce(((e,s,i)=>{if(s!=="all"&&s!=="max-width")return e;const n=t[i%t.length]??0;const r=o[i%o.length]??0;return Math.max(e,n+r,0)}),0)}function T(e,s){return!e&&s==="idle"}function C(e,s,t){if(t==="closing")return e<=.5;if(t==="opening")return s>0&&e>=s-.5;return true}function A(e,s,t){if(e&&s===t){return{open:false,activeTool:t,selected:false}}return{open:true,activeTool:t,selected:true}}const z=()=>`.ds-control--lg,:host(.ds-control--lg),:host(.ds-control--md),.ds-control--md,:host(.ds-control--sm),.ds-control--sm,:host(.ds-control--xs),.ds-control--xs{--ds-control-radius:var(--dimension-radius-025)}:host(.ds-control--lg),.ds-control--lg{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}:host(.ds-control--md),.ds-control--md{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}:host(.ds-control--sm),.ds-control--sm{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}:host(.ds-control--xs),.ds-control--xs{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}:host(.ds-chrome-space--sm),.ds-chrome-space--sm{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}:host(.ds-chrome-space--md),.ds-chrome-space--md{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}:host(.ds-chrome-space--lg),.ds-chrome-space--lg{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}:host(.ds-chrome-row),.ds-chrome-row,:host(.ds-chrome-column),.ds-chrome-column,:host(.ds-chrome-grid),.ds-chrome-grid{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}:host(.ds-chrome-row),.ds-chrome-row{flex-direction:row;align-items:center}:host(.ds-chrome-column),.ds-chrome-column{flex-direction:column}:host(.ds-chrome-grid),.ds-chrome-grid{display:grid;align-items:center}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}:host{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}:host(.ds-focus-ring),.ds-focus-ring,:host(.ds-focus-ring-inset),.ds-focus-ring-inset{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}:host(.ds-focus-ring:focus-visible),.ds-focus-ring:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring.ds-focus-ring--visible),.ds-focus-ring.ds-focus-ring--visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring-inset:focus-visible),.ds-focus-ring-inset:focus-visible{outline:none}:host(.ds-focus-ring-inset:focus-visible)::after,.ds-focus-ring-inset:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}:host(.ds-focus-ring-inset.ds-focus-ring--visible),.ds-focus-ring-inset.ds-focus-ring--visible{outline:none}:host(.ds-focus-ring-inset.ds-focus-ring--visible)::after,.ds-focus-ring-inset.ds-focus-ring--visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){:host{--ds-focus-ring-color:var(--ds-forced-color-selected)}}:host(.ds-scrollbar-hidden),.ds-scrollbar-hidden{scrollbar-width:none}:host(.ds-scrollbar-hidden)::-webkit-scrollbar,.ds-scrollbar-hidden::-webkit-scrollbar{display:none}:host{display:block;flex:0 0 auto;box-sizing:border-box;height:100%;min-height:0;overflow:hidden;--_panel-tools-rail-width:var(--dimension-size-600);--_panel-tools-drawer-width:var(--ds-shell-panel-tools-width, var(--dimension-panel-width-xs));--_panel-tools-border:var(--dimension-stroke-width-012, 1px) solid var(--color-border-tertiary);--_panel-tools-expand-dur:var(--effect-animation-duration-medium-1, 300ms)}.panel-tools__layout{display:flex;flex-direction:row-reverse;align-items:stretch;height:100%;min-height:0;box-sizing:border-box}.panel-tools__drawer{flex:0 0 auto;max-width:0;min-width:0;height:100%;min-height:0;overflow:hidden;box-sizing:border-box;transition:none}:host(.panel-tools--ready) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in-out, ease)}:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-out, ease-out)}:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in, ease-in)}:host(.panel-tools--open) .panel-tools__drawer{max-width:var(--_panel-tools-drawer-width)}.panel-tools__drawer--visible{border-left:var(--_panel-tools-border)}.panel-tools__drawer-surface{display:flex;flex-direction:column;width:var(--_panel-tools-drawer-width);height:100%;min-height:0;box-sizing:border-box;background-color:transparent}.panel-tools__full-views,.panel-tools__full-view{flex:1 1 auto;min-height:0;overflow:hidden}.panel-tools__full-view{height:100%}.panel-tools__full-view{display:none}.panel-tools__full-view--active{display:block}:host([presentation='fullscreen']){height:100vh;inset:0;position:fixed;width:100vw;z-index:var(--dimension-z-index-modal)}:host([presentation='fullscreen']) .panel-tools__rail{display:none}:host([presentation='fullscreen']) .panel-tools__drawer{max-width:100vw;transition:none;width:100vw}:host([presentation='fullscreen']) .panel-tools__drawer--visible{border-left:none}:host([presentation='fullscreen']) .panel-tools__drawer-surface{background-color:transparent;width:100vw}:host([presentation='fullscreen']:not(.panel-tools--fullscreen)) .panel-tools__drawer-surface,:host(.panel-tools--fullscreen:not([presentation='fullscreen'])) .panel-tools__drawer-surface{visibility:hidden}:host(.panel-tools--presentation-snap) .panel-tools__drawer{transition:none}.panel-tools__body{flex:1 1 auto;min-height:0;overflow:auto;position:relative}:host(.panel-tools--drawer-resting) .panel-tools__body{content-visibility:auto;contain-intrinsic-size:auto 200px}.panel-tools__view{display:none;height:100%;min-height:0;box-sizing:border-box;padding:var(--dimension-space-200);color:var(--color-foreground-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view ::slotted(*){margin:0;color:var(--color-foreground-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view--active{display:block}.panel-tools__rail{flex:0 0 var(--_panel-tools-rail-width);width:var(--_panel-tools-rail-width);min-width:var(--_panel-tools-rail-width);display:flex;flex-direction:column;box-sizing:border-box;height:100%;min-height:0;border-left:var(--_panel-tools-border);background-color:transparent}.panel-tools__rail-header{justify-content:center;height:var(--dimension-size-600);flex-shrink:0;border-bottom:var(--_panel-tools-border)}.panel-tools__rail-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.panel-tools__rail-actions{display:flex;flex-direction:column;gap:var(--dimension-space-050);width:100%}.panel-tools__rail-footer{justify-content:center;flex-shrink:0;margin-top:auto}.panel-tools__rail-action{display:flex;align-items:center;justify-content:center;width:100%;height:var(--ds-control-height);flex-shrink:0}@media (prefers-reduced-motion: reduce){:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer,:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:none}}`;const S=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.dsToolChange=t(this,"dsToolChange",7);this.dsPresentationChange=t(this,"dsPresentationChange",7);this.dsHeaderBack=t(this,"dsHeaderBack",7);this.dsHeaderAction=t(this,"dsHeaderAction",7);this.dsChromeTransitionStart=t(this,"dsChromeTransitionStart",7);this.dsChromeTransitionEnd=t(this,"dsChromeTransitionEnd",7);this.open=false;this.presentation="drawer";this.fullscreenHeaderMode="shared";this.activeTool="";this.items=[];this.toolsLabel="Tools";this.toolShortcutsLabel="Tool shortcuts";this.headers={};this.storageKey="";this.motion="idle";this.drawerSurfaceRetained=false;this.readyForMotion=false;this.presentationMotionSuppressed=false;this.rovingIndex=0;this.fullViewToolIds=[];this.railBodyScrollable=false;this.motionEnableGeneration=0;this.presentationMotionGeneration=0;this.transitionGeneration=0;this.transitionFallbackTimer=null;this.ignoreReplacementTerminal=false;this.focusBeforeFullscreen=null;this.fullViewObserver=null;this.handleComposedHeaderAction=e=>{const s=e.detail;if(!this.activeTool||!s?.id)return;e.stopPropagation();this.dsHeaderAction.emit({tool:this.activeTool,id:s.id,anchor:s.anchor})};this.handleTransitionEnd=e=>{const s=this.renderRoot.querySelector(".panel-tools__drawer");if(e.target!==s)return;if(e.propertyName!=="max-width")return;if(this.ignoreReplacementTerminal){this.ignoreReplacementTerminal=false;return}if(e.type==="transitioncancel")return;if(s&&!this.drawerTransitionAtTerminal(s,this.motion))return;this.finishDrawerTransition()};this.handleToolChange=e=>{const s=A(this.open,this.activeTool,e);this.open=s.open;this.activeTool=s.activeTool;this.dsToolChange.emit({id:e,selected:s.selected})};this.handleRailKeyDown=(e,s)=>{const t=this.orderedRailItems;if(!t.length)return;if(e.key==="Enter"||e.key===" "){e.preventDefault();this.handleToolChange(t[s].id);return}if(e.key==="ArrowDown"){if(s>=t.length-1)return;e.preventDefault();this.focusRailAt(s+1);return}if(e.key==="ArrowUp"){if(s<=0)return;e.preventDefault();this.focusRailAt(s-1)}}}get railItems(){return this.items??[]}get orderedRailItems(){return w(this.railItems)}disconnectedCallback(){this.el.removeEventListener("transitionend",this.handleTransitionEnd);this.el.removeEventListener("transitioncancel",this.handleTransitionEnd);this.el.removeEventListener("dsAction",this.handleComposedHeaderAction);this.clearTransitionCompletion();this.motionEnableGeneration+=1;this.fullViewObserver?.disconnect();this.fullViewObserver=null;this.disconnectRailBodyObserver()}presentationChanged(e,t){if(e===t)return;if(this.el.getAttribute("presentation")!==e){this.el.setAttribute("presentation",e)}const o=++this.presentationMotionGeneration;this.presentationMotionSuppressed=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(o!==this.presentationMotionGeneration)return;this.presentationMotionSuppressed=false}))}));if(e==="fullscreen"){this.focusBeforeFullscreen=document.activeElement instanceof s?document.activeElement:null;this.open=true}else if(t==="fullscreen"){const e=this.focusBeforeFullscreen;const s=this.activeHeader().actions?.[0]?.id;requestAnimationFrame((async()=>{if(e?.isConnected){e.focus({preventScroll:true})}const t=e?document.activeElement===e||e.contains(document.activeElement):false;if(!t&&s)await this.focusHeaderAction(s);this.focusBeforeFullscreen=null}))}this.dsPresentationChange.emit({presentation:e})}handleFullscreenEscape(e){if(this.presentation!=="fullscreen"||e.key!=="Escape")return;e.preventDefault();e.stopPropagation();this.presentation="drawer"}deferMotionEnable(){if(this.readyForMotion)return;const e=++this.motionEnableGeneration;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;this.readyForMotion=true}))}))}connectedCallback(){this.el.addEventListener("transitionend",this.handleTransitionEnd);this.el.addEventListener("transitioncancel",this.handleTransitionEnd);this.el.addEventListener("dsAction",this.handleComposedHeaderAction)}componentWillLoad(){this.restoreLastActiveTool();this.drawerSurfaceRetained=this.open}openChanged(e,s){if(e)this.drawerSurfaceRetained=true;if(this.readyForMotion&&s!==undefined&&s!==e){this.startDrawerTransition(e?"opening":"closing")}else if(!e){this.drawerSurfaceRetained=false}this.deferMotionEnable()}activeToolChanged(){this.persistLastActiveTool();this.deferMotionEnable()}storageKeyChanged(){this.restoreLastActiveTool()}componentDidLoad(){this.deferMotionEnable();this.connectRailBodyObserver();this.updateRailBodyScrollable();this.syncFullViewTools();this.fullViewObserver=new MutationObserver((()=>this.syncFullViewTools()));this.fullViewObserver.observe(this.el,{childList:true,attributes:true,attributeFilter:["slot"]})}componentDidRender(){this.updateRailBodyScrollable()}connectRailBodyObserver(){this.disconnectRailBodyObserver();if(!this.railBodyEl||typeof ResizeObserver==="undefined")return;this.railBodyObserver=new ResizeObserver((()=>this.updateRailBodyScrollable()));this.railBodyObserver.observe(this.railBodyEl)}disconnectRailBodyObserver(){this.railBodyObserver?.disconnect();this.railBodyObserver=undefined}updateRailBodyScrollable(){const e=Boolean(this.railBodyEl&&this.railBodyEl.scrollHeight>this.railBodyEl.clientHeight+1);if(e!==this.railBodyScrollable)this.railBodyScrollable=e}itemsChanged(){this.rovingIndex=0;this.reconcileActiveTool();this.deferMotionEnable()}restoreLastActiveTool(){if(!this.storageKey||this.activeTool)return;try{const e=localStorage.getItem(this.storageKey);if(y(e))this.activeTool=e}catch{}}persistLastActiveTool(){if(!this.storageKey||!this.activeTool)return;try{localStorage.setItem(this.storageKey,this.activeTool)}catch{}}clearPersistedTool(){if(!this.storageKey)return;try{localStorage.removeItem(this.storageKey)}catch{}}reconcileActiveTool(){const e=x(this.railItems,this.open,this.activeTool);if(!e.removedTool)return;this.clearPersistedTool();this.open=e.open;this.activeTool=e.activeTool;this.dsToolChange.emit({id:e.removedTool,selected:false})}startDrawerTransition(e){const s=this.renderRoot.querySelector(".panel-tools__drawer");if(this.motion!=="idle"){this.finishDrawerTransition();this.ignoreReplacementTerminal=true}this.motion=e;this.dsChromeTransitionStart.emit({source:"panel-tools",phase:e});const t=++this.transitionGeneration;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(t!==this.transitionGeneration||this.motion!==e)return;if(!s){this.finishDrawerTransition();return}if(this.drawerTransitionAtTerminal(s,e)){this.finishDrawerTransition();return}const o=k(getComputedStyle(s));if(o<=0){this.finishDrawerTransition();return}this.transitionFallbackTimer=window.setTimeout((()=>{this.finishDrawerTransition()}),o)}))}))}drawerTransitionAtTerminal(e,s){const t=e.getBoundingClientRect().width;const o=e.querySelector(".panel-tools__drawer-surface");const i=o?.getBoundingClientRect().width??0;return C(t,i,s)}finishDrawerTransition(){const e=this.motion;const s=e!=="idle";this.clearTransitionCompletion();if(!s)return;this.ignoreReplacementTerminal=false;this.motion="idle";if(e==="closing"&&!this.open){this.drawerSurfaceRetained=false}this.dsChromeTransitionEnd.emit({source:"panel-tools"})}clearTransitionCompletion(){this.transitionGeneration+=1;if(this.transitionFallbackTimer!==null){window.clearTimeout(this.transitionFallbackTimer);this.transitionFallbackTimer=null}}isRailSelected(e){return this.open&&this.activeTool===e}isDrawerPresent(){return this.open||this.drawerSurfaceRetained}isViewActive(e){return this.isDrawerPresent()&&this.activeTool===e}hasFullView(e){return this.fullViewToolIds.includes(e)}syncFullViewTools(){const e=this.orderedRailItems.map((e=>e.id));const s=e.filter((e=>Boolean(this.el.querySelector(`[slot="${e}-view"]`))));if(s.join("|")!==this.fullViewToolIds.join("|"))this.fullViewToolIds=s}get renderRoot(){return this.el.shadowRoot??this.el}headerLabel(){if(!this.isDrawerPresent()||!this.activeTool)return"";const e=this.railItems.find((e=>e.id===this.activeTool));return e?.label??g[this.activeTool]??this.activeTool}resolvedHeaders(){return this.headers??{}}activeHeader(){if(!this.activeTool)return{};return this.resolvedHeaders()[this.activeTool]??{}}async activateTool(e){const s=this.railItems.find((s=>s.id===e));if(!s||s.isInactive)return;this.handleToolChange(e)}async closeDrawer(){if(!this.open)return;const e=this.activeTool;this.open=false;if(e){this.dsToolChange.emit({id:e,selected:false})}}async focusHeaderAction(e){const s=this.renderRoot.querySelector(`[data-header-action-id="${CSS.escape(e)}"]`);await(s?.setFocus?.())}focusRailAt(e){const s=this.orderedRailItems;if(!s.length)return;const t=Math.max(0,Math.min(e,s.length-1));if(t===this.rovingIndex)return;this.rovingIndex=t;const o=Array.from(this.renderRoot.querySelectorAll(".panel-tools__rail-action .button-icon"));o[t]?.focus({preventScroll:true})}renderRailAction(e,s){const t=e.ariaLabel??e.label??g[e.id]??e.id;return o("ds-tooltip",{key:e.id,label:t,shortcutKey:e.shortcutKey??v[e.id],side:"left",size:"sm",boundary:"viewport"},o("ds-button-unfilled",{variant:"icon",class:"panel-tools__rail-action",icon:e.icon,isActive:this.isRailSelected(e.id),activeFill:false,hasBorder:false,pressScale:false,dot:e.dot??false,isInactive:e.isInactive,focusTabIndex:s===this.rovingIndex?0:-1,"aria-label":t,pressed:this.isRailSelected(e.id),onFocusin:()=>{this.rovingIndex=s},onKeyDown:e=>this.handleRailKeyDown(e,s),onDsClick:()=>this.handleToolChange(e.id)}))}render(){const e=this.headerLabel();const s=this.activeHeader();const t=s.title?.trim()||e;const n=s.actions??[];const r=this.orderedRailItems;const a=r.filter((e=>_(e)==="header"));const l=r.filter((e=>_(e)==="body"));const d=r.filter((e=>_(e)==="footer"));const c=a.length;const h=c+l.length;const f=this.isDrawerPresent();const u=T(this.open,this.motion);const p=Boolean(f&&this.activeTool&&this.hasFullView(this.activeTool));const m=r.map((e=>e.id));return o(i,{key:"f0b68f1eba06350ea0e6e9cd49ac8af501e3d119",class:{"panel-tools":true,"panel-tools--open":this.open,"panel-tools--ready":this.readyForMotion,"panel-tools--motion-opening":this.motion==="opening","panel-tools--motion-closing":this.motion==="closing","panel-tools--drawer-resting":u,"panel-tools--fullscreen":this.presentation==="fullscreen","panel-tools--presentation-snap":this.presentationMotionSuppressed},role:this.presentation==="fullscreen"?"dialog":"complementary","aria-modal":this.presentation==="fullscreen"?"true":undefined,"aria-label":this.toolsLabel},o("div",{key:"39d87b56af32d1b0c9df28ae753418b031bce592",class:"panel-tools__layout"},o("nav",{key:"49386a819594b99d83fad67035ba9b61dffef7b8",class:"panel-tools__rail","aria-label":this.toolShortcutsLabel},a.length?o("div",{class:"panel-tools__rail-header ds-chrome-row ds-chrome-space--md"},a.map(((e,s)=>this.renderRailAction(e,s)))):null,o("div",{key:"03b7594635006a2bd0dcd01328b67a470477fe22",class:{"panel-tools__rail-body":true,"ds-chrome-column":true,"ds-chrome-space--md":true,"ds-scrollbar-hidden":true,"ds-focus-ring":this.railBodyScrollable},ref:e=>{const s=e??undefined;if(s===this.railBodyEl)return;this.railBodyEl=s;this.connectRailBodyObserver()},role:this.railBodyScrollable?"region":undefined,"aria-label":this.railBodyScrollable?this.toolShortcutsLabel:undefined,tabIndex:this.railBodyScrollable?0:undefined},o("div",{key:"fdbd54e7590e79decf8650a402f97655accde47a",class:"panel-tools__rail-actions"},l.map(((e,s)=>this.renderRailAction(e,c+s))))),d.length?o("div",{class:"panel-tools__rail-footer ds-chrome-row ds-chrome-space--md"},d.map(((e,s)=>this.renderRailAction(e,h+s)))):null),o("div",{key:"b52eb269ee5503602f7449cbcc98d3d8a79ac24e",class:{"panel-tools__drawer":true,"panel-tools__drawer--visible":f},"aria-hidden":f?null:"true",inert:f?undefined:true},o("div",{key:"8ae718b1e9e1cea92011c4f098fb2baf4f3088e6",class:"panel-tools__drawer-surface"},this.presentation!=="fullscreen"||this.fullscreenHeaderMode==="shared"?o("ds-panel-tool-header",{class:"panel-tools__header",heading:t,showBack:s.showBack??false,backIcon:s.backIcon||"ChevronLeft",backAriaLabel:s.backAriaLabel||"Back",showMenu:false,ref:e=>{const s=e;if(s)s.actions=n},onDsBack:()=>{if(this.activeTool)this.dsHeaderBack.emit({tool:this.activeTool})}}):null,o("div",{key:"b0ed560e468602805bc95ef3d30de2b7874f1ccf",class:"panel-tools__body",hidden:p},m.map((e=>{const s=this.isViewActive(e);return o("div",{class:{"panel-tools__view":true,"panel-tools__view--active":s},hidden:!s},o("slot",{name:e}))}))),o("div",{key:"20e0ba3227e0b5fa1ca193e73660e73a0f84e986",class:"panel-tools__full-views",hidden:!p},m.map((e=>o("div",{class:{"panel-tools__full-view":true,"panel-tools__full-view--active":this.isViewActive(e)&&this.hasFullView(e)},hidden:!(this.isViewActive(e)&&this.hasFullView(e))},o("slot",{name:`${e}-view`})))))))))}get el(){return this}static get watchers(){return{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}]}}static get style(){return z()}},[257,"ds-panel-tools",{open:[1540],presentation:[1537],fullscreenHeaderMode:[513,"fullscreen-header-mode"],activeTool:[1537,"active-tool"],items:[16],toolsLabel:[1,"tools-label"],toolShortcutsLabel:[1,"tool-shortcuts-label"],headers:[16],storageKey:[1,"storage-key"],motion:[32],drawerSurfaceRetained:[32],readyForMotion:[32],presentationMotionSuppressed:[32],rovingIndex:[32],fullViewToolIds:[32],railBodyScrollable:[32],activateTool:[64],closeDrawer:[64],focusHeaderAction:[64]},[[10,"keydown","handleFullscreenEscape"]],{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}]}]);function D(){if(typeof customElements==="undefined"){return}const e=["ds-panel-tools","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-panel-tool-header","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-panel-tools":if(!customElements.get(n(e))){customElements.define(n(e),S)}break;case"ds-badge":if(!customElements.get(n(e))){a()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){l()}break;case"ds-icon":if(!customElements.get(n(e))){d()}break;case"ds-loader":if(!customElements.get(n(e))){c()}break;case"ds-panel-tool-header":if(!customElements.get(n(e))){h()}break;case"ds-text":if(!customElements.get(n(e))){f()}break;case"ds-tooltip":if(!customElements.get(n(e))){u()}break}}))}D();export{S as P,g as a,A as b,b as c,D as d,w as o,x as r};
|
|
2
|
-
//# sourceMappingURL=p-COFw_fcj.js.map
|