@loomweaver/shell 0.7.2
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 +49 -0
- package/fesm2022/loomweaver-shell.mjs +17016 -0
- package/fesm2022/loomweaver-shell.mjs.map +1 -0
- package/i18n/de.json +293 -0
- package/i18n/en.json +293 -0
- package/package.json +68 -0
- package/styles/shell.css +9 -0
- package/styles/theme.css +709 -0
- package/types/loomweaver-shell.d.ts +2280 -0
- package/types/loomweaver-shell.d.ts.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# @loomweaver/shell
|
|
2
|
+
|
|
3
|
+
The neutral shell host (chrome + docking points). Domain-pure: it renders
|
|
4
|
+
regions and holds contributions, but knows no product/domain concepts.
|
|
5
|
+
|
|
6
|
+
## Structure (`src/lib/`) — feature slices, not technical types
|
|
7
|
+
|
|
8
|
+
The lib is organized in **vertical feature slices**: each folder holds everything one
|
|
9
|
+
feature needs (service + UI + contracts + specs). There are no `services/` or
|
|
10
|
+
`components/`-style type buckets (current Angular style guide: "avoid creating
|
|
11
|
+
directories like components, directives, and services").
|
|
12
|
+
|
|
13
|
+
- **`shell.*` / `provide-shell.ts` / `shell-seeds.ts` / `default-settings.ts`** — root
|
|
14
|
+
component + DI composition entry (`provideShell({ omit })`).
|
|
15
|
+
- **`layout/`** — the declarative region-agnostic model (`layout`, `view`) + viewport
|
|
16
|
+
breakpoint service.
|
|
17
|
+
- **`regions/`** — the docked region renderers: `bar/` (incl. shell
|
|
18
|
+
brand), `rail/`, `panel/`, `pane/`, `content/`, `reorder/`. Each region owns its
|
|
19
|
+
component **and** its contribution contract (`bar-item`, `rail-item`). `content/` is
|
|
20
|
+
sub-sliced into `routing/` (router wiring, reuse strategy, synthetic routes),
|
|
21
|
+
`tabs/` (tab state, projection, close hooks, context menu) and `access/` (auth
|
|
22
|
+
gating + placeholder views); the pane/area components and shared path helper live
|
|
23
|
+
at its root.
|
|
24
|
+
- **`plugin/`** — plugin runtime core + the frame rung: `plugin`, `plugin-runtime`,
|
|
25
|
+
`sandbox-plugin-runtime`, `host-plugin-context`, `contribution-registry` (id-keyed:
|
|
26
|
+
same id overrides, `remove*ById` — except content routes, which override by `path`;
|
|
27
|
+
their `id` is the `route:` omit handle).
|
|
28
|
+
- **`commands/`** — command registry + keybindings + command palette.
|
|
29
|
+
- **`plugin-store/`** — community plugin store: catalog port, install/enablement/store
|
|
30
|
+
services and the complete store UI.
|
|
31
|
+
- **`permissions/`** — capability grants + the permissions settings surface.
|
|
32
|
+
- **`settings/`** — settings model + service + dialog + row primitives.
|
|
33
|
+
- **`persistence/`** — shared kernel: the two `KeyValueStore` ports (`SETTINGS_STORE`
|
|
34
|
+
settings-only + `WORKING_STATE_STORE`), cross-tab sync (`StateSyncService`),
|
|
35
|
+
identity scoping, `hydrate`/`readStoredValue` and id-set parsing. Deliberately
|
|
36
|
+
cross-cutting (consumed by plugin/, regions/ and the feature slices).
|
|
37
|
+
- **`elements/`** — the framework-agnostic `<lw-*>` custom-element family
|
|
38
|
+
incl. the icon registry; `lw-elements.frame.ts` is the `@loomweaver/frame-kit` bundle
|
|
39
|
+
entry. Deliberately cross-cutting (the host UI kit).
|
|
40
|
+
- **Small feature slices** — `theme/`, `text-size/`, `i18n/` (loader + locale service +
|
|
41
|
+
switcher + translations), `auth/`, `dialog/`, `notifications/`, `menu/`, `version/`,
|
|
42
|
+
`update/`, `workspace/`, `views/` (named view instances + `VIEW_STATE`).
|
|
43
|
+
- **`styles/`** — design tokens + theme (see `docs/reference/design-tokens.md`).
|
|
44
|
+
|
|
45
|
+
The published API is the `src/index.ts` barrel only; consumers never deep-import.
|
|
46
|
+
|
|
47
|
+
## Tests
|
|
48
|
+
|
|
49
|
+
Run `nx test shell` to execute the unit tests.
|