@happyvertical/smrt-svelte 0.52.0 → 0.53.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/README.md +47 -0
- package/agents/components.md +8 -1
- package/dist/Provider.svelte +19 -15
- package/dist/Provider.svelte.d.ts +2 -2
- package/dist/Provider.svelte.d.ts.map +1 -1
- package/dist/__tests__/provider-mode-harness.svelte +14 -0
- package/dist/__tests__/provider-mode-harness.svelte.d.ts +11 -0
- package/dist/__tests__/provider-mode-harness.svelte.d.ts.map +1 -0
- package/dist/__tests__/provider-mode-probe.svelte +13 -0
- package/dist/__tests__/provider-mode-probe.svelte.d.ts +8 -0
- package/dist/__tests__/provider-mode-probe.svelte.d.ts.map +1 -0
- package/dist/components/forms/FileUpload.svelte +120 -16
- package/dist/components/forms/FileUpload.svelte.d.ts +7 -1
- package/dist/components/forms/FileUpload.svelte.d.ts.map +1 -1
- package/dist/components/forms/__tests__/FileUpload.native-form.test.js +249 -0
- package/dist/components/forms/__tests__/FileUploadReset.fixture.svelte +24 -0
- package/dist/components/forms/__tests__/FileUploadReset.fixture.svelte.d.ts +10 -0
- package/dist/components/forms/__tests__/FileUploadReset.fixture.svelte.d.ts.map +1 -0
- package/dist/components/workspace/__tests__/AdminShell.responsive.test.js +12 -1
- package/dist/components/workspace/__tests__/AdminShell.test.js +172 -1
- package/dist/components/workspace/__tests__/TenantNav.test.js +66 -0
- package/dist/components/workspace/__tests__/WorkspaceAccountMenu.test.js +6 -0
- package/dist/components/workspace/__tests__/admin-shell-state.test.js +25 -0
- package/dist/components/workspace/admin-shell/AdminShell.svelte +108 -26
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts +2 -0
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/TenantNav.svelte +70 -12
- package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts +8 -2
- package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte +16 -2
- package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts +2 -0
- package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/state.svelte.d.ts +2 -0
- package/dist/components/workspace/admin-shell/state.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/state.svelte.js +7 -0
- package/dist/components/workspace/admin-shell/types.d.ts +18 -1
- package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
- package/dist/components/workspace/index.d.ts +1 -1
- package/dist/components/workspace/index.d.ts.map +1 -1
- package/dist/i18n/strings.forms.d.ts +3 -0
- package/dist/i18n/strings.forms.d.ts.map +1 -1
- package/dist/i18n/strings.forms.js +3 -0
- package/dist/i18n/strings.workspace.d.ts +4 -0
- package/dist/i18n/strings.workspace.d.ts.map +1 -1
- package/dist/i18n/strings.workspace.js +4 -0
- package/dist/provider-mode.test.js +86 -0
- package/dist/state/app-state.svelte.d.ts.map +1 -1
- package/dist/state/app-state.svelte.js +8 -8
- package/package.json +16 -16
|
@@ -43,7 +43,7 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
43
43
|
import { swipeDismiss } from '@happyvertical/smrt-ui/feedback';
|
|
44
44
|
import { useI18n } from '@happyvertical/smrt-ui/i18n';
|
|
45
45
|
import { Button } from '@happyvertical/smrt-ui/ui';
|
|
46
|
-
import { onMount, untrack } from 'svelte';
|
|
46
|
+
import { onMount, tick, untrack } from 'svelte';
|
|
47
47
|
import type { Snippet } from 'svelte';
|
|
48
48
|
import { M } from '../../../i18n/strings.workspace.js';
|
|
49
49
|
import ActivityBadge from './ActivityBadge.svelte';
|
|
@@ -75,6 +75,8 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
75
75
|
state?: ShellState;
|
|
76
76
|
/** Content for the top app bar. */
|
|
77
77
|
appBar?: Snippet;
|
|
78
|
+
/** Account content kept in the app bar in every left-panel state. */
|
|
79
|
+
account?: Snippet;
|
|
78
80
|
/** Content for the main app panel. */
|
|
79
81
|
appPanel?: Snippet;
|
|
80
82
|
/** Content for the left tenant rail. */
|
|
@@ -139,6 +141,11 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
139
141
|
|
|
140
142
|
let {
|
|
141
143
|
title = 'SMRT',
|
|
144
|
+
homeHref,
|
|
145
|
+
showTenantToggle = true,
|
|
146
|
+
logoSrc,
|
|
147
|
+
logoAlt = '',
|
|
148
|
+
brand,
|
|
142
149
|
subtitle = '',
|
|
143
150
|
config,
|
|
144
151
|
settings,
|
|
@@ -146,6 +153,7 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
146
153
|
storageKey = 'smrt-admin-shell',
|
|
147
154
|
state: providedState,
|
|
148
155
|
appBar,
|
|
156
|
+
account,
|
|
149
157
|
appPanel,
|
|
150
158
|
tenantRail,
|
|
151
159
|
tenantPanel,
|
|
@@ -205,6 +213,24 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
205
213
|
|
|
206
214
|
const viewport = $derived(shell.viewport);
|
|
207
215
|
const isPhone = $derived(viewport === 'phone');
|
|
216
|
+
const narrow = $derived(shell.viewport === 'phone');
|
|
217
|
+
$effect(() => {
|
|
218
|
+
const panel = sideElements.left;
|
|
219
|
+
if (!narrow || !edgeExpanded('left') || !panel) return;
|
|
220
|
+
const opener = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
221
|
+
let cancelled = false;
|
|
222
|
+
void tick().then(async () => {
|
|
223
|
+
// Inherited visibility also transitions on primitive buttons; wait for
|
|
224
|
+
// the drawer and its controls to be focusable before moving focus.
|
|
225
|
+
const animations = panel.getAnimations?.({ subtree: true }) ?? [];
|
|
226
|
+
await Promise.all(animations
|
|
227
|
+
.filter((animation) => animation.playState !== 'paused' && Number.isFinite(animation.effect?.getComputedTiming().endTime ?? 0))
|
|
228
|
+
.map((animation) => animation.finished.catch(() => {})));
|
|
229
|
+
if (cancelled || !narrow || !edgeExpanded('left') || !panel.isConnected) return;
|
|
230
|
+
panel.querySelector<HTMLElement>('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')?.focus();
|
|
231
|
+
});
|
|
232
|
+
return () => { cancelled = true; queueMicrotask(() => { if (opener?.isConnected) opener.focus(); }); };
|
|
233
|
+
});
|
|
208
234
|
const showPhoneTop = $derived(isPhone && Boolean(phoneTopBar));
|
|
209
235
|
const showHeader = $derived(Boolean(header) && !showPhoneTop);
|
|
210
236
|
const bottomBar = $derived<BottomBarMode>(
|
|
@@ -517,6 +543,8 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
517
543
|
handle.addEventListener('lostpointercapture', onEnd);
|
|
518
544
|
}
|
|
519
545
|
|
|
546
|
+
const footerInHeader = $derived(!account && !!tenantFooter && (!shell.isEdgeShown('left') || !edgeExpanded('left')));
|
|
547
|
+
|
|
520
548
|
const layoutStyle = $derived(buildLayoutStyle(shell));
|
|
521
549
|
|
|
522
550
|
// Top/bottom edges reserve grid tracks for corner snippets. When a corner
|
|
@@ -620,12 +648,13 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
620
648
|
variant="ghost"
|
|
621
649
|
size="sm"
|
|
622
650
|
class="smrt-admin-shell__edge-toggle"
|
|
651
|
+
aria-label={edge === 'left' ? t(M[edgeExpanded(edge) ? 'ui.admin_shell.collapse_panel' : 'ui.admin_shell.expand_panel'], { panel: labelFor(edge) }) : undefined}
|
|
623
652
|
aria-expanded={edgeExpanded(edge)}
|
|
624
653
|
aria-controls={`smrt-admin-shell-${edge}-panel`}
|
|
625
654
|
onclick={() => shell.togglePanel(edge)}
|
|
626
655
|
>
|
|
627
|
-
<span>{labelFor(edge)}</span>
|
|
628
|
-
{#if showsHotkeyFor(edge)}
|
|
656
|
+
{#if edge === 'left' && !edgeExpanded(edge)}<span aria-hidden="true">›</span>{:else}<span>{labelFor(edge)}</span>{/if}
|
|
657
|
+
{#if showsHotkeyFor(edge) && (edge !== 'left' || edgeExpanded(edge))}
|
|
629
658
|
<kbd class="smrt-admin-shell__edge-toggle-kbd">{hotkeyFor(edge)}</kbd>
|
|
630
659
|
{/if}
|
|
631
660
|
<ActivityBadge {edge} />
|
|
@@ -671,6 +700,29 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
671
700
|
{/if}
|
|
672
701
|
{/snippet}
|
|
673
702
|
|
|
703
|
+
{#snippet brandContent(compact: boolean)}
|
|
704
|
+
{#if brand}
|
|
705
|
+
{@render brand({ compact })}
|
|
706
|
+
{:else}
|
|
707
|
+
{#if logoSrc}<img class="smrt-admin-shell__logo" src={logoSrc} alt={logoAlt} />{/if}
|
|
708
|
+
{#if compact}
|
|
709
|
+
{#if !logoSrc}<span aria-hidden="true">{title.charAt(0)}</span>{/if}
|
|
710
|
+
{:else}
|
|
711
|
+
<div class="smrt-admin-shell__brand-text"><strong>{title}</strong>{#if subtitle}<span>{subtitle}</span>{/if}</div>
|
|
712
|
+
{/if}
|
|
713
|
+
{/if}
|
|
714
|
+
{/snippet}
|
|
715
|
+
|
|
716
|
+
{#snippet shellBrand(compact = false)}
|
|
717
|
+
{#if homeHref}
|
|
718
|
+
<a class="smrt-admin-shell__brand smrt-admin-shell__brand-link" class:compact href={homeHref} aria-label={title || t(M['ui.admin_shell.home'])}>
|
|
719
|
+
{@render brandContent(compact)}
|
|
720
|
+
</a>
|
|
721
|
+
{:else}
|
|
722
|
+
<div class="smrt-admin-shell__brand" class:compact>{@render brandContent(compact)}</div>
|
|
723
|
+
{/if}
|
|
724
|
+
{/snippet}
|
|
725
|
+
|
|
674
726
|
<div
|
|
675
727
|
class="smrt-admin-shell"
|
|
676
728
|
data-top-state={panelState('top')}
|
|
@@ -714,14 +766,19 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
714
766
|
{#if appBar}
|
|
715
767
|
{@render appBar()}
|
|
716
768
|
{:else}
|
|
717
|
-
|
|
718
|
-
<strong>{title}</strong>
|
|
719
|
-
{#if subtitle}
|
|
720
|
-
<span>{subtitle}</span>
|
|
721
|
-
{/if}
|
|
722
|
-
</div>
|
|
769
|
+
{@render shellBrand()}
|
|
723
770
|
{@render edgeToggle('top')}
|
|
724
771
|
{/if}
|
|
772
|
+
{#if shell.config.panels.left.initial !== 'hidden' && (!isPhone || shell.phonePresentation('left') !== 'hidden')}
|
|
773
|
+
<div class="smrt-admin-shell__tenant-opener" class:restore-hidden={panelState('left') === 'hidden'}>
|
|
774
|
+
<Button variant="ghost" size="sm" aria-label={t(M['ui.admin_shell.menu'])} aria-expanded={edgeExpanded('left')} aria-controls="smrt-admin-shell-left-panel" onclick={() => shell.setPanelState('left', edgeExpanded('left') ? 'collapsed' : 'expanded')}>{t(M['ui.admin_shell.menu'])}</Button>
|
|
775
|
+
</div>
|
|
776
|
+
{/if}
|
|
777
|
+
{#if account || footerInHeader}
|
|
778
|
+
<div class="smrt-admin-shell__account">
|
|
779
|
+
{#if account}{@render account()}{:else if tenantFooter}{@render tenantFooter()}{/if}
|
|
780
|
+
</div>
|
|
781
|
+
{/if}
|
|
725
782
|
</div>
|
|
726
783
|
{#if topRightCorner}
|
|
727
784
|
<div class="smrt-admin-shell__corner smrt-admin-shell__corner--top-right">
|
|
@@ -771,6 +828,8 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
771
828
|
>
|
|
772
829
|
{@render resizer('left')}
|
|
773
830
|
<div class="smrt-admin-shell__rail">
|
|
831
|
+
{#if !edgeExpanded('left') && (homeHref || logoSrc || brand)}{@render shellBrand(true)}{/if}
|
|
832
|
+
{#if showTenantToggle}{@render edgeToggle('left')}{/if}
|
|
774
833
|
{#if shownOpen('left') || (tenantPanel && keepsContent('left'))}
|
|
775
834
|
<div
|
|
776
835
|
class="smrt-admin-shell__tenant-stack"
|
|
@@ -781,23 +840,17 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
781
840
|
{@render tenantPanel()}
|
|
782
841
|
{:else if tenantRail}
|
|
783
842
|
{@render tenantRail()}
|
|
784
|
-
{:else}
|
|
785
|
-
{@render edgeToggle('left')}
|
|
786
843
|
{/if}
|
|
787
844
|
</div>
|
|
788
|
-
{#if tenantFooter}
|
|
845
|
+
{#if tenantFooter && !footerInHeader}
|
|
789
846
|
<div class="smrt-admin-shell__tenant-footer">
|
|
790
847
|
{@render tenantFooter()}
|
|
791
848
|
</div>
|
|
792
849
|
{/if}
|
|
793
850
|
</div>
|
|
794
851
|
{/if}
|
|
795
|
-
{#if !shownOpen('left')}
|
|
796
|
-
{
|
|
797
|
-
{@render tenantRail()}
|
|
798
|
-
{:else}
|
|
799
|
-
{@render edgeToggle('left')}
|
|
800
|
-
{/if}
|
|
852
|
+
{#if !shownOpen('left') && tenantRail}
|
|
853
|
+
{@render tenantRail()}
|
|
801
854
|
{/if}
|
|
802
855
|
</div>
|
|
803
856
|
</aside>
|
|
@@ -954,11 +1007,8 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
954
1007
|
class="smrt-admin-shell__band smrt-admin-shell__band--bottom"
|
|
955
1008
|
style:--band-column={2}
|
|
956
1009
|
>
|
|
957
|
-
{#if systemBar}
|
|
958
|
-
|
|
959
|
-
{:else}
|
|
960
|
-
{@render edgeToggle('bottom')}
|
|
961
|
-
{/if}
|
|
1010
|
+
{#if systemBar}{@render systemBar()}{/if}
|
|
1011
|
+
{@render edgeToggle('bottom')}
|
|
962
1012
|
</div>
|
|
963
1013
|
{#if bottomRightCorner}
|
|
964
1014
|
<div class="smrt-admin-shell__corner smrt-admin-shell__corner--bottom-right">
|
|
@@ -1208,9 +1258,17 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
1208
1258
|
}
|
|
1209
1259
|
|
|
1210
1260
|
.smrt-admin-shell__brand {
|
|
1211
|
-
display:
|
|
1261
|
+
display: flex;
|
|
1262
|
+
align-items: center;
|
|
1263
|
+
gap: var(--smrt-spacing-2);
|
|
1212
1264
|
min-width: 0;
|
|
1265
|
+
color: inherit;
|
|
1266
|
+
text-decoration: none;
|
|
1213
1267
|
}
|
|
1268
|
+
.smrt-admin-shell__brand-text { display: grid; min-width: 0; }
|
|
1269
|
+
.smrt-admin-shell__brand.compact { justify-content: center; margin-block-end: var(--smrt-spacing-2); }
|
|
1270
|
+
.smrt-admin-shell__brand-link:focus-visible { outline: 2px solid var(--smrt-color-primary); outline-offset: 2px; }
|
|
1271
|
+
.smrt-admin-shell__logo { inline-size: 2rem; block-size: 2rem; object-fit: contain; flex-shrink: 0; }
|
|
1214
1272
|
|
|
1215
1273
|
.smrt-admin-shell__brand strong,
|
|
1216
1274
|
.smrt-admin-shell__brand span {
|
|
@@ -1290,6 +1348,27 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
1290
1348
|
overflow: hidden;
|
|
1291
1349
|
}
|
|
1292
1350
|
|
|
1351
|
+
.smrt-admin-shell__account {
|
|
1352
|
+
min-inline-size: 0;
|
|
1353
|
+
max-inline-size: min(20rem, 45vw);
|
|
1354
|
+
flex: 1 1 12rem;
|
|
1355
|
+
}
|
|
1356
|
+
.smrt-admin-shell__account :global(.smrt-workspace-account-menu .dropdown__menu) {
|
|
1357
|
+
top: 100%; bottom: auto; right: 0; left: auto;
|
|
1358
|
+
inline-size: max-content;
|
|
1359
|
+
max-inline-size: calc(100vw - 2 * var(--smrt-spacing-4));
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
.smrt-admin-shell__tenant-opener { display: none; flex-shrink: 0; }
|
|
1363
|
+
.smrt-admin-shell__tenant-opener.restore-hidden { display: block; }
|
|
1364
|
+
.smrt-admin-shell__edge--left[data-state='collapsed'] .smrt-admin-shell__rail { padding-inline: var(--smrt-spacing-2); }
|
|
1365
|
+
|
|
1366
|
+
.smrt-admin-shell__edge--left .smrt-admin-shell__rail {
|
|
1367
|
+
display: flex;
|
|
1368
|
+
flex-direction: column;
|
|
1369
|
+
gap: var(--smrt-spacing-2);
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1293
1372
|
/* A collapsed `keepMounted` edge keeps its panel in the DOM but hidden;
|
|
1294
1373
|
the panel classes set `display`, which would otherwise win over the
|
|
1295
1374
|
`hidden` attribute. */
|
|
@@ -1300,12 +1379,12 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
1300
1379
|
}
|
|
1301
1380
|
|
|
1302
1381
|
.smrt-admin-shell__tenant-stack {
|
|
1382
|
+
flex: 1;
|
|
1303
1383
|
display: grid;
|
|
1304
1384
|
grid-template-rows: minmax(0, 1fr) auto;
|
|
1305
1385
|
gap: var(--smrt-spacing-3);
|
|
1306
1386
|
min-width: 0;
|
|
1307
1387
|
min-height: 0;
|
|
1308
|
-
block-size: 100%;
|
|
1309
1388
|
}
|
|
1310
1389
|
|
|
1311
1390
|
.smrt-admin-shell__tenant-content {
|
|
@@ -1382,7 +1461,7 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
1382
1461
|
|
|
1383
1462
|
@keyframes smrt-admin-shell-bottom-drawer-in {
|
|
1384
1463
|
from {
|
|
1385
|
-
|
|
1464
|
+
clip-path: inset(100% 0 0);
|
|
1386
1465
|
}
|
|
1387
1466
|
}
|
|
1388
1467
|
|
|
@@ -1762,6 +1841,9 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
1762
1841
|
display: none;
|
|
1763
1842
|
}
|
|
1764
1843
|
|
|
1844
|
+
.smrt-admin-shell__tenant-opener { display: block; }
|
|
1845
|
+
.smrt-admin-shell__edge--left:not([data-state='expanded']),
|
|
1846
|
+
.smrt-admin-shell__edge--right:not([data-state='expanded']) { visibility: hidden; }
|
|
1765
1847
|
.smrt-admin-shell__edge--left,
|
|
1766
1848
|
.smrt-admin-shell__edge--right {
|
|
1767
1849
|
position: absolute;
|
|
@@ -7,6 +7,8 @@ interface Props extends AdminShellProps {
|
|
|
7
7
|
state?: ShellState;
|
|
8
8
|
/** Content for the top app bar. */
|
|
9
9
|
appBar?: Snippet;
|
|
10
|
+
/** Account content kept in the app bar in every left-panel state. */
|
|
11
|
+
account?: Snippet;
|
|
10
12
|
/** Content for the main app panel. */
|
|
11
13
|
appPanel?: Snippet;
|
|
12
14
|
/** Content for the left tenant rail. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminShell.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/AdminShell.svelte.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAStE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACR,sBAAsB,EACtB,eAAe,EAEf,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,UAAU,KAAM,SAAQ,eAAe;IACrC,sEAAsE;IACtE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IACxD,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC,CAAC;IAChD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAC7C;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5E,uEAAuE;IACvE,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"AdminShell.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/AdminShell.svelte.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAStE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACR,sBAAsB,EACtB,eAAe,EAEf,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,UAAU,KAAM,SAAQ,eAAe;IACrC,sEAAsE;IACtE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IACxD,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC,CAAC;IAChD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAC7C;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5E,uEAAuE;IACvE,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AA+zBH,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
import { useI18n } from '@happyvertical/smrt-ui/i18n';
|
|
3
3
|
import type { Component } from 'svelte';
|
|
4
4
|
import { M } from '../../../i18n/strings.workspace.js';
|
|
5
|
-
import type { ShellNavItem } from './types.js';
|
|
5
|
+
import type { ShellNavGroup, ShellNavItem } from './types.js';
|
|
6
6
|
|
|
7
7
|
interface Props {
|
|
8
8
|
/** Navigation items with href, label, icon, and optional children. */
|
|
9
|
-
items
|
|
9
|
+
items?: ShellNavItem[];
|
|
10
|
+
/** Labelled, collapsible navigation groups, rendered after flat items. */
|
|
11
|
+
groups?: ShellNavGroup[];
|
|
12
|
+
/** Accessible name for this navigation landmark. */
|
|
13
|
+
'aria-label'?: string;
|
|
14
|
+
/** Target density; omit to inherit the theme density. */
|
|
15
|
+
density?: 'comfortable' | 'touch';
|
|
10
16
|
/** Current URL to highlight the active navigation link. */
|
|
11
17
|
currentHref?: string;
|
|
12
18
|
/** Component used to render icon names as SVG or custom icons. */
|
|
@@ -18,7 +24,10 @@ interface Props {
|
|
|
18
24
|
}
|
|
19
25
|
|
|
20
26
|
let {
|
|
21
|
-
items,
|
|
27
|
+
items = [],
|
|
28
|
+
groups = [],
|
|
29
|
+
'aria-label': ariaLabel,
|
|
30
|
+
density,
|
|
22
31
|
currentHref = '',
|
|
23
32
|
iconComponent: IconComponent,
|
|
24
33
|
collapsed = false,
|
|
@@ -60,12 +69,8 @@ function fallbackIcon(label: string): string {
|
|
|
60
69
|
{/if}
|
|
61
70
|
{/snippet}
|
|
62
71
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
class:smrt-tenant-nav--collapsed={collapsed}
|
|
66
|
-
aria-label={t(M['ui.tenant_nav.tenant_navigation'])}
|
|
67
|
-
>
|
|
68
|
-
{#each items as item (item.href)}
|
|
72
|
+
{#snippet navItems(entries: ShellNavItem[])}
|
|
73
|
+
{#each entries as item (item.href)}
|
|
69
74
|
<div class="smrt-tenant-nav__section">
|
|
70
75
|
<a
|
|
71
76
|
href={item.href}
|
|
@@ -128,17 +133,70 @@ function fallbackIcon(label: string): string {
|
|
|
128
133
|
{/if}
|
|
129
134
|
</div>
|
|
130
135
|
{/each}
|
|
136
|
+
{/snippet}
|
|
137
|
+
|
|
138
|
+
<nav
|
|
139
|
+
class="smrt-tenant-nav"
|
|
140
|
+
data-density={density}
|
|
141
|
+
class:smrt-tenant-nav--collapsed={collapsed}
|
|
142
|
+
aria-label={ariaLabel || t(M['ui.tenant_nav.tenant_navigation'])}
|
|
143
|
+
>
|
|
144
|
+
|
|
145
|
+
{@render navItems(items)}
|
|
146
|
+
{#each groups as group}
|
|
147
|
+
<details class="smrt-tenant-nav__group" aria-label={group.heading} open>
|
|
148
|
+
<summary class="smrt-tenant-nav__heading">
|
|
149
|
+
{#if collapsed}
|
|
150
|
+
<span aria-hidden="true">{fallbackIcon(group.heading)}</span>
|
|
151
|
+
<span class="smrt-tenant-nav__sr-only">{group.heading}</span>
|
|
152
|
+
{:else}
|
|
153
|
+
<span>{group.heading}</span>
|
|
154
|
+
{/if}
|
|
155
|
+
</summary>
|
|
156
|
+
<div class="smrt-tenant-nav__group-items">{@render navItems(group.items)}</div>
|
|
157
|
+
</details>
|
|
158
|
+
{/each}
|
|
131
159
|
</nav>
|
|
132
160
|
|
|
133
161
|
<style>
|
|
134
162
|
.smrt-tenant-nav,
|
|
135
163
|
.smrt-tenant-nav__section,
|
|
136
|
-
.smrt-tenant-nav__children
|
|
164
|
+
.smrt-tenant-nav__children,
|
|
165
|
+
.smrt-tenant-nav__group-items {
|
|
137
166
|
display: grid;
|
|
138
167
|
gap: var(--smrt-spacing-1);
|
|
139
168
|
}
|
|
140
169
|
|
|
170
|
+
.smrt-tenant-nav__heading {
|
|
171
|
+
box-sizing: border-box;
|
|
172
|
+
min-block-size: var(--smrt-control-target-min, 0px);
|
|
173
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
174
|
+
color: var(--smrt-color-on-surface-variant);
|
|
175
|
+
font-size: var(--smrt-typography-label-large-size);
|
|
176
|
+
font-weight: var(--smrt-typography-weight-semibold);
|
|
177
|
+
border-radius: var(--smrt-radius-medium);
|
|
178
|
+
cursor: pointer;
|
|
179
|
+
}
|
|
180
|
+
.smrt-tenant-nav__heading:focus-visible {
|
|
181
|
+
outline: 2px solid var(--smrt-color-primary);
|
|
182
|
+
outline-offset: 2px;
|
|
183
|
+
}
|
|
184
|
+
.smrt-tenant-nav__group-items { margin-block-start: var(--smrt-spacing-1); }
|
|
185
|
+
.smrt-tenant-nav--collapsed .smrt-tenant-nav__heading {
|
|
186
|
+
display: grid;
|
|
187
|
+
place-items: center;
|
|
188
|
+
list-style: none;
|
|
189
|
+
inline-size: max(2.25rem, var(--smrt-control-target-min, 0px));
|
|
190
|
+
block-size: max(2.25rem, var(--smrt-control-target-min, 0px));
|
|
191
|
+
padding: 0;
|
|
192
|
+
}
|
|
193
|
+
.smrt-tenant-nav--collapsed .smrt-tenant-nav__heading::-webkit-details-marker { display: none; }
|
|
194
|
+
|
|
195
|
+
.smrt-tenant-nav[data-density='touch'] { --smrt-control-target-min: var(--smrt-touch-target-min, 48px); }
|
|
196
|
+
.smrt-tenant-nav[data-density='comfortable'] { --smrt-control-target-min: 0px; }
|
|
141
197
|
.smrt-tenant-nav a {
|
|
198
|
+
box-sizing: border-box;
|
|
199
|
+
min-block-size: var(--smrt-control-target-min, 0px);
|
|
142
200
|
display: grid;
|
|
143
201
|
/* Icon, label, then one auto column per trailing mark (badge, dot). */
|
|
144
202
|
grid-template-columns: auto minmax(0, 1fr);
|
|
@@ -161,8 +219,8 @@ function fallbackIcon(label: string): string {
|
|
|
161
219
|
.smrt-tenant-nav--collapsed a {
|
|
162
220
|
grid-template-columns: minmax(0, 1fr);
|
|
163
221
|
place-items: center;
|
|
164
|
-
inline-size: 2.25rem;
|
|
165
|
-
block-size: 2.25rem;
|
|
222
|
+
inline-size: max(2.25rem, var(--smrt-control-target-min, 0px));
|
|
223
|
+
block-size: max(2.25rem, var(--smrt-control-target-min, 0px));
|
|
166
224
|
padding: 0;
|
|
167
225
|
}
|
|
168
226
|
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import type { Component } from 'svelte';
|
|
2
|
-
import type { ShellNavItem } from './types.js';
|
|
2
|
+
import type { ShellNavGroup, ShellNavItem } from './types.js';
|
|
3
3
|
interface Props {
|
|
4
4
|
/** Navigation items with href, label, icon, and optional children. */
|
|
5
|
-
items
|
|
5
|
+
items?: ShellNavItem[];
|
|
6
|
+
/** Labelled, collapsible navigation groups, rendered after flat items. */
|
|
7
|
+
groups?: ShellNavGroup[];
|
|
8
|
+
/** Accessible name for this navigation landmark. */
|
|
9
|
+
'aria-label'?: string;
|
|
10
|
+
/** Target density; omit to inherit the theme density. */
|
|
11
|
+
density?: 'comfortable' | 'touch';
|
|
6
12
|
/** Current URL to highlight the active navigation link. */
|
|
7
13
|
currentHref?: string;
|
|
8
14
|
/** Component used to render icon names as SVG or custom icons. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantNav.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/TenantNav.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"TenantNav.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/TenantNav.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG9D,UAAU,KAAK;IACb,sEAAsE;IACtE,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAClC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,aAAa,CAAC,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AA6HD,QAAA,MAAM,SAAS,0BAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
|
@@ -11,6 +11,8 @@ const TENANT_PREFIX = 'workspace-account:tenant:';
|
|
|
11
11
|
export interface Props {
|
|
12
12
|
/** Username or identifier displayed in the account menu. */
|
|
13
13
|
userName: string;
|
|
14
|
+
/** Target density; omit to inherit the theme density. */
|
|
15
|
+
density?: 'comfortable' | 'touch';
|
|
14
16
|
/** Custom display name for the user, falls back to userName. */
|
|
15
17
|
userLabel?: string;
|
|
16
18
|
/** URL for the user's avatar image. */
|
|
@@ -35,6 +37,7 @@ export interface Props {
|
|
|
35
37
|
|
|
36
38
|
let {
|
|
37
39
|
userName,
|
|
40
|
+
density,
|
|
38
41
|
userLabel = '',
|
|
39
42
|
avatarUrl,
|
|
40
43
|
tenantLabel = '',
|
|
@@ -100,7 +103,7 @@ function handleSelect(id: string): void {
|
|
|
100
103
|
}
|
|
101
104
|
</script>
|
|
102
105
|
|
|
103
|
-
<div class="smrt-workspace-account-menu" title={summaryTitle}>
|
|
106
|
+
<div data-density={density} class="smrt-workspace-account-menu" title={summaryTitle}>
|
|
104
107
|
<Dropdown
|
|
105
108
|
{items}
|
|
106
109
|
{placement}
|
|
@@ -129,6 +132,17 @@ function handleSelect(id: string): void {
|
|
|
129
132
|
width: 100%;
|
|
130
133
|
}
|
|
131
134
|
|
|
135
|
+
.smrt-workspace-account-menu[data-density='touch'] {
|
|
136
|
+
--smrt-control-target-min: var(--smrt-touch-target-min, 48px);
|
|
137
|
+
}
|
|
138
|
+
.smrt-workspace-account-menu[data-density='comfortable'] {
|
|
139
|
+
--smrt-control-target-min: 0px;
|
|
140
|
+
}
|
|
141
|
+
.smrt-workspace-account-menu :global(.dropdown__item) {
|
|
142
|
+
min-block-size: var(--smrt-control-target-min, 0px);
|
|
143
|
+
box-sizing: border-box;
|
|
144
|
+
}
|
|
145
|
+
|
|
132
146
|
.smrt-workspace-account-menu :global(.dropdown) {
|
|
133
147
|
display: flex;
|
|
134
148
|
width: 100%;
|
|
@@ -141,7 +155,7 @@ function handleSelect(id: string): void {
|
|
|
141
155
|
gap: var(--smrt-spacing-2);
|
|
142
156
|
width: 100%;
|
|
143
157
|
min-width: 0;
|
|
144
|
-
min-height: 2.75rem;
|
|
158
|
+
min-height: max(2.75rem, var(--smrt-control-target-min, 0px));
|
|
145
159
|
padding: var(--smrt-spacing-2);
|
|
146
160
|
border-radius: var(--smrt-radius-large);
|
|
147
161
|
text-align: start;
|
|
@@ -3,6 +3,8 @@ import type { WorkspaceAccountTenant } from './types.js';
|
|
|
3
3
|
export interface Props {
|
|
4
4
|
/** Username or identifier displayed in the account menu. */
|
|
5
5
|
userName: string;
|
|
6
|
+
/** Target density; omit to inherit the theme density. */
|
|
7
|
+
density?: 'comfortable' | 'touch';
|
|
6
8
|
/** Custom display name for the user, falls back to userName. */
|
|
7
9
|
userLabel?: string;
|
|
8
10
|
/** URL for the user's avatar image. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceAccountMenu.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,wBAAwB,CAAC;AAI1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGzD,MAAM,WAAW,KAAK;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sEAAsE;IACtE,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"WorkspaceAccountMenu.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,wBAAwB,CAAC;AAI1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGzD,MAAM,WAAW,KAAK;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAClC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sEAAsE;IACtE,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAsGD,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
|
|
@@ -79,6 +79,8 @@ export declare class ShellState {
|
|
|
79
79
|
setHotkeysEnabled(enabled: boolean): void;
|
|
80
80
|
setHotkey(edge: PanelEdge, code: string | null): void;
|
|
81
81
|
setPanel(edge: PanelEdge, state: VisiblePanelState): void;
|
|
82
|
+
/** Set and persist a runtime panel preference, including hidden. */
|
|
83
|
+
setPanelState(edge: PanelEdge, state: PanelState): void;
|
|
82
84
|
togglePanel(edge: PanelEdge): void;
|
|
83
85
|
expandPanel(edge: PanelEdge): void;
|
|
84
86
|
collapsePanel(edge: PanelEdge): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/state.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB;;;GAGG;AACH,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAE9D,2EAA2E;AAC3E,wBAAgB,mBAAmB,IAAI,aAAa,CAWnD;AAED,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAC5D,KAAK,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAE9C,QAAQ,qBAAkC;IAC1C,MAAM,gCAKH;IACH,4EAA4E;IAC5E,QAAQ,gBAAoC;IAC5C,UAAU,mBAAgC;IAC1C,iBAAiB,gBAA+B;IAChD,UAAU,kBAA+B;IACzC;;;OAGG;IACH,cAAc,sCAAmD;IAEjE,OAAO,CAAC,iBAAiB,CAA+B;gBAE5C,OAAO,GAAE,iBAAsB;IAWrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAmB1C,2EAA2E;IAC3E,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,sBAAsB;IAI1D;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB;IAanD;;;;OAIG;IACH,kBAAkB,IAAI,IAAI;IAa1B,2DAA2D;IAC3D,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAOxD,2DAA2D;IAC3D,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAOrC,qEAAqE;IACrE,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIhE,+EAA+E;IAC/E,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAMzC;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,IAAI;IAeP,QAAQ,IAAI,kBAAkB;IAc9B,aAAa,CACX,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,IAAI;IAmBP,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAUrD,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/state.svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -207,6 +207,13 @@ export class ShellState {
|
|
|
207
207
|
});
|
|
208
208
|
}
|
|
209
209
|
setPanel(edge, state) {
|
|
210
|
+
this.setPanelState(edge, state);
|
|
211
|
+
}
|
|
212
|
+
/** Set and persist a runtime panel preference, including hidden. */
|
|
213
|
+
setPanelState(edge, state) {
|
|
214
|
+
if (!PANEL_EDGES.includes(edge) ||
|
|
215
|
+
!['hidden', 'collapsed', 'expanded'].includes(state))
|
|
216
|
+
return;
|
|
210
217
|
untrack(() => {
|
|
211
218
|
if (this.config.panels[edge].initial === 'hidden') {
|
|
212
219
|
this.panels[edge] = 'hidden';
|
|
@@ -92,7 +92,7 @@ export type ShellPanelDefaults = Partial<Record<PanelEdge, Partial<ShellPanelCon
|
|
|
92
92
|
export interface ShellSettingsDelta {
|
|
93
93
|
hotkeysEnabled?: boolean;
|
|
94
94
|
keymap?: Partial<Record<PanelEdge, ShellHotkeyBinding | null>>;
|
|
95
|
-
panels?: Partial<Record<PanelEdge,
|
|
95
|
+
panels?: Partial<Record<PanelEdge, PanelState>>;
|
|
96
96
|
/** Resized expanded widths in px; `null` resets to the configured size. */
|
|
97
97
|
sizes?: Partial<Record<PanelEdge, number | null>>;
|
|
98
98
|
activeFocusToolId?: string | null;
|
|
@@ -109,6 +109,11 @@ export interface ShellFocusToolSubject {
|
|
|
109
109
|
id: string;
|
|
110
110
|
label?: string;
|
|
111
111
|
}
|
|
112
|
+
/** Labelled, collapsible group of tenant navigation links. */
|
|
113
|
+
export interface ShellNavGroup {
|
|
114
|
+
heading: string;
|
|
115
|
+
items: ShellNavItem[];
|
|
116
|
+
}
|
|
112
117
|
export interface ShellNavItem {
|
|
113
118
|
href: string;
|
|
114
119
|
label: string;
|
|
@@ -218,6 +223,18 @@ export interface AdminShellPhoneOptions {
|
|
|
218
223
|
}
|
|
219
224
|
export interface AdminShellProps {
|
|
220
225
|
title?: string;
|
|
226
|
+
/** Optional destination for the default brand and compact rail mark. */
|
|
227
|
+
homeHref?: string;
|
|
228
|
+
/** Show the built-in tenant edge collapse/expand control. */
|
|
229
|
+
showTenantToggle?: boolean;
|
|
230
|
+
/** Optional brand logo URL. */
|
|
231
|
+
logoSrc?: string;
|
|
232
|
+
/** Alternative text for the logo (decorative by default). */
|
|
233
|
+
logoAlt?: string;
|
|
234
|
+
/** Custom brand content, receiving whether it is in the compact rail. */
|
|
235
|
+
brand?: Snippet<[{
|
|
236
|
+
compact: boolean;
|
|
237
|
+
}]>;
|
|
221
238
|
subtitle?: string;
|
|
222
239
|
config?: ShellPanelDefaults;
|
|
223
240
|
settings?: ShellSettingsDelta;
|
|
@@ -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;AAEjD,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,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export { default as SystemStatusChips } from './admin-shell/SystemStatusChips.sv
|
|
|
31
31
|
export { clampPanelSize, DEFAULT_SHELL_KEYMAP, DEFAULT_SHELL_PANEL_RESIZE, LocalStorageShellSettingsAdapter, mergeShellSettingsDelta, panelPersists, pruneShellSettingsDelta, resolveHotkey, resolveInitialPanelState, resolvePanelResize, resolveShellConfig, stripUnpersistedSettings, } from './admin-shell/settings.js';
|
|
32
32
|
export { ADMIN_SHELL_DESKTOP_QUERY, ADMIN_SHELL_PHONE_QUERY, createShellState, detectShellViewport, ShellState, type ShellStateOptions, } from './admin-shell/state.svelte.js';
|
|
33
33
|
export { default as TenantNav } from './admin-shell/TenantNav.svelte';
|
|
34
|
-
export type { ActivityStatus, AdminShellPhoneOptions, AdminShellProps, PanelEdge, PanelPresentation, PanelState, PhonePanelPresentation, ResolvedShellConfig, ShellActivity, ShellActivityBadge, ShellActivityEvent, ShellActivityFilter, ShellFocusTool, ShellFocusToolSubject, ShellHotkeyBinding, ShellNavItem, ShellPanelConfig, ShellPanelDefaults, ShellPanelPersist, ShellPanelResize, ShellScope, ShellSettingsAdapter, ShellSettingsDelta, ShellStateSnapshot, ShellStatusChip, ShellStatusTone, ShellSystemItem, ShellSystemPanel, ShellViewport, VisiblePanelState, WorkspaceAccountTenant, } from './admin-shell/types.js';
|
|
34
|
+
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';
|
|
35
35
|
export { ADMIN_SHELL_REGION_IDS, EDGE_SCOPES, PANEL_EDGES, SCOPE_EDGES, } from './admin-shell/types.js';
|
|
36
36
|
export { default as WorkspaceAccountMenu } from './admin-shell/WorkspaceAccountMenu.svelte';
|
|
37
37
|
export { type NavSection, type NavTreeFromManifestOptions, navTreeFromManifest as tenantNavFromManifest, pluralizeClassName, type SmrtManifestEntryLike, type SmrtManifestLike, } from './manifest-nav.js';
|