@happyvertical/smrt-svelte 0.40.26 → 0.40.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/forms/CheckboxInput.svelte +1 -0
- package/dist/components/forms/DateTimeInput.svelte +5 -0
- package/dist/components/forms/NumberInput.svelte +5 -0
- package/dist/components/forms/SelectInput.svelte +1 -1
- package/dist/components/forms/TextInput.svelte +1 -1
- package/dist/components/forms/TextareaInput.svelte +1 -0
- package/dist/components/forms/__tests__/DateTimeInput.behavior.test.js +10 -0
- package/dist/components/forms/__tests__/NumberInput.behavior.test.js +10 -0
- package/dist/components/workspace/__tests__/AdminShell.test.js +89 -0
- package/dist/components/workspace/__tests__/admin-shell-state.test.js +21 -0
- package/dist/components/workspace/admin-shell/AdminShell.svelte +106 -7
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/state.svelte.d.ts +1 -0
- package/dist/components/workspace/admin-shell/state.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/state.svelte.js +11 -0
- package/dist/components/workspace/admin-shell/types.d.ts +2 -0
- package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
- package/dist/i18n/strings.workspace.d.ts +1 -0
- package/dist/i18n/strings.workspace.d.ts.map +1 -1
- package/dist/i18n/strings.workspace.js +1 -0
- package/package.json +6 -6
|
@@ -413,6 +413,8 @@ function handleNativeChange(e: Event) {
|
|
|
413
413
|
.smrt-datetime {
|
|
414
414
|
display: flex;
|
|
415
415
|
flex-direction: column;
|
|
416
|
+
width: 100%;
|
|
417
|
+
min-width: 0;
|
|
416
418
|
gap: var(--smrt-spacing-1, 4px);
|
|
417
419
|
position: relative;
|
|
418
420
|
}
|
|
@@ -435,6 +437,9 @@ function handleNativeChange(e: Event) {
|
|
|
435
437
|
|
|
436
438
|
.smrt-input {
|
|
437
439
|
flex: 1;
|
|
440
|
+
box-sizing: border-box;
|
|
441
|
+
min-width: 0;
|
|
442
|
+
width: 100%;
|
|
438
443
|
padding: var(--smrt-spacing-2, 8px) var(--smrt-spacing-3, 12px);
|
|
439
444
|
font-size: var(--smrt-typography-body-large-size, 1rem);
|
|
440
445
|
border: 1px solid var(--smrt-color-outline-variant, #d1d5db);
|
|
@@ -237,6 +237,8 @@ function handleInput(e: Event) {
|
|
|
237
237
|
.smrt-number {
|
|
238
238
|
display: flex;
|
|
239
239
|
flex-direction: column;
|
|
240
|
+
width: 100%;
|
|
241
|
+
min-width: 0;
|
|
240
242
|
gap: var(--smrt-spacing-1, 4px);
|
|
241
243
|
}
|
|
242
244
|
|
|
@@ -258,6 +260,9 @@ function handleInput(e: Event) {
|
|
|
258
260
|
|
|
259
261
|
.smrt-input {
|
|
260
262
|
flex: 1;
|
|
263
|
+
box-sizing: border-box;
|
|
264
|
+
min-width: 0;
|
|
265
|
+
width: 100%;
|
|
261
266
|
padding: var(--smrt-spacing-2, 8px) var(--smrt-spacing-3, 12px);
|
|
262
267
|
font-size: var(--smrt-typography-body-large-size, 1rem);
|
|
263
268
|
border: 1px solid var(--smrt-color-outline-variant, #d1d5db);
|
|
@@ -30,7 +30,17 @@ vi.mock('../../../hooks/useSTT.svelte.js', () => ({
|
|
|
30
30
|
}),
|
|
31
31
|
}));
|
|
32
32
|
import DateTimeInput from '../DateTimeInput.svelte';
|
|
33
|
+
import dateTimeInputSource from '../DateTimeInput.svelte?raw';
|
|
33
34
|
describe('DateTimeInput — behavior', () => {
|
|
35
|
+
it('allows its native input to shrink inside a narrow form track', () => {
|
|
36
|
+
const { container } = render(DateTimeInput, {
|
|
37
|
+
props: { name: 'when', label: 'When' },
|
|
38
|
+
});
|
|
39
|
+
container.style.width = '80px';
|
|
40
|
+
const input = screen.getByLabelText('When');
|
|
41
|
+
expect(input).toHaveClass('smrt-input');
|
|
42
|
+
expect(dateTimeInputSource).toMatch(/\.smrt-input\s*\{[^}]*box-sizing:\s*border-box;[^}]*min-width:\s*0;[^}]*width:\s*100%;/);
|
|
43
|
+
});
|
|
34
44
|
it('renders a datetime-local input when includeTime is true (default)', () => {
|
|
35
45
|
render(DateTimeInput, { props: { name: 'when', label: 'When' } });
|
|
36
46
|
expect(screen.getByLabelText('When')).toHaveAttribute('type', 'datetime-local');
|
|
@@ -19,6 +19,7 @@ vi.mock('../../../hooks/useAppState.svelte.js', () => ({
|
|
|
19
19
|
useAppState: () => ({ state: { mode: 'default' }, setMode: vi.fn() }),
|
|
20
20
|
}));
|
|
21
21
|
import NumberInput from '../NumberInput.svelte';
|
|
22
|
+
import numberInputSource from '../NumberInput.svelte?raw';
|
|
22
23
|
describe('NumberInput — typing & parsing', () => {
|
|
23
24
|
it('fires onchange with the parsed number as the user types', async () => {
|
|
24
25
|
const onchange = vi.fn();
|
|
@@ -104,6 +105,15 @@ describe('NumberInput — range validation', () => {
|
|
|
104
105
|
});
|
|
105
106
|
});
|
|
106
107
|
describe('NumberInput — attributes', () => {
|
|
108
|
+
it('allows its native input to shrink inside a narrow form track', () => {
|
|
109
|
+
const { container } = render(NumberInput, {
|
|
110
|
+
props: { name: 'amount', label: 'Amount' },
|
|
111
|
+
});
|
|
112
|
+
container.style.width = '80px';
|
|
113
|
+
const input = screen.getByLabelText('Amount');
|
|
114
|
+
expect(input).toHaveClass('smrt-input');
|
|
115
|
+
expect(numberInputSource).toMatch(/\.smrt-input\s*\{[^}]*box-sizing:\s*border-box;[^}]*min-width:\s*0;[^}]*width:\s*100%;/);
|
|
116
|
+
});
|
|
107
117
|
it('forwards min, max, and step onto the input', () => {
|
|
108
118
|
render(NumberInput, {
|
|
109
119
|
props: { name: 'age', label: 'Age', min: 1, max: 100, step: 5 },
|
|
@@ -224,4 +224,93 @@ describe('AdminShell', () => {
|
|
|
224
224
|
unmount(component);
|
|
225
225
|
}
|
|
226
226
|
});
|
|
227
|
+
it('collapses corner tracks when no corner snippets are mounted', () => {
|
|
228
|
+
const component = mount(AdminShell, {
|
|
229
|
+
target: container,
|
|
230
|
+
props: {
|
|
231
|
+
title: 'Ops',
|
|
232
|
+
children: textSnippet('main work'),
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
try {
|
|
236
|
+
const topEdge = container.querySelector('.smrt-admin-shell__edge--top');
|
|
237
|
+
const band = container.querySelector('.smrt-admin-shell__band--top');
|
|
238
|
+
expect(topEdge.style.getPropertyValue('--edge-columns').trim()).toBe('0px minmax(0, 1fr) 0px');
|
|
239
|
+
expect(band.style.getPropertyValue('--band-column').trim()).toBe('2');
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
unmount(component);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
it('renders a default focus rail from registered tools when no focusRail snippet is given', async () => {
|
|
246
|
+
const state = createShellState();
|
|
247
|
+
state.registerFocusTool({ id: 'chat', label: 'Chat' });
|
|
248
|
+
state.registerFocusTool({ id: 'files', label: 'Files' });
|
|
249
|
+
const component = mount(AdminShell, {
|
|
250
|
+
target: container,
|
|
251
|
+
props: { state, children: textSnippet('main work') },
|
|
252
|
+
});
|
|
253
|
+
try {
|
|
254
|
+
const buttons = container.querySelectorAll('.smrt-admin-shell__focus-tool');
|
|
255
|
+
expect(buttons.length).toBe(2);
|
|
256
|
+
expect(buttons[0].getAttribute('aria-label')).toBe('Chat');
|
|
257
|
+
// Clicking a tool opens the panel; clicking the active one closes it.
|
|
258
|
+
buttons[0].click();
|
|
259
|
+
const { tick } = await import('svelte');
|
|
260
|
+
await tick();
|
|
261
|
+
expect(container
|
|
262
|
+
.querySelector('.smrt-admin-shell__edge--right')
|
|
263
|
+
?.getAttribute('data-state')).toBe('expanded');
|
|
264
|
+
buttons[0].click();
|
|
265
|
+
await tick();
|
|
266
|
+
expect(container
|
|
267
|
+
.querySelector('.smrt-admin-shell__edge--right')
|
|
268
|
+
?.getAttribute('data-state')).toBe('collapsed');
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
unmount(component);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
it('reserves corner tracks only for mounted corner snippets', () => {
|
|
275
|
+
const component = mount(AdminShell, {
|
|
276
|
+
target: container,
|
|
277
|
+
props: {
|
|
278
|
+
title: 'Ops',
|
|
279
|
+
topLeftCorner: textSnippet('corner'),
|
|
280
|
+
children: textSnippet('main work'),
|
|
281
|
+
},
|
|
282
|
+
});
|
|
283
|
+
try {
|
|
284
|
+
const topEdge = container.querySelector('.smrt-admin-shell__edge--top');
|
|
285
|
+
const band = container.querySelector('.smrt-admin-shell__band--top');
|
|
286
|
+
const columns = topEdge.style.getPropertyValue('--edge-columns');
|
|
287
|
+
expect(columns).toContain('--smrt-admin-shell-left-collapsed');
|
|
288
|
+
expect(columns).not.toContain('--smrt-admin-shell-right-collapsed');
|
|
289
|
+
expect(band.style.getPropertyValue('--band-column').trim()).toBe('2');
|
|
290
|
+
}
|
|
291
|
+
finally {
|
|
292
|
+
unmount(component);
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
it('keeps a right-only corner in the explicit third grid track', () => {
|
|
296
|
+
const component = mount(AdminShell, {
|
|
297
|
+
target: container,
|
|
298
|
+
props: {
|
|
299
|
+
title: 'Ops',
|
|
300
|
+
topRightCorner: textSnippet('right corner'),
|
|
301
|
+
children: textSnippet('main work'),
|
|
302
|
+
},
|
|
303
|
+
});
|
|
304
|
+
try {
|
|
305
|
+
const topEdge = container.querySelector('.smrt-admin-shell__edge--top');
|
|
306
|
+
const band = container.querySelector('.smrt-admin-shell__band--top');
|
|
307
|
+
const columns = topEdge.style.getPropertyValue('--edge-columns').trim();
|
|
308
|
+
expect(columns).toBe('0px minmax(0, 1fr) var(--smrt-admin-shell-right-collapsed)');
|
|
309
|
+
expect(band.style.getPropertyValue('--band-column').trim()).toBe('2');
|
|
310
|
+
expect(container.querySelector('.smrt-admin-shell__corner--top-right')).not.toBeNull();
|
|
311
|
+
}
|
|
312
|
+
finally {
|
|
313
|
+
unmount(component);
|
|
314
|
+
}
|
|
315
|
+
});
|
|
227
316
|
});
|
|
@@ -158,6 +158,27 @@ describe('ShellState', () => {
|
|
|
158
158
|
harness.teardown();
|
|
159
159
|
}
|
|
160
160
|
});
|
|
161
|
+
it('keeps imperative open idempotent and toggles only through toggleFocusTool', () => {
|
|
162
|
+
const shell = createShellState();
|
|
163
|
+
shell.registerFocusTool({ id: 'chat', label: 'Chat' });
|
|
164
|
+
shell.openFocusTool('chat');
|
|
165
|
+
expect(shell.panels.right).toBe('expanded');
|
|
166
|
+
expect(shell.activeFocusToolId).toBe('chat');
|
|
167
|
+
// Imperative callers can safely ensure that a tool is open.
|
|
168
|
+
shell.openFocusTool('chat');
|
|
169
|
+
expect(shell.panels.right).toBe('expanded');
|
|
170
|
+
expect(shell.activeFocusToolId).toBe('chat');
|
|
171
|
+
// Rail clicks use the explicit toggle operation.
|
|
172
|
+
shell.toggleFocusTool('chat');
|
|
173
|
+
expect(shell.panels.right).toBe('collapsed');
|
|
174
|
+
shell.toggleFocusTool('chat');
|
|
175
|
+
expect(shell.panels.right).toBe('expanded');
|
|
176
|
+
// Switching tools never collapses.
|
|
177
|
+
shell.registerFocusTool({ id: 'files', label: 'Files' });
|
|
178
|
+
shell.openFocusTool('files');
|
|
179
|
+
expect(shell.panels.right).toBe('expanded');
|
|
180
|
+
expect(shell.activeFocusToolId).toBe('files');
|
|
181
|
+
});
|
|
161
182
|
it('does not leak panel state reads into consumer effects', () => {
|
|
162
183
|
const shell = createShellState();
|
|
163
184
|
const harness = mountMutationEffect(shell, (state) => {
|
|
@@ -157,6 +157,20 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
157
157
|
|
|
158
158
|
const layoutStyle = $derived(buildLayoutStyle(shell));
|
|
159
159
|
|
|
160
|
+
// Top/bottom edges reserve grid tracks for corner snippets. When a corner
|
|
161
|
+
// isn't mounted its track must collapse, otherwise the band is squeezed
|
|
162
|
+
// between phantom tracks sized by the collapsed panel widths.
|
|
163
|
+
function edgeColumns(left: unknown, right: unknown): string {
|
|
164
|
+
const l = 'var(--smrt-admin-shell-left-collapsed)';
|
|
165
|
+
const r = 'var(--smrt-admin-shell-right-collapsed)';
|
|
166
|
+
return `${left ? l : '0px'} minmax(0, 1fr) ${right ? r : '0px'}`;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const topEdgeColumns = $derived(edgeColumns(topLeftCorner, topRightCorner));
|
|
170
|
+
const bottomEdgeColumns = $derived(
|
|
171
|
+
edgeColumns(bottomLeftCorner, bottomRightCorner),
|
|
172
|
+
);
|
|
173
|
+
|
|
160
174
|
function panelState(edge: PanelEdge) {
|
|
161
175
|
return shell.panels[edge];
|
|
162
176
|
}
|
|
@@ -273,13 +287,17 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
273
287
|
class="smrt-admin-shell__edge smrt-admin-shell__edge--top"
|
|
274
288
|
data-state={panelState('top')}
|
|
275
289
|
data-presentation={shell.config.panels.top.presentation}
|
|
290
|
+
style:--edge-columns={topEdgeColumns}
|
|
276
291
|
>
|
|
277
292
|
{#if topLeftCorner}
|
|
278
293
|
<div class="smrt-admin-shell__corner smrt-admin-shell__corner--top-left">
|
|
279
294
|
{@render topLeftCorner()}
|
|
280
295
|
</div>
|
|
281
296
|
{/if}
|
|
282
|
-
<div
|
|
297
|
+
<div
|
|
298
|
+
class="smrt-admin-shell__band smrt-admin-shell__band--top"
|
|
299
|
+
style:--band-column={2}
|
|
300
|
+
>
|
|
283
301
|
{#if appBar}
|
|
284
302
|
{@render appBar()}
|
|
285
303
|
{:else}
|
|
@@ -365,6 +383,34 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
365
383
|
<div class="smrt-admin-shell__rail">
|
|
366
384
|
{#if focusRail}
|
|
367
385
|
{@render focusRail()}
|
|
386
|
+
{:else if shell.focusTools.length > 0}
|
|
387
|
+
<nav class="smrt-admin-shell__focus-rail" aria-label={t(M['ui.admin_shell.focus_tools'])}>
|
|
388
|
+
{#each shell.focusTools as tool (tool.id)}
|
|
389
|
+
<!-- raw-primitive-allow: shell chrome toggle, not a content button -->
|
|
390
|
+
<button
|
|
391
|
+
type="button"
|
|
392
|
+
class="smrt-admin-shell__focus-tool"
|
|
393
|
+
class:active={shell.activeFocusToolId ===
|
|
394
|
+
tool.id && edgeExpanded('right')}
|
|
395
|
+
aria-pressed={shell.activeFocusToolId ===
|
|
396
|
+
tool.id && edgeExpanded('right')}
|
|
397
|
+
aria-label={tool.label}
|
|
398
|
+
title={tool.label}
|
|
399
|
+
onclick={() => shell.toggleFocusTool(tool.id)}
|
|
400
|
+
>
|
|
401
|
+
{#if tool.icon}
|
|
402
|
+
<tool.icon />
|
|
403
|
+
{:else}
|
|
404
|
+
<span aria-hidden="true">{tool.label.charAt(0)}</span>
|
|
405
|
+
{/if}
|
|
406
|
+
{#if tool.badge != null}
|
|
407
|
+
<span class="smrt-admin-shell__focus-tool-badge">
|
|
408
|
+
{tool.badge}
|
|
409
|
+
</span>
|
|
410
|
+
{/if}
|
|
411
|
+
</button>
|
|
412
|
+
{/each}
|
|
413
|
+
</nav>
|
|
368
414
|
{:else}
|
|
369
415
|
{@render edgeToggle('right')}
|
|
370
416
|
{/if}
|
|
@@ -385,13 +431,17 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
385
431
|
class="smrt-admin-shell__edge smrt-admin-shell__edge--bottom"
|
|
386
432
|
data-state={panelState('bottom')}
|
|
387
433
|
data-presentation={shell.config.panels.bottom.presentation}
|
|
434
|
+
style:--edge-columns={bottomEdgeColumns}
|
|
388
435
|
>
|
|
389
436
|
{#if bottomLeftCorner}
|
|
390
437
|
<div class="smrt-admin-shell__corner smrt-admin-shell__corner--bottom-left">
|
|
391
438
|
{@render bottomLeftCorner()}
|
|
392
439
|
</div>
|
|
393
440
|
{/if}
|
|
394
|
-
<div
|
|
441
|
+
<div
|
|
442
|
+
class="smrt-admin-shell__band smrt-admin-shell__band--bottom"
|
|
443
|
+
style:--band-column={2}
|
|
444
|
+
>
|
|
395
445
|
{#if systemBar}
|
|
396
446
|
{@render systemBar()}
|
|
397
447
|
{:else}
|
|
@@ -499,9 +549,11 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
499
549
|
grid-column: 1 / -1;
|
|
500
550
|
grid-row: 1;
|
|
501
551
|
display: grid;
|
|
502
|
-
grid-template-columns:
|
|
552
|
+
grid-template-columns: var(
|
|
553
|
+
--edge-columns,
|
|
503
554
|
var(--smrt-admin-shell-left-collapsed) minmax(0, 1fr)
|
|
504
|
-
|
|
555
|
+
var(--smrt-admin-shell-right-collapsed)
|
|
556
|
+
);
|
|
505
557
|
border-block-end: 1px solid var(--smrt-color-outline-variant);
|
|
506
558
|
z-index: 30;
|
|
507
559
|
}
|
|
@@ -531,9 +583,11 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
531
583
|
grid-column: 1 / -1;
|
|
532
584
|
grid-row: 3;
|
|
533
585
|
display: grid;
|
|
534
|
-
grid-template-columns:
|
|
586
|
+
grid-template-columns: var(
|
|
587
|
+
--edge-columns,
|
|
535
588
|
var(--smrt-admin-shell-left-collapsed) minmax(0, 1fr)
|
|
536
|
-
|
|
589
|
+
var(--smrt-admin-shell-right-collapsed)
|
|
590
|
+
);
|
|
537
591
|
border-block-start: 1px solid var(--smrt-color-outline-variant);
|
|
538
592
|
z-index: 30;
|
|
539
593
|
}
|
|
@@ -558,7 +612,7 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
558
612
|
|
|
559
613
|
.smrt-admin-shell__band--top,
|
|
560
614
|
.smrt-admin-shell__band--bottom {
|
|
561
|
-
grid-column: 2;
|
|
615
|
+
grid-column: var(--band-column, 2);
|
|
562
616
|
}
|
|
563
617
|
|
|
564
618
|
.smrt-admin-shell__brand {
|
|
@@ -579,6 +633,7 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
579
633
|
}
|
|
580
634
|
|
|
581
635
|
.smrt-admin-shell__rail {
|
|
636
|
+
box-sizing: border-box;
|
|
582
637
|
min-width: 0;
|
|
583
638
|
min-height: 0;
|
|
584
639
|
block-size: 100%;
|
|
@@ -586,6 +641,49 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
586
641
|
padding: var(--smrt-spacing-3);
|
|
587
642
|
}
|
|
588
643
|
|
|
644
|
+
.smrt-admin-shell__focus-rail {
|
|
645
|
+
display: grid;
|
|
646
|
+
/* Center tracks, not just items: buttons may be wider than the
|
|
647
|
+
collapsed strip's content box (see ToolsDock). */
|
|
648
|
+
justify-content: center;
|
|
649
|
+
justify-items: center;
|
|
650
|
+
gap: var(--smrt-spacing-2, 0.5rem);
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
.smrt-admin-shell__focus-tool {
|
|
654
|
+
position: relative;
|
|
655
|
+
display: grid;
|
|
656
|
+
place-items: center;
|
|
657
|
+
width: 2.35rem;
|
|
658
|
+
height: 2.35rem;
|
|
659
|
+
border: 1px solid transparent;
|
|
660
|
+
border-radius: var(--smrt-radius-md, 8px);
|
|
661
|
+
background: transparent;
|
|
662
|
+
color: var(--smrt-color-on-surface-variant);
|
|
663
|
+
cursor: pointer;
|
|
664
|
+
font: inherit;
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
.smrt-admin-shell__focus-tool:hover,
|
|
668
|
+
.smrt-admin-shell__focus-tool.active {
|
|
669
|
+
color: var(--smrt-color-primary);
|
|
670
|
+
border-color: var(--smrt-color-primary);
|
|
671
|
+
background: var(--smrt-color-surface-container-high);
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
.smrt-admin-shell__focus-tool-badge {
|
|
675
|
+
position: absolute;
|
|
676
|
+
inset-block-start: -0.25rem;
|
|
677
|
+
inset-inline-end: -0.25rem;
|
|
678
|
+
min-width: 1rem;
|
|
679
|
+
border-radius: var(--smrt-radius-full, 9999px);
|
|
680
|
+
background: var(--smrt-color-error);
|
|
681
|
+
color: var(--smrt-color-on-error);
|
|
682
|
+
font-size: var(--smrt-typography-label-small-size, 0.625rem);
|
|
683
|
+
line-height: 1rem;
|
|
684
|
+
text-align: center;
|
|
685
|
+
}
|
|
686
|
+
|
|
589
687
|
.smrt-admin-shell__edge--left[data-state='expanded']
|
|
590
688
|
.smrt-admin-shell__rail {
|
|
591
689
|
overflow: hidden;
|
|
@@ -619,6 +717,7 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
619
717
|
}
|
|
620
718
|
|
|
621
719
|
.smrt-admin-shell__panel {
|
|
720
|
+
box-sizing: border-box;
|
|
622
721
|
min-width: 0;
|
|
623
722
|
min-height: 0;
|
|
624
723
|
block-size: 100%;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminShell.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/AdminShell.svelte.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAStC,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACR,eAAe,EAEf,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,UAAU,KAAM,SAAQ,eAAe;IACrC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,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":"AA2CA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAStC,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACR,eAAe,EAEf,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,UAAU,KAAM,SAAQ,eAAe;IACrC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAmYH,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -32,6 +32,7 @@ export declare class ShellState {
|
|
|
32
32
|
registerFocusTool(tool: ShellFocusTool): () => void;
|
|
33
33
|
unregisterFocusTool(id: string): void;
|
|
34
34
|
openFocusTool(id: string): void;
|
|
35
|
+
toggleFocusTool(id: string): void;
|
|
35
36
|
upsertActivity(activity: ShellActivity): void;
|
|
36
37
|
updateActivity(id: string, patch: ShellActivityPatch): void;
|
|
37
38
|
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":"AAOA,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,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;CACrB;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,UAAU,mBAAgC;IAC1C,iBAAiB,gBAA+B;IAChD,UAAU,kBAA+B;IAEzC,OAAO,CAAC,iBAAiB,CAA+B;gBAE5C,OAAO,GAAE,iBAAsB;IAUrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,QAAQ,IAAI,kBAAkB;IAY9B,aAAa,CACX,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,IAAI;IAkBP,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;IAezD,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAUlC,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAIlC,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAIpC,oBAAoB,IAAI,OAAO;IAY/B,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,IAAI;IAYnD,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASrC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAY/B,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IA4B7C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAc3D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAWhC,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAKvD,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,aAAa,EAAE;IASjE,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,kBAAkB;IAsBlD,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS;IAW9C,OAAO,CAAC,mBAAmB;YAmBb,eAAe;IAI7B,OAAO,CAAC,YAAY;CAGrB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAE5E"}
|
|
1
|
+
{"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/state.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,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;CACrB;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,UAAU,mBAAgC;IAC1C,iBAAiB,gBAA+B;IAChD,UAAU,kBAA+B;IAEzC,OAAO,CAAC,iBAAiB,CAA+B;gBAE5C,OAAO,GAAE,iBAAsB;IAUrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,QAAQ,IAAI,kBAAkB;IAY9B,aAAa,CACX,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,IAAI;IAkBP,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;IAezD,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAUlC,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAIlC,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAIpC,oBAAoB,IAAI,OAAO;IAY/B,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,IAAI;IAYnD,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASrC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAY/B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAWjC,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IA4B7C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAc3D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAWhC,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAKvD,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,aAAa,EAAE;IASjE,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,kBAAkB;IAsBlD,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS;IAW9C,OAAO,CAAC,mBAAmB;YAmBb,eAAe;IAI7B,OAAO,CAAC,YAAY;CAGrB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAE5E"}
|
|
@@ -139,6 +139,17 @@ export class ShellState {
|
|
|
139
139
|
void this.persistSettings();
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
|
+
toggleFocusTool(id) {
|
|
143
|
+
untrack(() => {
|
|
144
|
+
if (!this.focusTools.some((tool) => tool.id === id))
|
|
145
|
+
return;
|
|
146
|
+
if (this.activeFocusToolId === id && this.panels.right === 'expanded') {
|
|
147
|
+
this.collapsePanel('right');
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
this.openFocusTool(id);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
142
153
|
upsertActivity(activity) {
|
|
143
154
|
const nextActivity = snapshotActivity(activity);
|
|
144
155
|
untrack(() => {
|
|
@@ -63,6 +63,8 @@ export interface ShellFocusTool {
|
|
|
63
63
|
description?: string;
|
|
64
64
|
order?: number;
|
|
65
65
|
badge?: number | string | null;
|
|
66
|
+
/** Optional icon component rendered by the default focus rail. */
|
|
67
|
+
icon?: Component | null;
|
|
66
68
|
component?: Component | null;
|
|
67
69
|
render?: Snippet<[{
|
|
68
70
|
tool: ShellFocusTool;
|
|
@@ -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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"}
|
|
@@ -27,6 +27,7 @@ export declare const M: {
|
|
|
27
27
|
readonly 'ui.tools_dock.select_tool': "ui.tools_dock.select_tool";
|
|
28
28
|
readonly 'ui.tools_dock.workspace_tools': "ui.tools_dock.workspace_tools";
|
|
29
29
|
readonly 'ui.admin_shell.no_focus_tools': "ui.admin_shell.no_focus_tools";
|
|
30
|
+
readonly 'ui.admin_shell.focus_tools': "ui.admin_shell.focus_tools";
|
|
30
31
|
readonly 'ui.admin_shell.no_app_panel': "ui.admin_shell.no_app_panel";
|
|
31
32
|
readonly 'ui.admin_shell.no_system_panel': "ui.admin_shell.no_system_panel";
|
|
32
33
|
readonly 'ui.admin_shell.shell_shortcuts': "ui.admin_shell.shell_shortcuts";
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FZ,CAAC"}
|
|
@@ -32,6 +32,7 @@ export const M = defineMessages({
|
|
|
32
32
|
'ui.tools_dock.workspace_tools': 'Workspace tools',
|
|
33
33
|
// components/workspace/admin-shell/*
|
|
34
34
|
'ui.admin_shell.no_focus_tools': 'No focus tools',
|
|
35
|
+
'ui.admin_shell.focus_tools': 'Focus tools',
|
|
35
36
|
'ui.admin_shell.no_app_panel': 'No app panel',
|
|
36
37
|
'ui.admin_shell.no_system_panel': 'No system panel',
|
|
37
38
|
'ui.admin_shell.shell_shortcuts': 'Shell shortcuts',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-svelte",
|
|
3
|
-
"version": "0.40.
|
|
3
|
+
"version": "0.40.27",
|
|
4
4
|
"description": "Svelte 5 components for SMRT user management - auth, users, tenants, roles, permissions, groups",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"smrtRawPrimitives": "strict",
|
|
@@ -101,14 +101,14 @@
|
|
|
101
101
|
"access": "public"
|
|
102
102
|
},
|
|
103
103
|
"dependencies": {
|
|
104
|
-
"@happyvertical/logger": "^0.
|
|
104
|
+
"@happyvertical/logger": "^0.84.0",
|
|
105
105
|
"@tanstack/db": "^0.6.14",
|
|
106
106
|
"@tanstack/svelte-db": "^0.1.91",
|
|
107
107
|
"esm-env": "^1.2.2",
|
|
108
|
-
"@happyvertical/smrt-languages": "0.40.
|
|
109
|
-
"@happyvertical/smrt-
|
|
110
|
-
"@happyvertical/smrt-
|
|
111
|
-
"@happyvertical/smrt-web": "0.40.
|
|
108
|
+
"@happyvertical/smrt-languages": "0.40.27",
|
|
109
|
+
"@happyvertical/smrt-ui": "0.40.27",
|
|
110
|
+
"@happyvertical/smrt-types": "0.40.27",
|
|
111
|
+
"@happyvertical/smrt-web": "0.40.27"
|
|
112
112
|
},
|
|
113
113
|
"peerDependencies": {
|
|
114
114
|
"@huggingface/transformers": ">=3.8.1",
|