@happyvertical/smrt-svelte 0.55.1 → 0.55.2
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/README.md +29 -2
- package/agents/components.md +44 -1
- package/agents/workspace.md +77 -2
- package/dist/components/app/AppShell.svelte +121 -9
- package/dist/components/app/AppShell.svelte.d.ts +24 -2
- package/dist/components/app/AppShell.svelte.d.ts.map +1 -1
- package/dist/components/app/DockToggles.svelte +103 -0
- package/dist/components/app/DockToggles.svelte.d.ts +8 -0
- package/dist/components/app/DockToggles.svelte.d.ts.map +1 -0
- package/dist/components/app/dock-toggle.d.ts +14 -0
- package/dist/components/app/dock-toggle.d.ts.map +1 -0
- package/dist/components/app/dock-toggle.js +1 -0
- package/dist/components/app/index.d.ts +2 -0
- package/dist/components/app/index.d.ts.map +1 -1
- package/dist/components/app/index.js +1 -0
- package/dist/components/board/Board.svelte +92 -394
- package/dist/components/board/Board.svelte.d.ts.map +1 -1
- package/dist/components/forms/RelationInput.svelte +379 -0
- package/dist/components/forms/RelationInput.svelte.d.ts +75 -0
- package/dist/components/forms/RelationInput.svelte.d.ts.map +1 -0
- package/dist/components/forms/index.d.ts +2 -1
- package/dist/components/forms/index.d.ts.map +1 -1
- package/dist/components/forms/index.js +1 -0
- package/dist/components/forms/types.d.ts +9 -0
- package/dist/components/forms/types.d.ts.map +1 -1
- package/dist/components/sortable/Sortable.svelte +359 -0
- package/dist/components/sortable/Sortable.svelte.d.ts +26 -0
- package/dist/components/sortable/Sortable.svelte.d.ts.map +1 -0
- package/dist/components/sortable/controller.svelte.d.ts +152 -0
- package/dist/components/sortable/controller.svelte.d.ts.map +1 -0
- package/dist/components/sortable/controller.svelte.js +453 -0
- package/dist/components/sortable/index.d.ts +5 -0
- package/dist/components/sortable/index.d.ts.map +1 -0
- package/dist/components/sortable/index.js +2 -0
- package/dist/components/sortable/types.d.ts +80 -0
- package/dist/components/sortable/types.d.ts.map +1 -0
- package/dist/components/sortable/types.js +1 -0
- package/dist/components/workspace/admin-shell/AdminShell.svelte +49 -1
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte +196 -0
- package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte.d.ts +17 -0
- package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte.d.ts.map +1 -0
- package/dist/components/workspace/admin-shell/TenantNav.svelte +69 -3
- package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/dock.d.ts +37 -0
- package/dist/components/workspace/admin-shell/dock.d.ts.map +1 -0
- package/dist/components/workspace/admin-shell/dock.js +25 -0
- package/dist/components/workspace/admin-shell/layout-context.d.ts +7 -0
- package/dist/components/workspace/admin-shell/layout-context.d.ts.map +1 -0
- package/dist/components/workspace/admin-shell/layout-context.js +17 -0
- package/dist/components/workspace/admin-shell/layout-controller.svelte.d.ts +69 -0
- package/dist/components/workspace/admin-shell/layout-controller.svelte.d.ts.map +1 -0
- package/dist/components/workspace/admin-shell/layout-controller.svelte.js +91 -0
- package/dist/components/workspace/admin-shell/layout.d.ts +120 -0
- package/dist/components/workspace/admin-shell/layout.d.ts.map +1 -0
- package/dist/components/workspace/admin-shell/layout.js +402 -0
- package/dist/components/workspace/admin-shell/settings.d.ts +6 -4
- package/dist/components/workspace/admin-shell/settings.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/settings.js +14 -4
- package/dist/components/workspace/admin-shell/state.svelte.d.ts +59 -1
- package/dist/components/workspace/admin-shell/state.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/state.svelte.js +146 -2
- package/dist/components/workspace/admin-shell/types.d.ts +52 -0
- package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
- package/dist/components/workspace/index.d.ts +6 -1
- package/dist/components/workspace/index.d.ts.map +1 -1
- package/dist/components/workspace/index.js +5 -0
- package/dist/i18n/server.d.ts +1 -0
- package/dist/i18n/server.d.ts.map +1 -1
- package/dist/i18n/server.js +1 -0
- package/dist/i18n/strings.sortable.d.ts +13 -0
- package/dist/i18n/strings.sortable.d.ts.map +1 -0
- package/dist/i18n/strings.sortable.js +13 -0
- package/dist/i18n/strings.workspace.d.ts +13 -0
- package/dist/i18n/strings.workspace.d.ts.map +1 -1
- package/dist/i18n/strings.workspace.js +13 -0
- package/package.json +26 -15
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type ShellLayout, type ShellLayoutPanel } from './layout.js';
|
|
2
|
+
import type { PanelEdge, PanelPresentation, PanelState, PhonePanelPresentation, ResolvedShellConfig, ShellActivity, ShellActivityBadge, ShellActivityEvent, ShellActivityFilter, ShellDockOpenOptions, ShellFocusTool, ShellPanelDefaults, ShellPanelResize, ShellScope, ShellSettingsAdapter, ShellSettingsDelta, ShellStateSnapshot, ShellViewport, VisiblePanelState } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Phones: up to 48rem (768px itself is a phone). The same boundary the
|
|
4
5
|
* shell's CSS uses to turn side edges into drawers.
|
|
@@ -17,6 +18,8 @@ export interface ShellStateOptions {
|
|
|
17
18
|
storageKey?: string;
|
|
18
19
|
/** Initial viewport class (default: detected from `window`, else desktop). */
|
|
19
20
|
viewport?: ShellViewport;
|
|
21
|
+
/** The user's per-edge layout overrides (see `ShellLayout.panels`). */
|
|
22
|
+
layoutPanels?: ShellLayout['panels'];
|
|
20
23
|
}
|
|
21
24
|
export declare class ShellState {
|
|
22
25
|
readonly config: ResolvedShellConfig;
|
|
@@ -27,12 +30,25 @@ export declare class ShellState {
|
|
|
27
30
|
viewport: ShellViewport;
|
|
28
31
|
focusTools: ShellFocusTool[];
|
|
29
32
|
activeFocusToolId: string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Bumped by `openDockTool` / `toggleDockTool` when the dock should take
|
|
35
|
+
* focus; `AdminShell` reacts to it once the panel is shown.
|
|
36
|
+
*/
|
|
37
|
+
dockFocusRequest: number;
|
|
38
|
+
/** Element focus returns to when a dock opened from code closes. */
|
|
39
|
+
dockReturnFocus: HTMLElement | null;
|
|
30
40
|
activities: ShellActivity[];
|
|
31
41
|
/**
|
|
32
42
|
* Side edges whose `overlayMedia` currently matches; `AdminShell` keeps
|
|
33
43
|
* it current. Read it through `presentationFor`.
|
|
34
44
|
*/
|
|
35
45
|
overlayMatches: Partial<Record<PanelEdge, boolean>>;
|
|
46
|
+
/**
|
|
47
|
+
* The user's layout overrides per edge. `visible: false` keeps an edge
|
|
48
|
+
* hidden (no toggle, hotkey, or restore control reopens it); `initial`
|
|
49
|
+
* is the state it starts in. Set it through `setLayoutPanels`.
|
|
50
|
+
*/
|
|
51
|
+
layoutPanels: Partial<Record<PanelEdge, ShellLayoutPanel>>;
|
|
36
52
|
private activityListeners;
|
|
37
53
|
constructor(options?: ShellStateOptions);
|
|
38
54
|
hydrate(): Promise<void>;
|
|
@@ -76,6 +92,26 @@ export declare class ShellState {
|
|
|
76
92
|
applySettings(delta: ShellSettingsDelta, options?: {
|
|
77
93
|
persist?: boolean;
|
|
78
94
|
}): void;
|
|
95
|
+
/**
|
|
96
|
+
* Apply the user's per-edge layout overrides. An edge made hidden closes at
|
|
97
|
+
* once; one made visible (or whose `initial` changed) resolves again from
|
|
98
|
+
* its settings, viewport default, layout `initial`, then configured
|
|
99
|
+
* `initial`, so a stored toggle is never discarded by loading a layout.
|
|
100
|
+
* Edges the host configured hidden are untouched.
|
|
101
|
+
*/
|
|
102
|
+
setLayoutPanels(next?: ShellLayout['panels']): void;
|
|
103
|
+
/**
|
|
104
|
+
* Make `state` an edge's state now and for later loads: the user chose its
|
|
105
|
+
* starting state, so a stored open/closed toggle is dropped. Not applied to
|
|
106
|
+
* hidden edges or edges whose state follows the viewport.
|
|
107
|
+
*/
|
|
108
|
+
setPanelStart(edge: PanelEdge, state: VisiblePanelState): void;
|
|
109
|
+
/**
|
|
110
|
+
* Store the user's shell layout in the settings core (an empty layout
|
|
111
|
+
* clears it). `AppShell` does this only when the host passes neither
|
|
112
|
+
* `layout` nor `onlayoutchange`.
|
|
113
|
+
*/
|
|
114
|
+
setLayout(layout: ShellLayout | null): void;
|
|
79
115
|
setHotkeysEnabled(enabled: boolean): void;
|
|
80
116
|
setHotkey(edge: PanelEdge, code: string | null): void;
|
|
81
117
|
setPanel(edge: PanelEdge, state: VisiblePanelState): void;
|
|
@@ -89,6 +125,28 @@ export declare class ShellState {
|
|
|
89
125
|
unregisterFocusTool(id: string): void;
|
|
90
126
|
openFocusTool(id: string): void;
|
|
91
127
|
toggleFocusTool(id: string): void;
|
|
128
|
+
/**
|
|
129
|
+
* The focus tool currently shown in the open right edge (the dock), or
|
|
130
|
+
* `null` while the edge is collapsed or hidden.
|
|
131
|
+
*/
|
|
132
|
+
get openFocusToolId(): string | null;
|
|
133
|
+
/**
|
|
134
|
+
* Whether the dock (right edge) can be shown now: not removed by the host
|
|
135
|
+
* (including `phone: 'hidden'` on a phone) and not hidden by the user's
|
|
136
|
+
* layout.
|
|
137
|
+
*/
|
|
138
|
+
get dockAvailable(): boolean;
|
|
139
|
+
/** Close the dock (collapse the right edge). */
|
|
140
|
+
closeFocusTool(): void;
|
|
141
|
+
/**
|
|
142
|
+
* Open a dock tool and ask for focus to move into it. `returnFocus` is
|
|
143
|
+
* where focus goes back to when the dock closes (default: whatever has
|
|
144
|
+
* focus now). Returns false when no such tool is registered or the dock is
|
|
145
|
+
* not available (see `dockAvailable`).
|
|
146
|
+
*/
|
|
147
|
+
openDockTool(id: string, options?: ShellDockOpenOptions): boolean;
|
|
148
|
+
/** Toggle a dock tool; opening it follows `openDockTool`. */
|
|
149
|
+
toggleDockTool(id: string, options?: ShellDockOpenOptions): boolean;
|
|
92
150
|
upsertActivity(activity: ShellActivity): void;
|
|
93
151
|
updateActivity(id: string, patch: ShellActivityPatch): void;
|
|
94
152
|
removeActivity(id: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/state.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/state.svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { untrack } from 'svelte';
|
|
2
|
+
import { isShellLayoutEmpty, } from './layout.js';
|
|
2
3
|
import { clampPanelSize, LocalStorageShellSettingsAdapter, mergeShellSettingsDelta, resolveInitialPanelState, resolvePanelResize, resolveShellConfig, stripUnpersistedSettings, } from './settings.js';
|
|
3
4
|
import { PANEL_EDGES, SCOPE_EDGES } from './types.js';
|
|
4
5
|
/**
|
|
@@ -34,12 +35,25 @@ export class ShellState {
|
|
|
34
35
|
viewport = $state('desktop');
|
|
35
36
|
focusTools = $state([]);
|
|
36
37
|
activeFocusToolId = $state(null);
|
|
38
|
+
/**
|
|
39
|
+
* Bumped by `openDockTool` / `toggleDockTool` when the dock should take
|
|
40
|
+
* focus; `AdminShell` reacts to it once the panel is shown.
|
|
41
|
+
*/
|
|
42
|
+
dockFocusRequest = $state(0);
|
|
43
|
+
/** Element focus returns to when a dock opened from code closes. */
|
|
44
|
+
dockReturnFocus = null;
|
|
37
45
|
activities = $state([]);
|
|
38
46
|
/**
|
|
39
47
|
* Side edges whose `overlayMedia` currently matches; `AdminShell` keeps
|
|
40
48
|
* it current. Read it through `presentationFor`.
|
|
41
49
|
*/
|
|
42
50
|
overlayMatches = $state({});
|
|
51
|
+
/**
|
|
52
|
+
* The user's layout overrides per edge. `visible: false` keeps an edge
|
|
53
|
+
* hidden (no toggle, hotkey, or restore control reopens it); `initial`
|
|
54
|
+
* is the state it starts in. Set it through `setLayoutPanels`.
|
|
55
|
+
*/
|
|
56
|
+
layoutPanels = $state({});
|
|
43
57
|
activityListeners = new Set();
|
|
44
58
|
constructor(options = {}) {
|
|
45
59
|
this.config = resolveShellConfig(options.config);
|
|
@@ -49,6 +63,7 @@ export class ShellState {
|
|
|
49
63
|
? new LocalStorageShellSettingsAdapter(options.storageKey)
|
|
50
64
|
: null);
|
|
51
65
|
this.viewport = options.viewport ?? detectShellViewport();
|
|
66
|
+
this.layoutPanels = { ...(options.layoutPanels ?? {}) };
|
|
52
67
|
this.applySettings(options.settings ?? {}, { persist: false });
|
|
53
68
|
}
|
|
54
69
|
async hydrate() {
|
|
@@ -78,6 +93,8 @@ export class ShellState {
|
|
|
78
93
|
const next = config.viewportDefaults?.[viewport];
|
|
79
94
|
if (!next || config.initial === 'hidden')
|
|
80
95
|
continue;
|
|
96
|
+
if (this.layoutPanels[edge]?.visible === false)
|
|
97
|
+
continue;
|
|
81
98
|
delete panels[edge];
|
|
82
99
|
changed = true;
|
|
83
100
|
if (next === 'expanded')
|
|
@@ -186,7 +203,7 @@ export class ShellState {
|
|
|
186
203
|
untrack(() => {
|
|
187
204
|
this.settings = mergeShellSettingsDelta(this.settings, nextDelta);
|
|
188
205
|
for (const edge of PANEL_EDGES) {
|
|
189
|
-
this.panels[edge] = resolveInitialPanelState(edge, this.config.panels[edge], this.settings, this.viewport);
|
|
206
|
+
this.panels[edge] = resolveInitialPanelState(edge, this.config.panels[edge], this.settings, this.viewport, this.layoutPanels[edge]);
|
|
190
207
|
}
|
|
191
208
|
this.activeFocusToolId =
|
|
192
209
|
this.settings.activeFocusToolId ?? this.activeFocusToolId;
|
|
@@ -194,6 +211,69 @@ export class ShellState {
|
|
|
194
211
|
void this.persistSettings();
|
|
195
212
|
});
|
|
196
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Apply the user's per-edge layout overrides. An edge made hidden closes at
|
|
216
|
+
* once; one made visible (or whose `initial` changed) resolves again from
|
|
217
|
+
* its settings, viewport default, layout `initial`, then configured
|
|
218
|
+
* `initial`, so a stored toggle is never discarded by loading a layout.
|
|
219
|
+
* Edges the host configured hidden are untouched.
|
|
220
|
+
*/
|
|
221
|
+
setLayoutPanels(next = {}) {
|
|
222
|
+
untrack(() => {
|
|
223
|
+
const previous = this.layoutPanels;
|
|
224
|
+
this.layoutPanels = { ...next };
|
|
225
|
+
for (const edge of PANEL_EDGES) {
|
|
226
|
+
const before = previous[edge];
|
|
227
|
+
const after = next[edge];
|
|
228
|
+
if (before?.visible === after?.visible &&
|
|
229
|
+
before?.initial === after?.initial) {
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
const config = this.config.panels[edge];
|
|
233
|
+
if (config.initial === 'hidden')
|
|
234
|
+
continue;
|
|
235
|
+
this.panels[edge] = resolveInitialPanelState(edge, config, this.settings, this.viewport, after);
|
|
236
|
+
if (this.panels[edge] === 'expanded')
|
|
237
|
+
this.closeExclusivePeers(edge);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Make `state` an edge's state now and for later loads: the user chose its
|
|
243
|
+
* starting state, so a stored open/closed toggle is dropped. Not applied to
|
|
244
|
+
* hidden edges or edges whose state follows the viewport.
|
|
245
|
+
*/
|
|
246
|
+
setPanelStart(edge, state) {
|
|
247
|
+
untrack(() => {
|
|
248
|
+
const config = this.config.panels[edge];
|
|
249
|
+
if (config.initial === 'hidden' ||
|
|
250
|
+
config.viewportDefaults ||
|
|
251
|
+
this.layoutPanels[edge]?.visible === false) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
if (this.settings.panels && edge in this.settings.panels) {
|
|
255
|
+
const { [edge]: _dropped, ...rest } = this.settings.panels;
|
|
256
|
+
this.settings = { ...this.settings, panels: rest };
|
|
257
|
+
}
|
|
258
|
+
if (state === 'expanded')
|
|
259
|
+
this.closeExclusivePeers(edge);
|
|
260
|
+
this.panels[edge] = state;
|
|
261
|
+
void this.persistSettings();
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Store the user's shell layout in the settings core (an empty layout
|
|
266
|
+
* clears it). `AppShell` does this only when the host passes neither
|
|
267
|
+
* `layout` nor `onlayoutchange`.
|
|
268
|
+
*/
|
|
269
|
+
setLayout(layout) {
|
|
270
|
+
untrack(() => {
|
|
271
|
+
const { layout: _previous, ...rest } = this.settings;
|
|
272
|
+
this.settings =
|
|
273
|
+
layout && !isShellLayoutEmpty(layout) ? { ...rest, layout } : rest;
|
|
274
|
+
void this.persistSettings();
|
|
275
|
+
});
|
|
276
|
+
}
|
|
197
277
|
setHotkeysEnabled(enabled) {
|
|
198
278
|
untrack(() => this.applySettings({ hotkeysEnabled: enabled }));
|
|
199
279
|
}
|
|
@@ -215,7 +295,8 @@ export class ShellState {
|
|
|
215
295
|
!['hidden', 'collapsed', 'expanded'].includes(state))
|
|
216
296
|
return;
|
|
217
297
|
untrack(() => {
|
|
218
|
-
if (this.config.panels[edge].initial === 'hidden'
|
|
298
|
+
if (this.config.panels[edge].initial === 'hidden' ||
|
|
299
|
+
this.layoutPanels[edge]?.visible === false) {
|
|
219
300
|
this.panels[edge] = 'hidden';
|
|
220
301
|
return;
|
|
221
302
|
}
|
|
@@ -295,6 +376,69 @@ export class ShellState {
|
|
|
295
376
|
this.openFocusTool(id);
|
|
296
377
|
});
|
|
297
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* The focus tool currently shown in the open right edge (the dock), or
|
|
381
|
+
* `null` while the edge is collapsed or hidden.
|
|
382
|
+
*/
|
|
383
|
+
get openFocusToolId() {
|
|
384
|
+
return this.panels.right === 'expanded' && this.isEdgeShown('right')
|
|
385
|
+
? this.activeFocusToolId
|
|
386
|
+
: null;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Whether the dock (right edge) can be shown now: not removed by the host
|
|
390
|
+
* (including `phone: 'hidden'` on a phone) and not hidden by the user's
|
|
391
|
+
* layout.
|
|
392
|
+
*/
|
|
393
|
+
get dockAvailable() {
|
|
394
|
+
return (this.config.panels.right.initial !== 'hidden' &&
|
|
395
|
+
this.layoutPanels.right?.visible !== false &&
|
|
396
|
+
!(this.viewport === 'phone' &&
|
|
397
|
+
this.phonePresentation('right') === 'hidden'));
|
|
398
|
+
}
|
|
399
|
+
/** Close the dock (collapse the right edge). */
|
|
400
|
+
closeFocusTool() {
|
|
401
|
+
this.collapsePanel('right');
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Open a dock tool and ask for focus to move into it. `returnFocus` is
|
|
405
|
+
* where focus goes back to when the dock closes (default: whatever has
|
|
406
|
+
* focus now). Returns false when no such tool is registered or the dock is
|
|
407
|
+
* not available (see `dockAvailable`).
|
|
408
|
+
*/
|
|
409
|
+
openDockTool(id, options = {}) {
|
|
410
|
+
return untrack(() => {
|
|
411
|
+
if (!this.focusTools.some((tool) => tool.id === id))
|
|
412
|
+
return false;
|
|
413
|
+
if (!this.dockAvailable)
|
|
414
|
+
return false;
|
|
415
|
+
this.openFocusTool(id);
|
|
416
|
+
if (options.focus === false)
|
|
417
|
+
return true;
|
|
418
|
+
const active = typeof document === 'undefined' ? null : document.activeElement;
|
|
419
|
+
this.dockReturnFocus =
|
|
420
|
+
options.returnFocus ??
|
|
421
|
+
(active instanceof HTMLElement && active !== document.body
|
|
422
|
+
? active
|
|
423
|
+
: null);
|
|
424
|
+
this.dockFocusRequest += 1;
|
|
425
|
+
return true;
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
/** Toggle a dock tool; opening it follows `openDockTool`. */
|
|
429
|
+
toggleDockTool(id, options = {}) {
|
|
430
|
+
return untrack(() => {
|
|
431
|
+
if (!this.focusTools.some((tool) => tool.id === id))
|
|
432
|
+
return false;
|
|
433
|
+
if (!this.dockAvailable)
|
|
434
|
+
return false;
|
|
435
|
+
if (this.openFocusToolId === id) {
|
|
436
|
+
this.closeFocusTool();
|
|
437
|
+
return true;
|
|
438
|
+
}
|
|
439
|
+
return this.openDockTool(id, options);
|
|
440
|
+
});
|
|
441
|
+
}
|
|
298
442
|
upsertActivity(activity) {
|
|
299
443
|
const nextActivity = snapshotActivity(activity);
|
|
300
444
|
untrack(() => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Component, Snippet } from 'svelte';
|
|
2
|
+
import type { ShellLayout } from './layout.js';
|
|
2
3
|
export type PanelEdge = 'top' | 'left' | 'right' | 'bottom';
|
|
3
4
|
export type ShellScope = 'app' | 'tenant' | 'focus' | 'system';
|
|
4
5
|
export type PanelState = 'hidden' | 'collapsed' | 'expanded';
|
|
@@ -96,6 +97,12 @@ export interface ShellSettingsDelta {
|
|
|
96
97
|
/** Resized expanded widths in px; `null` resets to the configured size. */
|
|
97
98
|
sizes?: Partial<Record<PanelEdge, number | null>>;
|
|
98
99
|
activeFocusToolId?: string | null;
|
|
100
|
+
/**
|
|
101
|
+
* The user's shell layout customization (panel visibility, navigation
|
|
102
|
+
* order and visibility). Stored here only when the host passes neither
|
|
103
|
+
* `layout` nor `onlayoutchange` to `AppShell`.
|
|
104
|
+
*/
|
|
105
|
+
layout?: ShellLayout;
|
|
99
106
|
}
|
|
100
107
|
export interface ShellSettingsAdapter {
|
|
101
108
|
read(): ShellSettingsDelta | null | Promise<ShellSettingsDelta | null>;
|
|
@@ -111,10 +118,38 @@ export interface ShellFocusToolSubject {
|
|
|
111
118
|
}
|
|
112
119
|
/** Labelled, collapsible group of tenant navigation links. */
|
|
113
120
|
export interface ShellNavGroup {
|
|
121
|
+
/**
|
|
122
|
+
* Stable identity for layout customization ({@link ShellLayout}). Defaults
|
|
123
|
+
* to `heading`; set it when the heading is translated or may be renamed.
|
|
124
|
+
*/
|
|
125
|
+
id?: string;
|
|
114
126
|
heading: string;
|
|
115
127
|
items: ShellNavItem[];
|
|
116
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Optional trailing icon-only link on a {@link ShellNavItem}, for example a
|
|
131
|
+
* settings gear that opens the item's section settings. Not rendered when the
|
|
132
|
+
* nav is collapsed; the target page stays reachable through its own route.
|
|
133
|
+
*/
|
|
134
|
+
export interface ShellNavItemAction {
|
|
135
|
+
href: string;
|
|
136
|
+
/** Accessible name and tooltip, e.g. "Sales options". Required: icon-only. */
|
|
137
|
+
label: string;
|
|
138
|
+
/** Icon name from the set `ShellNavItem.icon` uses. Defaults to a settings gear. */
|
|
139
|
+
icon?: string;
|
|
140
|
+
/**
|
|
141
|
+
* `'always'` renders the link whenever the nav is expanded; `'active'`
|
|
142
|
+
* renders it only while the item's section is current (the link is absent
|
|
143
|
+
* otherwise, not merely hidden). Default `'always'`.
|
|
144
|
+
*/
|
|
145
|
+
visibility?: 'always' | 'active';
|
|
146
|
+
}
|
|
117
147
|
export interface ShellNavItem {
|
|
148
|
+
/**
|
|
149
|
+
* Stable identity for layout customization ({@link ShellLayout}). Defaults
|
|
150
|
+
* to `href`; set it when the href may change or two items share one.
|
|
151
|
+
*/
|
|
152
|
+
id?: string;
|
|
118
153
|
href: string;
|
|
119
154
|
label: string;
|
|
120
155
|
icon?: string;
|
|
@@ -128,6 +163,13 @@ export interface ShellNavItem {
|
|
|
128
163
|
*/
|
|
129
164
|
attention?: boolean | string | null;
|
|
130
165
|
children?: ShellNavItem[];
|
|
166
|
+
/**
|
|
167
|
+
* Trailing action link. "Section current" means: for an item in a
|
|
168
|
+
* {@link ShellNavGroup}, any item of the group, their children, or any
|
|
169
|
+
* action href is the current page; for a top-level item, the item, its
|
|
170
|
+
* children, or its action href is current.
|
|
171
|
+
*/
|
|
172
|
+
action?: ShellNavItemAction;
|
|
131
173
|
}
|
|
132
174
|
/** Tenant option rendered by {@link WorkspaceAccountMenu}. */
|
|
133
175
|
export interface WorkspaceAccountTenant {
|
|
@@ -152,6 +194,16 @@ export interface ShellFocusTool {
|
|
|
152
194
|
subject?: ShellFocusToolSubject;
|
|
153
195
|
activityKinds?: string[];
|
|
154
196
|
}
|
|
197
|
+
/** Options for opening a dock tool from code (see `useShellDock`). */
|
|
198
|
+
export interface ShellDockOpenOptions {
|
|
199
|
+
/** Move focus into the dock once it is open. Default true. */
|
|
200
|
+
focus?: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Where focus goes back to when the dock closes. Default: the element
|
|
203
|
+
* focused when the dock was opened.
|
|
204
|
+
*/
|
|
205
|
+
returnFocus?: HTMLElement | null;
|
|
206
|
+
}
|
|
155
207
|
export interface ShellActivity {
|
|
156
208
|
id: string;
|
|
157
209
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAC;AACnD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3D;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AACnE,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACrE,4DAA4D;IAC5D,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACvC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACtC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,CACrD,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAChD,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAClD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,IAAI,kBAAkB,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACvE,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,8DAA8D;AAC9D,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzC,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,qEAAqE;AACrE,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,EAAuC,CAAC;AAE3E,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAKrD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,CAKrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;CAOzB,CAAC"}
|
|
@@ -15,14 +15,19 @@ export { default as ActivityToasts } from './admin-shell/ActivityToasts.svelte';
|
|
|
15
15
|
export { default as AdminShell } from './admin-shell/AdminShell.svelte';
|
|
16
16
|
export { default as AppScopePanel } from './admin-shell/AppScopePanel.svelte';
|
|
17
17
|
export { ADMIN_SHELL_CONTEXT, setAdminShell, tryUseAdminShell, useAdminShell, } from './admin-shell/context.js';
|
|
18
|
+
export { type ShellDock, useShellDock } from './admin-shell/dock.js';
|
|
18
19
|
export { default as HotkeyInput } from './admin-shell/HotkeyInput.svelte';
|
|
19
20
|
export { formatHotkeyBinding, hotkeyMatchesEvent, isEditableTarget, isShortcutsEvent, type ShellHotkeyAction, shellActionFromKeyboardEvent, shouldIgnoreShellHotkey, } from './admin-shell/hotkeys.js';
|
|
21
|
+
export * from './admin-shell/layout.js';
|
|
22
|
+
export { SHELL_LAYOUT_CONTEXT, setShellLayout, tryUseShellLayout, useShellLayout, } from './admin-shell/layout-context.js';
|
|
23
|
+
export { ShellLayoutController, type ShellLayoutControllerOptions, type ShellLayoutPanelView, } from './admin-shell/layout-controller.svelte.js';
|
|
20
24
|
export { type BottomBarMode, bottomBarMode, FORM_ACTION_BAR_SELECTOR, findShellNavTrail, keyboardLikelyOpen, normalizeShellPath, type PhoneBottomBarItem, type PhoneTopBarInput, type PhoneTopBarModel, phoneTopBarFor, ScrollChrome, type ScrollChromeOptions, type ScrollSample, type ShellCrumb, type ShellIcon, type ShellNavPathItem, type ShellPageTrail, type ShellPageTrailInput, shellNavItemMatches, shellPageTrailFor, viewportFor, } from './admin-shell/mobile-shell.js';
|
|
21
25
|
export { installKeyboardWatcher, installScrollChrome, installShellViewport, watchFormActionBar, } from './admin-shell/mobile-shell-dom.js';
|
|
22
26
|
export { default as PhoneBottomBar } from './admin-shell/PhoneBottomBar.svelte';
|
|
23
27
|
export { default as PhoneTopBar } from './admin-shell/PhoneTopBar.svelte';
|
|
24
28
|
export { default as ShellCorner } from './admin-shell/ShellCorner.svelte';
|
|
25
29
|
export { default as ShellDockTool } from './admin-shell/ShellDockTool.svelte';
|
|
30
|
+
export { default as ShellLayoutEditor } from './admin-shell/ShellLayoutEditor.svelte';
|
|
26
31
|
export { default as ShellNavToggle } from './admin-shell/ShellNavToggle.svelte';
|
|
27
32
|
export { default as ShellSettingsPanel } from './admin-shell/ShellSettingsPanel.svelte';
|
|
28
33
|
export { default as ShellTitle } from './admin-shell/ShellTitle.svelte';
|
|
@@ -32,7 +37,7 @@ export { default as SystemStatusChips } from './admin-shell/SystemStatusChips.sv
|
|
|
32
37
|
export { clampPanelSize, DEFAULT_SHELL_KEYMAP, DEFAULT_SHELL_PANEL_RESIZE, LocalStorageShellSettingsAdapter, mergeShellSettingsDelta, panelPersists, pruneShellSettingsDelta, resolveHotkey, resolveInitialPanelState, resolvePanelResize, resolveShellConfig, stripUnpersistedSettings, } from './admin-shell/settings.js';
|
|
33
38
|
export { ADMIN_SHELL_DESKTOP_QUERY, ADMIN_SHELL_PHONE_QUERY, createShellState, detectShellViewport, ShellState, type ShellStateOptions, } from './admin-shell/state.svelte.js';
|
|
34
39
|
export { default as TenantNav } from './admin-shell/TenantNav.svelte';
|
|
35
|
-
export type { ActivityStatus, AdminShellPhoneOptions, AdminShellProps, PanelEdge, PanelPresentation, PanelState, PhonePanelPresentation, ResolvedShellConfig, ShellActivity, ShellActivityBadge, ShellActivityEvent, ShellActivityFilter, ShellFocusTool, ShellFocusToolSubject, ShellHotkeyBinding, ShellNavGroup, ShellNavItem, ShellPanelConfig, ShellPanelDefaults, ShellPanelPersist, ShellPanelResize, ShellScope, ShellSettingsAdapter, ShellSettingsDelta, ShellStateSnapshot, ShellStatusChip, ShellStatusTone, ShellSystemItem, ShellSystemPanel, ShellViewport, VisiblePanelState, WorkspaceAccountTenant, } from './admin-shell/types.js';
|
|
40
|
+
export type { ActivityStatus, AdminShellPhoneOptions, AdminShellProps, PanelEdge, PanelPresentation, PanelState, PhonePanelPresentation, ResolvedShellConfig, ShellActivity, ShellActivityBadge, ShellActivityEvent, ShellActivityFilter, ShellDockOpenOptions, ShellFocusTool, ShellFocusToolSubject, ShellHotkeyBinding, ShellNavGroup, ShellNavItem, ShellNavItemAction, ShellPanelConfig, ShellPanelDefaults, ShellPanelPersist, ShellPanelResize, ShellScope, ShellSettingsAdapter, ShellSettingsDelta, ShellStateSnapshot, ShellStatusChip, ShellStatusTone, ShellSystemItem, ShellSystemPanel, ShellViewport, VisiblePanelState, WorkspaceAccountTenant, } from './admin-shell/types.js';
|
|
36
41
|
export { ADMIN_SHELL_REGION_IDS, EDGE_SCOPES, PANEL_EDGES, SCOPE_EDGES, } from './admin-shell/types.js';
|
|
37
42
|
export { default as WorkspaceAccountMenu } from './admin-shell/WorkspaceAccountMenu.svelte';
|
|
38
43
|
export { type NavSection, type NavTreeFromManifestOptions, navTreeFromManifest as tenantNavFromManifest, pluralizeClassName, type SmrtManifestEntryLike, type SmrtManifestLike, } from './manifest-nav.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/workspace/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/workspace/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,14 +17,19 @@ export { default as ActivityToasts } from './admin-shell/ActivityToasts.svelte';
|
|
|
17
17
|
export { default as AdminShell } from './admin-shell/AdminShell.svelte';
|
|
18
18
|
export { default as AppScopePanel } from './admin-shell/AppScopePanel.svelte';
|
|
19
19
|
export { ADMIN_SHELL_CONTEXT, setAdminShell, tryUseAdminShell, useAdminShell, } from './admin-shell/context.js';
|
|
20
|
+
export { useShellDock } from './admin-shell/dock.js';
|
|
20
21
|
export { default as HotkeyInput } from './admin-shell/HotkeyInput.svelte';
|
|
21
22
|
export { formatHotkeyBinding, hotkeyMatchesEvent, isEditableTarget, isShortcutsEvent, shellActionFromKeyboardEvent, shouldIgnoreShellHotkey, } from './admin-shell/hotkeys.js';
|
|
23
|
+
export * from './admin-shell/layout.js';
|
|
24
|
+
export { SHELL_LAYOUT_CONTEXT, setShellLayout, tryUseShellLayout, useShellLayout, } from './admin-shell/layout-context.js';
|
|
25
|
+
export { ShellLayoutController, } from './admin-shell/layout-controller.svelte.js';
|
|
22
26
|
export { bottomBarMode, FORM_ACTION_BAR_SELECTOR, findShellNavTrail, keyboardLikelyOpen, normalizeShellPath, phoneTopBarFor, ScrollChrome, shellNavItemMatches, shellPageTrailFor, viewportFor, } from './admin-shell/mobile-shell.js';
|
|
23
27
|
export { installKeyboardWatcher, installScrollChrome, installShellViewport, watchFormActionBar, } from './admin-shell/mobile-shell-dom.js';
|
|
24
28
|
export { default as PhoneBottomBar } from './admin-shell/PhoneBottomBar.svelte';
|
|
25
29
|
export { default as PhoneTopBar } from './admin-shell/PhoneTopBar.svelte';
|
|
26
30
|
export { default as ShellCorner } from './admin-shell/ShellCorner.svelte';
|
|
27
31
|
export { default as ShellDockTool } from './admin-shell/ShellDockTool.svelte';
|
|
32
|
+
export { default as ShellLayoutEditor } from './admin-shell/ShellLayoutEditor.svelte';
|
|
28
33
|
export { default as ShellNavToggle } from './admin-shell/ShellNavToggle.svelte';
|
|
29
34
|
export { default as ShellSettingsPanel } from './admin-shell/ShellSettingsPanel.svelte';
|
|
30
35
|
export { default as ShellTitle } from './admin-shell/ShellTitle.svelte';
|
package/dist/i18n/server.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { type I18nSnapshot } from '@happyvertical/smrt-ui/i18n';
|
|
|
20
20
|
import '@happyvertical/smrt-ui/i18n';
|
|
21
21
|
import './strings.forms.js';
|
|
22
22
|
import './strings.board.js';
|
|
23
|
+
import './strings.sortable.js';
|
|
23
24
|
import './strings.audit.js';
|
|
24
25
|
import './strings.workspace.js';
|
|
25
26
|
import '../mcp-apps/strings.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/i18n/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAGL,KAAK,4BAA4B,EAElC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,6BAA6B,CAAC;AACrC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAChC,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,wBAAwB;IACvC,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACpD;;;OAGG;IACH,EAAE,CAAC,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACxC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC,CA4BvB"}
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/i18n/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAGL,KAAK,4BAA4B,EAElC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,6BAA6B,CAAC;AACrC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAChC,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,wBAAwB;IACvC,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACpD;;;OAGG;IACH,EAAE,CAAC,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACxC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC,CA4BvB"}
|
package/dist/i18n/server.js
CHANGED
|
@@ -25,6 +25,7 @@ import { getRegisteredDefaults, } from '@happyvertical/smrt-ui/i18n';
|
|
|
25
25
|
import '@happyvertical/smrt-ui/i18n';
|
|
26
26
|
import './strings.forms.js';
|
|
27
27
|
import './strings.board.js';
|
|
28
|
+
import './strings.sortable.js';
|
|
28
29
|
import './strings.audit.js';
|
|
29
30
|
import './strings.workspace.js';
|
|
30
31
|
import '../mcp-apps/strings.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const M: {
|
|
2
|
+
readonly 'ui.sortable.label': "ui.sortable.label";
|
|
3
|
+
readonly 'ui.sortable.move': "ui.sortable.move";
|
|
4
|
+
readonly 'ui.sortable.group': "ui.sortable.group";
|
|
5
|
+
readonly 'ui.sortable.empty': "ui.sortable.empty";
|
|
6
|
+
readonly 'ui.sortable.pickup': "ui.sortable.pickup";
|
|
7
|
+
readonly 'ui.sortable.position': "ui.sortable.position";
|
|
8
|
+
readonly 'ui.sortable.drop': "ui.sortable.drop";
|
|
9
|
+
readonly 'ui.sortable.failed': "ui.sortable.failed";
|
|
10
|
+
readonly 'ui.sortable.cancel': "ui.sortable.cancel";
|
|
11
|
+
readonly 'ui.sortable.unavailable': "ui.sortable.unavailable";
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=strings.sortable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strings.sortable.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.sortable.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,CAAC;;;;;;;;;;;CAcZ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineMessages } from '@happyvertical/smrt-ui/i18n';
|
|
2
|
+
export const M = defineMessages({
|
|
3
|
+
'ui.sortable.label': 'Sortable list',
|
|
4
|
+
'ui.sortable.move': 'Move {item}',
|
|
5
|
+
'ui.sortable.group': '{label}, {count} items',
|
|
6
|
+
'ui.sortable.empty': 'No items in {container}.',
|
|
7
|
+
'ui.sortable.pickup': 'Picked up {item}. Available destinations: {destinations}. Use the up and down arrow keys to choose a position, then Space or Enter to drop. Escape cancels.',
|
|
8
|
+
'ui.sortable.position': '{item}, position {position} of {count} in {container}.',
|
|
9
|
+
'ui.sortable.drop': 'Moved {item} to {container}, position {position} of {count}.',
|
|
10
|
+
'ui.sortable.failed': 'Could not move {item}. The list was restored.',
|
|
11
|
+
'ui.sortable.cancel': 'Cancelled moving {item}.',
|
|
12
|
+
'ui.sortable.unavailable': '{container} is unavailable.',
|
|
13
|
+
});
|
|
@@ -77,6 +77,19 @@ export declare const M: {
|
|
|
77
77
|
readonly 'ui.shell_settings_panel.enable_hotkeys': "ui.shell_settings_panel.enable_hotkeys";
|
|
78
78
|
readonly 'ui.shell_settings_panel.collapse': "ui.shell_settings_panel.collapse";
|
|
79
79
|
readonly 'ui.shell_settings_panel.expand': "ui.shell_settings_panel.expand";
|
|
80
|
+
readonly 'ui.shell_layout_editor.heading': "ui.shell_layout_editor.heading";
|
|
81
|
+
readonly 'ui.shell_layout_editor.description': "ui.shell_layout_editor.description";
|
|
82
|
+
readonly 'ui.shell_layout_editor.reset': "ui.shell_layout_editor.reset";
|
|
83
|
+
readonly 'ui.shell_layout_editor.panels': "ui.shell_layout_editor.panels";
|
|
84
|
+
readonly 'ui.shell_layout_editor.show_panel': "ui.shell_layout_editor.show_panel";
|
|
85
|
+
readonly 'ui.shell_layout_editor.start_expanded': "ui.shell_layout_editor.start_expanded";
|
|
86
|
+
readonly 'ui.shell_layout_editor.panel_unavailable': "ui.shell_layout_editor.panel_unavailable";
|
|
87
|
+
readonly 'ui.shell_layout_editor.navigation': "ui.shell_layout_editor.navigation";
|
|
88
|
+
readonly 'ui.shell_layout_editor.top_level': "ui.shell_layout_editor.top_level";
|
|
89
|
+
readonly 'ui.shell_layout_editor.show_entry': "ui.shell_layout_editor.show_entry";
|
|
90
|
+
readonly 'ui.shell_layout_editor.preview': "ui.shell_layout_editor.preview";
|
|
91
|
+
readonly 'ui.shell_layout_editor.preview_label': "ui.shell_layout_editor.preview_label";
|
|
92
|
+
readonly 'ui.shell_layout_editor.sortable_label': "ui.shell_layout_editor.sortable_label";
|
|
80
93
|
readonly 'ui.shortcuts_overlay.open_shortcuts': "ui.shortcuts_overlay.open_shortcuts";
|
|
81
94
|
readonly 'ui.shortcuts_overlay.close_drawer': "ui.shortcuts_overlay.close_drawer";
|
|
82
95
|
readonly 'ui.shortcuts_overlay.close': "ui.shortcuts_overlay.close";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.workspace.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,eAAO,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"strings.workspace.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IZ,CAAC"}
|
|
@@ -83,6 +83,19 @@ export const M = defineMessages({
|
|
|
83
83
|
'ui.shell_settings_panel.enable_hotkeys': 'Enable hotkeys',
|
|
84
84
|
'ui.shell_settings_panel.collapse': 'Collapse',
|
|
85
85
|
'ui.shell_settings_panel.expand': 'Expand',
|
|
86
|
+
'ui.shell_layout_editor.heading': 'Shell layout',
|
|
87
|
+
'ui.shell_layout_editor.description': 'Choose which panels appear and arrange the navigation. Drag a handle, or focus it, press Space, and use the arrow keys.',
|
|
88
|
+
'ui.shell_layout_editor.reset': 'Reset to defaults',
|
|
89
|
+
'ui.shell_layout_editor.panels': 'Panels',
|
|
90
|
+
'ui.shell_layout_editor.show_panel': 'Show {panel} panel',
|
|
91
|
+
'ui.shell_layout_editor.start_expanded': 'Start {panel} panel expanded',
|
|
92
|
+
'ui.shell_layout_editor.panel_unavailable': 'The {panel} panel is not available in this app.',
|
|
93
|
+
'ui.shell_layout_editor.navigation': 'Navigation',
|
|
94
|
+
'ui.shell_layout_editor.top_level': 'Top level',
|
|
95
|
+
'ui.shell_layout_editor.show_entry': 'Show {label} in navigation',
|
|
96
|
+
'ui.shell_layout_editor.preview': 'Preview',
|
|
97
|
+
'ui.shell_layout_editor.preview_label': 'Navigation preview',
|
|
98
|
+
'ui.shell_layout_editor.sortable_label': 'Navigation sections and items',
|
|
86
99
|
'ui.shortcuts_overlay.open_shortcuts': 'Open shortcuts',
|
|
87
100
|
'ui.shortcuts_overlay.close_drawer': 'Close drawer',
|
|
88
101
|
'ui.shortcuts_overlay.close': 'Close',
|