@paulo-studio/theme-shared
v0.1.0
Published
Shared Paulo theme tokens, layout shell, and navigation primitives for Angular applications.
Downloads
168
Readme
@paulo-studio/theme-shared
Shared Paulo theme tokens, layout shell, and navigation primitives for Angular applications.
Install
npm install @paulo-studio/theme-sharedPeer dependencies
Peer dependencies are declared in package.json. Install matching Angular 19, PrimeNG 19, and any listed @paulo-studio/* peer packages in the consuming app.
Existing notes
Shared UI primitives for the Paulo Portal stack. Mirrors @abp/ng.theme-shared but built on top of PrimeNG (Paulo preset).
What it provides
- PauloPreset — PrimeNG
definePresetused as the project-wide design tokens source. - ToasterService +
<pl-toast-container>— toast notifications backed by PrimeNG<p-toast>. - ConfirmationService +
<pl-confirmation-dialog>— confirm prompts backed by PrimeNG<p-confirmDialog>. <pl-loader-bar>— global progress bar bound toHttpWaitService+RouterWaitServicefrom@paulo-studio/core.- Error handler infra — bridges
HttpErrorReporterServicefrom@paulo-studio/coreinto toaster + status-coded handlers. <pl-language-selector>+<pl-current-user>— topbar primitives.
Layout components + dynamic layout + shell slots
Theme-shared sở hữu toàn bộ layout shell (mirror @abp/ng.theme.basic):
- 6 layout component ở
src/lib/layout/:PlShellComponent(application),AccountLayoutComponent(account),EmptyLayoutComponent(empty) +PlSidebarComponent/PlTopbarComponent/PlFooterComponent. - Dynamic layout map —
providePauloThemeShared()đăng kýDEFAULT_LAYOUTSvàoDYNAMIC_LAYOUTS_TOKEN;DynamicLayoutComponent(@paulo-studio/core) resolveroute.data.layoutqua map này. Host đổi shell qua featurewithLayouts({...})— không fork. - Shell slots — overlay widget (Permission/Feature Management, cookie-consent) render qua
*plReplaceableTemplatetheo keyePauloShellSlots; package register component quaReplaceableComponentsService.add(...). Giữ chiều phụ thuộctheme-shared ← package(không circular-dep).
Cách dùng + cách sửa UI layout / thêm nav / register widget mới:
docs/architecture/modular-nav-and-layout.md.
Wire-up
import { providePauloThemeShared, PauloPreset } from '@paulo-studio/theme-shared';
bootstrapApplication(AppComponent, {
providers: [
providePauloCore({ /* ... */ }),
providePauloHttp(),
providePauloThemeShared(),
providePrimeNG({ theme: { preset: PauloPreset } }),
],
});Build
cd packages/pl-theme-shared
../../portal-fe/node_modules/.bin/ng build pl-theme-sharedLicense
Licensed under AGPL-3.0-only. Commercial licensing is available separately.
