@happyvertical/smrt-svelte 0.40.61 → 0.40.63

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 CHANGED
@@ -55,7 +55,7 @@ pnpm add @happyvertical/smrt-svelte
55
55
 
56
56
  ```svelte
57
57
  <script>
58
- import { PermissionCheck, permission } from '@happyvertical/smrt-svelte';
58
+ import { PermissionCheck, permission } from '@happyvertical/smrt-ui';
59
59
  </script>
60
60
 
61
61
  <PermissionCheck requires="admin:write">
@@ -144,22 +144,52 @@ scaffold adopts AdminShell as its default chrome exactly this way; copy its
144
144
 
145
145
  ### Entry Points
146
146
 
147
+ This is the complete `exports` map of this package. Anything not listed is not
148
+ importable, even if it appears in `dist/`.
149
+
147
150
  | Import Path | Contents |
148
151
  |-------------|----------|
149
- | `@happyvertical/smrt-svelte` | Provider, DataTable, permission utilities, hooks, state, components |
150
- | `@happyvertical/smrt-svelte/calendar` | Calendar and DayView |
151
- | `@happyvertical/smrt-svelte/forms` | Form inputs (TextInput, Select, MoneyInput, etc.) |
152
- | `@happyvertical/smrt-svelte/layout` | Layout (Container, Grid, Header, Footer, Masthead, etc.) |
153
- | `@happyvertical/smrt-svelte/ui` | UI primitives (Button, Card, Badge, Pagination) |
154
- | `@happyvertical/smrt-ui/themes` | Canonical ThemeProvider, Material/Glass/Studio/s-m-r-t presets, CSS generation |
155
- | `@happyvertical/smrt-ui/forms` | Provider-free foundational form controls and the agent interaction registry |
156
- | `@happyvertical/smrt-ui/data` | DataTable, CollectionList/ContentList, CollectionToolbar |
157
- | `@happyvertical/smrt-svelte/registry` | ModuleUIRegistry for agent admin panels |
152
+ | `@happyvertical/smrt-svelte` | `Provider`, hooks (`useAppState`, `useAuth`, `useLLM`, `useSocket`, `useSTT`, `useTheme`, `useTTS`), app state/context, `ModulePanel`, and the form components below |
153
+ | `@happyvertical/smrt-svelte/forms` | Form inputs (TextInput, Select, MoneyInput, DateTimeInput, Toggle, etc.) |
154
+ | `@happyvertical/smrt-svelte/settings` | Server-paged settings search, selection, and list/detail layout (`SettingsCatalog`, `paginateSettingsCatalog`) |
158
155
  | `@happyvertical/smrt-svelte/workspace` | AdminShell, ShellState, tenant nav, focus tools, settings, activities, and system/app panels |
159
156
  | `@happyvertical/smrt-svelte/workspace/legacy` | Opt-in ToolsDock compatibility surface for applications migrating to AdminShell |
157
+ | `@happyvertical/smrt-svelte/workspace/server` | Server-side workspace helpers (Node only) |
158
+ | `@happyvertical/smrt-svelte/workspace/live` | `systemFeed` — the AdminShell system scope (jobs/schedules/dispatch) polled from an app status endpoint; deliberately carries no `smrt-web` dependency |
160
159
  | `@happyvertical/smrt-svelte/browser-ai` | Browser AI client (STT/TTS/LLM adapters, capability detection) |
161
160
  | `@happyvertical/smrt-svelte/browser-ai/svelte` | Svelte AI components (VoiceInput, CapabilityGate, etc.) |
162
- | `@happyvertical/smrt-svelte/styles/tokens.css` | Design tokens CSS |
161
+ | `@happyvertical/smrt-svelte/web` | `smrt-web` live-query bindings (`liveCollection`, `activityFeed`, `useUpdateAvailable`) |
162
+ | `@happyvertical/smrt-svelte/i18n/server` | Server-side i18n resolver (Node only) |
163
+
164
+ Domain-agnostic UI lives in `@happyvertical/smrt-ui`. There is no `ui`,
165
+ `layout`, `calendar`, `data`, `chat`, `feedback`, `registry`, `themes`, `i18n`,
166
+ or `styles/tokens.css` subpath on `smrt-svelte`, so those specifiers only
167
+ resolve against `smrt-ui`:
168
+
169
+ | Import Path | Contents |
170
+ |-------------|----------|
171
+ | `@happyvertical/smrt-ui` | `PermissionCheck`, `permission` / `hasPermission` / `hasAnyPermission` / `hasAllPermissions` |
172
+ | `@happyvertical/smrt-ui/ui` | UI primitives (Button, Card, Badge, Pagination) |
173
+ | `@happyvertical/smrt-ui/layout` | Layout (Container, Grid, Header, Footer, Masthead, etc.) |
174
+ | `@happyvertical/smrt-ui/calendar` | Calendar and DayView |
175
+ | `@happyvertical/smrt-ui/data` | DataTable, CollectionList/ContentList, CollectionToolbar |
176
+ | `@happyvertical/smrt-ui/feedback` | Modal, ConfirmDialog, LoadingOverlay, ProgressBar |
177
+ | `@happyvertical/smrt-ui/chat` | Message bubble, reaction picker, typing indicator |
178
+ | `@happyvertical/smrt-ui/registry` | ModuleUIRegistry for agent admin panels |
179
+ | `@happyvertical/smrt-ui/themes` | Canonical ThemeProvider, Material/Glass/Studio/s-m-r-t presets, CSS generation |
180
+ | `@happyvertical/smrt-ui/i18n` | Client i18n (`useI18n`, `Trans`) — the counterpart to `smrt-svelte`'s `/i18n/server` |
181
+ | `@happyvertical/smrt-ui/styles/tokens.css` | Design tokens CSS |
182
+
183
+ `forms` is the one name on both: `@happyvertical/smrt-ui/forms` holds the
184
+ Provider-free primitives (`Input`, `Select`, `Textarea`, `Toggle`, `FormGroup`),
185
+ and `@happyvertical/smrt-svelte/forms` re-exports those and adds the
186
+ Provider-backed inputs, so it stays the one-stop barrel for applications.
187
+
188
+ The first-generation `WorkspaceShell`, `RoleShell`, `NavTree`, and `Breadcrumbs`
189
+ have no entry point at all. Their `.svelte` files are copied into `dist/` but no
190
+ export subpath or barrel names them, so they cannot be imported from an
191
+ installed package — see the [migration
192
+ guide](./src/components/workspace/MIGRATION.md). `AdminShell` supersedes them.
163
193
 
164
194
  Legacy ToolsDock availability is presentation-only, not authorization.
165
195
  `fetchAvailability` failures intentionally keep controls usable using the
@@ -50,20 +50,22 @@ library. Which barrel for what:
50
50
 
51
51
  | Need | Import from |
52
52
  |------|-------------|
53
- | Buttons, cards, badges, avatars, chips, skeletons, tooltips, dropdowns, trees, pagination | `@happyvertical/smrt-svelte/ui` (or the package root) |
53
+ | Buttons, cards, badges, avatars, chips, skeletons, tooltips, dropdowns, trees, pagination | `@happyvertical/smrt-ui/ui` |
54
54
  | Provider-free base inputs — `Input`, `Select`, `Textarea`, `Toggle`, `FormGroup` | `@happyvertical/smrt-ui/forms` (also re-exported from `@happyvertical/smrt-svelte/forms`) |
55
55
  | Provider-free `Form` (plain `<form>` wrapper) | `@happyvertical/smrt-ui/forms` **only** — `@happyvertical/smrt-svelte/forms` exports the *rich* Provider-backed `Form` under that name, so import the plain one straight from smrt-ui |
56
56
  | Provider-backed inputs — `TextInput`, `NumberInput`, `MoneyInput`, date/measurement/address inputs, `CheckboxInput`, file upload, the rich `Form` | `@happyvertical/smrt-svelte/forms` |
57
- | `Modal`, `ConfirmDialog`, `LoadingOverlay`, `ProgressBar` | `@happyvertical/smrt-svelte/feedback` |
58
- | `Container`, `Grid`, `Header`, `Footer`, `PageHeader`, `EmptyState` | `@happyvertical/smrt-svelte/layout` |
59
- | Chat message bubble, reaction picker, typing indicator | `@happyvertical/smrt-svelte/chat` |
57
+ | `Modal`, `ConfirmDialog`, `LoadingOverlay`, `ProgressBar` | `@happyvertical/smrt-ui/feedback` |
58
+ | `Container`, `Grid`, `Header`, `Footer`, `PageHeader`, `EmptyState` | `@happyvertical/smrt-ui/layout` |
59
+ | Chat message bubble, reaction picker, typing indicator | `@happyvertical/smrt-ui/chat` |
60
60
  | Admin shell, tenant navigation, focus tools, settings, and activities | `@happyvertical/smrt-svelte/workspace` |
61
61
  | First-generation ToolsDock during AdminShell migration | `@happyvertical/smrt-svelte/workspace/legacy` |
62
62
  | Server-paged settings search, selection, and list/detail layout | `@happyvertical/smrt-svelte/settings` |
63
63
 
64
- The package root re-exports `./ui`, `./forms`, etc., so `from
65
- '@happyvertical/smrt-svelte'` also works; prefer the specific subpath in domain
66
- code for tree-shaking and clarity.
64
+ The domain-agnostic primitives are **not** re-exported by smrt-svelte: its
65
+ `exports` map has no `./ui`, `./feedback`, `./layout`, `./chat`, or `./registry`,
66
+ so those specifiers fail to resolve — import them from `@happyvertical/smrt-ui`.
67
+ The smrt-svelte root does re-export `./forms`, but prefer the specific subpath
68
+ in domain code for tree-shaking and clarity.
67
69
 
68
70
  **Consolidating an existing re-roll** — two patterns:
69
71
 
@@ -18,6 +18,12 @@ compatibility. Applications that still need ToolsDock during migration may use
18
18
  the explicit `@happyvertical/smrt-svelte/workspace/legacy` subpath; keep legacy
19
19
  additions isolated there so the canonical workspace surface remains AdminShell.
20
20
 
21
+ Of that family, only ToolsDock has an entry point. `WorkspaceShell`,
22
+ `RoleShell`, `NavTree`, and `Breadcrumbs` are named by no subpath and no barrel,
23
+ so they are unreachable from an installed package even though their `.svelte`
24
+ files are copied into `dist/`. Do not document them as available API; removing
25
+ them from the published artifact versus exporting them is tracked in #2286.
26
+
21
27
  **Principles**:
22
28
  - SvelteKit-agnostic core — no `$app/state` or `$app/navigation` imports
23
29
  - SSR-safe public shell import/render path; browser listeners and localStorage
@@ -5,14 +5,25 @@ The first-generation workspace family (`WorkspaceShell`, `RoleShell`,
5
5
  `@happyvertical/smrt-svelte/workspace` surface. Treat those source files as a
6
6
  migration reference while moving apps to `AdminShell`.
7
7
 
8
+ ## What is still importable
9
+
10
+ Only `ToolsDock` (with `defineToolsDock`, `useToolsDock`, and the dock types)
11
+ has a public entry point: `@happyvertical/smrt-svelte/workspace/legacy`.
12
+
13
+ `WorkspaceShell`, `RoleShell`, `NavTree`, and `Breadcrumbs` have **no export
14
+ subpath**. Their `.svelte` files are copied into `dist/`, but the package's
15
+ `exports` map does not name them and no barrel re-exports them, so
16
+ `import ... from '@happyvertical/smrt-svelte/…'` cannot reach them from an
17
+ installed package — the specifier resolves to nothing exported. Read them as
18
+ source; do not plan a migration that keeps rendering them.
19
+
8
20
  ## Adopting AdminShell is additive
9
21
 
10
- Moving to `AdminShell` is a non-breaking, opt-in change nothing is removed
11
- from under you:
22
+ Moving to `AdminShell` is a non-breaking, opt-in change for the parts that are
23
+ still reachable:
12
24
 
13
- - **Existing consumers keep working.** The first-generation classes still ship
14
- in this package and still render. Migrate a route or an app at your own pace;
15
- there is no flag day.
25
+ - **ToolsDock consumers keep working** through the `workspace/legacy` subpath.
26
+ Migrate a route or an app at your own pace; there is no flag day.
16
27
  - **Adopt by wrapping, not rewriting.** Mount `AdminShell` in a layout around
17
28
  your existing pages (`{@render children()}`). Page-level data loading is
18
29
  unchanged — in SvelteKit, keep loading data in each route's server `load` and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-svelte",
3
- "version": "0.40.61",
3
+ "version": "0.40.63",
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.85.5",
104
+ "@happyvertical/logger": "^0.86.1",
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.61",
109
- "@happyvertical/smrt-types": "0.40.61",
110
- "@happyvertical/smrt-ui": "0.40.61",
111
- "@happyvertical/smrt-web": "0.40.61"
108
+ "@happyvertical/smrt-languages": "0.40.63",
109
+ "@happyvertical/smrt-types": "0.40.63",
110
+ "@happyvertical/smrt-ui": "0.40.63",
111
+ "@happyvertical/smrt-web": "0.40.63"
112
112
  },
113
113
  "peerDependencies": {
114
114
  "@huggingface/transformers": ">=3.8.1",