@happyvertical/smrt-svelte 0.55.1 → 0.55.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +29 -2
  2. package/agents/components.md +44 -1
  3. package/agents/workspace.md +77 -2
  4. package/dist/components/app/AppShell.svelte +121 -9
  5. package/dist/components/app/AppShell.svelte.d.ts +24 -2
  6. package/dist/components/app/AppShell.svelte.d.ts.map +1 -1
  7. package/dist/components/app/DockToggles.svelte +103 -0
  8. package/dist/components/app/DockToggles.svelte.d.ts +8 -0
  9. package/dist/components/app/DockToggles.svelte.d.ts.map +1 -0
  10. package/dist/components/app/dock-toggle.d.ts +14 -0
  11. package/dist/components/app/dock-toggle.d.ts.map +1 -0
  12. package/dist/components/app/dock-toggle.js +1 -0
  13. package/dist/components/app/index.d.ts +2 -0
  14. package/dist/components/app/index.d.ts.map +1 -1
  15. package/dist/components/app/index.js +1 -0
  16. package/dist/components/board/Board.svelte +92 -394
  17. package/dist/components/board/Board.svelte.d.ts.map +1 -1
  18. package/dist/components/forms/RelationInput.svelte +379 -0
  19. package/dist/components/forms/RelationInput.svelte.d.ts +75 -0
  20. package/dist/components/forms/RelationInput.svelte.d.ts.map +1 -0
  21. package/dist/components/forms/index.d.ts +2 -1
  22. package/dist/components/forms/index.d.ts.map +1 -1
  23. package/dist/components/forms/index.js +1 -0
  24. package/dist/components/forms/types.d.ts +9 -0
  25. package/dist/components/forms/types.d.ts.map +1 -1
  26. package/dist/components/sortable/Sortable.svelte +359 -0
  27. package/dist/components/sortable/Sortable.svelte.d.ts +26 -0
  28. package/dist/components/sortable/Sortable.svelte.d.ts.map +1 -0
  29. package/dist/components/sortable/controller.svelte.d.ts +152 -0
  30. package/dist/components/sortable/controller.svelte.d.ts.map +1 -0
  31. package/dist/components/sortable/controller.svelte.js +453 -0
  32. package/dist/components/sortable/index.d.ts +5 -0
  33. package/dist/components/sortable/index.d.ts.map +1 -0
  34. package/dist/components/sortable/index.js +2 -0
  35. package/dist/components/sortable/types.d.ts +80 -0
  36. package/dist/components/sortable/types.d.ts.map +1 -0
  37. package/dist/components/sortable/types.js +1 -0
  38. package/dist/components/workspace/admin-shell/AdminShell.svelte +49 -1
  39. package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
  40. package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte +196 -0
  41. package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte.d.ts +17 -0
  42. package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte.d.ts.map +1 -0
  43. package/dist/components/workspace/admin-shell/TenantNav.svelte +69 -3
  44. package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts.map +1 -1
  45. package/dist/components/workspace/admin-shell/dock.d.ts +37 -0
  46. package/dist/components/workspace/admin-shell/dock.d.ts.map +1 -0
  47. package/dist/components/workspace/admin-shell/dock.js +25 -0
  48. package/dist/components/workspace/admin-shell/layout-context.d.ts +7 -0
  49. package/dist/components/workspace/admin-shell/layout-context.d.ts.map +1 -0
  50. package/dist/components/workspace/admin-shell/layout-context.js +17 -0
  51. package/dist/components/workspace/admin-shell/layout-controller.svelte.d.ts +69 -0
  52. package/dist/components/workspace/admin-shell/layout-controller.svelte.d.ts.map +1 -0
  53. package/dist/components/workspace/admin-shell/layout-controller.svelte.js +91 -0
  54. package/dist/components/workspace/admin-shell/layout.d.ts +120 -0
  55. package/dist/components/workspace/admin-shell/layout.d.ts.map +1 -0
  56. package/dist/components/workspace/admin-shell/layout.js +402 -0
  57. package/dist/components/workspace/admin-shell/settings.d.ts +6 -4
  58. package/dist/components/workspace/admin-shell/settings.d.ts.map +1 -1
  59. package/dist/components/workspace/admin-shell/settings.js +14 -4
  60. package/dist/components/workspace/admin-shell/state.svelte.d.ts +59 -1
  61. package/dist/components/workspace/admin-shell/state.svelte.d.ts.map +1 -1
  62. package/dist/components/workspace/admin-shell/state.svelte.js +146 -2
  63. package/dist/components/workspace/admin-shell/types.d.ts +52 -0
  64. package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
  65. package/dist/components/workspace/index.d.ts +6 -1
  66. package/dist/components/workspace/index.d.ts.map +1 -1
  67. package/dist/components/workspace/index.js +5 -0
  68. package/dist/i18n/server.d.ts +1 -0
  69. package/dist/i18n/server.d.ts.map +1 -1
  70. package/dist/i18n/server.js +1 -0
  71. package/dist/i18n/strings.sortable.d.ts +13 -0
  72. package/dist/i18n/strings.sortable.d.ts.map +1 -0
  73. package/dist/i18n/strings.sortable.js +13 -0
  74. package/dist/i18n/strings.workspace.d.ts +13 -0
  75. package/dist/i18n/strings.workspace.d.ts.map +1 -1
  76. package/dist/i18n/strings.workspace.js +13 -0
  77. package/package.json +26 -15
@@ -1,4 +1,5 @@
1
- import type { PanelEdge, PanelPresentation, PanelState, PhonePanelPresentation, ResolvedShellConfig, ShellActivity, ShellActivityBadge, ShellActivityEvent, ShellActivityFilter, ShellFocusTool, ShellPanelDefaults, ShellPanelResize, ShellScope, ShellSettingsAdapter, ShellSettingsDelta, ShellStateSnapshot, ShellViewport, VisiblePanelState } from './types.js';
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":"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"}
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":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/types.ts"],"names":[],"mappings":"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"}
@@ -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';
@@ -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"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HZ,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',