@adminlte/angular 0.2.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.
- package/LICENSE +20 -0
- package/README.md +192 -0
- package/css/adminlte.css +17258 -0
- package/css/adminlte.rtl.css +17231 -0
- package/fesm2022/adminlte-angular.mjs +4360 -0
- package/fesm2022/adminlte-angular.mjs.map +1 -0
- package/package.json +78 -0
- package/types/adminlte-angular.d.ts +1169 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminlte-angular.mjs","sources":["../../../projects/adminlte-angular/src/lib/services/color-mode.service.ts","../../../projects/adminlte-angular/src/lib/services/sidebar.service.ts","../../../projects/adminlte-angular/src/lib/services/command-palette.service.ts","../../../projects/adminlte-angular/src/lib/services/fullscreen.service.ts","../../../projects/adminlte-angular/src/lib/services/treeview.service.ts","../../../projects/adminlte-angular/src/lib/util/class-name.ts","../../../projects/adminlte-angular/src/lib/util/flatten-menu.ts","../../../projects/adminlte-angular/src/lib/layout/color-mode-toggle.component.ts","../../../projects/adminlte-angular/src/lib/layout/fullscreen-toggle.component.ts","../../../projects/adminlte-angular/src/lib/layout/topbar.component.ts","../../../projects/adminlte-angular/src/lib/layout/sidebar-brand.component.ts","../../../projects/adminlte-angular/src/lib/layout/sidebar-nav-item.component.ts","../../../projects/adminlte-angular/src/lib/layout/sidebar-nav.component.ts","../../../projects/adminlte-angular/src/lib/layout/sidebar-overlay.component.ts","../../../projects/adminlte-angular/src/lib/layout/sidebar.component.ts","../../../projects/adminlte-angular/src/lib/layout/footer.component.ts","../../../projects/adminlte-angular/src/lib/widget/command-palette.component.ts","../../../projects/adminlte-angular/src/lib/layout/dashboard-layout.component.ts","../../../projects/adminlte-angular/src/lib/layout/auth-layout.component.ts","../../../projects/adminlte-angular/src/lib/layout/app-content.component.ts","../../../projects/adminlte-angular/src/lib/widget/card.component.ts","../../../projects/adminlte-angular/src/lib/widget/small-box.component.ts","../../../projects/adminlte-angular/src/lib/widget/info-box.component.ts","../../../projects/adminlte-angular/src/lib/widget/alert.component.ts","../../../projects/adminlte-angular/src/lib/widget/callout.component.ts","../../../projects/adminlte-angular/src/lib/widget/progress.component.ts","../../../projects/adminlte-angular/src/lib/widget/timeline.component.ts","../../../projects/adminlte-angular/src/lib/widget/profile-card.component.ts","../../../projects/adminlte-angular/src/lib/widget/description-block.component.ts","../../../projects/adminlte-angular/src/lib/widget/breadcrumb.component.ts","../../../projects/adminlte-angular/src/lib/widget/apex-chart.component.ts","../../../projects/adminlte-angular/src/lib/widget/modal.component.ts","../../../projects/adminlte-angular/src/lib/widget/progress-group.component.ts","../../../projects/adminlte-angular/src/lib/widget/ratings.component.ts","../../../projects/adminlte-angular/src/lib/widget/direct-chat.component.ts","../../../projects/adminlte-angular/src/lib/widget/nav-messages.component.ts","../../../projects/adminlte-angular/src/lib/widget/nav-notifications.component.ts","../../../projects/adminlte-angular/src/lib/widget/nav-tasks.component.ts","../../../projects/adminlte-angular/src/lib/widget/tab.component.ts","../../../projects/adminlte-angular/src/lib/widget/tabs.component.ts","../../../projects/adminlte-angular/src/lib/widget/accordion.component.ts","../../../projects/adminlte-angular/src/lib/widget/accordion-item.component.ts","../../../projects/adminlte-angular/src/lib/widget/datatable.component.ts","../../../projects/adminlte-angular/src/lib/form/button.component.ts","../../../projects/adminlte-angular/src/lib/form/input.component.ts","../../../projects/adminlte-angular/src/lib/form/textarea.component.ts","../../../projects/adminlte-angular/src/lib/form/select.component.ts","../../../projects/adminlte-angular/src/lib/form/input-switch.component.ts","../../../projects/adminlte-angular/src/lib/form/input-flatpickr.component.ts","../../../projects/adminlte-angular/src/lib/form/input-tom-select.component.ts","../../../projects/adminlte-angular/src/public-api.ts","../../../projects/adminlte-angular/src/adminlte-angular.ts"],"sourcesContent":["import {\n Injectable,\n Inject,\n PLATFORM_ID,\n computed,\n effect,\n signal,\n type Signal,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport type { ColorMode, ResolvedColorMode } from '../types/theme';\n\nconst STORAGE_KEY = 'lte-theme';\n\n/**\n * Inline script that should be added to `index.html` `<head>` to apply the\n * persisted color mode before first paint (no flash of the wrong theme).\n * Exposed so SSR/host apps can inject it. Keep in sync with {@link STORAGE_KEY}.\n */\nexport const COLOR_MODE_NO_FLASH_SCRIPT = `(function(){try{var m=localStorage.getItem('lte-theme')||'auto';var d=m==='dark'||(m==='auto'&&window.matchMedia('(prefers-color-scheme: dark)').matches);document.documentElement.setAttribute('data-bs-theme',d?'dark':'light');}catch(e){}})();`;\n\n/**\n * Signal-based color mode (light/dark/auto) service. Persists to localStorage,\n * falls back to the system preference for `auto`, and reflects the resolved mode\n * onto `<html data-bs-theme>` (Bootstrap 5.3 standard). SSR-safe: all DOM access\n * is guarded by the platform check, so it no-ops on the server.\n */\n@Injectable({ providedIn: 'root' })\nexport class ColorModeService {\n private readonly isBrowser: boolean;\n private media: MediaQueryList | null = null;\n /** True when a mode was restored from localStorage on init. */\n private hadPersisted = false;\n\n /** The user's chosen mode: 'light' | 'dark' | 'auto'. */\n readonly colorMode = signal<ColorMode>('auto');\n private readonly systemDark = signal(false);\n\n /** The concrete mode after `auto` is evaluated against system preference. */\n readonly resolvedMode: Signal<ResolvedColorMode> = computed(() => {\n if (this.colorMode() === 'auto') return this.systemDark() ? 'dark' : 'light';\n return this.colorMode() as ResolvedColorMode;\n });\n\n constructor(\n @Inject(PLATFORM_ID) platformId: object,\n @Inject(DOCUMENT) private readonly doc: Document,\n ) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n if (this.isBrowser) {\n const saved = this.readStorage();\n if (saved) {\n this.colorMode.set(saved);\n this.hadPersisted = true;\n }\n\n this.media = this.doc.defaultView?.matchMedia('(prefers-color-scheme: dark)') ?? null;\n this.systemDark.set(this.media?.matches ?? false);\n this.media?.addEventListener('change', this.onSystemChange);\n }\n\n // Reflect resolved mode to <html> and persist the chosen mode.\n effect(() => {\n const resolved = this.resolvedMode();\n const chosen = this.colorMode();\n if (!this.isBrowser) return;\n this.doc.documentElement.setAttribute('data-bs-theme', resolved);\n this.writeStorage(chosen);\n });\n }\n\n /** Set the color mode. */\n setColorMode(mode: ColorMode): void {\n this.colorMode.set(mode);\n }\n\n /**\n * Apply an initial mode preference. Honored only when the user has no\n * persisted choice — so a saved selection always wins over the layout default.\n */\n setInitialMode(mode: ColorMode): void {\n if (!this.hadPersisted) this.colorMode.set(mode);\n }\n\n /** Cycle light → dark → auto → light. */\n cycle(): void {\n const order: ColorMode[] = ['light', 'dark', 'auto'];\n const next = order[(order.indexOf(this.colorMode()) + 1) % order.length];\n this.setColorMode(next);\n }\n\n private readonly onSystemChange = (e: MediaQueryListEvent): void => {\n this.systemDark.set(e.matches);\n };\n\n private readStorage(): ColorMode | null {\n try {\n const v = localStorage.getItem(STORAGE_KEY);\n return v === 'light' || v === 'dark' || v === 'auto' ? v : null;\n } catch {\n return null;\n }\n }\n\n private writeStorage(mode: ColorMode): void {\n try {\n localStorage.setItem(STORAGE_KEY, mode);\n } catch {\n /* storage unavailable (private mode / SSR) — ignore */\n }\n }\n}\n","import {\n Injectable,\n Inject,\n PLATFORM_ID,\n computed,\n effect,\n signal,\n type Signal,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport type { BreakpointSize } from '../types/theme';\n\nconst STORAGE_KEY = 'lte.sidebar.state';\n\nconst BREAKPOINT_PX: Record<BreakpointSize, number> = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n};\n\nexport interface SidebarConfig {\n sidebarMini?: boolean;\n enablePersistence?: boolean;\n breakpoint?: BreakpointSize;\n /** Static body classes (e.g. `layout-fixed sidebar-expand-lg`). */\n staticBodyClasses?: string;\n}\n\n/**\n * Signal-based sidebar state. Ports the responsive logic of AdminLTE's\n * `push-menu.ts`: on desktop the toggle collapses the sidebar\n * (`body.sidebar-collapse`); on mobile it opens an overlay (`body.sidebar-open`).\n * Reflects state onto `<body>` imperatively (hydration-safe — `<body>` lives\n * outside the Angular component tree). SSR-safe via the platform guard.\n */\n@Injectable({ providedIn: 'root' })\nexport class SidebarService {\n private readonly isBrowser: boolean;\n\n readonly isCollapsed = signal(false);\n readonly isMobileOpen = signal(false);\n readonly isMiniMode = signal(false);\n\n private readonly windowWidth = signal<number>(9999);\n private readonly breakpoint = signal<BreakpointSize>('lg');\n private readonly staticBodyClasses = signal<string>('');\n private enablePersistence = false;\n\n /** Reactive: is the viewport at/below the sidebar breakpoint? */\n readonly isMobile: Signal<boolean> = computed(\n () => this.windowWidth() <= BREAKPOINT_PX[this.breakpoint()],\n );\n\n private appliedBodyClasses = new Set<string>();\n\n constructor(\n @Inject(PLATFORM_ID) platformId: object,\n @Inject(DOCUMENT) private readonly doc: Document,\n ) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n if (this.isBrowser) {\n const win = this.doc.defaultView;\n this.windowWidth.set(win?.innerWidth ?? 9999);\n win?.addEventListener('resize', this.onResize);\n }\n\n // When growing back to desktop, close the mobile overlay.\n effect(() => {\n if (!this.isMobile() && this.isMobileOpen()) this.isMobileOpen.set(false);\n });\n\n // Persist collapse state.\n effect(() => {\n const collapsed = this.isCollapsed();\n if (!this.enablePersistence || !this.isBrowser) return;\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify({ collapsed }));\n } catch {\n /* ignore */\n }\n });\n\n // Reflect state + static classes onto <body>, diffing the applied set.\n effect(() => {\n if (!this.isBrowser) return;\n const next = new Set<string>();\n if (this.isCollapsed()) next.add('sidebar-collapse');\n if (this.isMobileOpen()) next.add('sidebar-open');\n if (this.isMiniMode()) next.add('sidebar-mini');\n for (const cls of this.staticBodyClasses().split(/\\s+/).filter(Boolean)) next.add(cls);\n\n const body = this.doc.body;\n for (const cls of this.appliedBodyClasses) if (!next.has(cls)) body.classList.remove(cls);\n for (const cls of next) body.classList.add(cls);\n this.appliedBodyClasses = next;\n });\n }\n\n /** Configure the sidebar — called once by the dashboard layout. */\n configure(config: SidebarConfig): void {\n this.isMiniMode.set(config.sidebarMini ?? false);\n this.enablePersistence = config.enablePersistence ?? false;\n this.breakpoint.set(config.breakpoint ?? 'lg');\n this.staticBodyClasses.set(config.staticBodyClasses ?? '');\n\n if (this.isBrowser && this.enablePersistence) {\n try {\n const saved = localStorage.getItem(STORAGE_KEY);\n if (saved) this.isCollapsed.set(!!JSON.parse(saved).collapsed);\n } catch {\n /* ignore */\n }\n }\n }\n\n /** On mobile toggles the overlay; on desktop toggles the collapse state. */\n toggle(): void {\n if (this.isMobile()) this.isMobileOpen.update((v) => !v);\n else this.isCollapsed.update((v) => !v);\n }\n\n collapse(): void {\n this.isCollapsed.set(true);\n this.isMobileOpen.set(false);\n }\n\n expand(): void {\n this.isCollapsed.set(false);\n this.isMobileOpen.set(false);\n }\n\n /** Tear down the body classes (e.g. when leaving the dashboard layout). */\n reset(): void {\n if (!this.isBrowser) return;\n for (const cls of this.appliedBodyClasses) this.doc.body.classList.remove(cls);\n this.appliedBodyClasses = new Set();\n }\n\n private readonly onResize = (): void => {\n this.windowWidth.set(this.doc.defaultView?.innerWidth ?? 9999);\n };\n}\n","import {\n Injectable,\n Inject,\n PLATFORM_ID,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\n/**\n * Signal-based command palette (⌘K) state. Registers a global keydown listener:\n * ⌘K / Ctrl+K toggles the palette, Escape closes it. SSR-safe.\n */\n@Injectable({ providedIn: 'root' })\nexport class CommandPaletteService {\n readonly isOpen: WritableSignal<boolean> = signal(false);\n\n constructor(\n @Inject(PLATFORM_ID) platformId: object,\n @Inject(DOCUMENT) private readonly doc: Document,\n ) {\n if (isPlatformBrowser(platformId)) {\n this.doc.addEventListener('keydown', this.onKeydown);\n }\n }\n\n open(): void {\n this.isOpen.set(true);\n }\n\n close(): void {\n this.isOpen.set(false);\n }\n\n toggle(): void {\n this.isOpen.update((v) => !v);\n }\n\n private readonly onKeydown = (e: KeyboardEvent): void => {\n if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') {\n e.preventDefault();\n this.toggle();\n } else if (e.key === 'Escape' && this.isOpen()) {\n this.close();\n }\n };\n}\n","import {\n Injectable,\n Inject,\n PLATFORM_ID,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\n/**\n * Signal-based wrapper around the Fullscreen API. Drives `isFullscreen` from the\n * `fullscreenchange` event so the UI stays in sync even when the user exits with\n * Esc. Ports AdminLTE's `fullscreen.ts`. SSR-safe.\n */\n@Injectable({ providedIn: 'root' })\nexport class FullscreenService {\n readonly isFullscreen: WritableSignal<boolean> = signal(false);\n\n constructor(\n @Inject(PLATFORM_ID) platformId: object,\n @Inject(DOCUMENT) private readonly doc: Document,\n ) {\n if (isPlatformBrowser(platformId)) {\n this.doc.addEventListener('fullscreenchange', this.onChange);\n }\n }\n\n async enter(): Promise<void> {\n try {\n await this.doc.documentElement.requestFullscreen();\n } catch (err) {\n console.error('[adminlte-angular] failed to enter fullscreen:', err);\n }\n }\n\n async exit(): Promise<void> {\n try {\n if (this.doc.fullscreenElement) await this.doc.exitFullscreen();\n } catch (err) {\n console.error('[adminlte-angular] failed to exit fullscreen:', err);\n }\n }\n\n async toggle(): Promise<void> {\n if (this.isFullscreen()) await this.exit();\n else await this.enter();\n }\n\n private readonly onChange = (): void => {\n this.isFullscreen.set(!!this.doc.fullscreenElement);\n };\n}\n","import { Injectable, signal } from '@angular/core';\n\n/**\n * Tracks open/closed state of sidebar treeview groups. In `accordion` mode only\n * one group per parent stays open at a time. Provided at the SidebarNav level so\n * each sidebar instance gets its own registry.\n */\n@Injectable()\nexport class TreeviewService {\n /** When true, only one child group per parent may be open. */\n readonly accordion = signal(false);\n\n /** Maps `parentKey` -> the id of the currently open child group (or null). */\n private readonly openByParent = signal<Record<string, string | null>>({});\n\n /** Animation duration (ms) for the slide-down/up transition. */\n readonly animationSpeed = signal(300);\n\n setAccordion(value: boolean): void {\n this.accordion.set(value);\n }\n\n isOpen(parentKey: string, id: string): boolean {\n return this.openByParent()[parentKey] === id;\n }\n\n setOpen(parentKey: string, id: string, open: boolean): void {\n this.openByParent.update((map) => ({\n ...map,\n [parentKey]: open ? id : map[parentKey] === id ? null : map[parentKey] ?? null,\n }));\n }\n}\n","/**\n * Tiny className utility (alternative to clsx). Filters out falsy values and\n * joins the rest with a single space.\n */\nexport function cn(...classes: Array<string | undefined | null | false>): string {\n return classes.filter(Boolean).join(' ');\n}\n\n/**\n * Normalize a Bootstrap Icons class so callers may pass either `bi-speedometer`\n * or `bi bi-speedometer`. Returns a string that always includes the base `bi`.\n */\nexport function biClass(icon?: string): string {\n if (!icon) return '';\n return icon.includes('bi-') && !/\\bbi\\b/.test(icon) ? `bi ${icon}` : icon;\n}\n","import type { MenuNode } from '../types/menu';\nimport type { CommandItem } from '../types/widgets';\n\n/**\n * Resolve the navigable target of a menu item — prefers an Angular `route`,\n * falls back to an external `href`.\n */\nfunction targetOf(node: Extract<MenuNode, { type: 'item' }>): string | undefined {\n return node.route ?? node.href;\n}\n\n/**\n * Flatten a MenuNode tree into navigable commands for the command palette.\n * Skips hidden items and placeholder links (`#`), and de-duplicates by target.\n */\nexport function flattenMenuToCommands(nodes: MenuNode[]): CommandItem[] {\n const out: CommandItem[] = [];\n const walk = (list: MenuNode[], group?: string): void => {\n for (const node of list) {\n if (node.type === 'header') {\n group = node.text;\n } else if (node.type === 'item') {\n if (node.visible === false) continue;\n const target = targetOf(node);\n if (target && target !== '#') {\n out.push({ label: node.text, href: target, icon: node.icon, group });\n }\n } else {\n if (node.visible === false) continue;\n walk(node.children, node.text);\n }\n }\n };\n walk(nodes);\n const seen = new Set<string>();\n return out.filter((c) => (seen.has(c.href) ? false : (seen.add(c.href), true)));\n}\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { ColorModeService } from '../services/color-mode.service';\nimport type { ColorMode } from '../types/theme';\n\ninterface ModeOption {\n value: ColorMode;\n icon: string;\n label: string;\n}\n\n/**\n * Topbar dropdown to switch between Light / Dark / Auto color modes.\n * The host element is the navbar `<li>` (selector matches `li[lte-color-mode-toggle]`),\n * so it slots cleanly into the topbar's `<ul class=\"navbar-nav\">`.\n */\n@Component({\n selector: 'li[lte-color-mode-toggle]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'nav-item dropdown' },\n template: `\n <button\n id=\"bd-theme\"\n class=\"nav-link\"\n type=\"button\"\n aria-label=\"Toggle color scheme\"\n data-bs-toggle=\"dropdown\"\n aria-expanded=\"false\"\n >\n <i class=\"bi {{ triggerIcon() }}\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end\" aria-labelledby=\"bd-theme\">\n @for (mode of modes; track mode.value) {\n <li>\n <button\n type=\"button\"\n class=\"dropdown-item d-flex align-items-center\"\n [class.active]=\"colorMode() === mode.value\"\n (click)=\"select(mode.value)\"\n >\n <i class=\"bi {{ mode.icon }} me-2\"></i>\n {{ mode.label }}\n @if (colorMode() === mode.value) {\n <i class=\"bi bi-check-lg ms-auto\"></i>\n }\n </button>\n </li>\n }\n </ul>\n `,\n})\nexport class ColorModeToggleComponent {\n private readonly colorModeService = inject(ColorModeService);\n\n readonly colorMode = this.colorModeService.colorMode;\n\n readonly triggerIcon = computed(() => {\n switch (this.colorMode()) {\n case 'light':\n return 'bi-sun-fill';\n case 'dark':\n return 'bi-moon-fill';\n default:\n return 'bi-circle-half';\n }\n });\n\n readonly modes: ModeOption[] = [\n { value: 'light', icon: 'bi-sun-fill', label: 'Light' },\n { value: 'dark', icon: 'bi-moon-fill', label: 'Dark' },\n { value: 'auto', icon: 'bi-circle-half', label: 'Auto' },\n ];\n\n select(mode: ColorMode): void {\n this.colorModeService.setColorMode(mode);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FullscreenService } from '../services/fullscreen.service';\n\n/**\n * Topbar button that toggles browser fullscreen. The host is the navbar `<li>`.\n */\n@Component({\n selector: 'li[lte-fullscreen-toggle]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'nav-item' },\n template: `\n <button\n type=\"button\"\n class=\"nav-link\"\n [title]=\"fullscreen.isFullscreen() ? 'Exit fullscreen' : 'Fullscreen'\"\n (click)=\"fullscreen.toggle()\"\n >\n <i class=\"bi\" [class.bi-fullscreen-exit]=\"fullscreen.isFullscreen()\" [class.bi-arrows-fullscreen]=\"!fullscreen.isFullscreen()\"></i>\n </button>\n `,\n})\nexport class FullscreenToggleComponent {\n readonly fullscreen = inject(FullscreenService);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { ColorModeToggleComponent } from './color-mode-toggle.component';\nimport { FullscreenToggleComponent } from './fullscreen-toggle.component';\nimport { SidebarService } from '../services/sidebar.service';\nimport { CommandPaletteService } from '../services/command-palette.service';\nimport { cn } from '../util/class-name';\nimport type { TopbarUser } from '../types/layout';\n\n/**\n * Application header (navbar): sidebar toggle, search trigger (⌘K), fullscreen +\n * color-mode toggles, and a user dropdown. Project extra items into the\n * `[topbar-start]` / `[topbar-end]` slots.\n */\n@Component({\n selector: 'lte-topbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ColorModeToggleComponent, FullscreenToggleComponent],\n template: `\n <nav [class]=\"navClass()\">\n <div class=\"container-fluid\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item\">\n <button type=\"button\" class=\"nav-link\" title=\"Toggle sidebar\" (click)=\"sidebar.toggle()\">\n <i class=\"bi bi-list\"></i>\n </button>\n </li>\n <ng-content select=\"[topbar-start]\" />\n </ul>\n\n <ul class=\"navbar-nav ms-auto\">\n @if (search()) {\n <li class=\"nav-item\">\n <a class=\"nav-link\" href=\"#\" role=\"button\" title=\"Search (⌘K)\" (click)=\"openSearch($event)\">\n <i class=\"bi bi-search\"></i>\n </a>\n </li>\n }\n\n <ng-content select=\"[topbar-end]\" />\n\n @if (fullscreen()) {\n <li lte-fullscreen-toggle></li>\n }\n @if (colorModeToggle()) {\n <li lte-color-mode-toggle></li>\n }\n\n <li class=\"nav-item dropdown user-menu\">\n <a href=\"#\" class=\"nav-link dropdown-toggle\" data-bs-toggle=\"dropdown\" (click)=\"$event.preventDefault()\">\n <img [src]=\"resolvedUser().image\" class=\"user-image rounded-circle shadow\" [alt]=\"resolvedUser().name\" />\n <span class=\"d-none d-md-inline\">{{ resolvedUser().name }}</span>\n </a>\n <ul class=\"dropdown-menu dropdown-menu-lg dropdown-menu-end\">\n <li class=\"user-header text-bg-primary\">\n <img [src]=\"resolvedUser().image\" class=\"rounded-circle shadow\" [alt]=\"resolvedUser().name\" />\n <p>\n {{ resolvedUser().name }}@if (resolvedUser().role) { - {{ resolvedUser().role }} }\n @if (resolvedUser().memberSince) {\n <small>Member since {{ resolvedUser().memberSince }}</small>\n }\n </p>\n </li>\n <li class=\"user-body\">\n <div class=\"row\">\n <div class=\"col-4 text-center\"><a href=\"#\">Followers</a></div>\n <div class=\"col-4 text-center\"><a href=\"#\">Sales</a></div>\n <div class=\"col-4 text-center\"><a href=\"#\">Friends</a></div>\n </div>\n </li>\n <li class=\"user-footer\">\n <a href=\"#\" class=\"btn btn-outline-secondary\" (click)=\"emitProfile($event)\">Profile</a>\n <a href=\"#\" class=\"btn btn-outline-danger float-end\" (click)=\"emitLogout($event)\">Sign out</a>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </nav>\n `,\n})\nexport class TopbarComponent {\n readonly sidebar = inject(SidebarService);\n private readonly palette = inject(CommandPaletteService);\n\n readonly user = input<TopbarUser>();\n readonly colorModeToggle = input<boolean>(true);\n readonly search = input<boolean>(true);\n readonly fullscreen = input<boolean>(true);\n readonly navbarClass = input<string>('');\n\n readonly logout = output<void>();\n readonly profile = output<void>();\n\n readonly navClass = computed(() =>\n cn('app-header navbar navbar-expand bg-body', this.navbarClass()),\n );\n\n readonly resolvedUser = computed<TopbarUser>(\n () =>\n this.user() ?? {\n name: 'Alexander Pierce',\n image: 'https://www.gravatar.com/avatar/?d=mp&s=160',\n role: 'Web Developer',\n memberSince: 'Nov. 2023',\n },\n );\n\n openSearch(e: Event): void {\n e.preventDefault();\n this.palette.open();\n }\n\n emitProfile(e: Event): void {\n e.preventDefault();\n this.profile.emit();\n }\n\n emitLogout(e: Event): void {\n e.preventDefault();\n this.logout.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n/**\n * Sidebar brand/logo header. Shows an image logo with brand text, or the\n * default `<b>Admin</b>LTE` mark when no logo is supplied.\n */\n@Component({\n selector: 'lte-sidebar-brand',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink],\n host: { class: 'sidebar-brand' },\n template: `\n <a [routerLink]=\"href()\" class=\"brand-link\">\n @if (logo()) {\n <img [src]=\"logo()\" alt=\"Logo\" class=\"brand-image opacity-75 shadow\" />\n <span class=\"brand-text fw-light\">{{ brandText() }}</span>\n } @else {\n <span class=\"brand-image opacity-75 shadow\"></span>\n <span class=\"brand-text fw-light\"><b>Admin</b>LTE</span>\n }\n </a>\n `,\n})\nexport class SidebarBrandComponent {\n /** Logo image src. When omitted, the default AdminLTE text mark is shown. */\n readonly logo = input<string>();\n readonly href = input<string>('/');\n /** Brand text shown next to the logo image. */\n readonly brandText = input<string>('AdminLTE 4');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { TreeviewService } from '../services/treeview.service';\nimport { biClass } from '../util/class-name';\nimport type { MenuGroup, MenuItem, MenuNode } from '../types/menu';\n\nlet uid = 0;\n\n/**\n * Renders a single sidebar node — a header, a leaf link, or a collapsible group\n * (treeview) that recurses into its children. Active-link detection compares the\n * item's route/href to `currentPath`. Groups auto-open when a descendant is\n * active. The submenu slides open via a CSS `grid-template-rows` transition (no\n * fixed heights, no animations package).\n */\n@Component({\n selector: 'lte-sidebar-nav-item',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink],\n styles: [\n `\n .treeview-wrap {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--lte-treeview-speed, 300ms) ease;\n }\n .treeview-wrap.open {\n grid-template-rows: 1fr;\n }\n .treeview-wrap > .nav-treeview {\n overflow: hidden;\n min-height: 0;\n }\n `,\n ],\n template: `\n @switch (item().type) {\n @case ('header') {\n <li class=\"nav-header\">{{ header().text }}</li>\n }\n @case ('item') {\n <li class=\"nav-item\" [class.active]=\"isItemActive()\">\n @if (leaf().route) {\n <a [routerLink]=\"leaf().route\" [attr.target]=\"leaf().target ?? null\" class=\"nav-link\" [class.active]=\"isItemActive()\">\n @if (leaf().icon) {\n <i class=\"nav-icon {{ icon(leaf().icon) }}\" [class]=\"leaf().iconColor ? 'text-' + leaf().iconColor : ''\"></i>\n }\n <p>\n {{ leaf().text }}\n @if (leaf().badge != null) {\n <span class=\"nav-badge badge text-bg-{{ leaf().badgeColor || 'secondary' }} ms-auto\">{{ leaf().badge }}</span>\n }\n </p>\n </a>\n } @else {\n <a [href]=\"leaf().href ?? '#'\" [attr.target]=\"leaf().target ?? null\" class=\"nav-link\" [class.active]=\"isItemActive()\">\n @if (leaf().icon) {\n <i class=\"nav-icon {{ icon(leaf().icon) }}\" [class]=\"leaf().iconColor ? 'text-' + leaf().iconColor : ''\"></i>\n }\n <p>\n {{ leaf().text }}\n @if (leaf().badge != null) {\n <span class=\"nav-badge badge text-bg-{{ leaf().badgeColor || 'secondary' }} ms-auto\">{{ leaf().badge }}</span>\n }\n </p>\n </a>\n }\n </li>\n }\n @default {\n <li class=\"nav-item\" [class.menu-open]=\"isOpen()\">\n <button type=\"button\" class=\"nav-link\" [attr.aria-expanded]=\"isOpen()\" (click)=\"toggle()\">\n @if (group().icon) {\n <i class=\"nav-icon {{ icon(group().icon) }}\"></i>\n }\n <p>\n {{ group().text }}\n <i class=\"nav-arrow bi bi-chevron-right\"></i>\n @if (group().badge != null) {\n <span class=\"nav-badge badge text-bg-{{ group().badgeColor || 'secondary' }} ms-auto me-3\">{{ group().badge }}</span>\n }\n </p>\n </button>\n\n <div class=\"treeview-wrap\" [class.open]=\"isOpen()\" [style.--lte-treeview-speed.ms]=\"animationSpeed()\">\n <ul class=\"nav nav-treeview\">\n @for (child of visibleChildren(); track trackChild($index, child)) {\n <lte-sidebar-nav-item\n [item]=\"child\"\n [currentPath]=\"currentPath()\"\n [depth]=\"depth() + 1\"\n [parentKey]=\"id\"\n />\n }\n </ul>\n </div>\n </li>\n }\n }\n `,\n})\nexport class SidebarNavItemComponent {\n private readonly registry = inject(TreeviewService);\n\n readonly item = input.required<MenuNode>();\n readonly currentPath = input<string>('/');\n readonly depth = input<number>(0);\n readonly parentKey = input<string>('root');\n\n readonly id = `tv-${uid++}`;\n\n /** Discriminated accessors so the template stays strongly typed. */\n readonly header = computed(() => this.item() as Extract<MenuNode, { type: 'header' }>);\n readonly leaf = computed(() => this.item() as MenuItem);\n readonly group = computed(() => this.item() as MenuGroup);\n\n readonly animationSpeed = this.registry.animationSpeed;\n\n private readonly localOpen = signal(false);\n\n readonly visibleChildren = computed(() =>\n this.item().type === 'group'\n ? (this.item() as MenuGroup).children.filter(\n (c) => c.type === 'header' || c.visible !== false,\n )\n : [],\n );\n\n readonly isItemActive = computed(() => {\n const node = this.item();\n if (node.type !== 'item') return false;\n const target = node.route ?? node.href;\n return target ? this.matches(target) : false;\n });\n\n private readonly groupActive = computed(\n () => this.item().type === 'group' && this.hasActiveDescendant(this.item()),\n );\n\n readonly isOpen = computed(() => {\n if (this.registry.accordion()) return this.registry.isOpen(this.parentKey(), this.id);\n return this.localOpen();\n });\n\n constructor() {\n // Open the group when a descendant becomes active (e.g. on route change).\n effect(() => {\n if (!this.groupActive()) return;\n if (this.registry.accordion()) this.registry.setOpen(this.parentKey(), this.id, true);\n else this.localOpen.set(true);\n });\n }\n\n icon(value: string | undefined): string {\n return biClass(value);\n }\n\n toggle(): void {\n if (this.registry.accordion()) {\n this.registry.setOpen(this.parentKey(), this.id, !this.isOpen());\n } else {\n this.localOpen.update((v) => !v);\n }\n }\n\n trackChild(index: number, child: MenuNode): string {\n return child.type === 'item'\n ? (child.route ?? child.href ?? child.text)\n : `${child.type}:${child.text}:${index}`;\n }\n\n private matches(target: string): boolean {\n const path = this.currentPath();\n if (target.startsWith('http')) return false;\n if (target === '/') return path === '/';\n return path === target || path.startsWith(target + '/');\n }\n\n private hasActiveDescendant(node: MenuNode): boolean {\n if (node.type === 'item') {\n const target = node.route ?? node.href;\n return target ? this.matches(target) : false;\n }\n if (node.type === 'group') return node.children.some((c) => this.hasActiveDescendant(c));\n return false;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { SidebarNavItemComponent } from './sidebar-nav-item.component';\nimport { TreeviewService } from '../services/treeview.service';\nimport type { MenuNode } from '../types/menu';\n\n/**\n * Renders the config-driven sidebar menu from a `MenuNode[]`. Owns a\n * {@link TreeviewService} registry so each sidebar instance manages its own\n * accordion state.\n */\n@Component({\n selector: 'lte-sidebar-nav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SidebarNavItemComponent],\n providers: [TreeviewService],\n template: `\n <nav class=\"mt-2\" aria-label=\"Main navigation\">\n <ul\n id=\"navigation\"\n class=\"nav sidebar-menu flex-column\"\n data-lte-toggle=\"treeview\"\n [attr.data-accordion]=\"accordion() ? 'true' : 'false'\"\n >\n @for (item of visibleItems(); track trackItem($index, item)) {\n <lte-sidebar-nav-item [item]=\"item\" [currentPath]=\"currentPath()\" [depth]=\"0\" parentKey=\"root\" />\n }\n </ul>\n </nav>\n `,\n})\nexport class SidebarNavComponent {\n private readonly registry = inject(TreeviewService);\n\n readonly items = input<MenuNode[]>([]);\n readonly currentPath = input<string>('/');\n /** Accordion treeview — one open group per parent at a time. */\n readonly accordion = input<boolean>(false);\n readonly animationSpeed = input<number>(300);\n\n readonly visibleItems = computed(() =>\n this.items().filter((i) => i.type === 'header' || i.visible !== false),\n );\n\n constructor() {\n effect(() => this.registry.setAccordion(this.accordion()));\n effect(() => this.registry.animationSpeed.set(this.animationSpeed()));\n }\n\n trackItem(index: number, item: MenuNode): string {\n return item.type === 'item'\n ? (item.route ?? item.href ?? item.text)\n : `${item.type}:${item.text}:${index}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { SidebarService } from '../services/sidebar.service';\n\n/**\n * Click/touch backdrop shown behind the mobile off-canvas sidebar. Tapping it\n * collapses the sidebar.\n */\n@Component({\n selector: 'lte-sidebar-overlay',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'sidebar-overlay',\n role: 'presentation',\n '(click)': 'sidebar.collapse()',\n '(touchend)': 'sidebar.collapse()',\n },\n template: ``,\n})\nexport class SidebarOverlayComponent {\n readonly sidebar = inject(SidebarService);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SidebarBrandComponent } from './sidebar-brand.component';\nimport { SidebarNavComponent } from './sidebar-nav.component';\nimport { SidebarOverlayComponent } from './sidebar-overlay.component';\nimport { cn } from '../util/class-name';\nimport type { MenuNode } from '../types/menu';\nimport type { SidebarTheme } from '../types/theme';\n\n/**\n * The off-canvas application sidebar: brand header + scrollable config-driven\n * menu, plus the mobile overlay. The `theme` controls the local `data-bs-theme`\n * so the sidebar can be dark while the page is light (and vice versa).\n */\n@Component({\n selector: 'lte-sidebar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SidebarBrandComponent, SidebarNavComponent, SidebarOverlayComponent],\n template: `\n <aside [class]=\"asideClass()\" [attr.data-bs-theme]=\"theme()\">\n <lte-sidebar-brand [logo]=\"logo()\" [href]=\"logoHref()\" [brandText]=\"brandText()\" />\n <div class=\"sidebar-wrapper\">\n <lte-sidebar-nav\n [items]=\"items()\"\n [currentPath]=\"currentPath()\"\n [accordion]=\"accordion()\"\n [animationSpeed]=\"animationSpeed()\"\n />\n </div>\n </aside>\n\n <lte-sidebar-overlay />\n `,\n})\nexport class SidebarComponent {\n readonly items = input<MenuNode[]>([]);\n readonly logo = input<string>();\n readonly logoHref = input<string>('/');\n readonly brandText = input<string>('AdminLTE 4');\n readonly theme = input<SidebarTheme>('dark');\n readonly sidebarClass = input<string>('bg-body-secondary shadow');\n readonly currentPath = input<string>('/');\n readonly accordion = input<boolean>(false);\n readonly animationSpeed = input<number>(300);\n\n readonly asideClass = () => cn('app-sidebar', this.sidebarClass());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n afterNextRender,\n inject,\n input,\n signal,\n} from '@angular/core';\n\n/**\n * App footer. Projects custom content via the default slot; when none is\n * provided it falls back to the default AdminLTE copyright line. The host\n * element is the `<footer class=\"app-footer\">`.\n */\n@Component({\n selector: 'lte-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'app-footer' },\n template: `\n @if (rightText()) {\n <div class=\"float-end d-none d-sm-inline\">{{ rightText() }}</div>\n }\n <span #projected><ng-content /></span>\n @if (showDefault()) {\n <strong>\n Copyright © 2014-{{ year() }} \n <a href=\"https://adminlte.io\" class=\"text-decoration-none\">AdminLTE.io</a>.\n </strong>\n All rights reserved.\n }\n `,\n})\nexport class FooterComponent {\n private readonly el = inject(ElementRef<HTMLElement>);\n\n /** Right-aligned text. Hidden on extra-small screens. */\n readonly rightText = input<string>('');\n readonly year = input<number | string>(new Date().getFullYear());\n\n /** True when no content was projected — render the default copyright. */\n protected readonly showDefault = signal(false);\n\n constructor() {\n afterNextRender(() => {\n const projected = this.el.nativeElement.querySelector('span');\n this.showDefault.set(!projected || projected.textContent?.trim() === '');\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n effect,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CommandPaletteService } from '../services/command-palette.service';\nimport { flattenMenuToCommands } from '../util/flatten-menu';\nimport { biClass } from '../util/class-name';\nimport type { MenuNode } from '../types/menu';\nimport type { CommandItem } from '../types/widgets';\n\n/**\n * ⌘K command palette. Flattens the sidebar menu into navigable commands, filters\n * them by a substring query, and supports full keyboard navigation\n * (↑/↓/Enter/Esc). Navigation goes through the Angular Router by default; pass a\n * `(navigate)` handler to override.\n */\n@Component({\n selector: 'lte-command-palette',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (palette.isOpen()) {\n <div class=\"lte-cmd-overlay\" (mousedown)=\"onBackdrop($event)\">\n <div class=\"card shadow-lg lte-cmd-panel\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Command palette\">\n <div class=\"input-group input-group-lg border-bottom\">\n <span class=\"input-group-text bg-body border-0\"><i class=\"bi bi-search\"></i></span>\n <input\n #searchInput\n class=\"form-control border-0 shadow-none\"\n [placeholder]=\"placeholder()\"\n aria-label=\"Search\"\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-activedescendant]=\"results().length ? optionId(active()) : null\"\n [value]=\"query()\"\n (input)=\"onQuery($event)\"\n (keydown)=\"onKeydown($event)\"\n />\n </div>\n\n <div [id]=\"listboxId\" role=\"listbox\" class=\"list-group list-group-flush lte-cmd-list\">\n @if (results().length === 0) {\n <div class=\"text-secondary text-center py-4 small\">No results for \"{{ query() }}\"</div>\n }\n @for (item of results(); track item.href; let idx = $index) {\n <button\n [id]=\"optionId(idx)\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"idx === active()\"\n class=\"list-group-item list-group-item-action d-flex align-items-center gap-2\"\n [class.active]=\"idx === active()\"\n (mouseenter)=\"active.set(idx)\"\n (click)=\"go(item)\"\n >\n <i class=\"bi {{ icon(item.icon) }}\"></i>\n <span class=\"flex-grow-1 text-start\">{{ item.label }}</span>\n @if (item.group) {\n <span class=\"badge fw-normal\" [class.text-bg-light]=\"idx === active()\" [class.text-bg-secondary]=\"idx !== active()\">{{ item.group }}</span>\n }\n </button>\n }\n </div>\n\n <div class=\"card-footer d-flex justify-content-between align-items-center text-secondary small py-2\">\n <span><kbd>↑</kbd> <kbd>↓</kbd> navigate</span>\n <span><kbd>↵</kbd> open · <kbd>esc</kbd> close</span>\n </div>\n </div>\n </div>\n }\n `,\n styles: [\n `\n .lte-cmd-overlay {\n position: fixed;\n inset: 0;\n z-index: 1080;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding-top: 12vh;\n background: rgba(0, 0, 0, 0.5);\n }\n .lte-cmd-panel {\n width: min(640px, 92vw);\n max-height: 70vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n .lte-cmd-list {\n overflow-y: auto;\n }\n `,\n ],\n})\nexport class CommandPaletteComponent {\n readonly palette = inject(CommandPaletteService);\n private readonly router = inject(Router, { optional: true });\n\n /** Explicit command list. Takes precedence over `menuItems`. */\n readonly items = input<CommandItem[]>();\n /** Menu tree to flatten into commands when `items` is not given. */\n readonly menuItems = input<MenuNode[]>([]);\n readonly placeholder = input<string>('Search pages…');\n /**\n * Optional navigation override. When provided it fully takes over routing\n * (e.g. a custom router push or analytics-wrapped navigation); otherwise the\n * palette uses the Angular Router (or `window.location` for external/`http` links).\n */\n readonly navigate = input<(href: string) => void>();\n\n private readonly searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n\n readonly query = signal('');\n readonly active = signal(0);\n\n readonly listboxId = 'lte-cmd-listbox';\n\n private readonly allItems = computed<CommandItem[]>(\n () => this.items() ?? flattenMenuToCommands(this.menuItems()),\n );\n\n readonly results = computed<CommandItem[]>(() => {\n const q = this.query().trim().toLowerCase();\n if (!q) return this.allItems();\n return this.allItems().filter(\n (i) => i.label.toLowerCase().includes(q) || (i.group?.toLowerCase().includes(q) ?? false),\n );\n });\n\n constructor() {\n // Reset + focus when the palette opens; reset active on query change.\n effect(() => {\n if (!this.palette.isOpen()) return;\n this.query.set('');\n this.active.set(0);\n queueMicrotask(() => setTimeout(() => this.searchInput()?.nativeElement.focus(), 20));\n });\n effect(() => {\n this.query();\n this.active.set(0);\n });\n }\n\n optionId(idx: number): string {\n return `${this.listboxId}-opt-${idx}`;\n }\n\n icon(value: string | undefined): string {\n return biClass(value) || 'bi-arrow-return-right';\n }\n\n onQuery(e: Event): void {\n this.query.set((e.target as HTMLInputElement).value);\n }\n\n onBackdrop(e: MouseEvent): void {\n if (e.target === e.currentTarget) this.palette.close();\n }\n\n onKeydown(e: KeyboardEvent): void {\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this.active.update((i) => Math.min(i + 1, this.results().length - 1));\n break;\n case 'ArrowUp':\n e.preventDefault();\n this.active.update((i) => Math.max(i - 1, 0));\n break;\n case 'Enter':\n e.preventDefault();\n this.go();\n break;\n case 'Escape':\n e.preventDefault();\n this.palette.close();\n break;\n }\n }\n\n go(item?: CommandItem): void {\n const target = item ?? this.results()[this.active()];\n if (!target) return;\n this.palette.close();\n const override = this.navigate();\n if (override) {\n override(target.href);\n } else if (target.href.startsWith('http')) {\n if (typeof window !== 'undefined') window.location.assign(target.href);\n } else if (this.router) {\n void this.router.navigateByUrl(target.href);\n } else if (typeof window !== 'undefined') {\n window.location.assign(target.href);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { TopbarComponent } from './topbar.component';\nimport { SidebarComponent } from './sidebar.component';\nimport { FooterComponent } from './footer.component';\nimport { CommandPaletteComponent } from '../widget/command-palette.component';\nimport { SidebarService } from '../services/sidebar.service';\nimport { ColorModeService } from '../services/color-mode.service';\nimport { cn } from '../util/class-name';\nimport type { MenuNode } from '../types/menu';\nimport type { TopbarUser } from '../types/layout';\nimport type { BreakpointSize, ColorMode, SidebarTheme } from '../types/theme';\n\n/**\n * The full dashboard shell: fixed topbar + off-canvas sidebar + main content\n * region + footer, with the ⌘K command palette wired in. Configures the shared\n * {@link SidebarService} (responsive state + body classes) and initializes the\n * {@link ColorModeService}. Project your page content into the default slot,\n * and use `[footer]` for footer content.\n */\n@Component({\n selector: 'lte-dashboard-layout',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TopbarComponent, SidebarComponent, FooterComponent, CommandPaletteComponent],\n host: { class: 'app-wrapper' },\n template: `\n <lte-topbar\n [user]=\"user()\"\n [colorModeToggle]=\"colorModeToggle()\"\n [navbarClass]=\"navbarClass()\"\n (logout)=\"logout.emit()\"\n (profile)=\"profile.emit()\"\n >\n <ng-content select=\"[topbar-start]\" topbar-start />\n <ng-content select=\"[topbar-end]\" topbar-end />\n </lte-topbar>\n\n <lte-sidebar\n [items]=\"menuItems()\"\n [logo]=\"logo()\"\n [logoHref]=\"logoHref()\"\n [brandText]=\"brandText()\"\n [theme]=\"sidebarTheme()\"\n [sidebarClass]=\"sidebarClass()\"\n [currentPath]=\"currentPath()\"\n [accordion]=\"accordion()\"\n />\n\n <main class=\"app-main\">\n <ng-content />\n </main>\n\n <lte-footer>\n <ng-content select=\"[footer]\" />\n </lte-footer>\n\n <lte-command-palette [menuItems]=\"menuItems()\" [navigate]=\"navigate()\" />\n `,\n})\nexport class DashboardLayoutComponent {\n private readonly sidebar = inject(SidebarService);\n private readonly colorMode = inject(ColorModeService);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly menuItems = input.required<MenuNode[]>();\n readonly logo = input<string>();\n readonly logoHref = input<string>('/');\n readonly brandText = input<string>('AdminLTE 4');\n readonly user = input<TopbarUser>();\n readonly sidebarTheme = input<SidebarTheme>('dark');\n readonly sidebarClass = input<string>('bg-body-secondary shadow');\n readonly sidebarBreakpoint = input<BreakpointSize>('lg');\n readonly sidebarMini = input<boolean>(false);\n readonly fixedHeader = input<boolean>(false);\n readonly fixedSidebar = input<boolean>(false);\n readonly fixedFooter = input<boolean>(false);\n readonly layoutFixed = input<boolean>(true);\n readonly colorModeToggle = input<boolean>(true);\n readonly initialColorMode = input<ColorMode>('auto');\n readonly enableSidebarPersistence = input<boolean>(false);\n readonly navbarClass = input<string>('');\n readonly bodyClass = input<string>('');\n readonly currentPath = input<string>('/');\n readonly accordion = input<boolean>(false);\n\n readonly logout = output<void>();\n readonly profile = output<void>();\n /**\n * Optional command-palette navigation override. When omitted the palette uses\n * the Angular Router. Provided as an input function (mirrors `LteCommandPalette`).\n */\n readonly navigate = input<(href: string) => void>();\n\n private readonly staticBodyClasses = computed(() =>\n cn(\n this.layoutFixed() && 'layout-fixed',\n `sidebar-expand-${this.sidebarBreakpoint()}`,\n this.fixedHeader() && 'fixed-header',\n this.fixedSidebar() && 'fixed-sidebar',\n this.fixedFooter() && 'fixed-footer',\n 'bg-body-tertiary',\n this.bodyClass(),\n ),\n );\n\n constructor() {\n // Seed the color mode from the layout's initial preference (a persisted\n // user choice always wins — see ColorModeService.setInitialMode).\n this.colorMode.setInitialMode(this.initialColorMode());\n\n // Keep the sidebar service configured with the current inputs.\n effect(() => {\n this.sidebar.configure({\n sidebarMini: this.sidebarMini(),\n enablePersistence: this.enableSidebarPersistence(),\n breakpoint: this.sidebarBreakpoint(),\n staticBodyClasses: this.staticBodyClasses(),\n });\n });\n\n // Clean up the body classes when the dashboard layout is destroyed so they\n // don't leak onto e.g. an auth page.\n this.destroyRef.onDestroy(() => this.sidebar.reset());\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n PLATFORM_ID,\n computed,\n effect,\n input,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { RouterLink } from '@angular/router';\n\n/**\n * Centered card layout for login / register pages. Applies the page-level body\n * classes (`login-page` / `register-page` + `bg-body-secondary`) while mounted\n * and removes them on destroy. Project the form into the default slot, and\n * optionally a custom brand into `[logo]`.\n */\n@Component({\n selector: 'lte-auth-layout',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink],\n template: `\n <div [class]=\"authType() + '-box'\">\n @if (variant() === 'v2') {\n <div class=\"card card-outline card-primary\">\n <div class=\"card-header\">\n <a [routerLink]=\"logoHref()\" class=\"link-dark text-center link-offset-2 link-opacity-100 link-opacity-50-hover\">\n @if (logo()) {\n <img [src]=\"logo()\" alt=\"Logo\" height=\"48\" />\n } @else {\n <h1 class=\"mb-0\"><b>Admin</b>LTE</h1>\n }\n <ng-content select=\"[logo]\" />\n </a>\n </div>\n <div [class]=\"'card-body ' + authType() + '-card-body'\">\n <ng-content />\n </div>\n </div>\n } @else {\n <div [class]=\"authType() + '-logo'\">\n <a [routerLink]=\"logoHref()\">\n @if (logo()) {\n <img [src]=\"logo()\" alt=\"Logo\" height=\"48\" />\n } @else {\n <b>Admin</b>LTE\n }\n <ng-content select=\"[logo]\" />\n </a>\n </div>\n <div class=\"card\">\n <div [class]=\"'card-body ' + authType() + '-card-body'\">\n <ng-content />\n </div>\n </div>\n }\n </div>\n `,\n})\nexport class AuthLayoutComponent {\n private readonly isBrowser: boolean;\n private appliedClasses: string[] = [];\n\n readonly authType = input<'login' | 'register'>('login');\n readonly variant = input<'default' | 'v2'>('default');\n readonly logo = input<string>();\n readonly logoHref = input<string>('/');\n\n private readonly bodyClasses = computed(() => [`${this.authType()}-page`, 'bg-body-secondary']);\n\n constructor(\n @Inject(PLATFORM_ID) platformId: object,\n @Inject(DOCUMENT) private readonly doc: Document,\n destroyRef: DestroyRef,\n ) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n effect(() => {\n if (!this.isBrowser) return;\n const next = this.bodyClasses();\n for (const c of this.appliedClasses) this.doc.body.classList.remove(c);\n for (const c of next) this.doc.body.classList.add(c);\n this.appliedClasses = next;\n });\n\n destroyRef.onDestroy(() => {\n if (!this.isBrowser) return;\n for (const c of this.appliedClasses) this.doc.body.classList.remove(c);\n this.appliedClasses = [];\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport type { Breadcrumb } from '../types/layout';\n\n/**\n * Page content wrapper with an optional header row (title + breadcrumbs) above a\n * `container`/`container-fluid` body. Project the page body into the default slot.\n */\n@Component({\n selector: 'lte-app-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink],\n template: `\n @if (title() || breadcrumbs().length) {\n <div class=\"app-content-header\">\n <div [class]=\"containerClass()\">\n <div class=\"row\">\n <div class=\"col-sm-6\">\n @if (title()) {\n <h3 class=\"mb-0\">{{ title() }}</h3>\n }\n </div>\n @if (breadcrumbs().length) {\n <div class=\"col-sm-6\">\n <ol class=\"breadcrumb float-sm-end\">\n @for (crumb of breadcrumbs(); track $index; let last = $last) {\n <li class=\"breadcrumb-item\" [class.active]=\"last\" [attr.aria-current]=\"last ? 'page' : null\">\n @if ((crumb.route || crumb.href) && !last) {\n @if (crumb.route) {\n <a [routerLink]=\"crumb.route\">{{ crumb.label }}</a>\n } @else {\n <a [href]=\"crumb.href\">{{ crumb.label }}</a>\n }\n } @else {\n {{ crumb.label }}\n }\n </li>\n }\n </ol>\n </div>\n }\n </div>\n </div>\n </div>\n }\n\n <div class=\"app-content\">\n <div [class]=\"containerClass()\">\n <ng-content />\n </div>\n </div>\n `,\n})\nexport class AppContentComponent {\n readonly title = input<string>();\n readonly breadcrumbs = input<Breadcrumb[]>([]);\n readonly fluid = input<boolean>(true);\n\n readonly containerClass = computed(() => (this.fluid() ? 'container-fluid' : 'container-lg'));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { biClass, cn } from '../util/class-name';\nimport type { BootstrapTheme } from '../types/theme';\n\n/**\n * AdminLTE card with optional collapse / maximize / remove tools. `variant`\n * controls the color treatment: `default` (colored header), `outline` (colored\n * top border) or `solid` (fully colored). Project the body into the default\n * slot, an optional footer into `[footer]`, and extra tools into `[tools]`.\n */\n@Component({\n selector: 'lte-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (!isRemoved()) {\n <div [class]=\"cardClass()\">\n @if (title() || icon() || hasTools()) {\n <div [class]=\"cn('card-header', headerClass())\">\n <h3 class=\"card-title\">\n @if (icon()) {\n <i class=\"{{ biClass(icon()) }} me-1\"></i>\n }\n {{ title() }}\n </h3>\n <div class=\"card-tools\">\n <ng-content select=\"[tools]\" />\n @if (collapsible()) {\n <button type=\"button\" class=\"btn btn-tool\" [title]=\"isCollapsed() ? 'Expand' : 'Collapse'\" (click)=\"toggleCollapse()\">\n <i class=\"bi\" [class.bi-plus-lg]=\"isCollapsed()\" [class.bi-dash-lg]=\"!isCollapsed()\"></i>\n </button>\n }\n @if (maximizable()) {\n <button type=\"button\" class=\"btn btn-tool\" title=\"Maximize\" (click)=\"toggleMaximize()\">\n <i class=\"bi\" [class.bi-fullscreen-exit]=\"isMaximized()\" [class.bi-fullscreen]=\"!isMaximized()\"></i>\n </button>\n }\n @if (removable()) {\n <button type=\"button\" class=\"btn btn-tool\" title=\"Remove\" (click)=\"remove()\">\n <i class=\"bi bi-x-lg\"></i>\n </button>\n }\n </div>\n </div>\n }\n\n @if (!isCollapsed()) {\n <div [class]=\"cn('card-body', bodyClass())\">\n <ng-content />\n </div>\n <div [class]=\"cn('card-footer', footerClass())\" [hidden]=\"!hasFooter()\">\n <ng-content select=\"[footer]\" />\n </div>\n }\n </div>\n }\n `,\n})\nexport class CardComponent {\n private readonly doc = inject(DOCUMENT);\n\n readonly title = input<string>();\n readonly icon = input<string>();\n readonly theme = input<BootstrapTheme>();\n readonly variant = input<'default' | 'outline' | 'solid'>('default');\n readonly gradient = input<boolean>(false);\n readonly collapsible = input<boolean>(false);\n readonly defaultCollapsed = input<boolean>(false);\n readonly removable = input<boolean>(false);\n readonly maximizable = input<boolean>(false);\n readonly hasFooter = input<boolean>(false);\n readonly bodyClass = input<string>('');\n readonly headerClass = input<string>('');\n readonly footerClass = input<string>('');\n\n readonly isCollapsed = signal(false);\n readonly isMaximized = signal(false);\n readonly isRemoved = signal(false);\n\n readonly biClass = biClass;\n readonly cn = cn;\n\n readonly hasTools = computed(\n () => this.collapsible() || this.removable() || this.maximizable(),\n );\n\n readonly cardClass = computed(() => {\n let base = 'card';\n const theme = this.theme();\n if (theme) {\n if (this.variant() === 'outline') base = `card card-outline card-${theme}`;\n else if (this.variant() === 'solid') base = `card text-bg-${theme}`;\n else base = `card card-${theme}`;\n }\n return cn(\n base,\n this.gradient() && theme && 'bg-gradient',\n this.isCollapsed() && 'collapsed-card',\n this.isMaximized() && 'maximized-card',\n );\n });\n\n constructor() {\n queueMicrotask(() => {\n if (this.defaultCollapsed()) this.isCollapsed.set(true);\n });\n }\n\n toggleCollapse(): void {\n this.isCollapsed.update((v) => !v);\n }\n\n toggleMaximize(): void {\n this.isMaximized.update((v) => {\n const next = !v;\n this.doc.documentElement.classList.toggle('maximized-card', next);\n return next;\n });\n }\n\n remove(): void {\n this.isRemoved.set(true);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { BootstrapTheme } from '../types/theme';\n\n/**\n * Colored stat box (`small-box`) with a big number, label, icon and a \"More\n * info\" footer link. Light/warning backgrounds get a dark footer link for\n * contrast — matching the React/Vue ports.\n */\n@Component({\n selector: 'lte-small-box',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"'small-box text-bg-' + theme()\">\n <div class=\"inner\">\n <h3>{{ title() }}</h3>\n <p>{{ text() }}<ng-content /></p>\n </div>\n @if (icon()) {\n <i class=\"small-box-icon bi {{ icon() }}\"></i>\n }\n @if (loading()) {\n <div class=\"overlay\">\n <i class=\"bi bi-arrow-repeat spinner-border-sm\"></i>\n </div>\n }\n @if (url()) {\n <a [href]=\"url()\" [class]=\"footerClass()\">\n {{ urlText() }} <i class=\"bi bi-link-45deg\"></i>\n </a>\n }\n </div>\n `,\n})\nexport class SmallBoxComponent {\n readonly title = input<string | number>();\n readonly text = input<string>('');\n readonly icon = input<string>();\n readonly theme = input<BootstrapTheme>('primary');\n readonly url = input<string>();\n readonly urlText = input<string>('More info');\n readonly loading = input<boolean>(false);\n\n private readonly linkColor = computed(() =>\n this.theme() === 'warning' || this.theme() === 'light' ? 'link-dark' : 'link-light',\n );\n\n readonly footerClass = computed(\n () =>\n `small-box-footer ${this.linkColor()} link-underline-opacity-0 link-underline-opacity-50-hover`,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { biClass, cn } from '../util/class-name';\nimport type { BootstrapTheme } from '../types/theme';\n\n/**\n * Compact info box with a colored icon chip, a label/number, and an optional\n * progress bar. `variant: 'solid'` colors the whole box.\n */\n@Component({\n selector: 'lte-info-box',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"boxClass()\">\n @if (icon()) {\n <span [class]=\"iconClass()\">\n <i class=\"{{ biClass(icon()) }}\" aria-hidden=\"true\"></i>\n </span>\n }\n <div class=\"info-box-content\">\n @if (text()) {\n <span class=\"info-box-text\">{{ text() }}</span>\n }\n @if (title() != null) {\n <span class=\"info-box-number\">{{ title() }} @if (unit()) {<small>{{ unit() }}</small>}</span>\n }\n <ng-content />\n @if (progress() != null) {\n <div class=\"progress\">\n <div [class]=\"barClass()\" [style.width.%]=\"progress()\"></div>\n </div>\n @if (progressText()) {\n <span class=\"progress-description\">{{ progressText() }}</span>\n }\n }\n </div>\n </div>\n `,\n})\nexport class InfoBoxComponent {\n readonly title = input<string | number>();\n readonly text = input<string>('');\n readonly icon = input<string>();\n readonly theme = input<BootstrapTheme>('info');\n readonly iconTheme = input<BootstrapTheme>();\n readonly variant = input<'default' | 'solid'>('default');\n readonly gradient = input<boolean>(false);\n readonly boxClassExtra = input<string>('');\n readonly unit = input<string>();\n readonly progress = input<number>();\n readonly progressText = input<string>();\n\n readonly biClass = biClass;\n\n readonly boxClass = computed(() =>\n cn(\n 'info-box',\n this.variant() === 'solid' && `text-bg-${this.theme()}`,\n this.variant() === 'solid' && this.gradient() && 'bg-gradient',\n this.boxClassExtra(),\n ),\n );\n\n readonly iconClass = computed(() =>\n this.variant() === 'solid'\n ? 'info-box-icon'\n : `info-box-icon text-bg-${this.iconTheme() ?? this.theme()} shadow-sm`,\n );\n\n readonly barClass = computed(() =>\n this.variant() === 'solid' ? 'progress-bar' : `progress-bar bg-${this.theme()}`,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { biClass, cn } from '../util/class-name';\nimport type { BootstrapTheme } from '../types/theme';\n\n/**\n * Bootstrap alert with optional icon, title and dismiss button. `show` is a\n * two-way model so it can be controlled (`[(show)]`) or left uncontrolled.\n */\n@Component({\n selector: 'lte-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (show()) {\n <div [class]=\"alertClass()\" role=\"alert\">\n @if (title() || icon()) {\n <h5>\n @if (icon()) {\n <i class=\"{{ biClass(icon()) }} me-2\"></i>\n }\n {{ title() }}\n </h5>\n }\n <ng-content />\n @if (dismissible()) {\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"dismiss()\"></button>\n }\n </div>\n }\n `,\n})\nexport class AlertComponent {\n readonly theme = input<BootstrapTheme>('info');\n readonly icon = input<string>();\n readonly title = input<string>();\n readonly dismissible = input<boolean>(false);\n readonly show = model<boolean>(true);\n\n readonly biClass = biClass;\n\n readonly alertClass = computed(() =>\n cn('alert', `alert-${this.theme()}`, this.dismissible() && 'alert-dismissible'),\n );\n\n dismiss(): void {\n this.show.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport type { BootstrapTheme } from '../types/theme';\n\n/** AdminLTE callout box — a bordered, lightly-tinted notice. */\n@Component({\n selector: 'lte-callout',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"'callout callout-' + theme()\">\n @if (title()) {\n <h5>{{ title() }}</h5>\n }\n <ng-content />\n </div>\n `,\n})\nexport class CalloutComponent {\n readonly theme = input<BootstrapTheme>('info');\n readonly title = input<string>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../util/class-name';\nimport type { BootstrapTheme, ComponentSize } from '../types/theme';\n\n/** Bootstrap progress bar with theme, size, striped/animated and label options. */\n@Component({\n selector: 'lte-progress',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div\n class=\"progress\"\n [class.progress-sm]=\"size() === 'sm'\"\n [class.progress-lg]=\"size() === 'lg'\"\n [style.height]=\"height() || null\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value()\"\n aria-valuemin=\"0\"\n [attr.aria-valuemax]=\"max()\"\n >\n <div [class]=\"barClass()\" [style.width.%]=\"pct()\">\n @if (showLabel()) {\n {{ pct() }}%\n }\n </div>\n </div>\n `,\n})\nexport class ProgressComponent {\n readonly value = input.required<number>();\n readonly max = input<number>(100);\n readonly theme = input<BootstrapTheme>('primary');\n readonly size = input<ComponentSize>();\n readonly striped = input<boolean>(false);\n readonly animated = input<boolean>(false);\n readonly showLabel = input<boolean>(false);\n readonly height = input<string>();\n\n readonly pct = computed(() =>\n Math.round(Math.min(100, Math.max(0, (this.value() / this.max()) * 100))),\n );\n\n readonly barClass = computed(() =>\n cn(\n 'progress-bar',\n `bg-${this.theme()}`,\n this.striped() && 'progress-bar-striped',\n this.animated() && 'progress-bar-animated',\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { biClass } from '../util/class-name';\nimport type { TimelineItem } from '../types/widgets';\n\n/**\n * Vertical timeline of events. `body`/`footer` accept HTML strings, rendered via\n * `[innerHTML]` (Angular sanitizes them before insertion).\n */\n@Component({\n selector: 'lte-timeline',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"timeline\">\n @for (item of items(); track $index) {\n <div>\n <i class=\"bi {{ icon(item.icon) }} bg-{{ item.iconTheme || 'primary' }}\" aria-hidden=\"true\"></i>\n <div class=\"timeline-item\">\n <span class=\"time\"><i class=\"bi bi-clock\"></i> {{ item.time }}</span>\n <h3 class=\"timeline-header\">\n @if (item.url) {\n <a [href]=\"item.url\">{{ item.title }}</a>\n } @else {\n {{ item.title }}\n }\n </h3>\n @if (item.body) {\n <div class=\"timeline-body\" [innerHTML]=\"item.body\"></div>\n }\n @if (item.footer) {\n <div class=\"timeline-footer\" [innerHTML]=\"item.footer\"></div>\n }\n </div>\n </div>\n }\n </div>\n `,\n})\nexport class TimelineComponent {\n readonly items = input.required<TimelineItem[]>();\n\n icon(value: string | undefined): string {\n return biClass(value || 'bi-circle-fill');\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport type { ProfileStat } from '../types/widgets';\n\n/**\n * User profile card: avatar, name, role, optional cover image and a list of\n * stats. Project extra content (e.g. a \"Follow\" button) into the default slot.\n */\n@Component({\n selector: 'lte-profile-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"card card-primary card-outline\">\n <div class=\"card-body box-profile\">\n @if (coverImage()) {\n <div class=\"rounded-top mb-3\" [style.height.px]=\"120\" [style.background]=\"'center/cover url(' + coverImage() + ')'\"></div>\n }\n <div class=\"text-center\">\n <img\n [src]=\"image()\"\n [alt]=\"name()\"\n class=\"profile-user-img img-fluid img-circle rounded-circle shadow\"\n width=\"100\"\n height=\"100\"\n />\n </div>\n <h3 class=\"profile-username text-center\">{{ name() }}</h3>\n @if (role()) {\n <p class=\"text-body-secondary text-center\">{{ role() }}</p>\n }\n @if (stats().length) {\n <ul class=\"list-group list-group-unbordered mb-3\">\n @for (stat of stats(); track $index) {\n <li class=\"list-group-item\">\n <b>{{ stat.label }}</b> <span class=\"float-end\">{{ stat.value }}</span>\n </li>\n }\n </ul>\n }\n <ng-content />\n </div>\n </div>\n `,\n})\nexport class ProfileCardComponent {\n readonly name = input.required<string>();\n readonly image = input.required<string>();\n readonly role = input<string>();\n readonly coverImage = input<string>();\n readonly stats = input<ProfileStat[]>([]);\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { biClass } from '../util/class-name';\nimport type { BootstrapTheme } from '../types/theme';\n\n/**\n * Description block (used inside card footers): a big header value, a label, and\n * an optional trend percentage (green up / red down).\n */\n@Component({\n selector: 'lte-description-block',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"description-block\">\n @if (percentage() != null) {\n <span class=\"description-percentage\" [class.text-success]=\"positive()\" [class.text-danger]=\"!positive()\">\n <i class=\"bi\" [class.bi-caret-up-fill]=\"positive()\" [class.bi-caret-down-fill]=\"!positive()\"></i>\n {{ absPercentage() }}%\n </span>\n }\n <h5 class=\"description-header\">\n @if (icon()) {\n <i class=\"{{ biClass(icon()) }} me-1\" [class]=\"iconTheme() ? 'text-' + iconTheme() : ''\"></i>\n }\n {{ header() }}\n </h5>\n <span class=\"description-text\">{{ text() }}</span>\n <ng-content />\n </div>\n `,\n})\nexport class DescriptionBlockComponent {\n readonly header = input.required<string>();\n readonly text = input<string>();\n readonly icon = input<string>();\n readonly iconTheme = input<BootstrapTheme>();\n readonly percentage = input<number>();\n\n readonly biClass = biClass;\n\n readonly positive = computed(() => (this.percentage() ?? 0) >= 0);\n readonly absPercentage = computed(() => Math.abs(this.percentage() ?? 0));\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport type { Breadcrumb } from '../types/layout';\n\n/** Standalone breadcrumb trail. The last item renders as the active page. */\n@Component({\n selector: 'lte-breadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink],\n template: `\n <nav aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\">\n @for (crumb of items(); track $index; let last = $last) {\n <li class=\"breadcrumb-item\" [class.active]=\"last\" [attr.aria-current]=\"last ? 'page' : null\">\n @if (!last && crumb.route) {\n <a [routerLink]=\"crumb.route\">{{ crumb.label }}</a>\n } @else if (!last && crumb.href) {\n <a [href]=\"crumb.href\">{{ crumb.label }}</a>\n } @else {\n {{ crumb.label }}\n }\n </li>\n }\n </ol>\n </nav>\n `,\n})\nexport class BreadcrumbComponent {\n readonly items = input.required<Breadcrumb[]>();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n Inject,\n PLATFORM_ID,\n effect,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n// `apexcharts` is an optional peer dependency — typed loosely to avoid a hard\n// build-time dependency on its types.\ninterface ApexInstance {\n render: () => void;\n updateOptions: (o: unknown) => void;\n destroy: () => void;\n}\n\n/**\n * Thin ApexCharts wrapper. Lazily imports `apexcharts` (an optional peer dep) on\n * the browser only, renders into a div, re-renders when `options` change, and\n * destroys the chart on teardown.\n */\n@Component({\n selector: 'lte-apex-chart',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<div #host></div>`,\n})\nexport class ApexChartComponent {\n private readonly host = viewChild.required<ElementRef<HTMLElement>>('host');\n private readonly isBrowser: boolean;\n private chart: ApexInstance | null = null;\n\n /** ApexCharts options object (series, chart, xaxis, …). */\n readonly options = input.required<Record<string, unknown>>();\n\n constructor(@Inject(PLATFORM_ID) platformId: object) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n effect(() => {\n const opts = this.options();\n if (!this.isBrowser) return;\n void this.renderOrUpdate(opts);\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.chart?.destroy();\n this.chart = null;\n });\n }\n\n private async renderOrUpdate(opts: Record<string, unknown>): Promise<void> {\n try {\n if (this.chart) {\n this.chart.updateOptions(opts);\n return;\n }\n const mod = await import('apexcharts');\n const ApexCharts = (mod.default ?? mod) as unknown as new (\n el: Element,\n o: unknown,\n ) => ApexInstance;\n this.chart = new ApexCharts(this.host().nativeElement, opts);\n this.chart.render();\n } catch {\n console.warn('[adminlte-angular] apexcharts is not installed — <lte-apex-chart> is inert.');\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { ComponentSize } from '../types/theme';\n\n/**\n * A self-contained Bootstrap modal that doesn't require Bootstrap's JS. Visibility\n * is driven by the `[(open)]` model; project the body into the default slot and a\n * footer into `[modal-footer]`.\n */\n@Component({\n selector: 'lte-modal',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (open()) {\n <div class=\"modal fade show d-block\" tabindex=\"-1\" role=\"dialog\" (click)=\"onBackdrop($event)\">\n <div [class]=\"dialogClass()\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">{{ title() }}</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"close()\"></button>\n </div>\n <div class=\"modal-body\">\n <ng-content />\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"[modal-footer]\" />\n </div>\n </div>\n </div>\n </div>\n <div class=\"modal-backdrop fade show\"></div>\n }\n `,\n})\nexport class ModalComponent {\n readonly title = input<string>('');\n readonly size = input<ComponentSize>();\n readonly open = model<boolean>(false);\n readonly closed = output<void>();\n\n readonly dialogClass = computed(() =>\n this.size() ? `modal-dialog modal-${this.size()}` : 'modal-dialog',\n );\n\n onBackdrop(e: MouseEvent): void {\n if ((e.target as HTMLElement).classList.contains('modal')) this.close();\n }\n\n close(): void {\n this.open.set(false);\n this.closed.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { BootstrapTheme } from '../types/theme';\n\n/** A labeled `value/max` progress row, as used in AdminLTE stat cards. */\n@Component({\n selector: 'lte-progress-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"progress-group\">\n <span class=\"progress-text\">{{ label() }}</span>\n <span class=\"float-end\"><b>{{ value() }}</b>/{{ max() }}</span>\n <div class=\"progress progress-sm\">\n <div class=\"progress-bar\" [class]=\"'bg-' + theme()\" [style.width.%]=\"pct()\"></div>\n </div>\n </div>\n `,\n})\nexport class ProgressGroupComponent {\n readonly label = input.required<string>();\n readonly value = input.required<number>();\n readonly max = input<number>(100);\n readonly theme = input<BootstrapTheme>('primary');\n\n readonly pct = computed(() =>\n Math.min(100, Math.max(0, (this.value() / this.max()) * 100)),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { BootstrapTheme } from '../types/theme';\n\n/** Star rating display supporting half-stars and an optional `value/max` label. */\n@Component({\n selector: 'lte-ratings',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ratings d-inline-flex align-items-center gap-1\">\n @for (star of stars(); track $index) {\n <i class=\"bi {{ star }} text-{{ theme() }}\" aria-hidden=\"true\"></i>\n }\n @if (showText()) {\n <span class=\"ms-2 text-secondary\">{{ value() }}/{{ max() }}</span>\n }\n </div>\n `,\n})\nexport class RatingsComponent {\n readonly value = input.required<number>();\n readonly max = input<number>(5);\n readonly theme = input<BootstrapTheme>('warning');\n readonly showText = input<boolean>(false);\n\n readonly stars = computed(() =>\n Array.from({ length: this.max() }, (_, i) => {\n const n = i + 1;\n if (this.value() >= n) return 'bi-star-fill';\n if (this.value() >= n - 0.5) return 'bi-star-half';\n return 'bi-star';\n }),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n signal,\n} from '@angular/core';\nimport { cn } from '../util/class-name';\nimport type { BootstrapTheme } from '../types/theme';\nimport type { DirectChatContact, DirectChatMessage } from '../types/widgets';\n\n/**\n * AdminLTE direct-chat card: a scrollable message thread with a slide-in contacts\n * pane. Pass `messages`/`contacts` data, or project your own markup into the\n * `[messages]` / `[contacts]` / `[footer]` slots.\n */\n@Component({\n selector: 'lte-direct-chat',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"rootClass()\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ title() }}</h3>\n <div class=\"card-tools\">\n <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" (click)=\"toggleContacts()\">\n <i class=\"bi bi-person-lines-fill\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"card-body\">\n <div class=\"direct-chat-messages\">\n <ng-content select=\"[messages]\" />\n @for (msg of messages(); track $index) {\n <div class=\"direct-chat-msg\" [class.end]=\"msg.isOwn\">\n <div class=\"direct-chat-infos clearfix\">\n <span class=\"direct-chat-name\" [class.float-end]=\"msg.isOwn\" [class.float-start]=\"!msg.isOwn\">{{ msg.from }}</span>\n <span class=\"direct-chat-timestamp\" [class.float-start]=\"msg.isOwn\" [class.float-end]=\"!msg.isOwn\">{{ msg.timestamp }}</span>\n </div>\n <img class=\"direct-chat-img\" [src]=\"msg.image\" [alt]=\"msg.from\" />\n <div class=\"direct-chat-text\">{{ msg.text }}</div>\n </div>\n }\n </div>\n\n <div class=\"direct-chat-contacts\">\n <ng-content select=\"[contacts]\" />\n @if (contacts().length) {\n <ul class=\"contacts-list\">\n @for (c of contacts(); track $index) {\n <li>\n <a href=\"#\">\n <img class=\"contacts-list-img\" [src]=\"c.image\" [alt]=\"c.name\" />\n <div class=\"contacts-list-info\">\n <span class=\"contacts-list-name\">\n {{ c.name }}\n <small class=\"contacts-list-date float-end\">{{ c.date }}</small>\n </span>\n <span class=\"contacts-list-msg\">{{ c.preview }}</span>\n </div>\n </a>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n\n @if (hasFooter()) {\n <div class=\"card-footer\">\n <ng-content select=\"[footer]\" />\n </div>\n }\n </div>\n `,\n})\nexport class DirectChatComponent {\n readonly title = input<string>('');\n readonly theme = input<BootstrapTheme>('primary');\n readonly messages = input<DirectChatMessage[]>([]);\n readonly contacts = input<DirectChatContact[]>([]);\n /** Render the `[footer]` slot wrapper. */\n readonly hasFooter = input<boolean>(false);\n\n protected readonly contactsOpen = signal(false);\n\n readonly rootClass = computed(() =>\n cn(\n 'card direct-chat',\n `direct-chat-${this.theme()}`,\n this.contactsOpen() && 'direct-chat-contacts-open',\n ),\n );\n\n toggleContacts(): void {\n this.contactsOpen.update((v) => !v);\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport type { BootstrapTheme } from '../types/theme';\nimport type { NavMessage } from '../types/widgets';\n\n/**\n * Topbar messages dropdown (`<li class=\"nav-item dropdown\">`). Drop it into the\n * topbar's `[topbar-end]` slot. Uses Bootstrap's dropdown JS (`data-bs-toggle`).\n */\n@Component({\n selector: 'lte-nav-messages, [lte-nav-messages]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'nav-item dropdown' },\n template: `\n <a class=\"nav-link\" data-bs-toggle=\"dropdown\" href=\"#\" (click)=\"$event.preventDefault()\">\n <i class=\"bi bi-chat-text\"></i>\n @if (messages().length) {\n <span class=\"navbar-badge badge text-bg-{{ badgeColor() }}\">{{ count() ?? messages().length }}</span>\n }\n </a>\n <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-end\">\n @for (msg of messages(); track $index) {\n <a [href]=\"msg.url || '#'\" class=\"dropdown-item\">\n <div class=\"d-flex\">\n @if (msg.image) {\n <div class=\"flex-shrink-0\">\n <img [src]=\"msg.image\" alt=\"User Avatar\" class=\"img-size-50 rounded-circle me-3\" />\n </div>\n }\n <div class=\"flex-grow-1\">\n <h3 class=\"dropdown-item-title\">\n {{ msg.from }}\n @if (msg.star) {\n <span class=\"float-end fs-7 text-{{ msg.star }}\"><i class=\"bi bi-star-fill\"></i></span>\n }\n </h3>\n <p class=\"fs-7\">{{ msg.text }}</p>\n @if (msg.time) {\n <p class=\"fs-7 text-secondary\"><i class=\"bi bi-clock-fill me-1\"></i> {{ msg.time }}</p>\n }\n </div>\n </div>\n </a>\n <div class=\"dropdown-divider\"></div>\n }\n <a [href]=\"seeAllUrl()\" class=\"dropdown-item dropdown-footer\">{{ seeAllText() }}</a>\n </div>\n `,\n})\nexport class NavMessagesComponent {\n readonly messages = input.required<NavMessage[]>();\n readonly badgeColor = input<BootstrapTheme>('danger');\n readonly count = input<number | string>();\n readonly seeAllUrl = input<string>('#');\n readonly seeAllText = input<string>('See All Messages');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { biClass } from '../util/class-name';\nimport type { BootstrapTheme } from '../types/theme';\nimport type { NavNotification } from '../types/widgets';\n\n/**\n * Topbar notifications dropdown (`<li class=\"nav-item dropdown\">`). Drop it into\n * the topbar's `[topbar-end]` slot. Uses Bootstrap's dropdown JS.\n */\n@Component({\n selector: 'lte-nav-notifications, [lte-nav-notifications]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'nav-item dropdown' },\n template: `\n <a class=\"nav-link\" data-bs-toggle=\"dropdown\" href=\"#\" (click)=\"$event.preventDefault()\">\n <i class=\"bi bi-bell-fill\"></i>\n @if (notifications().length) {\n <span class=\"navbar-badge badge text-bg-{{ badgeColor() }}\">{{ count() ?? notifications().length }}</span>\n }\n </a>\n <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-end\">\n <span class=\"dropdown-item dropdown-header\">{{ count() ?? notifications().length }} Notifications</span>\n @for (n of notifications(); track $index) {\n <div class=\"dropdown-divider\"></div>\n <a [href]=\"n.url || '#'\" class=\"dropdown-item\">\n <i class=\"{{ biClass(n.icon || 'bi-info-circle') }} {{ n.iconTheme ? 'text-' + n.iconTheme : '' }} me-2\"></i>\n {{ n.text }}\n @if (n.time) {\n <span class=\"float-end text-secondary fs-7\">{{ n.time }}</span>\n }\n </a>\n }\n <div class=\"dropdown-divider\"></div>\n <a [href]=\"seeAllUrl()\" class=\"dropdown-item dropdown-footer\">{{ seeAllText() }}</a>\n </div>\n `,\n})\nexport class NavNotificationsComponent {\n readonly notifications = input.required<NavNotification[]>();\n readonly badgeColor = input<BootstrapTheme>('warning');\n readonly count = input<number | string>();\n readonly seeAllUrl = input<string>('#');\n readonly seeAllText = input<string>('See All Notifications');\n\n readonly biClass = biClass;\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport type { BootstrapTheme } from '../types/theme';\nimport type { NavTask } from '../types/widgets';\n\n/**\n * Topbar tasks dropdown (`<li class=\"nav-item dropdown\">`) with per-task progress\n * bars. Drop it into the topbar's `[topbar-end]` slot. Uses Bootstrap's dropdown JS.\n */\n@Component({\n selector: 'lte-nav-tasks, [lte-nav-tasks]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'nav-item dropdown' },\n template: `\n <a class=\"nav-link\" data-bs-toggle=\"dropdown\" href=\"#\" (click)=\"$event.preventDefault()\">\n <i class=\"bi bi-list-check\"></i>\n @if (tasks().length) {\n <span class=\"navbar-badge badge text-bg-{{ badgeColor() }}\">{{ count() ?? tasks().length }}</span>\n }\n </a>\n <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-end\">\n <span class=\"dropdown-item dropdown-header\">{{ tasks().length }} Tasks</span>\n @for (task of tasks(); track $index) {\n <div class=\"dropdown-divider\"></div>\n <a [href]=\"task.url || '#'\" class=\"dropdown-item\">\n <h3 class=\"dropdown-item-title\">\n {{ task.text }}\n <span class=\"float-end fs-7\">{{ task.progress }}%</span>\n </h3>\n <div class=\"progress progress-sm\">\n <div class=\"progress-bar\" [class]=\"'bg-' + (task.theme || badgeColor())\" [style.width.%]=\"task.progress\"></div>\n </div>\n </a>\n }\n <div class=\"dropdown-divider\"></div>\n <a [href]=\"seeAllUrl()\" class=\"dropdown-item dropdown-footer\">{{ seeAllText() }}</a>\n </div>\n `,\n})\nexport class NavTasksComponent {\n readonly tasks = input.required<NavTask[]>();\n readonly badgeColor = input<BootstrapTheme>('success');\n readonly count = input<number | string>();\n readonly seeAllUrl = input<string>('#');\n readonly seeAllText = input<string>('View All Tasks');\n}\n","import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';\n\n/**\n * A single tab panel. Must be a content child of {@link TabsComponent}. The host\n * carries the panel data (`tabId`, `title`, `icon`, `disabled`); project the panel\n * body into its default slot. Active state is driven by the parent.\n */\n@Component({\n selector: 'lte-tab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"tab-pane fade\" [class.show]=\"active()\" [class.active]=\"active()\" role=\"tabpanel\" [hidden]=\"!active()\">\n <ng-content />\n </div>\n `,\n})\nexport class TabComponent {\n /** Unique id used to select this tab. */\n readonly tabId = input.required<string>();\n readonly title = input.required<string>();\n readonly icon = input<string>();\n readonly disabled = input<boolean>(false);\n\n /** Active flag, toggled by the parent {@link TabsComponent}. */\n readonly active = signal(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n input,\n model,\n} from '@angular/core';\nimport { biClass } from '../util/class-name';\nimport { TabComponent } from './tab.component';\n\n/**\n * Tab container that renders a nav strip from its projected `<lte-tab>` children\n * and toggles their panels. `[(active)]` two-way binds the active tab id; when\n * unset it defaults to the first non-disabled tab.\n */\n@Component({\n selector: 'lte-tabs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ul class=\"nav\" [class.nav-tabs]=\"!pills()\" [class.nav-pills]=\"pills()\" [class.nav-justified]=\"justified()\" role=\"tablist\">\n @for (tab of tabs(); track tab.tabId()) {\n <li class=\"nav-item\" role=\"presentation\">\n <button\n type=\"button\"\n class=\"nav-link\"\n [class.active]=\"tab.active()\"\n [class.disabled]=\"tab.disabled()\"\n role=\"tab\"\n [attr.aria-selected]=\"tab.active()\"\n [disabled]=\"tab.disabled()\"\n (click)=\"select(tab.tabId())\"\n >\n @if (tab.icon()) {\n <i class=\"{{ biClass(tab.icon()!) }} me-1\"></i>\n }\n {{ tab.title() }}\n </button>\n </li>\n }\n </ul>\n <div class=\"tab-content pt-3\">\n <ng-content />\n </div>\n `,\n})\nexport class TabsComponent {\n readonly pills = input<boolean>(false);\n readonly justified = input<boolean>(false);\n /** Two-way bound active tab id. */\n readonly active = model<string>();\n\n readonly tabs = contentChildren(TabComponent);\n\n readonly biClass = biClass;\n\n constructor() {\n // Keep each child panel's active flag in sync with the active id, defaulting\n // to the first non-disabled tab when none is selected.\n effect(() => {\n const tabs = this.tabs();\n if (tabs.length === 0) return;\n let current = this.active();\n const known = tabs.some((t) => t.tabId() === current);\n if (!current || !known) {\n current = (tabs.find((t) => !t.disabled()) ?? tabs[0]).tabId();\n }\n for (const tab of tabs) tab.active.set(tab.tabId() === current);\n });\n }\n\n select(id: string): void {\n const tab = this.tabs().find((t) => t.tabId() === id);\n if (tab?.disabled()) return;\n this.active.set(id);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n input,\n model,\n signal,\n} from '@angular/core';\n\n/**\n * Bootstrap accordion container. Project `<lte-accordion-item>` children into the\n * default slot. By default only one item is open at a time; set `[alwaysOpen]` to\n * allow multiple. `[(active)]` two-way binds the open id(s): a single string when\n * `alwaysOpen` is false, a string array when true.\n */\n@Component({\n selector: 'lte-accordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"accordion\" [class.accordion-flush]=\"flush()\">\n <ng-content />\n </div>\n `,\n})\nexport class AccordionComponent {\n readonly flush = input<boolean>(false);\n readonly alwaysOpen = input<boolean>(false);\n /** Two-way bound open id(s). */\n readonly active = model<string | string[]>();\n\n private readonly openIds = signal<Set<string>>(new Set());\n\n readonly openList = computed(() => [...this.openIds()]);\n\n constructor() {\n // Sync the external model -> internal set.\n effect(() => {\n const value = this.active();\n const ids = value == null ? [] : Array.isArray(value) ? value : [value];\n this.openIds.set(new Set(ids));\n });\n }\n\n isOpen(id: string): boolean {\n return this.openIds().has(id);\n }\n\n /** Called by a child whose `defaultOpen` is set, before any user interaction. */\n openInitial(id: string): void {\n if (this.openIds().has(id)) return;\n this.openIds.update((set) => {\n const next = this.alwaysOpen() ? new Set(set) : new Set<string>();\n next.add(id);\n return next;\n });\n this.emit();\n }\n\n toggle(id: string): void {\n this.openIds.update((set) => {\n const next = new Set(set);\n if (next.has(id)) {\n next.delete(id);\n } else {\n if (!this.alwaysOpen()) next.clear();\n next.add(id);\n }\n return next;\n });\n this.emit();\n }\n\n private emit(): void {\n const ids = [...this.openIds()];\n this.active.set(this.alwaysOpen() ? ids : (ids[0] ?? ''));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * A single collapsible panel inside an {@link AccordionComponent}. The host carries\n * the panel data (`itemId`, `title`, `defaultOpen`); project the body into its\n * default slot. Open state is read from the parent accordion.\n */\n@Component({\n selector: 'lte-accordion-item',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"accordion-item\">\n <h2 class=\"accordion-header\">\n <button\n type=\"button\"\n class=\"accordion-button\"\n [class.collapsed]=\"!open()\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"parent.toggle(itemId())\"\n >\n {{ title() }}\n </button>\n </h2>\n <div class=\"accordion-collapse collapse\" [class.show]=\"open()\">\n <div class=\"accordion-body\">\n <ng-content />\n </div>\n </div>\n </div>\n `,\n})\nexport class AccordionItemComponent {\n protected readonly parent = inject(AccordionComponent);\n\n /** Unique id used to address this item. */\n readonly itemId = input.required<string>();\n readonly title = input.required<string>();\n /** Whether the item starts open. */\n readonly defaultOpen = input<boolean>(false);\n\n readonly open = computed(() => this.parent.isOpen(this.itemId()));\n\n constructor() {\n queueMicrotask(() => {\n if (this.defaultOpen()) this.parent.openInitial(this.itemId());\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n Inject,\n PLATFORM_ID,\n effect,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport type { DatatableColumn } from '../types/widgets';\n\n// `simple-datatables` is an optional peer dependency — typed loosely.\ninterface DataTableInstance {\n destroy: () => void;\n}\n\n/**\n * Sortable / searchable / paginated table. Renders a plain Bootstrap `<table>`\n * from `columns` + `data`, then progressively enhances it with\n * {@link https://github.com/fiduswriter/simple-datatables simple-datatables} (an\n * optional peer dep, lazily imported on the browser only). Without the library it\n * degrades to a static styled table.\n */\n@Component({\n selector: 'lte-datatable',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <table #host class=\"table table-striped\" [class.table-hover]=\"hover()\">\n <thead>\n <tr>\n @for (col of columns(); track col.key) {\n <th [attr.data-sortable]=\"col.sortable === false ? 'false' : null\">{{ col.label ?? col.key }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data(); track $index) {\n <tr>\n @for (col of columns(); track col.key) {\n <td>{{ cell(row, col.key) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n `,\n})\nexport class DatatableComponent {\n private readonly host = viewChild.required<ElementRef<HTMLTableElement>>('host');\n private readonly isBrowser: boolean;\n private table: DataTableInstance | null = null;\n\n readonly columns = input.required<DatatableColumn[]>();\n readonly data = input.required<Array<Record<string, unknown>>>();\n readonly hover = input<boolean>(true);\n /** Extra simple-datatables options merged over the defaults. */\n readonly options = input<Record<string, unknown>>({});\n\n constructor(@Inject(PLATFORM_ID) platformId: object) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n // Enhance once, after the rows have rendered. Tracks `data`/`columns` so a\n // fresh dataset rebuilds the instance.\n effect(() => {\n this.columns();\n this.data();\n if (!this.isBrowser) return;\n void this.rebuild();\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.table?.destroy();\n this.table = null;\n });\n }\n\n cell(row: Record<string, unknown>, key: string): unknown {\n return row[key];\n }\n\n private async rebuild(): Promise<void> {\n try {\n const mod = await import('simple-datatables');\n const DataTable = (mod as { DataTable?: unknown }).DataTable as unknown as new (\n el: Element,\n opts: Record<string, unknown>,\n ) => DataTableInstance;\n if (!DataTable) return;\n this.table?.destroy();\n // Re-read the freshly rendered DOM on the next microtask so the new rows\n // are present before enhancement.\n queueMicrotask(() => {\n this.table = new DataTable(this.host().nativeElement, {\n searchable: true,\n perPage: 10,\n ...this.options(),\n });\n });\n } catch {\n console.warn('[adminlte-angular] simple-datatables is not installed — <lte-datatable> is a static table.');\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '../util/class-name';\nimport type { BootstrapTheme, ComponentSize } from '../types/theme';\n\n/**\n * Bootstrap button with theme, size, outline and loading states. Renders a real\n * `<button>` so it participates in forms; project the label into the slot.\n */\n@Component({\n selector: 'lte-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <button [type]=\"type()\" [class]=\"btnClass()\" [disabled]=\"disabled() || loading()\">\n @if (loading()) {\n <span class=\"spinner-border spinner-border-sm me-1\" role=\"status\" aria-hidden=\"true\"></span>\n } @else if (icon()) {\n <i class=\"bi {{ icon() }} me-1\"></i>\n }\n <ng-content />\n </button>\n `,\n})\nexport class ButtonComponent {\n readonly theme = input<BootstrapTheme>('primary');\n readonly size = input<ComponentSize>();\n readonly outline = input<boolean>(false);\n readonly block = input<boolean>(false);\n readonly icon = input<string>();\n readonly loading = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n\n readonly btnClass = computed(() =>\n cn(\n 'btn',\n this.outline() ? `btn-outline-${this.theme()}` : `btn-${this.theme()}`,\n this.size() && `btn-${this.size()}`,\n this.block() && 'w-100',\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\n\n/**\n * Labeled text input with an optional Bootstrap Icons prefix and validation\n * feedback. Implements ControlValueAccessor so it works with reactive,\n * template-driven and Signal Forms; `[(value)]` also works for simple cases.\n */\n@Component({\n selector: 'lte-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputComponent), multi: true },\n ],\n template: `\n @if (label()) {\n <label [for]=\"id()\" class=\"form-label\">{{ label() }}</label>\n }\n <div [class.input-group]=\"!!icon()\">\n <input\n [id]=\"id()\"\n [type]=\"type()\"\n [class]=\"controlClass()\"\n [placeholder]=\"placeholder()\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [attr.autocomplete]=\"autocomplete()\"\n (input)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n />\n @if (icon()) {\n <span class=\"input-group-text\"><i class=\"bi {{ icon() }}\"></i></span>\n }\n </div>\n @if (error()) {\n <div class=\"invalid-feedback d-block\">{{ error() }}</div>\n } @else if (hint()) {\n <div class=\"form-text\">{{ hint() }}</div>\n }\n `,\n})\nexport class InputComponent implements ControlValueAccessor {\n readonly label = input<string>();\n readonly type = input<string>('text');\n readonly placeholder = input<string>('');\n readonly icon = input<string>();\n readonly hint = input<string>();\n readonly error = input<string>();\n readonly autocomplete = input<string>();\n readonly id = input<string>(`lte-input-${idCounter++}`);\n readonly value = model<string>('');\n\n protected readonly disabled = signal(false);\n\n readonly controlClass = computed(() => `form-control${this.error() ? ' is-invalid' : ''}`);\n\n private onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n onInput(e: Event): void {\n const v = (e.target as HTMLInputElement).value;\n this.value.set(v);\n this.onChange(v);\n }\n\n writeValue(value: string | null): void {\n this.value.set(value ?? '');\n }\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n\nlet idCounter = 0;\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\n\nlet idCounter = 0;\n\n/**\n * Labeled textarea with validation feedback. ControlValueAccessor-backed, so it\n * works with reactive, template-driven and Signal Forms.\n */\n@Component({\n selector: 'lte-textarea',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TextareaComponent), multi: true },\n ],\n template: `\n @if (label()) {\n <label [for]=\"id()\" class=\"form-label\">{{ label() }}</label>\n }\n <textarea\n [id]=\"id()\"\n [class]=\"controlClass()\"\n [placeholder]=\"placeholder()\"\n [rows]=\"rows()\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n ></textarea>\n @if (error()) {\n <div class=\"invalid-feedback d-block\">{{ error() }}</div>\n } @else if (hint()) {\n <div class=\"form-text\">{{ hint() }}</div>\n }\n `,\n})\nexport class TextareaComponent implements ControlValueAccessor {\n readonly label = input<string>();\n readonly placeholder = input<string>('');\n readonly rows = input<number>(3);\n readonly hint = input<string>();\n readonly error = input<string>();\n readonly id = input<string>(`lte-textarea-${idCounter++}`);\n readonly value = model<string>('');\n\n protected readonly disabled = signal(false);\n\n readonly controlClass = computed(() => `form-control${this.error() ? ' is-invalid' : ''}`);\n\n private onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n onInput(e: Event): void {\n const v = (e.target as HTMLTextAreaElement).value;\n this.value.set(v);\n this.onChange(v);\n }\n\n writeValue(value: string | null): void {\n this.value.set(value ?? '');\n }\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\n\nlet idCounter = 0;\n\n/** A single option for {@link SelectComponent}. */\nexport interface SelectOption {\n label: string;\n value: string | number;\n disabled?: boolean;\n}\n\n/**\n * Labeled native select. Pass `options`, or project `<option>` elements into the\n * default slot. ControlValueAccessor-backed.\n */\n@Component({\n selector: 'lte-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectComponent), multi: true },\n ],\n template: `\n @if (label()) {\n <label [for]=\"id()\" class=\"form-label\">{{ label() }}</label>\n }\n <select\n [id]=\"id()\"\n [class]=\"controlClass()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n (change)=\"onSelect($event)\"\n (blur)=\"onTouched()\"\n >\n @if (placeholder()) {\n <option value=\"\" disabled>{{ placeholder() }}</option>\n }\n @for (opt of options(); track opt.value) {\n <option [value]=\"opt.value\" [disabled]=\"opt.disabled ?? false\">{{ opt.label }}</option>\n }\n <ng-content />\n </select>\n @if (error()) {\n <div class=\"invalid-feedback d-block\">{{ error() }}</div>\n } @else if (hint()) {\n <div class=\"form-text\">{{ hint() }}</div>\n }\n `,\n})\nexport class SelectComponent implements ControlValueAccessor {\n readonly label = input<string>();\n readonly placeholder = input<string>('');\n readonly options = input<SelectOption[]>([]);\n readonly hint = input<string>();\n readonly error = input<string>();\n readonly id = input<string>(`lte-select-${idCounter++}`);\n readonly value = model<string | number>('');\n\n protected readonly disabled = signal(false);\n\n readonly controlClass = computed(() => `form-select${this.error() ? ' is-invalid' : ''}`);\n\n private onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n onSelect(e: Event): void {\n const v = (e.target as HTMLSelectElement).value;\n this.value.set(v);\n this.onChange(v);\n }\n\n writeValue(value: string | number | null): void {\n this.value.set(value ?? '');\n }\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\n\nlet idCounter = 0;\n\n/**\n * Bootstrap toggle switch (a styled checkbox). ControlValueAccessor-backed, with\n * a `[(checked)]` model for simple two-way binding.\n */\n@Component({\n selector: 'lte-input-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputSwitchComponent),\n multi: true,\n },\n ],\n template: `\n <div class=\"form-check form-switch\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n (change)=\"onToggle($event)\"\n (blur)=\"onTouched()\"\n />\n @if (label()) {\n <label class=\"form-check-label\" [for]=\"id()\">{{ label() }}</label>\n }\n </div>\n `,\n})\nexport class InputSwitchComponent implements ControlValueAccessor {\n readonly label = input<string>();\n readonly id = input<string>(`lte-switch-${idCounter++}`);\n readonly checked = model<boolean>(false);\n\n protected readonly disabled = signal(false);\n\n private onChange: (value: boolean) => void = () => {};\n protected onTouched: () => void = () => {};\n\n onToggle(e: Event): void {\n const v = (e.target as HTMLInputElement).checked;\n this.checked.set(v);\n this.onChange(v);\n }\n\n writeValue(value: boolean | null): void {\n this.checked.set(!!value);\n }\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n Inject,\n PLATFORM_ID,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\n\nlet idCounter = 0;\n\n// `flatpickr` is an optional peer dependency — typed loosely so it isn't a\n// hard build-time dependency.\ninterface FlatpickrInstance {\n setDate: (date: string, triggerChange?: boolean) => void;\n destroy: () => void;\n}\n\n/**\n * Labeled date input backed by {@link https://flatpickr.js.org/ flatpickr} (an\n * optional peer dep, lazily imported on the browser only). Two-way bind the\n * selected date string with `[(value)]`; also a ControlValueAccessor.\n */\n@Component({\n selector: 'lte-input-flatpickr',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputFlatpickrComponent), multi: true },\n ],\n template: `\n <div [class]=\"'mb-3 ' + fgroupClass()\">\n @if (label()) {\n <label [for]=\"id()\" class=\"form-label\">{{ label() }}</label>\n }\n <input #host [id]=\"id()\" type=\"text\" class=\"form-control\" [placeholder]=\"placeholder()\" [value]=\"value()\" />\n </div>\n `,\n})\nexport class InputFlatpickrComponent implements ControlValueAccessor {\n private readonly host = viewChild.required<ElementRef<HTMLInputElement>>('host');\n private readonly isBrowser: boolean;\n private picker: FlatpickrInstance | null = null;\n\n readonly label = input<string>();\n readonly placeholder = input<string>('');\n readonly fgroupClass = input<string>('');\n readonly id = input<string>(`lte-flatpickr-${idCounter++}`);\n /** Extra flatpickr options (mode, dateFormat, …). */\n readonly options = input<Record<string, unknown>>({});\n readonly value = model<string>('');\n\n private onChange: (value: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n constructor(@Inject(PLATFORM_ID) platformId: object) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n // Initialise once the view is ready, then keep the picker's date in sync\n // when `value` changes from the outside.\n effect(() => {\n const v = this.value();\n if (!this.isBrowser) return;\n if (!this.picker) {\n void this.init(v);\n } else if (v !== this.host().nativeElement.value) {\n this.picker.setDate(v, false);\n }\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.picker?.destroy();\n this.picker = null;\n });\n }\n\n private async init(initial: string): Promise<void> {\n try {\n const mod = await import('flatpickr');\n const flatpickr = (mod.default ?? mod) as unknown as (\n el: Element,\n opts: Record<string, unknown>,\n ) => FlatpickrInstance;\n this.picker = flatpickr(this.host().nativeElement, {\n ...this.options(),\n defaultDate: initial || undefined,\n onChange: (_dates: unknown, dateStr: string) => {\n this.value.set(dateStr);\n this.onChange(dateStr);\n this.onTouched();\n },\n });\n } catch {\n console.warn('[adminlte-angular] flatpickr is not installed — <lte-input-flatpickr> is a plain text input.');\n }\n }\n\n writeValue(value: string | null): void {\n this.value.set(value ?? '');\n }\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n Inject,\n PLATFORM_ID,\n effect,\n forwardRef,\n inject,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport type { TomSelectOption } from '../types/widgets';\n\nlet idCounter = 0;\n\n// `tom-select` is an optional peer dependency — typed loosely.\ninterface TomSelectInstance {\n setValue: (value: string | string[], silent?: boolean) => void;\n destroy: () => void;\n}\n\n/**\n * Labeled enhanced `<select>` backed by {@link https://tom-select.js.org/ Tom Select}\n * (an optional peer dep, lazily imported on the browser only). Supports single or\n * `[multiple]` selection. Two-way bind with `[(value)]`; also a ControlValueAccessor.\n */\n@Component({\n selector: 'lte-input-tom-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputTomSelectComponent), multi: true },\n ],\n template: `\n <div [class]=\"'mb-3 ' + fgroupClass()\">\n @if (label()) {\n <label [for]=\"id()\" class=\"form-label\">{{ label() }}</label>\n }\n <select #host [id]=\"id()\" [multiple]=\"multiple()\">\n @for (opt of options(); track opt.value) {\n <option [value]=\"opt.value\">{{ opt.text }}</option>\n }\n </select>\n </div>\n `,\n})\nexport class InputTomSelectComponent implements ControlValueAccessor {\n private readonly host = viewChild.required<ElementRef<HTMLSelectElement>>('host');\n private readonly isBrowser: boolean;\n private instance: TomSelectInstance | null = null;\n private initialized = false;\n\n readonly label = input<string>();\n readonly placeholder = input<string>('');\n readonly fgroupClass = input<string>('');\n readonly multiple = input<boolean>(false);\n readonly options = input<TomSelectOption[]>([]);\n readonly id = input<string>(`lte-tomselect-${idCounter++}`);\n /** Extra Tom Select settings merged over the defaults. */\n readonly settings = input<Record<string, unknown>>({});\n readonly value = model<string | string[]>('');\n\n private onChange: (value: string | string[]) => void = () => {};\n protected onTouched: () => void = () => {};\n\n constructor(@Inject(PLATFORM_ID) platformId: object) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n effect(() => {\n const v = this.value();\n if (!this.isBrowser) return;\n if (!this.initialized) {\n this.initialized = true;\n void this.init(v);\n } else if (this.instance && v != null) {\n this.instance.setValue(v, true);\n }\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.instance?.destroy();\n this.instance = null;\n });\n }\n\n private async init(initial: string | string[]): Promise<void> {\n try {\n const mod = await import('tom-select');\n const TomSelect = (mod.default ?? mod) as unknown as new (\n el: Element,\n settings: Record<string, unknown>,\n ) => TomSelectInstance;\n this.instance = new TomSelect(this.host().nativeElement, {\n options: this.options(),\n placeholder: this.placeholder() || undefined,\n ...this.settings(),\n onChange: (value: string | string[]) => {\n this.value.set(value);\n this.onChange(value);\n this.onTouched();\n },\n });\n if (initial != null && initial !== '') this.instance.setValue(initial, true);\n } catch {\n console.warn('[adminlte-angular] tom-select is not installed — <lte-input-tom-select> is a plain select.');\n }\n }\n\n writeValue(value: string | string[] | null): void {\n this.value.set(value ?? '');\n }\n registerOnChange(fn: (value: string | string[]) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","/*\n * Public API surface of @adminlte/angular.\n */\n\n// Types\nexport type * from './lib/types';\n\n// Services\nexport * from './lib/services';\n\n// Utilities\nexport { cn, biClass } from './lib/util/class-name';\nexport { flattenMenuToCommands } from './lib/util/flatten-menu';\n\n// Layout\nexport { DashboardLayoutComponent } from './lib/layout/dashboard-layout.component';\nexport { AuthLayoutComponent } from './lib/layout/auth-layout.component';\nexport { AppContentComponent } from './lib/layout/app-content.component';\nexport { TopbarComponent } from './lib/layout/topbar.component';\nexport { SidebarComponent } from './lib/layout/sidebar.component';\nexport { SidebarBrandComponent } from './lib/layout/sidebar-brand.component';\nexport { SidebarNavComponent } from './lib/layout/sidebar-nav.component';\nexport { SidebarNavItemComponent } from './lib/layout/sidebar-nav-item.component';\nexport { SidebarOverlayComponent } from './lib/layout/sidebar-overlay.component';\nexport { FooterComponent } from './lib/layout/footer.component';\nexport { ColorModeToggleComponent } from './lib/layout/color-mode-toggle.component';\nexport { FullscreenToggleComponent } from './lib/layout/fullscreen-toggle.component';\n\n// Widgets\nexport { CardComponent } from './lib/widget/card.component';\nexport { SmallBoxComponent } from './lib/widget/small-box.component';\nexport { InfoBoxComponent } from './lib/widget/info-box.component';\nexport { AlertComponent } from './lib/widget/alert.component';\nexport { CalloutComponent } from './lib/widget/callout.component';\nexport { ProgressComponent } from './lib/widget/progress.component';\nexport { TimelineComponent } from './lib/widget/timeline.component';\nexport { ProfileCardComponent } from './lib/widget/profile-card.component';\nexport { DescriptionBlockComponent } from './lib/widget/description-block.component';\nexport { BreadcrumbComponent } from './lib/widget/breadcrumb.component';\nexport { CommandPaletteComponent } from './lib/widget/command-palette.component';\nexport { ApexChartComponent } from './lib/widget/apex-chart.component';\nexport { ModalComponent } from './lib/widget/modal.component';\nexport { ProgressGroupComponent } from './lib/widget/progress-group.component';\nexport { RatingsComponent } from './lib/widget/ratings.component';\nexport { DirectChatComponent } from './lib/widget/direct-chat.component';\nexport { NavMessagesComponent } from './lib/widget/nav-messages.component';\nexport { NavNotificationsComponent } from './lib/widget/nav-notifications.component';\nexport { NavTasksComponent } from './lib/widget/nav-tasks.component';\nexport { TabsComponent } from './lib/widget/tabs.component';\nexport { TabComponent } from './lib/widget/tab.component';\nexport { AccordionComponent } from './lib/widget/accordion.component';\nexport { AccordionItemComponent } from './lib/widget/accordion-item.component';\nexport { DatatableComponent } from './lib/widget/datatable.component';\n\n// Forms\nexport { ButtonComponent } from './lib/form/button.component';\nexport { InputComponent } from './lib/form/input.component';\nexport { TextareaComponent } from './lib/form/textarea.component';\nexport { SelectComponent, type SelectOption } from './lib/form/select.component';\nexport { InputSwitchComponent } from './lib/form/input-switch.component';\nexport { InputFlatpickrComponent } from './lib/form/input-flatpickr.component';\nexport { InputTomSelectComponent } from './lib/form/input-tom-select.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["STORAGE_KEY","idCounter"],"mappings":"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"}
|