@franzzemen/brokenstock-shell
Shared Angular shell library for Brokenstock web applications. Provides the foundational layout (resizable command terminal, side menu, status bar), authentication infrastructure, command dispatch pipeline, and theming — all configured via injection tokens so consuming apps supply only their domain-specific commands, menu items, and status content.
Documentation
| Document | Audience | Description |
|---|---|---|
| brokenstock-shell.intent.md | AI agents | Purpose, design invariants, boundaries, guidance |
| brokenstock-shell.guide.md | Engineers (maintainers) | Architecture, service internals, component structure, build/publish |
| brokenstock-shell.usage.md | Engineers (consumers) | Installation, setup examples, API reference, type quick reference |
Core Concepts
- Injection token configuration:
SHELL_APP_NAME,SHELL_AUTH_URLS,SHELL_MENU_ITEMS,SHELL_COMMANDS - Content projection: App-specific status bar items projected through
<shell-root>into the status bar - Command pattern:
@Injectableclasses implementingCommandDefinition, registered viaSHELL_COMMANDStoken - Questions and screen keys:
CommandService.askleaves a question open in the terminal (the next line answers it, Esc cancels);ScreenKeysServicegives a screen keys of its own on its routes (Ctrl allowed, live in the terminal) — see the guide - Signal-based state: All services use Angular signals; no RxJS in public APIs
- Peer dependencies: Angular 21, Material, CDK, @franzzemen/identity, @franzzemen/utility, zod, rxjs