@happyvertical/smrt-svelte 0.38.26 → 0.39.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.
Files changed (48) hide show
  1. package/AGENTS.md +22 -0
  2. package/README.md +9 -7
  3. package/dist/components/forms/Form.svelte +112 -2
  4. package/dist/components/forms/Form.svelte.d.ts +12 -1
  5. package/dist/components/forms/Form.svelte.d.ts.map +1 -1
  6. package/dist/components/settings/SettingsCatalog.svelte +283 -0
  7. package/dist/components/settings/SettingsCatalog.svelte.d.ts +52 -0
  8. package/dist/components/settings/SettingsCatalog.svelte.d.ts.map +1 -0
  9. package/dist/components/settings/__tests__/SettingsCatalog.test.js +69 -0
  10. package/dist/components/settings/__tests__/catalog.test.js +46 -0
  11. package/dist/components/settings/catalog.d.ts +11 -0
  12. package/dist/components/settings/catalog.d.ts.map +1 -0
  13. package/dist/components/settings/catalog.js +40 -0
  14. package/dist/components/settings/index.d.ts +4 -0
  15. package/dist/components/settings/index.d.ts.map +1 -0
  16. package/dist/components/settings/index.js +2 -0
  17. package/dist/components/settings/types.d.ts +25 -0
  18. package/dist/components/settings/types.d.ts.map +1 -0
  19. package/dist/components/settings/types.js +1 -0
  20. package/dist/components/workspace/README.md +11 -1
  21. package/dist/components/workspace/__tests__/AdminShell.test.js +82 -0
  22. package/dist/components/workspace/__tests__/WorkspaceAccountMenu.test.js +73 -0
  23. package/dist/components/workspace/admin-shell/AdminShell.svelte +66 -15
  24. package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts +5 -2
  25. package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
  26. package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte +188 -0
  27. package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts +19 -0
  28. package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts.map +1 -0
  29. package/dist/components/workspace/admin-shell/types.d.ts +7 -0
  30. package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
  31. package/dist/components/workspace/index.d.ts +2 -1
  32. package/dist/components/workspace/index.d.ts.map +1 -1
  33. package/dist/components/workspace/index.js +1 -0
  34. package/dist/hooks/useTheme.d.ts +1 -1
  35. package/dist/hooks/useTheme.d.ts.map +1 -1
  36. package/dist/hooks/useTheme.js +1 -1
  37. package/dist/i18n/strings.settings.d.ts +12 -0
  38. package/dist/i18n/strings.settings.d.ts.map +1 -0
  39. package/dist/i18n/strings.settings.js +12 -0
  40. package/dist/i18n/strings.workspace.d.ts +3 -0
  41. package/dist/i18n/strings.workspace.d.ts.map +1 -1
  42. package/dist/i18n/strings.workspace.js +3 -0
  43. package/dist/state/form-context.d.ts +19 -0
  44. package/dist/state/form-context.d.ts.map +1 -1
  45. package/dist/web/__tests__/update-available-harness.svelte +4 -1
  46. package/dist/web/__tests__/update-available-harness.svelte.d.ts.map +1 -1
  47. package/package.json +23 -16
  48. package/LICENSE +0 -7
