@happyvertical/smrt-svelte 0.53.4 → 0.53.6
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 +2 -1
- package/agents/workspace.md +25 -1
- package/dist/components/app/AppShell.svelte +11 -3
- package/dist/components/app/AppShell.svelte.d.ts +7 -2
- package/dist/components/app/AppShell.svelte.d.ts.map +1 -1
- package/dist/components/app/DockSlot.svelte +20 -0
- package/dist/components/app/DockSlot.svelte.d.ts +10 -0
- package/dist/components/app/DockSlot.svelte.d.ts.map +1 -0
- package/dist/components/workspace/README.md +3 -2
- package/dist/components/workspace/admin-shell/ActivityTicker.svelte +92 -0
- package/dist/components/workspace/admin-shell/ActivityTicker.svelte.d.ts +15 -0
- package/dist/components/workspace/admin-shell/ActivityTicker.svelte.d.ts.map +1 -0
- package/dist/components/workspace/admin-shell/AdminShell.svelte +5 -2
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts +4 -1
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
- package/dist/components/workspace/index.d.ts +1 -0
- package/dist/components/workspace/index.d.ts.map +1 -1
- package/dist/components/workspace/index.js +1 -0
- package/dist/i18n/strings.workspace.d.ts +5 -0
- package/dist/i18n/strings.workspace.d.ts.map +1 -1
- package/dist/i18n/strings.workspace.js +5 -0
- package/package.json +15 -15
package/README.md
CHANGED
|
@@ -641,7 +641,8 @@ Use `shell.setPanelState(edge, 'hidden' | 'collapsed' | 'expanded')` to persist
|
|
|
641
641
|
runtime panel preferences; app-configured hidden edges remain unavailable.
|
|
642
642
|
AdminShell keeps a discoverable tenant collapse control with supplied navigation
|
|
643
643
|
(`showTenantToggle={false}` opts out), a Menu opener in narrow layouts, and the
|
|
644
|
-
system toggle alongside a custom `systemBar
|
|
644
|
+
system toggle alongside a custom `systemBar` that has a `systemPanel` to open
|
|
645
|
+
(a `systemBar` with no `systemPanel` owns the bottom band and draws no toggle). Closed narrow drawers are inert;
|
|
645
646
|
opening focuses the first control, and closing or Escape restores the opener.
|
|
646
647
|
TenantNav accepts `density="touch"` for canonical 48px link targets, including
|
|
647
648
|
collapsed rail links; omit density to inherit the theme's control density.
|
package/agents/workspace.md
CHANGED
|
@@ -75,6 +75,26 @@ and touch input across mobile widths and desktop panel-state combinations.
|
|
|
75
75
|
|
|
76
76
|
See `src/components/workspace/MIGRATION.md` for the old-to-new concept map.
|
|
77
77
|
|
|
78
|
+
### Activity ticker
|
|
79
|
+
|
|
80
|
+
`ActivityTicker` accepts app-owned `activities: ReadonlyArray<ShellActivity>` plus
|
|
81
|
+
optional `label` and `emptyLabel`. It never fetches data or establishes authority.
|
|
82
|
+
Render it in `AdminShell`'s `systemBar` slot with `activities={shell.activities}`;
|
|
83
|
+
render `ActivityList filter={{ status: 'running' }}` in `systemPanel` for details.
|
|
84
|
+
Connect the same registry to actual jobs through an authenticated app adapter or
|
|
85
|
+
the `activityFeed` below. Queued and terminal records never appear as running.
|
|
86
|
+
|
|
87
|
+
A single running activity is static. Multiple activities scroll continuously with
|
|
88
|
+
a persistent Pause/Resume control and pause on hover/focus. A separate accessible
|
|
89
|
+
list contains each process once; visual loop copies are hidden from assistive
|
|
90
|
+
technology. Reduced motion disables animation and allows manual horizontal
|
|
91
|
+
scrolling. Optional finite 0–100 progress is shown; no progress is inferred.
|
|
92
|
+
|
|
93
|
+
Focused validation: `pnpm --filter @happyvertical/smrt-svelte exec vitest run
|
|
94
|
+
src/components/workspace/__tests__/ActivityTicker.test.ts
|
|
95
|
+
src/components/workspace/__tests__/index.test.ts`, then the activity ticker's
|
|
96
|
+
Chromium scenarios via the package's documented `test:e2e` command.
|
|
97
|
+
|
|
78
98
|
### Live activity feed adapter (`./web`, #1779)
|
|
79
99
|
|
|
80
100
|
`activityFeed({ collection, map, shell })` (from `@happyvertical/smrt-svelte/web`)
|
|
@@ -150,6 +170,8 @@ success applies the new snapshot.
|
|
|
150
170
|
Availability is never an authorization boundary—server operations must still
|
|
151
171
|
enforce permissions.
|
|
152
172
|
|
|
173
|
+
`ActivityTicker` accepts optional `statuses` restricted to queued/running; running-only remains the default. Opting into queued work adds an explicit localized Queued label without progress. Terminal outcomes belong in expanded `ActivityList`, with retention controlled by the app-owned data source.
|
|
174
|
+
|
|
153
175
|
## App shell and owner setup (`./app`)
|
|
154
176
|
|
|
155
177
|
`@happyvertical/smrt-svelte/app` (`src/components/app/`) is browser-only. It
|
|
@@ -163,7 +185,9 @@ lives beside, not inside, `./workspace` so the AdminShell barrel stays free of
|
|
|
163
185
|
and an `AppScopePanel`. Panels start collapsed as in `AdminShell`; pass
|
|
164
186
|
`config` to change that. `dock` is a snippet rendered inside the shell: a host
|
|
165
187
|
places its assistant there in a `ShellDockTool`, so this package never
|
|
166
|
-
imports `smrt-chat`.
|
|
188
|
+
imports `smrt-chat`. It receives the Provider's `DataSurfaceRegistry`
|
|
189
|
+
(`{#snippet dock(registry)}`), the instance mounted routes register on
|
|
190
|
+
when `webmcp` UI is on; pass it to `<AssistantDock {registry} />`. `runtimeDiagnostics` (default false) mounts the
|
|
167
191
|
read-only `smrt.runtime.diagnostics.read` WebMCP tool. Server code that
|
|
168
192
|
lists that tool (the diagnostics route's `toolNames`) imports
|
|
169
193
|
`RUNTIME_DIAGNOSTICS_WEBMCP_TOOL_NAME` from `./app/runtime-diagnostics`,
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
} from '@happyvertical/smrt-ui/themes';
|
|
7
7
|
import '@happyvertical/smrt-ui/themes/styles/all.css';
|
|
8
8
|
import '@happyvertical/smrt-ui/themes/styles/fonts.css';
|
|
9
|
+
import type { DataSurfaceRegistry } from '@happyvertical/smrt-ui/data';
|
|
9
10
|
import { useI18n } from '@happyvertical/smrt-ui/i18n';
|
|
10
11
|
import type { Snippet } from 'svelte';
|
|
11
12
|
import { M } from '../../i18n/strings.workspace.js';
|
|
@@ -20,6 +21,7 @@ import type {
|
|
|
20
21
|
ShellNavItem,
|
|
21
22
|
ShellPanelDefaults,
|
|
22
23
|
} from '../workspace/admin-shell/types.js';
|
|
24
|
+
import DockSlot from './DockSlot.svelte';
|
|
23
25
|
import RuntimeDiagnosticsWebMcp from './RuntimeDiagnosticsWebMcp.svelte';
|
|
24
26
|
|
|
25
27
|
interface Props {
|
|
@@ -59,9 +61,13 @@ interface Props {
|
|
|
59
61
|
appPanelDocs?: Snippet;
|
|
60
62
|
/**
|
|
61
63
|
* Dock slot, rendered inside the shell so a host can place an assistant in
|
|
62
|
-
* a `ShellDockTool` without this package depending on it.
|
|
64
|
+
* a `ShellDockTool` without this package depending on it. It receives the
|
|
65
|
+
* `DataSurfaceRegistry` of the Provider the shell mounts, the same instance
|
|
66
|
+
* mounted routes register their surfaces on, so
|
|
67
|
+
* `<AssistantDock {registry} />` sees them with no second registry. Routes
|
|
68
|
+
* register on it when the `webmcp` UI is enabled (`webmcp: true`).
|
|
63
69
|
*/
|
|
64
|
-
dock?: Snippet
|
|
70
|
+
dock?: Snippet<[DataSurfaceRegistry]>;
|
|
65
71
|
children: Snippet;
|
|
66
72
|
}
|
|
67
73
|
|
|
@@ -121,7 +127,9 @@ const hasNav = $derived(nav.length > 0 || navGroups.length > 0);
|
|
|
121
127
|
{/if}
|
|
122
128
|
{/snippet}
|
|
123
129
|
|
|
124
|
-
{
|
|
130
|
+
{#if dock}
|
|
131
|
+
<DockSlot {dock} />
|
|
132
|
+
{/if}
|
|
125
133
|
{@render children()}
|
|
126
134
|
</AdminShell>
|
|
127
135
|
</ThemeProvider>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ColorScheme, type ThemePreset } from '@happyvertical/smrt-ui/themes';
|
|
2
2
|
import '@happyvertical/smrt-ui/themes/styles/all.css';
|
|
3
3
|
import '@happyvertical/smrt-ui/themes/styles/fonts.css';
|
|
4
|
+
import type { DataSurfaceRegistry } from '@happyvertical/smrt-ui/data';
|
|
4
5
|
import type { Snippet } from 'svelte';
|
|
5
6
|
import type { User } from '../../state/app-state.js';
|
|
6
7
|
import type { WebMcpProviderConfig } from '../../web/webmcp-provider.js';
|
|
@@ -42,9 +43,13 @@ interface Props {
|
|
|
42
43
|
appPanelDocs?: Snippet;
|
|
43
44
|
/**
|
|
44
45
|
* Dock slot, rendered inside the shell so a host can place an assistant in
|
|
45
|
-
* a `ShellDockTool` without this package depending on it.
|
|
46
|
+
* a `ShellDockTool` without this package depending on it. It receives the
|
|
47
|
+
* `DataSurfaceRegistry` of the Provider the shell mounts, the same instance
|
|
48
|
+
* mounted routes register their surfaces on, so
|
|
49
|
+
* `<AssistantDock {registry} />` sees them with no second registry. Routes
|
|
50
|
+
* register on it when the `webmcp` UI is enabled (`webmcp: true`).
|
|
46
51
|
*/
|
|
47
|
-
dock?: Snippet
|
|
52
|
+
dock?: Snippet<[DataSurfaceRegistry]>;
|
|
48
53
|
children: Snippet;
|
|
49
54
|
}
|
|
50
55
|
declare const AppShell: import("svelte").Component<Props, {}, "">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/app/AppShell.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,8CAA8C,CAAC;AACtD,OAAO,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"AppShell.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/app/AppShell.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,8CAA8C,CAAC;AACtD,OAAO,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIzE,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAK3C,UAAU,KAAK;IACb,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;IACrB,uEAAuE;IACvE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACxC,yFAAyF;IACzF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sEAAsE;IACtE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,iDAAiD;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;CACnB;AA8ED,QAAA,MAAM,QAAQ,2CAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { DataSurfaceRegistry } from '@happyvertical/smrt-ui/data';
|
|
3
|
+
import type { Snippet } from 'svelte';
|
|
4
|
+
import { tryGetWebMcpUiContext } from '../../web/webmcp-ui-context.js';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
/** The host's dock snippet; receives the Provider's data-surface registry. */
|
|
8
|
+
dock: Snippet<[DataSurfaceRegistry]>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let { dock }: Props = $props();
|
|
12
|
+
// Rendered inside the Provider, so this is the registry mounted routes
|
|
13
|
+
// register their surfaces on (when the Provider's WebMCP UI is on).
|
|
14
|
+
const ui = tryGetWebMcpUiContext();
|
|
15
|
+
const registry = $derived(ui?.dataSurfaceRegistry);
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
{#if registry}
|
|
19
|
+
{@render dock(registry)}
|
|
20
|
+
{/if}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DataSurfaceRegistry } from '@happyvertical/smrt-ui/data';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
interface Props {
|
|
4
|
+
/** The host's dock snippet; receives the Provider's data-surface registry. */
|
|
5
|
+
dock: Snippet<[DataSurfaceRegistry]>;
|
|
6
|
+
}
|
|
7
|
+
declare const DockSlot: import("svelte").Component<Props, {}, "">;
|
|
8
|
+
type DockSlot = ReturnType<typeof DockSlot>;
|
|
9
|
+
export default DockSlot;
|
|
10
|
+
//# sourceMappingURL=DockSlot.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DockSlot.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/app/DockSlot.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAItC,UAAU,KAAK;IACb,8EAA8E;IAC9E,IAAI,EAAE,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;CACtC;AAoBD,QAAA,MAAM,QAAQ,2CAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -66,7 +66,7 @@ below is intentionally application code, not a `workspace/` export:
|
|
|
66
66
|
import { AssistantDock } from '@happyvertical/smrt-chat/svelte';
|
|
67
67
|
</script>
|
|
68
68
|
|
|
69
|
-
<ShellDockTool id="assistant" label="Assistant"
|
|
69
|
+
<ShellDockTool id="assistant" label="Assistant">
|
|
70
70
|
{#snippet render()}
|
|
71
71
|
<AssistantDock {transport} {registry} />
|
|
72
72
|
{/snippet}
|
|
@@ -74,7 +74,8 @@ below is intentionally application code, not a `workspace/` export:
|
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
`registry` is the same `DataSurfaceRegistry` instance mounted routes register
|
|
77
|
-
their descriptors on
|
|
77
|
+
their descriptors on; inside `AppShell` it is the argument of the `dock`
|
|
78
|
+
snippet (`{#snippet dock(registry)}`). `icon` takes a Svelte component. See
|
|
78
79
|
[`docs/assistant-dock.md`](../../../../../docs/assistant-dock.md) for the full
|
|
79
80
|
design.
|
|
80
81
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { useI18n } from '@happyvertical/smrt-ui/i18n';
|
|
3
|
+
import { Button } from '@happyvertical/smrt-ui/ui';
|
|
4
|
+
import { M } from '../../../i18n/strings.workspace.js';
|
|
5
|
+
import type { ShellActivity } from './types.js';
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
/** Authenticated app-owned activities; this component never fetches process data. */
|
|
9
|
+
activities: ReadonlyArray<ShellActivity>;
|
|
10
|
+
/** Active statuses to display; defaults to running only. Terminal work is never active. */
|
|
11
|
+
statuses?: ReadonlyArray<'queued' | 'running'>;
|
|
12
|
+
/** Accessible region name. */
|
|
13
|
+
label?: string;
|
|
14
|
+
/** Message shown when no activities are running. */
|
|
15
|
+
emptyLabel?: string;
|
|
16
|
+
}
|
|
17
|
+
let { activities, statuses = ['running'], label, emptyLabel }: Props = $props();
|
|
18
|
+
const { t } = useI18n();
|
|
19
|
+
let paused = $state(false);
|
|
20
|
+
const running = $derived(
|
|
21
|
+
activities.filter(
|
|
22
|
+
(activity) =>
|
|
23
|
+
(activity.status === 'queued' || activity.status === 'running') &&
|
|
24
|
+
statuses.includes(activity.status),
|
|
25
|
+
),
|
|
26
|
+
);
|
|
27
|
+
const multiple = $derived(running.length > 1);
|
|
28
|
+
function progress(activity: ShellActivity): string {
|
|
29
|
+
return activity.status === 'running' &&
|
|
30
|
+
typeof activity.progress === 'number' &&
|
|
31
|
+
Number.isFinite(activity.progress) &&
|
|
32
|
+
activity.progress >= 0 &&
|
|
33
|
+
activity.progress <= 100
|
|
34
|
+
? ` · ${Math.round(activity.progress)}%`
|
|
35
|
+
: '';
|
|
36
|
+
}
|
|
37
|
+
function activityLabel(activity: ShellActivity): string {
|
|
38
|
+
return activity.status === 'queued'
|
|
39
|
+
? `${t(M['ui.activity_ticker.queued'])} · ${activity.label}`
|
|
40
|
+
: activity.label;
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<div class="smrt-activity-ticker-shell">
|
|
45
|
+
<div class="smrt-activity-ticker" class:multiple class:paused role="region" aria-label={label ?? t(M['ui.activity_ticker.label'])} style:--activity-ticker-duration={`${Math.max(20, running.length * 10)}s`}>
|
|
46
|
+
{#if running.length === 0}
|
|
47
|
+
<span class="smrt-activity-ticker__empty">{emptyLabel ?? t(M['ui.activity_ticker.empty'])}</span>
|
|
48
|
+
{:else}
|
|
49
|
+
<ul class="smrt-activity-ticker__accessible">
|
|
50
|
+
{#each running as activity (activity.id)}<li>{activityLabel(activity)}{progress(activity)}</li>{/each}
|
|
51
|
+
</ul>
|
|
52
|
+
<div class="smrt-activity-ticker__track" aria-hidden="true">
|
|
53
|
+
<span class="smrt-activity-ticker__group">
|
|
54
|
+
{#each running as activity (activity.id)}<span>{activityLabel(activity)}{progress(activity)}</span>{/each}
|
|
55
|
+
</span>
|
|
56
|
+
{#if multiple}
|
|
57
|
+
<span class="smrt-activity-ticker__group smrt-activity-ticker__copy">
|
|
58
|
+
{#each running as activity (activity.id)}<span>{activityLabel(activity)}{progress(activity)}</span>{/each}
|
|
59
|
+
</span>
|
|
60
|
+
{/if}
|
|
61
|
+
</div>
|
|
62
|
+
{/if}
|
|
63
|
+
</div>
|
|
64
|
+
{#if multiple}
|
|
65
|
+
<span class="smrt-activity-ticker__control">
|
|
66
|
+
<Button variant="ghost" size="sm" aria-label={t(paused ? M['ui.activity_ticker.resume'] : M['ui.activity_ticker.pause'])} title={t(paused ? M['ui.activity_ticker.resume'] : M['ui.activity_ticker.pause'])} onclick={() => paused = !paused}>
|
|
67
|
+
<svg viewBox="0 0 16 16" width="14" height="14" fill="currentColor" aria-hidden="true">
|
|
68
|
+
{#if paused}<path d="M4 2v12l10-6z" />{:else}<path d="M3 2h4v12H3zM9 2h4v12H9z" />{/if}
|
|
69
|
+
</svg>
|
|
70
|
+
</Button>
|
|
71
|
+
</span>
|
|
72
|
+
{/if}
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<style>
|
|
76
|
+
.smrt-activity-ticker-shell { display:flex; align-items:center; flex:1; min-width:0; gap:var(--smrt-spacing-2); }
|
|
77
|
+
.smrt-activity-ticker { flex:1; min-width:0; overflow:hidden; color:var(--smrt-color-on-surface-variant); font-size:var(--smrt-typography-body-small-size); white-space:nowrap; }
|
|
78
|
+
.smrt-activity-ticker__track { display:flex; width:max-content; }
|
|
79
|
+
.smrt-activity-ticker__group { display:flex; gap:var(--smrt-spacing-6); flex-shrink:0; }
|
|
80
|
+
.multiple .smrt-activity-ticker__group { padding-inline-end:var(--smrt-spacing-6); }
|
|
81
|
+
.multiple .smrt-activity-ticker__track { animation:smrt-activity-scroll var(--activity-ticker-duration) linear infinite; }
|
|
82
|
+
.smrt-activity-ticker.paused .smrt-activity-ticker__track,
|
|
83
|
+
.smrt-activity-ticker:hover .smrt-activity-ticker__track,
|
|
84
|
+
.smrt-activity-ticker-shell:focus-within .smrt-activity-ticker__track { animation-play-state:paused; }
|
|
85
|
+
.smrt-activity-ticker__accessible { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:normal; }
|
|
86
|
+
@keyframes smrt-activity-scroll { to { transform:translateX(-50%); } }
|
|
87
|
+
@media (prefers-reduced-motion:reduce) {
|
|
88
|
+
.smrt-activity-ticker { overflow-x:auto; }
|
|
89
|
+
.multiple .smrt-activity-ticker__track { animation:none; }
|
|
90
|
+
.smrt-activity-ticker__copy, .smrt-activity-ticker__control { display:none; }
|
|
91
|
+
}
|
|
92
|
+
</style>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ShellActivity } from './types.js';
|
|
2
|
+
interface Props {
|
|
3
|
+
/** Authenticated app-owned activities; this component never fetches process data. */
|
|
4
|
+
activities: ReadonlyArray<ShellActivity>;
|
|
5
|
+
/** Active statuses to display; defaults to running only. Terminal work is never active. */
|
|
6
|
+
statuses?: ReadonlyArray<'queued' | 'running'>;
|
|
7
|
+
/** Accessible region name. */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Message shown when no activities are running. */
|
|
10
|
+
emptyLabel?: string;
|
|
11
|
+
}
|
|
12
|
+
declare const ActivityTicker: import("svelte").Component<Props, {}, "">;
|
|
13
|
+
type ActivityTicker = ReturnType<typeof ActivityTicker>;
|
|
14
|
+
export default ActivityTicker;
|
|
15
|
+
//# sourceMappingURL=ActivityTicker.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityTicker.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/ActivityTicker.svelte.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,UAAU,KAAK;IACb,qFAAqF;IACrF,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACzC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAC/C,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqED,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
|
|
@@ -89,7 +89,10 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
89
89
|
focusRail?: Snippet;
|
|
90
90
|
/** Content for the right focus panel, receives the active tool. */
|
|
91
91
|
focusPanel?: Snippet<[{ tool: ShellFocusTool | null }]>;
|
|
92
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* Content for the system bar. When supplied without a `systemPanel` it owns
|
|
94
|
+
* the bottom band: there is nothing to open, so no bottom toggle is drawn.
|
|
95
|
+
*/
|
|
93
96
|
systemBar?: Snippet;
|
|
94
97
|
/** Content for the system panel. */
|
|
95
98
|
systemPanel?: Snippet;
|
|
@@ -1008,7 +1011,7 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
1008
1011
|
style:--band-column={2}
|
|
1009
1012
|
>
|
|
1010
1013
|
{#if systemBar}{@render systemBar()}{/if}
|
|
1011
|
-
{@render edgeToggle('bottom')}
|
|
1014
|
+
{#if systemPanel || !systemBar}{@render edgeToggle('bottom')}{/if}
|
|
1012
1015
|
</div>
|
|
1013
1016
|
{#if bottomRightCorner}
|
|
1014
1017
|
<div class="smrt-admin-shell__corner smrt-admin-shell__corner--bottom-right">
|
|
@@ -23,7 +23,10 @@ interface Props extends AdminShellProps {
|
|
|
23
23
|
focusPanel?: Snippet<[{
|
|
24
24
|
tool: ShellFocusTool | null;
|
|
25
25
|
}]>;
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Content for the system bar. When supplied without a `systemPanel` it owns
|
|
28
|
+
* the bottom band: there is nothing to open, so no bottom toggle is drawn.
|
|
29
|
+
*/
|
|
27
30
|
systemBar?: Snippet;
|
|
28
31
|
/** Content for the system panel. */
|
|
29
32
|
systemPanel?: Snippet;
|
|
@@ -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,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
|
|
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;;;OAGG;IACH,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"}
|
|
@@ -10,6 +10,7 @@ export { type SwipeDirection, type SwipeDismissOptions, swipeDismiss, swipeDismi
|
|
|
10
10
|
export { default as ActivityBadge } from './admin-shell/ActivityBadge.svelte';
|
|
11
11
|
export { default as ActivityItem } from './admin-shell/ActivityItem.svelte';
|
|
12
12
|
export { default as ActivityList } from './admin-shell/ActivityList.svelte';
|
|
13
|
+
export { default as ActivityTicker } from './admin-shell/ActivityTicker.svelte';
|
|
13
14
|
export { default as ActivityToasts } from './admin-shell/ActivityToasts.svelte';
|
|
14
15
|
export { default as AdminShell } from './admin-shell/AdminShell.svelte';
|
|
15
16
|
export { default as AppScopePanel } from './admin-shell/AppScopePanel.svelte';
|
|
@@ -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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"}
|
|
@@ -12,6 +12,7 @@ export { swipeDismiss, swipeDismisses, } from '@happyvertical/smrt-ui/feedback';
|
|
|
12
12
|
export { default as ActivityBadge } from './admin-shell/ActivityBadge.svelte';
|
|
13
13
|
export { default as ActivityItem } from './admin-shell/ActivityItem.svelte';
|
|
14
14
|
export { default as ActivityList } from './admin-shell/ActivityList.svelte';
|
|
15
|
+
export { default as ActivityTicker } from './admin-shell/ActivityTicker.svelte';
|
|
15
16
|
export { default as ActivityToasts } from './admin-shell/ActivityToasts.svelte';
|
|
16
17
|
export { default as AdminShell } from './admin-shell/AdminShell.svelte';
|
|
17
18
|
export { default as AppScopePanel } from './admin-shell/AppScopePanel.svelte';
|
|
@@ -52,6 +52,11 @@ export declare const M: {
|
|
|
52
52
|
readonly 'ui.activity_item.view': "ui.activity_item.view";
|
|
53
53
|
readonly 'ui.activity_item.cancel': "ui.activity_item.cancel";
|
|
54
54
|
readonly 'ui.activity_list.empty': "ui.activity_list.empty";
|
|
55
|
+
readonly 'ui.activity_ticker.label': "ui.activity_ticker.label";
|
|
56
|
+
readonly 'ui.activity_ticker.empty': "ui.activity_ticker.empty";
|
|
57
|
+
readonly 'ui.activity_ticker.pause': "ui.activity_ticker.pause";
|
|
58
|
+
readonly 'ui.activity_ticker.resume': "ui.activity_ticker.resume";
|
|
59
|
+
readonly 'ui.activity_ticker.queued': "ui.activity_ticker.queued";
|
|
55
60
|
readonly 'ui.app_scope_panel.app_scope': "ui.app_scope_panel.app_scope";
|
|
56
61
|
readonly 'ui.app_shell.settings_link': "ui.app_shell.settings_link";
|
|
57
62
|
readonly 'ui.app_shell.navigation': "ui.app_shell.navigation";
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HZ,CAAC"}
|
|
@@ -57,6 +57,11 @@ export const M = defineMessages({
|
|
|
57
57
|
'ui.activity_item.view': 'View',
|
|
58
58
|
'ui.activity_item.cancel': 'Cancel',
|
|
59
59
|
'ui.activity_list.empty': 'No activities',
|
|
60
|
+
'ui.activity_ticker.label': 'Running processes',
|
|
61
|
+
'ui.activity_ticker.empty': 'No active processes',
|
|
62
|
+
'ui.activity_ticker.pause': 'Pause scrolling activities',
|
|
63
|
+
'ui.activity_ticker.resume': 'Resume scrolling activities',
|
|
64
|
+
'ui.activity_ticker.queued': 'Queued',
|
|
60
65
|
'ui.app_scope_panel.app_scope': 'App scope',
|
|
61
66
|
// components/app/*.svelte
|
|
62
67
|
'ui.app_shell.settings_link': 'Shell settings',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-svelte",
|
|
3
|
-
"version": "0.53.
|
|
3
|
+
"version": "0.53.6",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Svelte 5 components for SMRT user management - auth, users, tenants, roles, permissions, groups",
|
|
6
6
|
"type": "module",
|
|
@@ -137,12 +137,12 @@
|
|
|
137
137
|
"access": "public"
|
|
138
138
|
},
|
|
139
139
|
"dependencies": {
|
|
140
|
-
"@happyvertical/logger": "^0.
|
|
141
|
-
"@happyvertical/smrt-languages": "0.53.
|
|
142
|
-
"@happyvertical/smrt-mcp-apps": "0.53.
|
|
143
|
-
"@happyvertical/smrt-types": "0.53.
|
|
144
|
-
"@happyvertical/smrt-ui": "0.53.
|
|
145
|
-
"@happyvertical/smrt-web": "0.53.
|
|
140
|
+
"@happyvertical/logger": "^0.100.3",
|
|
141
|
+
"@happyvertical/smrt-languages": "0.53.6",
|
|
142
|
+
"@happyvertical/smrt-mcp-apps": "0.53.6",
|
|
143
|
+
"@happyvertical/smrt-types": "0.53.6",
|
|
144
|
+
"@happyvertical/smrt-ui": "0.53.6",
|
|
145
|
+
"@happyvertical/smrt-web": "0.53.6",
|
|
146
146
|
"@tanstack/db": "^0.6.14",
|
|
147
147
|
"@tanstack/svelte-db": "^0.1.91",
|
|
148
148
|
"esm-env": "^1.2.2"
|
|
@@ -177,14 +177,14 @@
|
|
|
177
177
|
}
|
|
178
178
|
},
|
|
179
179
|
"devDependencies": {
|
|
180
|
-
"@happyvertical/smrt-agents": "0.53.
|
|
181
|
-
"@happyvertical/smrt-chat": "0.53.
|
|
182
|
-
"@happyvertical/smrt-content": "0.53.
|
|
183
|
-
"@happyvertical/smrt-core": "0.53.
|
|
184
|
-
"@happyvertical/smrt-reports": "0.53.
|
|
185
|
-
"@happyvertical/smrt-scanner": "0.53.
|
|
186
|
-
"@happyvertical/smrt-tenancy": "0.53.
|
|
187
|
-
"@happyvertical/smrt-users": "0.53.
|
|
180
|
+
"@happyvertical/smrt-agents": "0.53.6",
|
|
181
|
+
"@happyvertical/smrt-chat": "0.53.6",
|
|
182
|
+
"@happyvertical/smrt-content": "0.53.6",
|
|
183
|
+
"@happyvertical/smrt-core": "0.53.6",
|
|
184
|
+
"@happyvertical/smrt-reports": "0.53.6",
|
|
185
|
+
"@happyvertical/smrt-scanner": "0.53.6",
|
|
186
|
+
"@happyvertical/smrt-tenancy": "0.53.6",
|
|
187
|
+
"@happyvertical/smrt-users": "0.53.6",
|
|
188
188
|
"@sveltejs/package": "^2.5.8",
|
|
189
189
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
190
190
|
"@testing-library/jest-dom": "^7.0.1",
|