@@ -0,0 +1,188 @@
1
+ <script lang="ts">
2
+ import type { DropdownPlacement, MenuItem } from '@happyvertical/smrt-ui';
3
+ import { useI18n } from '@happyvertical/smrt-ui/i18n';
4
+ import { Avatar, Dropdown } from '@happyvertical/smrt-ui/ui';
5
+ import { M } from '../../../i18n/strings.workspace.js';
6
+ import type { WorkspaceAccountTenant } from './types.js';
7
+
8
+ const SIGN_OUT_ID = 'workspace-account:sign-out';
9
+ const TENANT_PREFIX = 'workspace-account:tenant:';
10
+
11
+ export interface Props {
12
+ userName: string;
13
+ userLabel?: string;
14
+ avatarUrl?: string;
15
+ tenantLabel?: string;
16
+ roleLabel?: string;
17
+ tenants?: WorkspaceAccountTenant[];
18
+ currentTenantId?: string | null;
19
+ placement?: DropdownPlacement;
20
+ disabled?: boolean;
21
+ onTenantSelect?: (tenantId: string) => void;
22
+ onSignOut?: () => void;
23
+ }
24
+
25
+ let {
26
+ userName,
27
+ userLabel = '',
28
+ avatarUrl,
29
+ tenantLabel = '',
30
+ roleLabel = '',
31
+ tenants = [],
32
+ currentTenantId = null,
33
+ placement = 'top-start',
34
+ disabled = false,
35
+ onTenantSelect,
36
+ onSignOut,
37
+ }: Props = $props();
38
+
39
+ const { t } = useI18n();
40
+ const identityLabel = $derived(userLabel || userName);
41
+ const activeTenantLabel = $derived(
42
+ tenantLabel ||
43
+ tenants.find((tenant) => tenant.id === currentTenantId)?.label ||
44
+ '',
45
+ );
46
+ const accountContext = $derived(
47
+ [activeTenantLabel, roleLabel].filter(Boolean).join(' · '),
48
+ );
49
+ const summaryTitle = $derived(
50
+ [identityLabel, activeTenantLabel, roleLabel].filter(Boolean).join(' · '),
51
+ );
52
+ const items = $derived.by(() => {
53
+ const menuItems: MenuItem[] = [];
54
+
55
+ if (tenants.length > 1 && onTenantSelect) {
56
+ for (const tenant of tenants) {
57
+ const isCurrent = tenant.id === currentTenantId;
58
+ const detail = tenant.roleLabel ? ` — ${tenant.roleLabel}` : '';
59
+ menuItems.push({
60
+ id: `${TENANT_PREFIX}${tenant.id}`,
61
+ label: isCurrent
62
+ ? `${t(M['ui.workspace_account_menu.current_tenant'], {
63
+ tenant: tenant.label,
64
+ })}${detail}`
65
+ : `${tenant.label}${detail}`,
66
+ disabled: tenant.disabled || isCurrent,
67
+ });
68
+ }
69
+ }
70
+
71
+ if (onSignOut) {
72
+ menuItems.push({
73
+ id: SIGN_OUT_ID,
74
+ label: t(M['ui.workspace_account_menu.sign_out']),
75
+ });
76
+ }
77
+
78
+ return menuItems;
79
+ });
80
+
81
+ function handleSelect(id: string): void {
82
+ if (id === SIGN_OUT_ID) {
83
+ onSignOut?.();
84
+ return;
85
+ }
86
+ if (id.startsWith(TENANT_PREFIX)) {
87
+ onTenantSelect?.(id.slice(TENANT_PREFIX.length));
88
+ }
89
+ }
90
+ </script>
91
+
92
+ <div class="smrt-workspace-account-menu" title={summaryTitle}>
93
+ <Dropdown
94
+ {items}
95
+ {placement}
96
+ onselect={handleSelect}
97
+ disabled={disabled || items.length === 0}
98
+ >
99
+ {#snippet trigger()}
100
+ <span class="smrt-workspace-account-menu__open">
101
+ {t(M['ui.workspace_account_menu.open'])}
102
+ </span>
103
+ <Avatar src={avatarUrl} name={userName} size="sm" aria-hidden="true" />
104
+ <span class="smrt-workspace-account-menu__identity">
105
+ <span class="smrt-workspace-account-menu__summary">{identityLabel}</span>
106
+ {#if accountContext}
107
+ <span class="smrt-workspace-account-menu__context">{accountContext}</span>
108
+ {/if}
109
+ </span>
110
+ <span class="smrt-workspace-account-menu__indicator" aria-hidden="true">•••</span>
111
+ {/snippet}
112
+ </Dropdown>
113
+ </div>
114
+
115
+ <style>
116
+ .smrt-workspace-account-menu {
117
+ min-width: 0;
118
+ width: 100%;
119
+ }
120
+
121
+ .smrt-workspace-account-menu :global(.dropdown) {
122
+ display: flex;
123
+ width: 100%;
124
+ }
125
+
126
+ .smrt-workspace-account-menu :global(.dropdown__trigger) {
127
+ display: grid;
128
+ grid-template-columns: auto minmax(0, 1fr) auto;
129
+ align-items: center;
130
+ gap: var(--smrt-spacing-2);
131
+ width: 100%;
132
+ min-width: 0;
133
+ min-height: 2.75rem;
134
+ padding: var(--smrt-spacing-2);
135
+ border-radius: var(--smrt-radius-large);
136
+ text-align: start;
137
+ }
138
+
139
+ .smrt-workspace-account-menu :global(.dropdown__menu) {
140
+ box-sizing: border-box;
141
+ width: 100%;
142
+ min-width: 12rem;
143
+ max-height: min(24rem, 70vh);
144
+ overflow-y: auto;
145
+ }
146
+
147
+ .smrt-workspace-account-menu__identity {
148
+ display: grid;
149
+ gap: var(--smrt-spacing-1);
150
+ min-width: 0;
151
+ }
152
+
153
+ .smrt-workspace-account-menu__summary,
154
+ .smrt-workspace-account-menu__context {
155
+ overflow: hidden;
156
+ text-overflow: ellipsis;
157
+ white-space: nowrap;
158
+ }
159
+
160
+ .smrt-workspace-account-menu__summary {
161
+ color: var(--smrt-color-on-surface);
162
+ font-size: var(--smrt-typography-body-small-size);
163
+ font-weight: var(--smrt-typography-weight-medium);
164
+ }
165
+
166
+ .smrt-workspace-account-menu__context {
167
+ color: var(--smrt-color-on-surface-variant);
168
+ font-size: var(--smrt-typography-label-small-size);
169
+ }
170
+
171
+ .smrt-workspace-account-menu__indicator {
172
+ color: var(--smrt-color-on-surface-variant);
173
+ font-size: var(--smrt-typography-label-small-size);
174
+ letter-spacing: 0.08em;
175
+ }
176
+
177
+ .smrt-workspace-account-menu__open {
178
+ position: absolute;
179
+ width: 1px;
180
+ height: 1px;
181
+ padding: 0;
182
+ margin: -1px;
183
+ overflow: hidden;
184
+ clip: rect(0, 0, 0, 0);
185
+ white-space: nowrap;
186
+ border: 0;
187
+ }
188
+ </style>
@@ -0,0 +1,19 @@
1
+ import type { DropdownPlacement } from '@happyvertical/smrt-ui';
2
+ import type { WorkspaceAccountTenant } from './types.js';
3
+ export interface Props {
4
+ userName: string;
5
+ userLabel?: string;
6
+ avatarUrl?: string;
7
+ tenantLabel?: string;
8
+ roleLabel?: string;
9
+ tenants?: WorkspaceAccountTenant[];
10
+ currentTenantId?: string | null;
11
+ placement?: DropdownPlacement;
12
+ disabled?: boolean;
13
+ onTenantSelect?: (tenantId: string) => void;
14
+ onSignOut?: () => void;
15
+ }
16
+ declare const WorkspaceAccountMenu: import("svelte").Component<Props, {}, "">;
17
+ type WorkspaceAccountMenu = ReturnType<typeof WorkspaceAccountMenu>;
18
+ export default WorkspaceAccountMenu;
19
+ //# sourceMappingURL=WorkspaceAccountMenu.svelte.d.ts.map
@@ -0,0 +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,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAqGD,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -50,6 +50,13 @@ export interface ShellNavItem {
50
50
  badge?: number | string | null;
51
51
  children?: ShellNavItem[];
52
52
  }
53
+ /** Tenant option rendered by {@link WorkspaceAccountMenu}. */
54
+ export interface WorkspaceAccountTenant {
55
+ id: string;
56
+ label: string;
57
+ roleLabel?: string;
58
+ disabled?: boolean;
59
+ }
53
60
  export interface ShellFocusTool {
54
61
  id: string;
55
62
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/types.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ export { default as SystemStatusChips } from './admin-shell/SystemStatusChips.sv
24
24
  export { DEFAULT_SHELL_KEYMAP, LocalStorageShellSettingsAdapter, mergeShellSettingsDelta, pruneShellSettingsDelta, resolveHotkey, resolveInitialPanelState, resolveShellConfig, } from './admin-shell/settings.js';
25
25
  export { createShellState, ShellState } from './admin-shell/state.svelte.js';
26
26
  export { default as TenantNav } from './admin-shell/TenantNav.svelte';
27
- export type { ActivityStatus, AdminShellProps, PanelEdge, PanelPresentation, PanelState, ResolvedShellConfig, ShellActivity, ShellActivityBadge, ShellActivityEvent, ShellActivityFilter, ShellFocusTool, ShellFocusToolSubject, ShellHotkeyBinding, ShellNavItem, ShellPanelConfig, ShellPanelDefaults, ShellScope, ShellSettingsAdapter, ShellSettingsDelta, ShellStateSnapshot, ShellStatusChip, ShellStatusTone, ShellSystemItem, ShellSystemPanel, VisiblePanelState, } from './admin-shell/types.js';
27
+ export type { ActivityStatus, AdminShellProps, PanelEdge, PanelPresentation, PanelState, ResolvedShellConfig, ShellActivity, ShellActivityBadge, ShellActivityEvent, ShellActivityFilter, ShellFocusTool, ShellFocusToolSubject, ShellHotkeyBinding, ShellNavItem, ShellPanelConfig, ShellPanelDefaults, ShellScope, ShellSettingsAdapter, ShellSettingsDelta, ShellStateSnapshot, ShellStatusChip, ShellStatusTone, ShellSystemItem, ShellSystemPanel, VisiblePanelState, WorkspaceAccountTenant, } from './admin-shell/types.js';
28
28
  export { EDGE_SCOPES, PANEL_EDGES, SCOPE_EDGES } from './admin-shell/types.js';
29
+ export { default as WorkspaceAccountMenu } from './admin-shell/WorkspaceAccountMenu.svelte';
29
30
  export { type NavSection, type NavTreeFromManifestOptions, navTreeFromManifest as tenantNavFromManifest, pluralizeClassName, type SmrtManifestEntryLike, type SmrtManifestLike, } from './manifest-nav.js';
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/workspace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE/E,OAAO,EACL,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,mBAAmB,IAAI,qBAAqB,EAC5C,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/workspace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAE5F,OAAO,EACL,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,mBAAmB,IAAI,qBAAqB,EAC5C,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC"}
@@ -25,4 +25,5 @@ export { DEFAULT_SHELL_KEYMAP, LocalStorageShellSettingsAdapter, mergeShellSetti
25
25
  export { createShellState, ShellState } from './admin-shell/state.svelte.js';
26
26
  export { default as TenantNav } from './admin-shell/TenantNav.svelte';
27
27
  export { EDGE_SCOPES, PANEL_EDGES, SCOPE_EDGES } from './admin-shell/types.js';
28
+ export { default as WorkspaceAccountMenu } from './admin-shell/WorkspaceAccountMenu.svelte';
28
29
  export { navTreeFromManifest as tenantNavFromManifest, pluralizeClassName, } from './manifest-nav.js';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Hook for accessing theme context
3
3
  */
4
- import { type ThemeContext } from '@happyvertical/smrt-ui/theme';
4
+ import { type ThemeContext } from '@happyvertical/smrt-ui/themes';
5
5
  /**
6
6
  * Get theme context (throws if not available)
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,wBAAgB,QAAQ,IAAI,YAAY,CAEvC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,YAAY,GAAG,IAAI,CAEjD"}
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,+BAA+B,CAAC;AAEvC;;GAEG;AACH,wBAAgB,QAAQ,IAAI,YAAY,CAEvC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,YAAY,GAAG,IAAI,CAEjD"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Hook for accessing theme context
3
3
  */
4
- import { getThemeContext, tryGetThemeContext, } from '@happyvertical/smrt-ui/theme';
4
+ import { getThemeContext, tryGetThemeContext, } from '@happyvertical/smrt-ui/themes';
5
5
  /**
6
6
  * Get theme context (throws if not available)
7
7
  */
@@ -0,0 +1,12 @@
1
+ export declare const M: {
2
+ readonly 'ui.settings_catalog.search': "ui.settings_catalog.search";
3
+ readonly 'ui.settings_catalog.search_action': "ui.settings_catalog.search_action";
4
+ readonly 'ui.settings_catalog.results': "ui.settings_catalog.results";
5
+ readonly 'ui.settings_catalog.pagination': "ui.settings_catalog.pagination";
6
+ readonly 'ui.settings_catalog.no_results': "ui.settings_catalog.no_results";
7
+ readonly 'ui.settings_catalog.select_item': "ui.settings_catalog.select_item";
8
+ readonly 'ui.settings_catalog.previous': "ui.settings_catalog.previous";
9
+ readonly 'ui.settings_catalog.next': "ui.settings_catalog.next";
10
+ readonly 'ui.settings_catalog.result_range': "ui.settings_catalog.result_range";
11
+ };
12
+ //# sourceMappingURL=strings.settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.settings.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.settings.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,CAAC;;;;;;;;;;CAUZ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { defineMessages } from '@happyvertical/smrt-ui/i18n';
2
+ export const M = defineMessages({
3
+ 'ui.settings_catalog.search': 'Search settings',
4
+ 'ui.settings_catalog.search_action': 'Search',
5
+ 'ui.settings_catalog.results': 'Settings results',
6
+ 'ui.settings_catalog.pagination': 'Pagination',
7
+ 'ui.settings_catalog.no_results': 'No settings match this search.',
8
+ 'ui.settings_catalog.select_item': 'Select a setting to edit.',
9
+ 'ui.settings_catalog.previous': 'Previous',
10
+ 'ui.settings_catalog.next': 'Next',
11
+ 'ui.settings_catalog.result_range': '{start}–{end} of {total}',
12
+ });
@@ -56,6 +56,9 @@ export declare const M: {
56
56
  readonly 'ui.system_scope_panel.no_running_work': "ui.system_scope_panel.no_running_work";
57
57
  readonly 'ui.system_status_chips.system_status': "ui.system_status_chips.system_status";
58
58
  readonly 'ui.tenant_nav.tenant_navigation': "ui.tenant_nav.tenant_navigation";
59
+ readonly 'ui.workspace_account_menu.open': "ui.workspace_account_menu.open";
60
+ readonly 'ui.workspace_account_menu.current_tenant': "ui.workspace_account_menu.current_tenant";
61
+ readonly 'ui.workspace_account_menu.sign_out': "ui.workspace_account_menu.sign_out";
59
62
  readonly 'ui.activity_feed.title': "ui.activity_feed.title";
60
63
  readonly 'ui.activity_feed.description': "ui.activity_feed.description";
61
64
  readonly 'ui.activity_feed.enqueue_job': "ui.activity_feed.enqueue_job";
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFZ,CAAC"}
1
+ {"version":3,"file":"strings.workspace.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FZ,CAAC"}
@@ -61,6 +61,9 @@ export const M = defineMessages({
61
61
  'ui.system_scope_panel.no_running_work': 'No running work',
62
62
  'ui.system_status_chips.system_status': 'System status',
63
63
  'ui.tenant_nav.tenant_navigation': 'Tenant navigation',
64
+ 'ui.workspace_account_menu.open': 'Open account menu',
65
+ 'ui.workspace_account_menu.current_tenant': '{tenant} — current',
66
+ 'ui.workspace_account_menu.sign_out': 'Sign out',
64
67
  // web/activity-feed adapter demo (#1779) — playground/admin-shell-activity-feed
65
68
  'ui.activity_feed.title': 'Live activity feed',
66
69
  'ui.activity_feed.description': 'A smrt-web live collection reconciled into the shell activity registry.',
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * SMRT Form context for field registration and coordination
3
3
  */
4
+ import type { ControlConstraints, ControlInteractionRegistry, ControlKind, ControlOption, ControlRuntimeState, ControlSensitivity } from '@happyvertical/smrt-ui/forms';
4
5
  /**
5
6
  * Field definition for form registration
6
7
  */
@@ -19,6 +20,21 @@ export interface FieldDefinition {
19
20
  setValue: (value: unknown) => void;
20
21
  /** Get current field value */
21
22
  getValue: () => unknown;
23
+ /** Optional richer interaction metadata and capabilities. */
24
+ controlId?: string;
25
+ interactionKind?: ControlKind;
26
+ sensitivity?: ControlSensitivity;
27
+ readable?: boolean;
28
+ writable?: boolean;
29
+ constraints?: ControlConstraints;
30
+ options?: ControlOption[];
31
+ unit?: string;
32
+ clear?: () => void;
33
+ focus?: () => void;
34
+ reveal?: () => void;
35
+ highlight?: (durationMs?: number) => void;
36
+ validate?: () => boolean;
37
+ getState?: () => ControlRuntimeState;
22
38
  }
23
39
  /**
24
40
  * SMRT Form context interface
@@ -38,6 +54,9 @@ export interface SMRTFormContext {
38
54
  readonly isExtracting: boolean;
39
55
  /** Toggle form-level listening on/off */
40
56
  toggleListening: () => void;
57
+ /** Shared transport-neutral registry used by voice/chat/tutorial adapters. */
58
+ readonly interactionRegistry: ControlInteractionRegistry;
59
+ readonly formId: string;
41
60
  }
42
61
  /**
43
62
  * Context key for SMRT form
@@ -1 +1 @@
1
- {"version":3,"file":"form-context.d.ts","sourceRoot":"","sources":["../../src/state/form-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,qCAAqC;AACrC,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,WAAW,GACX,aAAa,GACb,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,EAAE,aAAa,CAAC;IACpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,qCAAqC;IACrC,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,yBAAyB;IACzB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wDAAwD;IACxD,cAAc,EAAE,MAAM,eAAe,EAAE,CAAC;IACxC,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,yCAAyC;IACzC,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAEzD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,eAAe,CAUhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,GAAG,IAAI,CAE1D"}
1
+ {"version":3,"file":"form-context.d.ts","sourceRoot":"","sources":["../../src/state/form-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAGtC;;GAEG;AACH,qCAAqC;AACrC,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,WAAW,GACX,aAAa,GACb,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,EAAE,aAAa,CAAC;IACpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,mBAAmB,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,qCAAqC;IACrC,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,yBAAyB;IACzB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wDAAwD;IACxD,cAAc,EAAE,MAAM,eAAe,EAAE,CAAC;IACxC,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,yCAAyC;IACzC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAEzD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,eAAe,CAUhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,GAAG,IAAI,CAE1D"}
@@ -19,7 +19,10 @@ import {
19
19
  interface Props {
20
20
  state: UpdateState;
21
21
  initialUpdated?: boolean;
22
- onReady: (view: UpdateAvailableView, setUpdated: (v: boolean) => void) => void;
22
+ onReady: (
23
+ view: UpdateAvailableView,
24
+ setUpdated: (v: boolean) => void,
25
+ ) => void;
23
26
  }
24
27
 
25
28
  const props: Props = $props();
@@ -1 +1 @@
1
- {"version":3,"file":"update-available-harness.svelte.d.ts","sourceRoot":"","sources":["../../../src/web/__tests__/update-available-harness.svelte.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+BAA+B,CAAC;AAGvC,UAAU,KAAK;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;CAChF;AA6BD,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"update-available-harness.svelte.d.ts","sourceRoot":"","sources":["../../../src/web/__tests__/update-available-harness.svelte.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+BAA+B,CAAC;AAGvC,UAAU,KAAK;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,CACP,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,KAC7B,IAAI,CAAC;CACX;AA6BD,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-svelte",
3
- "version": "0.38.26",
3
+ "version": "0.39.0",
4
4
  "description": "Svelte 5 components for SMRT user management - auth, users, tenants, roles, permissions, groups",
5
5
  "type": "module",
6
6
  "smrtRawPrimitives": "strict",
@@ -20,6 +20,12 @@
20
20
  "import": "./dist/components/forms/index.js",
21
21
  "default": "./dist/components/forms/index.js"
22
22
  },
23
+ "./settings": {
24
+ "types": "./dist/components/settings/index.d.ts",
25
+ "svelte": "./dist/components/settings/index.js",
26
+ "import": "./dist/components/settings/index.js",
27
+ "default": "./dist/components/settings/index.js"
28
+ },
23
29
  "./i18n/server": {
24
30
  "types": "./dist/i18n/server.d.ts",
25
31
  "import": "./dist/i18n/server.js",
@@ -65,6 +71,15 @@
65
71
  "CLAUDE.md",
66
72
  "AGENTS.md"
67
73
  ],
74
+ "scripts": {
75
+ "build": "svelte-package -i src --tsconfig tsconfig.svelte.json",
76
+ "dev": "svelte-package -i src --watch",
77
+ "check": "pnpm exec svelte-check --tsconfig ./tsconfig.svelte.json",
78
+ "prepack": "node ../../scripts/prepack-package.js",
79
+ "test": "vitest run",
80
+ "typecheck": "tsc --noEmit && node ../../scripts/svelte-check-a11y.mjs --tsconfig ./tsconfig.svelte.json",
81
+ "verify:pack": "node ../../scripts/verify-package-types-exports.js ."
82
+ },
68
83
  "keywords": [
69
84
  "smrt",
70
85
  "svelte",
@@ -88,14 +103,14 @@
88
103
  "access": "public"
89
104
  },
90
105
  "dependencies": {
91
- "@happyvertical/logger": "^0.78.0",
106
+ "@happyvertical/logger": "catalog:",
107
+ "@happyvertical/smrt-languages": "workspace:*",
108
+ "@happyvertical/smrt-types": "workspace:*",
109
+ "@happyvertical/smrt-ui": "workspace:*",
110
+ "@happyvertical/smrt-web": "workspace:*",
92
111
  "@tanstack/db": "^0.6.14",
93
112
  "@tanstack/svelte-db": "^0.1.91",
94
- "esm-env": "^1.2.2",
95
- "@happyvertical/smrt-types": "0.38.26",
96
- "@happyvertical/smrt-ui": "0.38.26",
97
- "@happyvertical/smrt-languages": "0.38.26",
98
- "@happyvertical/smrt-web": "0.38.26"
113
+ "esm-env": "^1.2.2"
99
114
  },
100
115
  "peerDependencies": {
101
116
  "@huggingface/transformers": ">=3.8.1",
@@ -135,13 +150,5 @@
135
150
  "typescript": "^5.9.3",
136
151
  "vite": "^8.1.3",
137
152
  "vitest": "^4.1.9"
138
- },
139
- "scripts": {
140
- "build": "svelte-package -i src --tsconfig tsconfig.svelte.json",
141
- "dev": "svelte-package -i src --watch",
142
- "check": "pnpm exec svelte-check --tsconfig ./tsconfig.svelte.json",
143
- "test": "vitest run",
144
- "typecheck": "tsc --noEmit && node ../../scripts/svelte-check-a11y.mjs --tsconfig ./tsconfig.svelte.json",
145
- "verify:pack": "node ../../scripts/verify-package-types-exports.js ."
146
153
  }
147
- }
154
+ }
package/LICENSE DELETED
@@ -1,7 +0,0 @@
1
- Copyright <2025> <Happy Vertical Corporation>
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
-
5
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
-
7
- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.