@unopsitg/ux 21.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -0
- package/assets/_animations.scss +47 -0
- package/assets/_breadcrumb.scss +71 -0
- package/assets/_card.scss +11 -0
- package/assets/_config.scss +95 -0
- package/assets/_content.scss +55 -0
- package/assets/_fonts.scss +1 -0
- package/assets/_footer.scss +17 -0
- package/assets/_main.scss +38 -0
- package/assets/_mask.scss +7 -0
- package/assets/_paginator.scss +16 -0
- package/assets/_responsive.scss +203 -0
- package/assets/_sass_variables.scss +2 -0
- package/assets/_search.scss +35 -0
- package/assets/_tags.scss +90 -0
- package/assets/_topbar.scss +250 -0
- package/assets/_utils.scss +19 -0
- package/assets/fonts/InterDisplay-Black.otf +0 -0
- package/assets/fonts/InterDisplay-BlackItalic.otf +0 -0
- package/assets/fonts/InterDisplay-Bold.otf +0 -0
- package/assets/fonts/InterDisplay-BoldItalic.otf +0 -0
- package/assets/fonts/InterDisplay-ExtraBold.otf +0 -0
- package/assets/fonts/InterDisplay-ExtraBoldItalic.otf +0 -0
- package/assets/fonts/InterDisplay-ExtraLight.otf +0 -0
- package/assets/fonts/InterDisplay-ExtraLightItalic.otf +0 -0
- package/assets/fonts/InterDisplay-Italic.otf +0 -0
- package/assets/fonts/InterDisplay-Light.otf +0 -0
- package/assets/fonts/InterDisplay-LightItalic.otf +0 -0
- package/assets/fonts/InterDisplay-Medium.otf +0 -0
- package/assets/fonts/InterDisplay-MediumItalic.otf +0 -0
- package/assets/fonts/InterDisplay-Regular.otf +0 -0
- package/assets/fonts/InterDisplay-SemiBold.otf +0 -0
- package/assets/fonts/InterDisplay-SemiBoldItalic.otf +0 -0
- package/assets/fonts/InterDisplay-Thin.otf +0 -0
- package/assets/fonts/InterDisplay-ThinItalic.otf +0 -0
- package/assets/layout.scss +20 -0
- package/assets/opp/AppLogo/AppLogo-onDark_H.svg +55 -0
- package/assets/opp/AppLogo/AppLogo-onDark_V.svg +55 -0
- package/assets/opp/AppLogo/AppLogo-onDark_compact.svg +48 -0
- package/assets/opp/AppLogo/AppLogo-onLight_H.svg +55 -0
- package/assets/opp/AppLogo/AppLogo-onLight_V.svg +55 -0
- package/assets/opp/AppLogo-dark-vertical.svg +55 -0
- package/assets/opp/drive-download-20260421T141232Z-3-001.zip +0 -0
- package/assets/opp/favicon/apple-touch-icon.png +0 -0
- package/assets/opp/favicon/favicon-96x96.png +0 -0
- package/assets/opp/favicon/favicon.ico +0 -0
- package/assets/opp/favicon/favicon.svg +17 -0
- package/assets/opp/favicon/web-app-manifest-192x192.png +0 -0
- package/assets/opp/favicon/web-app-manifest-512x512.png +0 -0
- package/assets/opp/logo-dark-horizontal.svg +55 -0
- package/assets/opp/logo-light-horizontal.svg +55 -0
- package/assets/opp/unops-logo/UNOPS logo_vertical_RGB.png +0 -0
- package/assets/opp/unops-logo/UNOPS logo_vertical_RGB_black.png +0 -0
- package/assets/opp/unops-logo/UNOPS logo_vertical_RGB_white.png +0 -0
- package/assets/opp/unops-logo/unops-logo_ondark.svg +19 -0
- package/assets/opp/unops-logo/unops-logo_onlight.svg +10 -0
- package/assets/sidebar/_sidebar.scss +7 -0
- package/assets/sidebar/_sidebar_compact.scss +176 -0
- package/assets/sidebar/_sidebar_drawer.scss +200 -0
- package/assets/sidebar/_sidebar_horizontal.scss +220 -0
- package/assets/sidebar/_sidebar_reveal.scss +176 -0
- package/assets/sidebar/_sidebar_slim.scss +117 -0
- package/assets/sidebar/_sidebar_theme_core.scss +147 -0
- package/assets/sidebar/_sidebar_themes.scss +4 -0
- package/assets/sidebar/_sidebar_vertical.scss +392 -0
- package/assets/sidebar/themes/_dark.scss +31 -0
- package/assets/sidebar/themes/_light.scss +16 -0
- package/assets/sidebar/themes/_primary.scss +41 -0
- package/assets/styles.scss +1 -0
- package/assets/tailwind.css +679 -0
- package/assets/variables/_common.scss +21 -0
- package/assets/variables/_dark.scss +13 -0
- package/assets/variables/_light.scss +13 -0
- package/fesm2022/unopsitg-ux.mjs +2596 -0
- package/fesm2022/unopsitg-ux.mjs.map +1 -0
- package/package.json +46 -0
- package/types/unopsitg-ux.d.ts +878 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unopsitg-ux.mjs","sources":["../../../projects/unops-ux/src/lib/theme/brand-theme.ts","../../../projects/unops-ux/src/lib/layout/tokens.ts","../../../projects/unops-ux/src/lib/layout/layout.service.ts","../../../projects/unops-ux/src/lib/layout/components/app.breadcrumb.ts","../../../projects/unops-ux/src/lib/layout/components/app.configurator.ts","../../../projects/unops-ux/src/lib/layout/components/app.footer.ts","../../../projects/unops-ux/src/lib/layout/components/app.rightmenu.ts","../../../projects/unops-ux/src/lib/layout/components/app.search.ts","../../../projects/unops-ux/src/lib/layout/components/app.menuitem.ts","../../../projects/unops-ux/src/lib/layout/components/app.menu.ts","../../../projects/unops-ux/src/lib/layout/components/app.topbar.ts","../../../projects/unops-ux/src/lib/layout/components/app.sidebar.ts","../../../projects/unops-ux/src/lib/layout/components/app.layout.ts","../../../projects/unops-ux/src/lib/layout/components/app.authlayout.ts","../../../projects/unops-ux/src/lib/components/ai-card-bg/ai-card-bg.ts","../../../projects/unops-ux/src/public-api.ts","../../../projects/unops-ux/src/unopsitg-ux.ts"],"sourcesContent":["import { definePreset } from '@primeuix/themes';\nimport SoftBase from '@primeuix/themes/aura';\nimport CrispBase from '@primeuix/themes/lara';\nimport ContrastBase from '@primeuix/themes/nora';\n\n/**\n * Brand theme presets built on top of PrimeUIX base presets.\n *\n * Upstream mapping (for PrimeNG docs, changelogs, and debugging):\n * Soft <- @primeuix/themes/aura\n * Crisp <- @primeuix/themes/lara\n * Contrast <- @primeuix/themes/nora\n */\n\nexport const brandPrimitives = {\n deepsea: { 50: '#F1F5F9', 100: '#E2E8F0', 200: '#CBD5E1', 300: '#94A3B8', 400: '#64748B', 500: '#475569', 600: '#334155', 700: '#1E293B', 800: '#0F172A', 900: '#0A101D', 950: '#03080c' },\n gray: { 50: '#f0f3f4', 100: '#ECF0F5', 200: '#d8dadf', 300: '#b9bac1', 400: '#858c99', 500: '#808393', 600: '#808284', 700: '#6a6b6d', 800: '#535455', 900: '#3c3d3e', 950: '#262627' },\n red: { 50: '#f6cac6', 100: '#f0a9a4', 200: '#eb8982', 300: '#e56960', 400: '#e0493e', 500: '#da291c', 600: '#b92318', 700: '#991d14', 800: '#78170f', 900: '#57100b', 950: '#370a07' },\n orange: { 50: '#f9d6c3', 100: '#f6be9f', 200: '#f2a57a', 300: '#ef8d56', 400: '#eb7432', 500: '#e85c0e', 600: '#c54e0c', 700: '#a2400a', 800: '#803308', 900: '#5d2506', 950: '#3a1704' },\n yellow: { 50: '#fff0c5', 100: '#ffe7a1', 200: '#ffdd7e', 300: '#ffd45b', 400: '#ffcb38', 500: '#ffc215', 600: '#d9a512', 700: '#b3880f', 800: '#8c6b0c', 900: '#664e08', 950: '#403105' },\n lemon: { 50: '#fdfad0', 100: '#fcf7b4', 200: '#fbf398', 300: '#faf07c', 400: '#f9ed60', 500: '#f8ea44', 600: '#d3c73a', 700: '#aea430', 800: '#888125', 900: '#635e1b', 950: '#3e3b11' },\n lime: { 50: '#f0f5bf', 100: '#e7ef99', 200: '#dfe873', 300: '#d6e24d', 400: '#cddc26', 500: '#c4d600', 600: '#a7b600', 700: '#899600', 800: '#6c7600', 900: '#4e5600', 950: '#313600' },\n babygreen: { 50: '#e5f2cf', 100: '#d5e9b1', 200: '#c5e194', 300: '#b6d977', 400: '#a6d15a', 500: '#96c93d', 600: '#80ab34', 700: '#698d2b', 800: '#536f22', 900: '#3c5018', 950: '#26320f' },\n green: { 50: '#d2e7cd', 100: '#b7d9af', 200: '#9dca92', 300: '#82bc74', 400: '#67ad56', 500: '#4c9f38', 600: '#418730', 700: '#356f27', 800: '#2a571f', 900: '#1e4016', 950: '#13280e' },\n olive: { 50: '#d1e0d5', 100: '#b5cdbc', 200: '#99baa3', 300: '#7da889', 400: '#619570', 500: '#458257', 600: '#3b6f4a', 700: '#305b3d', 800: '#264830', 900: '#1c3423', 950: '#112116' },\n teal: { 50: '#bfeae5', 100: '#99ddd5', 200: '#73d0c6', 300: '#4dc3b6', 400: '#26b6a7', 500: '#00a997', 600: '#009080', 700: '#00766a', 800: '#005d53', 900: '#00443c', 950: '#002a26' },\n ocean: { 50: '#d3f0f7', 100: '#b8e7f3', 200: '#9edeee', 300: '#83d5e9', 400: '#69cce5', 500: '#4ec3e0', 600: '#42a6be', 700: '#37899d', 800: '#2b6b7b', 900: '#1f4e5a', 950: '#143138' },\n blue: { 50: '#DEEFFF', 100: '#C9E8FF', 150: '#99D3ED', 200: '#73c3e6', 300: '#4db3df', 400: '#26a2d8', 500: '#0092d1', 600: '#007cb2', 700: '#006692', 800: '#005073', 900: '#003a54', 950: '#002534' },\n darkblue: { 50: '#D0EEFF', 100: '#B7E2F9', 200: '#73abc7', 300: '#4d94b8', 400: '#267da9', 500: '#00669a', 600: '#005783', 700: '#00476c', 800: '#003855', 900: '#00293e', 950: '#001a27' },\n midnight: { 50: '#bfd2dd', 100: '#99b6c8', 200: '#739bb4', 300: '#4d809f', 400: '#26648b', 500: '#004976', 600: '#003e64', 700: '#003353', 800: '#002841', 850: '#001E31', 900: '#001d2f', 950: '#00121e' },\n cherry: { 50: '#e6c7d9', 100: '#d6a5c2', 200: '#c783ab', 300: '#b86294', 400: '#a8407d', 500: '#991e66', 600: '#821a57', 700: '#6b1547', 800: '#541138', 900: '#3d0c29', 950: '#26081a' }\n} as const;\n\nconst brandOverrides = {\n primitive: {\n ...brandPrimitives,\n slate: brandPrimitives.gray,\n zinc: brandPrimitives.deepsea,\n neutral: brandPrimitives.gray,\n stone: brandPrimitives.gray,\n emerald: brandPrimitives.green,\n amber: brandPrimitives.yellow,\n cyan: brandPrimitives.ocean,\n sky: brandPrimitives.blue,\n indigo: brandPrimitives.darkblue,\n violet: brandPrimitives.midnight,\n purple: brandPrimitives.cherry,\n fuchsia: brandPrimitives.cherry,\n pink: brandPrimitives.cherry,\n rose: brandPrimitives.red\n },\n semantic: {\n fontFamily: '\"Noto Sans\", sans-serif',\n primary: {\n 50: '{darkblue.50}',\n 100: '{darkblue.100}',\n 200: '{darkblue.200}',\n 300: '{darkblue.300}',\n 400: '{darkblue.400}',\n 500: '{darkblue.500}',\n 600: '{darkblue.600}',\n 700: '{darkblue.700}',\n 800: '{darkblue.800}',\n 900: '{darkblue.900}',\n 950: '{darkblue.950}'\n },\n colorScheme: {\n light: {\n surface: {\n 0: '#ffffff',\n 50: '{deepsea.50}',\n 100: '{deepsea.100}',\n 200: '{deepsea.200}',\n 300: '{deepsea.300}',\n 400: '{deepsea.400}',\n 500: '{deepsea.500}',\n 600: '{deepsea.600}',\n 700: '{deepsea.700}',\n 800: '{deepsea.800}',\n 900: '{deepsea.900}',\n 950: '{deepsea.950}'\n }\n },\n dark: {\n surface: {\n 0: '#ffffff',\n 50: '{darkblue.50}',\n 100: '{darkblue.100}',\n 200: '{darkblue.200}',\n 300: '{darkblue.200}',\n 400: '{darkblue.300}',\n 500: '{darkblue.400}',\n 600: '{darkblue.500}',\n 700: '{darkblue.600}',\n 800: '{darkblue.700}',\n 900: '{darkblue.900}',\n 950: '{darkblue.950}'\n }\n }\n }\n },\n components: {\n button: {\n colorScheme: {\n light: {\n root: {\n primary: {\n background: '{primary.600}',\n borderColor: '{primary.600}'\n }\n }\n }\n }\n },\n datatable: {\n colorScheme: {\n light: {\n row: {\n hoverBackground: '{surface.100}',\n hoverColor: '{surface.950}'\n }\n },\n dark: {\n row: {\n hoverBackground: '{surface.900}',\n hoverColor: '{surface.0}'\n }\n }\n }\n },\n paginator: {\n root: {\n background: 'transparent'\n }\n },\n\n tag: {\n root: {\n padding: '0.25rem 0.5rem',\n fontWeight: '500'\n },\n\n colorScheme: {\n light: {\n secondary: { color: '{surface.800}' },\n success: { color: '{green.800}' },\n active: { color: '{green.800}' },\n inactive: { color: '{gray.800}' },\n info: { color: '{blue.800}' },\n warn: { color: '{orange.800}' },\n error: { color: '{red.800}' }\n },\n dark: {\n secondary: { color: '{surface.100}' },\n success: { color: '{green.100}' },\n active: { color: '{green.100}' },\n info: { color: '{blue.100}' },\n inactive: { color: '{gray.100}' },\n warn: { color: '{orange.100}' },\n error: { color: '{red.100}' }\n }\n }\n }\n }\n};\n\nexport const BrandSoft = definePreset(SoftBase, brandOverrides);\nexport const BrandCrisp = definePreset(CrispBase, brandOverrides);\nexport const BrandContrast = definePreset(ContrastBase, brandOverrides);\n\nexport const brandPresets = {\n Soft: BrandSoft,\n Crisp: BrandCrisp,\n Contrast: BrandContrast\n} as const;\n","import { InjectionToken } from '@angular/core';\nimport type { IsActiveMatchOptions, QueryParamsHandling } from '@angular/router';\n\n/**\n * Sidebar / compact menu item shape (recursive). Matches Sakai-style menu model.\n */\nexport interface MenuItem {\n label?: string;\n icon?: string;\n routerLink?: string[];\n url?: string;\n target?: string;\n separator?: boolean;\n path?: string;\n visible?: boolean;\n disabled?: boolean;\n preventAutoActivate?: boolean;\n command?: (event?: { originalEvent?: Event; item?: MenuItem }) => void;\n items?: MenuItem[];\n class?: string;\n badgeClass?: string;\n fragment?: string;\n queryParamsHandling?: QueryParamsHandling;\n preserveFragment?: boolean;\n skipLocationChange?: boolean;\n replaceUrl?: boolean;\n state?: Record<string, unknown>;\n queryParams?: Record<string, unknown>;\n routerLinkActiveOptions?: IsActiveMatchOptions;\n}\n\nexport const MENU_MODEL = new InjectionToken<MenuItem[]>('UNOPS_UX_MENU_MODEL', {\n factory: () => {\n throw new Error(\n 'MENU_MODEL is not provided. Add { provide: MENU_MODEL, useFactory: ... } or useValue to app.config.ts providers.'\n );\n }\n});\n\nexport interface SidebarLogoConfig {\n expanded: string;\n compact: string;\n alt: string;\n}\n\nexport const SIDEBAR_LOGO = new InjectionToken<SidebarLogoConfig>('UNOPS_UX_SIDEBAR_LOGO', {\n factory: () => ({\n expanded: 'assets/opp/AppLogo/AppLogo-onDark_H.svg',\n compact: 'assets/opp/AppLogo/AppLogo-onDark_compact.svg',\n alt: 'UNOPS'\n })\n});\n\nexport interface TopbarMobileLogoConfig {\n dark: string;\n light: string;\n alt: string;\n}\n\nexport const TOPBAR_MOBILE_LOGO = new InjectionToken<TopbarMobileLogoConfig>('UNOPS_UX_TOPBAR_MOBILE_LOGO', {\n factory: () => ({\n dark: 'assets/opp/AppLogo/AppLogo-onDark_H.svg',\n light: 'assets/opp/AppLogo/AppLogo-onLight_H.svg',\n alt: 'UNOPS'\n })\n});\n","import { computed, effect, inject, Injectable, signal } from '@angular/core';\nimport { Router } from '@angular/router';\n\nexport interface LayoutConfig {\n preset: string;\n primary: string;\n surface: string | undefined | null;\n darkTheme: boolean;\n menuMode: string;\n menuTheme: string;\n cardStyle: string;\n}\n\ninterface LayoutState {\n staticMenuInactive: boolean;\n overlayMenuActive: boolean;\n rightMenuVisible: boolean;\n configSidebarVisible: boolean;\n mobileMenuActive: boolean;\n searchBarActive: boolean;\n sidebarExpanded: boolean;\n sidebarPinned: boolean;\n menuHoverActive: boolean;\n activePath: string | null;\n anchored: boolean;\n}\n\ninterface MenuChangeEvent {\n key: string;\n routeEvent?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutService {\n layoutConfig = signal<LayoutConfig>({\n preset: 'Soft',\n primary: 'blue',\n surface: null,\n darkTheme: true,\n menuMode: 'static',\n menuTheme: 'primary',\n cardStyle: 'transparent'\n });\n\n layoutState = signal<LayoutState>({\n staticMenuInactive: false,\n overlayMenuActive: false,\n rightMenuVisible: false,\n configSidebarVisible: false,\n mobileMenuActive: false,\n searchBarActive: false,\n sidebarExpanded: false,\n sidebarPinned: true,\n menuHoverActive: false,\n activePath: null,\n anchored: false\n });\n\n router = inject(Router);\n\n currentUrl = signal<string>('');\n\n isDarkTheme = computed(() => this.layoutConfig().darkTheme);\n\n isSlim = computed(() => this.layoutConfig().menuMode === 'slim');\n\n isHorizontal = computed(() => this.layoutConfig().menuMode === 'horizontal');\n\n isOverlay = computed(() => this.layoutConfig().menuMode === 'overlay');\n\n isCompact = computed(() => this.layoutConfig().menuMode === 'compact');\n\n isStatic = computed(() => this.layoutConfig().menuMode === 'static');\n\n isReveal = computed(() => this.layoutConfig().menuMode === 'reveal');\n\n isDrawer = computed(() => this.layoutConfig().menuMode === 'drawer');\n\n isSidebarPinned = computed(() => this.layoutState().sidebarPinned);\n\n isRail = computed(() => !this.layoutState().sidebarPinned && this.isStatic());\n\n hasOverlaySubmenu = computed(() => this.isSlim() || this.isCompact() || this.isHorizontal());\n\n hasOpenOverlay = computed(() => this.layoutState().overlayMenuActive || this.hasOpenOverlaySubmenu());\n\n hasOpenOverlaySubmenu = computed(() => {\n return this.hasOverlaySubmenu() && !!this.layoutState().activePath;\n });\n\n isSidebarStateChanged = computed(() => {\n const layoutConfig = this.layoutConfig();\n return layoutConfig.menuMode === 'horizontal' || layoutConfig.menuMode === 'slim' || layoutConfig.menuMode === 'slim-plus';\n });\n\n private initialized = false;\n\n private previousMenuMode: string | undefined = undefined;\n\n constructor() {\n effect(() => {\n const config = this.layoutConfig();\n\n if (!this.initialized || !config) {\n this.initialized = true;\n return;\n }\n\n this.handleDarkModeTransition(config);\n });\n\n effect(() => {\n this.updateMenuState();\n });\n }\n\n private updateMenuState() {\n const menuMode = this.layoutConfig().menuMode;\n if (this.previousMenuMode === undefined) {\n this.previousMenuMode = menuMode;\n return;\n }\n\n if (this.previousMenuMode === menuMode) {\n return;\n }\n\n this.previousMenuMode = menuMode;\n\n const isOverlaySubmenu = menuMode === 'slim' || menuMode === 'slim-plus' || menuMode === 'horizontal' || menuMode === 'compact';\n\n this.layoutState.update((prev) => ({\n ...prev,\n staticMenuInactive: false,\n overlayMenuActive: false,\n mobileMenuActive: false,\n sidebarExpanded: false,\n menuHoverActive: false,\n anchored: false,\n activePath: this.isDesktop() ? (isOverlaySubmenu ? null : this.router.url) : prev.activePath\n }));\n }\n\n private handleDarkModeTransition(config: LayoutConfig): void {\n const supportsViewTransition = 'startViewTransition' in document;\n\n if (supportsViewTransition) {\n this.startViewTransition(config);\n } else {\n this.toggleDarkMode(config);\n }\n }\n\n private startViewTransition(config: LayoutConfig): void {\n const transition = (document as any).startViewTransition(() => {\n this.toggleDarkMode(config);\n });\n }\n\n toggleDarkMode(config?: LayoutConfig): void {\n const _config = config || this.layoutConfig();\n if (_config.darkTheme) {\n document.documentElement.classList.add('app-dark');\n } else {\n document.documentElement.classList.remove('app-dark');\n }\n }\n\n toggleMenu() {\n if (this.isDesktop()) {\n this.toggleSidebarPin();\n } else {\n this.layoutState.update((prev) => ({ ...prev, mobileMenuActive: !prev.mobileMenuActive }));\n }\n }\n\n toggleSidebarPin() {\n this.layoutState.update((prev) => ({\n ...prev,\n sidebarPinned: !prev.sidebarPinned,\n sidebarExpanded: false\n }));\n }\n\n changeMenuMode(mode: string) {\n this.layoutConfig.update((prev) => ({ ...prev, menuMode: mode }));\n this.layoutState.update((prev) => ({ ...prev, staticMenuInactive: false, overlayMenuActive: false, mobileMenuActive: false, sidebarExpanded: false, sidebarPinned: true, menuHoverActive: false, anchored: false }));\n\n if (this.isDesktop()) {\n this.layoutState.update((prev) => ({ ...prev, activePath: this.hasOverlaySubmenu() ? null : this.router.url }));\n }\n }\n\n toggleRightMenu() {\n this.layoutState.update((prev) => ({\n ...prev,\n rightMenuVisible: !prev.rightMenuVisible\n }));\n }\n\n toggleConfigSidebar() {\n this.layoutState.update((prev) => ({\n ...prev,\n configSidebarVisible: !prev.configSidebarVisible\n }));\n }\n\n toggleSearchBar() {\n this.layoutState.update((prev) => ({\n ...prev,\n searchBarActive: !prev.searchBarActive\n }));\n }\n\n isDesktop() {\n return window.innerWidth > 991;\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, RouterModule } from '@angular/router';\n\nimport { BehaviorSubject, filter } from 'rxjs';\n\ninterface Breadcrumb {\n label: string;\n url?: string;\n}\n\n@Component({\n selector: '[app-breadcrumb]',\n imports: [CommonModule, RouterModule],\n template: `<nav class=\"layout-breadcrumb\" aria-label=\"Breadcrumb\">\n <ol>\n @for (item of breadcrumbs$ | async; track item.url; let last = $last) {\n <li class=\"text-sm font-medium text-surface-700 dark:text-surface-100\">\n @if (!last && item.url) {\n <a [routerLink]=\"item.url\" class=\"text-surface-700 dark:text-surface-100 cursor-pointer\">{{ item.label }}</a>\n } @else {\n {{ item.label }}\n }\n </li>\n @if (!last) {\n <li class=\"text-sm font-medium text-surface-400 dark:text-surface-400\">/</li>\n }\n }\n </ol>\n </nav> `\n})\nexport class AppBreadcrumb {\n private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\n\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor(private router: Router) {\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: Breadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n\n this._breadcrumbs$.next(breadcrumbs);\n });\n }\n\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\n const routeUrl = parentUrl.concat(route.url.map((url) => url.path));\n const breadcrumb = route.data['breadcrumb'];\n const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\n\n if (breadcrumb && breadcrumb !== parentBreadcrumb) {\n breadcrumbs.push({\n label: route.data['breadcrumb'],\n url: '/' + routeUrl.join('/')\n });\n }\n\n if (route.firstChild) {\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, Component, computed, inject, Input, model, OnInit, PLATFORM_ID } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { $t, updatePreset, updateSurfacePalette } from '@primeuix/themes';\nimport { brandPresets as brandPresetMap } from '../../theme/brand-theme';\nimport { PrimeNG } from 'primeng/config';\nimport { DrawerModule } from 'primeng/drawer';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { ToggleSwitchModule } from 'primeng/toggleswitch';\nimport { LayoutService } from '../layout.service';\n\ndeclare type KeyOfType<T> = keyof T extends infer U ? U : never;\n\ndeclare type SurfacesType = {\n name?: string;\n palette?: {\n 0?: string;\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n 950?: string;\n };\n};\n\n@Component({\n selector: 'app-configurator',\n imports: [CommonModule, FormsModule, SelectButtonModule, DrawerModule, ToggleSwitchModule, RadioButtonModule],\n template: `\n <p-drawer [(visible)]=\"configSidebarVisible\" position=\"right\" [transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\" styleClass=\"layout-config-sidebar w-80\" header=\"Settings\" appendTo=\"body\">\n <div class=\"flex flex-col gap-6\">\n <div>\n <span class=\"text-lg text-muted-color font-semibold\">Primary</span>\n <div class=\"pt-2 flex gap-2 flex-wrap\">\n @for (primaryColor of primaryColors(); track primaryColor.name) {\n <button\n type=\"button\"\n [title]=\"primaryColor.name\"\n (click)=\"updateColors($event, 'primary', primaryColor)\"\n class=\"w-6 h-6 cursor-pointer hover:shadow-lg rounded duration-150 flex items-center justify-center\"\n [style]=\"{\n 'background-color': primaryColor?.name === 'noir' ? 'var(--text-color)' : primaryColor?.palette?.['500']\n }\"\n >\n <i *ngIf=\"primaryColor.name === selectedPrimaryColor()\" class=\"pi pi-check text-white\"></i>\n </button>\n }\n </div>\n </div>\n\n <div>\n <span class=\"text-lg text-muted-color font-semibold\">Surface</span>\n <div class=\"pt-2 flex gap-2 flex-wrap\">\n @for (surface of surfaces; track surface.name) {\n <button\n type=\"button\"\n [title]=\"surface.name\"\n (click)=\"updateColors($event, 'surface', surface)\"\n class=\"w-6 h-6 cursor-pointer hover:shadow-lg rounded duration-150 flex items-center justify-center\"\n [style]=\"{\n 'background-color': surface?.palette?.['500']\n }\"\n >\n <i *ngIf=\"selectedSurfaceColor() ? selectedSurfaceColor() === surface.name : darkTheme() ? surface.name === 'darkblue' : surface.name === 'gray'\" class=\"pi pi-check text-white\"></i>\n </button>\n }\n </div>\n </div>\n <div>\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-lg text-muted-color font-semibold\">Presets</span>\n <p-selectbutton [options]=\"presetKeys\" [ngModel]=\"selectedPreset()\" (ngModelChange)=\"onPresetChange($event)\" [allowEmpty]=\"false\"></p-selectbutton>\n </div>\n </div>\n <div>\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-lg text-muted-color font-semibold\">Color Scheme</span>\n <p-selectbutton [ngModel]=\"darkTheme()\" (ngModelChange)=\"toggleDarkMode()\" [options]=\"themeOptions\" optionLabel=\"name\" optionValue=\"value\" [allowEmpty]=\"false\"></p-selectbutton>\n </div>\n </div>\n <div *ngIf=\"!simple && location === 'app'\" class=\"flex flex-col gap-2\">\n <span class=\"text-lg text-muted-color font-semibold\">Card Style</span>\n <p-selectbutton [ngModel]=\"cardStyle()\" (ngModelChange)=\"onCardStyleChange($event)\" [options]=\"cardStyleOptions\" optionLabel=\"name\" optionValue=\"value\" [allowEmpty]=\"false\" [allowEmpty]=\"false\" />\n </div>\n\n <div *ngIf=\"!simple && location === 'app'\" class=\"flex flex-col gap-2\">\n <span class=\"text-lg text-muted-color font-semibold\">Menu Theme</span>\n <p-selectbutton [ngModel]=\"menuTheme()\" (ngModelChange)=\"onMenuThemeChange($event)\" [options]=\"menuThemeOptions\" optionLabel=\"name\" optionValue=\"value\" [allowEmpty]=\"false\" [allowEmpty]=\"false\" />\n </div>\n\n <div *ngIf=\"!simple && location === 'app'\">\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-lg text-muted-color font-semibold\">Menu Type</span>\n <div class=\"flex flex-wrap flex-col gap-3\">\n <div class=\"flex\">\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"static\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('static')\" inputId=\"static\"></p-radiobutton>\n <label for=\"static\">Static</label>\n </div>\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"rail\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('rail')\" inputId=\"rail\"></p-radiobutton>\n <label for=\"rail\">Rail</label>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"overlay\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('overlay')\" inputId=\"overlay\"></p-radiobutton>\n <label for=\"overlay\">Overlay</label>\n </div>\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"slim\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('slim')\" inputId=\"slim\"></p-radiobutton>\n <label for=\"slim\">Slim</label>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"compact\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('compact')\" inputId=\"compact\"></p-radiobutton>\n <label for=\"compact\">Compact</label>\n </div>\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"reveal\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('reveal')\" inputId=\"reveal\"></p-radiobutton>\n <label for=\"reveal\">Reveal</label>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"drawer\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('drawer')\" inputId=\"drawer\"></p-radiobutton>\n <label for=\"drawer\">Drawer</label>\n </div>\n <div class=\"flex items-center gap-2 w-6/12\">\n <p-radiobutton name=\"menuMode\" value=\"horizontal\" [ngModel]=\"menuMode()\" (ngModelChange)=\"setMenuMode('horizontal')\" inputId=\"horizontal\"></p-radiobutton>\n <label for=\"horizontal\">Horizontal</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </p-drawer>\n `\n})\nexport class AppConfigurator implements OnInit {\n @Input({ transform: booleanAttribute }) simple: boolean = false;\n\n @Input() location: string = 'app';\n\n router = inject(Router);\n\n config: PrimeNG = inject(PrimeNG);\n\n layoutService: LayoutService = inject(LayoutService);\n\n platformId = inject(PLATFORM_ID);\n\n primeng = inject(PrimeNG);\n\n presetKeys = Object.keys(brandPresetMap) as (keyof typeof brandPresetMap)[];\n\n themeOptions = [\n { name: 'Light', value: false },\n { name: 'Dark', value: true }\n ];\n\n menuThemeOptions: { name: string; value: string }[] = [];\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.onPresetChange(this.layoutService.layoutConfig().preset);\n }\n this.updateMenuThemeOptions();\n }\n\n updateMenuThemeOptions() {\n if (this.darkTheme()) {\n this.menuThemeOptions = [\n { name: 'Dark', value: 'dark' },\n { name: 'Primary', value: 'primary' }\n ];\n } else {\n this.menuThemeOptions = [\n { name: 'Light', value: 'light' },\n { name: 'Dark', value: 'dark' },\n { name: 'Primary', value: 'primary' }\n ];\n }\n }\n\n surfaces: SurfacesType[] = [\n {\n name: 'gray',\n palette: {\n 0: '#ffffff',\n 50: '#e5e6e6',\n 100: '#d5d6d7',\n 200: '#c6c7c8',\n 300: '#b6b8b9',\n 400: '#a7a8aa',\n 500: '#97999b',\n 600: '#808284',\n 700: '#6a6b6d',\n 800: '#535455',\n 900: '#3c3d3e',\n 950: '#262627'\n }\n },\n {\n name: 'darkblue',\n palette: {\n 0: '#ffffff',\n 50: '#D0EEFF',\n 100: '#B7E2F9',\n 200: '#73abc7',\n 300: '#73abc7',\n 400: '#4d94b8',\n 500: '#267da9',\n 600: '#00669a',\n 700: '#005783',\n 800: '#00476c',\n 900: '#00293e',\n 950: '#001a27'\n }\n }\n ];\n\n selectedPrimaryColor = computed(() => {\n return this.layoutService.layoutConfig().primary;\n });\n\n selectedSurfaceColor = computed(() => this.layoutService.layoutConfig().surface);\n\n selectedPreset = computed(() => this.layoutService.layoutConfig().preset);\n\n menuMode = computed(() => {\n const mode = this.layoutService.layoutConfig().menuMode;\n const pinned = this.layoutService.layoutState().sidebarPinned;\n return mode === 'static' && !pinned ? 'rail' : mode;\n });\n\n cardStyle = model(this.layoutService.layoutConfig().cardStyle);\n\n get configSidebarVisible(): boolean {\n return this.layoutService.layoutState().configSidebarVisible;\n }\n\n set configSidebarVisible(val: boolean) {\n this.layoutService.layoutState.update((prev) => ({ ...prev, configSidebarVisible: val }));\n }\n\n darkTheme = computed(() => this.layoutService.layoutConfig().darkTheme);\n\n selectedSurface = computed(() => this.layoutService.layoutConfig().surface);\n\n cardStyleOptions = [\n { name: 'Transparent', value: 'transparent' },\n { name: 'Filled', value: 'filled' }\n ];\n\n primaryColors = computed<SurfacesType[]>(() => {\n const presetPalette = brandPresetMap[this.layoutService.layoutConfig().preset as KeyOfType<typeof brandPresetMap>].primitive;\n const colors = ['red', 'orange', 'yellow', 'lemon', 'lime', 'babygreen', 'green', 'olive', 'teal', 'ocean', 'blue', 'darkblue', 'midnight', 'cherry'];\n const palettes: SurfacesType[] = [{ name: 'noir', palette: {} }];\n\n colors.forEach((color) => {\n palettes.push({\n name: color,\n palette: presetPalette?.[color as KeyOfType<typeof presetPalette>] as SurfacesType['palette']\n });\n });\n\n return palettes;\n });\n\n menuTheme = computed(() => this.layoutService.layoutConfig().menuTheme);\n\n getPresetExt() {\n const color: SurfacesType = this.primaryColors().find((c) => c.name === this.selectedPrimaryColor()) || {};\n\n if (color.name === 'noir') {\n return {\n semantic: {\n primary: {\n 50: '{surface.50}',\n 100: '{surface.100}',\n 200: '{surface.200}',\n 300: '{surface.300}',\n 400: '{surface.400}',\n 500: '{surface.500}',\n 600: '{surface.600}',\n 700: '{surface.700}',\n 800: '{surface.800}',\n 900: '{surface.900}',\n 950: '{surface.950}'\n },\n colorScheme: {\n light: {\n primary: {\n color: '{primary.950}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.800}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.950}',\n focusBackground: '{primary.700}',\n color: '#ffffff',\n focusColor: '#ffffff'\n }\n },\n dark: {\n primary: {\n color: '{primary.50}',\n contrastColor: '{primary.950}',\n hoverColor: '{primary.200}',\n activeColor: '{primary.300}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.300}',\n color: '{primary.950}',\n focusColor: '{primary.950}'\n }\n }\n }\n }\n };\n } else {\n return {\n semantic: {\n primary: color.palette,\n colorScheme: {\n light: {\n primary: {\n color: '{primary.500}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.600}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.100}',\n color: '{primary.700}',\n focusColor: '{primary.800}'\n }\n },\n dark: {\n primary: {\n color: '{primary.400}',\n contrastColor: '{surface.900}',\n hoverColor: '{primary.300}',\n activeColor: '{primary.200}'\n },\n highlight: {\n background: 'color-mix(in srgb, {primary.400}, transparent 84%)',\n focusBackground: 'color-mix(in srgb, {primary.400}, transparent 76%)',\n color: 'rgba(255,255,255,.87)',\n focusColor: 'rgba(255,255,255,.87)'\n }\n }\n }\n }\n };\n }\n }\n\n updateColors(event: any, type: string, color: any) {\n if (type === 'primary') {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n primary: color.name\n }));\n } else if (type === 'surface') {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n surface: color.name\n }));\n }\n this.applyTheme(type, color);\n\n event.stopPropagation();\n }\n\n applyTheme(type: string, color: any) {\n if (type === 'primary') {\n updatePreset(this.getPresetExt());\n } else if (type === 'surface') {\n updateSurfacePalette(color.palette);\n }\n }\n\n onPresetChange(event: any) {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n preset: event\n }));\n const preset = brandPresetMap[event as KeyOfType<typeof brandPresetMap>];\n const surfacePalette = this.surfaces.find((s) => s.name === this.selectedSurfaceColor())?.palette;\n $t().preset(preset).preset(this.getPresetExt()).surfacePalette(surfacePalette).use({ useDefaultOptions: true });\n }\n\n onCardStyleChange(value: string) {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n cardStyle: value\n }));\n }\n\n onMenuThemeChange(value: string) {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n menuTheme: value\n }));\n }\n\n setMenuMode(mode: string) {\n const isRail = mode === 'rail';\n const actualMode = isRail ? 'static' : mode;\n\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n menuMode: actualMode\n }));\n\n this.layoutService.layoutState.update((state) => ({\n ...state,\n staticMenuInactive: false,\n overlayMenuActive: false,\n mobileMenuActive: false,\n sidebarExpanded: false,\n sidebarPinned: !isRail,\n menuHoverActive: false,\n anchored: false\n }));\n }\n\n toggleDarkMode() {\n this.executeDarkModeToggle();\n }\n\n executeDarkModeToggle() {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n darkTheme: !state.darkTheme\n }));\n if (this.darkTheme()) {\n this.setMenuTheme('dark');\n }\n this.updateMenuThemeOptions();\n }\n\n toggleConfigSidebar() {\n this.layoutService.layoutState.update((val) => ({ ...val, configSidebarVisible: !val.configSidebarVisible }));\n }\n\n setMenuTheme(theme: string) {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n menuTheme: theme\n }));\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: '[app-footer]',\n template: `\n <footer class=\"layout-footer\">\n <span class=\"footer-copyright\">© UNOPS 2026</span>\n </footer>\n `\n})\nexport class AppFooter {}\n","import { LayoutService } from '../layout.service';\nimport { Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { DividerModule } from 'primeng/divider';\nimport { DrawerModule } from 'primeng/drawer';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SelectModule } from 'primeng/select';\n\n@Component({\n selector: '[app-rightmenu]',\n imports: [DrawerModule, DividerModule, SelectModule, InputTextModule, FormsModule, ButtonModule],\n template: ` <p-drawer header=\"Menu\" [(visible)]=\"rightMenuVisible\" position=\"right\" styleClass=\"layout-rightmenu w-full! sm:w-xl!\">\n <div>\n <h2 class=\"title-h7 text-left\">Activity</h2>\n <div class=\"flex flex-col mt-7\">\n <div class=\"flex gap-6\">\n <div class=\"flex flex-col items-center\">\n <span class=\"w-14 h-14 flex items-center justify-center border border-surface rounded-xl shadow-[0px_1px_2px_0px_rgba(18,18,23,0.05);]\">\n <i class=\"pi pi-dollar text-blue-600 text-2xl!\"></i>\n </span>\n <span class=\"min-h-14 w-px bg-(--surface-border)\"></span>\n </div>\n <div class=\"mt-2\">\n <h5 class=\"label-large\">New Sale</h5>\n <p class=\"md:label-small mt-1\">Richard Jones has purchased a blue t-shirt for <b class=\"body-small text-surface-950 dark:text-surface-0\">$79</b></p>\n </div>\n </div>\n <div class=\"flex gap-6\">\n <div class=\"flex flex-col items-center\">\n <span class=\"w-14 h-14 flex items-center justify-center border border-surface rounded-xl shadow-[0px_1px_2px_0px_rgba(18,18,23,0.05);]\">\n <i class=\"pi pi-download text-orange-600 text-2xl!\"></i>\n </span>\n <span class=\"min-h-14 w-px bg-(--surface-border)\"></span>\n </div>\n <div class=\"mt-2\">\n <h5 class=\"label-large\">Withdrawal Initiated</h5>\n <p class=\"md:label-small mt-1\">Your request for withdrawal of <b class=\"body-small text-surface-950 dark:text-surface-0\">$2500</b> has been initiated.</p>\n </div>\n </div>\n <div class=\"flex gap-6\">\n <div class=\"flex flex-col items-center\">\n <span class=\"w-14 h-14 flex items-center justify-center border border-surface rounded-xl shadow-[0px_1px_2px_0px_rgba(18,18,23,0.05);]\">\n <i class=\"pi pi-question-circle text-violet-600 text-2xl!\"></i>\n </span>\n <span class=\"min-h-14 w-px bg-(--surface-border)\"></span>\n </div>\n <div class=\"mt-2\">\n <h5 class=\"label-large\">Question Received</h5>\n <p class=\"md:label-small mt-1\">Jane Davis has posted a <b class=\"body-small text-surface-950 dark:text-surface-0\">new question</b> about your product.</p>\n </div>\n </div>\n <div class=\"flex gap-6\">\n <div class=\"flex flex-col items-center\">\n <span class=\"w-14 h-14 flex items-center justify-center border border-surface rounded-xl shadow-[0px_1px_2px_0px_rgba(18,18,23,0.05);]\">\n <i class=\"pi pi-comment text-blue-600 text-2xl!\"></i>\n </span>\n </div>\n <div class=\"mt-2\">\n <h5 class=\"label-large\">Comment Received</h5>\n <p class=\"md:label-small mt-1\">Claire Smith has upvoted your store along with a <b class=\"body-small text-surface-950 dark:text-surface-0\">comment.</b></p>\n </div>\n </div>\n </div>\n </div>\n <p-divider class=\"my-10!\" />\n <div>\n <h2 class=\"title-h7 text-left\">Quick Withdraw</h2>\n <div class=\"flex flex-col gap-3.5 mt-7 mb-6\">\n <input pInputText type=\"text\" [(ngModel)]=\"amountValue\" placeholder=\"Amount\" />\n <p-select [(ngModel)]=\"selectedCard\" [options]=\"cards\" optionLabel=\"label\" placeholder=\"Select a Card\" class=\"w-full\" />\n </div>\n <button pButton label=\"Confirm\" severity=\"success\" class=\"w-full!\"></button>\n </div>\n <p-divider class=\"my-10!\" />\n <div>\n <h2 class=\"title-h7 text-left\">Shipment Tracking</h2>\n <p class=\"body-small mt-1 text-left\">Track your ongoing shipments to customers.</p>\n <img class=\"w-full h-full max-h-60 object-cover border border-surface rounded-2xl mt-4\" src=\"layout/images/sidebar-right/staticmap.png\" alt=\"unops-ng_ux\" />\n </div>\n </p-drawer>`\n})\nexport class AppRightMenu {\n layoutService: LayoutService = inject(LayoutService);\n\n cards = [\n { label: '*****24', value: { id: 1, name: '*****24', code: 'A1' } },\n { label: '*****75', value: { id: 2, name: '*****75', code: 'A2' } }\n ];\n\n selectedCard: any;\n amountValue: string = '';\n\n get rightMenuVisible(): boolean {\n return this.layoutService.layoutState().rightMenuVisible;\n }\n\n set rightMenuVisible(_val: boolean) {\n this.layoutService.layoutState.update((prev) => ({ ...prev, rightMenuVisible: _val }));\n }\n}\n","import { LayoutService } from '../layout.service';\nimport { Component, inject } from '@angular/core';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n selector: '[app-search]',\n imports: [DialogModule, InputTextModule, AutoFocusModule],\n template: ` <p-dialog [(visible)]=\"searchBarActive\" [breakpoints]=\"{ '992px': '75vw', '576px': '90vw' }\" modal dismissableMask styleClass=\"w-1/2 search-container\">\n <ng-template #headless>\n <div class=\"w-full\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" [pAutoFocus]=\"true\" class=\"p-inputtext search-input\" placeholder=\"Search\" (keydown.enter)=\"toggleSearchBar()\" />\n </div>\n </ng-template>\n </p-dialog>`\n})\nexport class AppSearch {\n layoutService = inject(LayoutService);\n\n toggleSearchBar() {\n this.layoutService.layoutState.update((value) => ({ ...value, searchBarActive: !value.searchBarActive }));\n }\n\n get searchBarActive(): boolean {\n return this.layoutService.layoutState().searchBarActive;\n }\n\n set searchBarActive(_val: boolean) {\n this.layoutService.layoutState.update((prev) => ({ ...prev, searchBarActive: _val }));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, computed, effect, inject, input, OnDestroy, signal } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { RippleModule } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { LayoutService } from '../layout.service';\nimport type { MenuItem } from '../tokens';\n\n@Component({\n selector: '[app-menuitem]',\n imports: [CommonModule, RouterModule, TooltipModule, RippleModule],\n template: `\n @if (root() && isVisible() && hasChildren()) {\n <div class=\"layout-menuitem-root-text\">{{ item()?.label }}</div>\n }\n @if ((!hasRouterLink() || hasChildren()) && isVisible()) {\n <a\n [attr.href]=\"item()?.url\"\n (click)=\"itemClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"item()?.class\"\n [attr.target]=\"item()?.target\"\n tabindex=\"0\"\n pRipple\n [pTooltip]=\"item()?.label\"\n [tooltipDisabled]=\"!((isCompact() || isRailCollapsed()) && !isActive() && root())\"\n >\n <i [ngClass]=\"item()?.icon\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text label-small text-inherit\">{{ item()?.label }}</span>\n @if (hasChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n </a>\n }\n @if (hasRouterLink() && !hasChildren() && isVisible()) {\n <a\n (click)=\"itemClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"item()?.class\"\n [routerLink]=\"item()?.routerLink\"\n routerLinkActive=\"active-route\"\n [routerLinkActiveOptions]=\"item()?.routerLinkActiveOptions || { paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }\"\n [fragment]=\"item()?.fragment\"\n [queryParamsHandling]=\"item()?.queryParamsHandling\"\n [preserveFragment]=\"item()?.preserveFragment\"\n [skipLocationChange]=\"item()?.skipLocationChange\"\n [replaceUrl]=\"item()?.replaceUrl\"\n [state]=\"item()?.state\"\n [queryParams]=\"item()?.queryParams\"\n [attr.target]=\"item()?.target\"\n tabindex=\"0\"\n [pTooltip]=\"item()?.label\"\n [tooltipDisabled]=\"!((isCompact() || isRailCollapsed()) && !isActive() && root())\"\n >\n <i [ngClass]=\"item()?.icon\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text label-small text-inherit\">{{ item()?.label }}</span>\n @if (hasChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n </a>\n }\n @if (hasChildren() && isVisible()) {\n <ul [animate.enter]=\"initialized() ? 'p-submenu-enter' : null\" [animate.leave]=\"'p-submenu-leave'\" [class.layout-root-submenulist]=\"root()\">\n @for (child of item()?.items; track child?.label) {\n <li app-menuitem [item]=\"child\" [root]=\"false\" [parentPath]=\"fullPath()\" [preventAutoActivate]=\"preventAutoActivate() || !!item()?.preventAutoActivate\" [class]=\"child?.['badgeClass']\"></li>\n }\n </ul>\n }\n `,\n host: {\n '[class.active-menuitem]': 'isActive()',\n '[class.layout-root-menuitem]': 'root()',\n '[class.route-active-within]': 'isRouteWithin()'\n },\n styles: [\n `\n .p-submenu-enter {\n animation: p-animate-submenu-expand 0.15s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n overflow: hidden;\n }\n\n .p-submenu-leave {\n animation: p-animate-submenu-collapse 0.15s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n overflow: hidden;\n }\n\n @keyframes p-animate-submenu-expand {\n from {\n max-height: 0;\n }\n to {\n max-height: 1000px;\n }\n }\n\n @keyframes p-animate-submenu-collapse {\n from {\n max-height: 1000px;\n }\n to {\n max-height: 0;\n }\n }\n `\n ]\n})\nexport class AppMenuitem implements AfterViewInit, OnDestroy {\n layoutService = inject(LayoutService);\n\n router = inject(Router);\n\n private hoverExpandTimer: ReturnType<typeof setTimeout> | null = null;\n\n item = input<MenuItem | null>(null);\n\n root = input<boolean>(true);\n\n parentPath = input<string | null>(null);\n\n preventAutoActivate = input<boolean>(false);\n\n isDisabled = computed(() => this.item()?.disabled ?? false);\n\n isSlim = computed(() => this.layoutService.layoutConfig().menuMode === 'slim');\n\n isHorizontal = computed(() => this.layoutService.layoutConfig().menuMode === 'horizontal');\n\n isCompact = computed(() => this.layoutService.layoutConfig().menuMode === 'compact');\n\n isRailCollapsed = computed(() => this.layoutService.isRail() && !this.layoutService.layoutState().sidebarExpanded);\n\n isVisible = computed(() => this.item()?.visible !== false);\n\n hasChildren = computed(() => !!this.item()?.items && (this.item()?.items?.length ?? 0) > 0);\n\n hasCommand = computed(() => typeof this.item()?.command === 'function');\n\n hasRouterLink = computed(() => !!this.item()?.routerLink);\n\n fullPath = computed(() => {\n const itemPath = this.item()?.path;\n if (!itemPath) return this.parentPath();\n const parent = this.parentPath();\n if (parent && !itemPath.startsWith(parent)) {\n return parent + itemPath;\n }\n return itemPath;\n });\n\n menuHoverActive = computed(() => this.layoutService.layoutState().menuHoverActive);\n\n isActive = computed(() => {\n const activePath = this.layoutService.layoutState().activePath;\n if (this.item()?.path) {\n return activePath?.startsWith(this.fullPath() ?? '') ?? false;\n }\n return false;\n });\n\n isRouteWithin = computed(() => {\n this.layoutService.currentUrl();\n if (!this.root() || !this.hasChildren()) return false;\n return this.hasMatchingChildRoute(this.item());\n });\n\n initialized = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.updateActivePath();\n });\n }\n\n private readonly defaultMatchOptions: import('@angular/router').IsActiveMatchOptions = {\n paths: 'exact',\n queryParams: 'ignored',\n matrixParams: 'ignored',\n fragment: 'ignored'\n };\n\n private itemMatchOptions(item: MenuItem | null | undefined): import('@angular/router').IsActiveMatchOptions {\n return item?.routerLinkActiveOptions ?? this.defaultMatchOptions;\n }\n\n updateActivePath() {\n if (this.layoutService.hasOverlaySubmenu() && this.layoutService.isDesktop()) {\n return;\n }\n\n if (this.preventAutoActivate()) {\n return;\n }\n\n const item = this.item();\n const parentPath = this.parentPath();\n\n if (item?.routerLink && !item?.items) {\n const isRouteActive = this.router.isActive(item.routerLink[0], this.itemMatchOptions(item));\n\n if (isRouteActive && parentPath) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: parentPath\n }));\n }\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.initialized.set(true);\n });\n }\n\n itemClick(event: Event) {\n if (this.isDisabled()) {\n event.preventDefault();\n return;\n }\n\n if (this.hasCommand()) {\n this.item()?.command?.({ originalEvent: event, item: this.item() ?? undefined });\n }\n\n if (this.hasChildren()) {\n if (this.isActive()) {\n const deactivateHover = this.root() && this.layoutService.hasOverlaySubmenu() && this.layoutService.isDesktop();\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: this.parentPath(),\n menuHoverActive: deactivateHover ? false : val.menuHoverActive\n }));\n } else {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: this.fullPath(),\n menuHoverActive: true\n }));\n }\n } else {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n overlayMenuActive: false,\n mobileMenuActive: false,\n menuHoverActive: false\n }));\n\n if (this.layoutService.hasOverlaySubmenu() && this.layoutService.isDesktop()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: null\n }));\n }\n }\n\n if (this.layoutService.isDesktop() && this.layoutService.isRail() && !this.layoutService.layoutState().sidebarExpanded) {\n this.layoutService.toggleSidebarPin();\n }\n }\n\n onMouseEnter() {\n if (this.layoutService.isDesktop() && this.root() && this.hasChildren() && this.menuHoverActive() && !this.isActive()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: this.fullPath(),\n menuHoverActive: true\n }));\n }\n }\n\n onMouseLeave() {}\n\n ngOnDestroy() {\n this.clearHoverTimer();\n }\n\n private scheduleRailExpand() {\n this.clearHoverTimer();\n this.hoverExpandTimer = setTimeout(() => {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n sidebarExpanded: true\n }));\n }, 500);\n }\n\n private clearHoverTimer() {\n if (this.hoverExpandTimer !== null) {\n clearTimeout(this.hoverExpandTimer);\n this.hoverExpandTimer = null;\n }\n }\n\n private hasMatchingChildRoute(item: MenuItem | null | undefined): boolean {\n if (!item) return false;\n if (item.routerLink) {\n return this.router.isActive(item.routerLink[0], this.itemMatchOptions(item));\n }\n return item.items?.some((child) => this.hasMatchingChildRoute(child)) ?? false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { MENU_MODEL } from '../tokens';\nimport { AppMenuitem } from './app.menuitem';\n\n@Component({\n selector: '[app-menu]',\n imports: [CommonModule, AppMenuitem, RouterModule],\n template: `<ul class=\"layout-menu\">\n @for (item of menuItems; track $index) {\n @if (!item.separator) {\n <li app-menuitem [item]=\"item\" [root]=\"true\"></li>\n } @else {\n <li class=\"menu-separator\"></li>\n }\n }\n </ul> `\n})\nexport class AppMenu {\n /** Injected menu tree from the host application. */\n menuItems = inject(MENU_MODEL);\n}\n","import { LayoutService } from '../layout.service';\nimport { TOPBAR_MOBILE_LOGO } from '../tokens';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, ElementRef, HostListener, inject, model, signal, ViewChild, ChangeDetectionStrategy, AfterViewChecked } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AvatarModule } from 'primeng/avatar';\nimport { BadgeModule } from 'primeng/badge';\nimport { ButtonModule } from 'primeng/button';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { InputIconModule } from 'primeng/inputicon';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { OverlayBadgeModule } from 'primeng/overlaybadge';\nimport { RippleModule } from 'primeng/ripple';\nimport { StyleClassModule } from 'primeng/styleclass';\nimport { AppBreadcrumb } from './app.breadcrumb';\n\ninterface NotificationsBars {\n id: string;\n label: string;\n badge?: string | any;\n}\n\n@Component({\n selector: '[app-topbar]',\n imports: [RouterModule, CommonModule, StyleClassModule, AppBreadcrumb, InputTextModule, ButtonModule, IconFieldModule, InputIconModule, RippleModule, BadgeModule, OverlayBadgeModule, AvatarModule],\n template: `<div class=\"layout-topbar\">\n <button type=\"button\" class=\"mobile-menu-button\" aria-label=\"Toggle navigation menu\" (click)=\"onMenuButtonClick()\">\n <i class=\"pi pi-bars\"></i>\n </button>\n <div class=\"topbar-left\">\n <button\n type=\"button\"\n class=\"topbar-menu-toggle\"\n [class.active]=\"isSidebarPinned()\"\n [attr.aria-label]=\"isSidebarPinned() ? 'Collapse sidebar' : 'Expand sidebar'\"\n (click)=\"toggleSidebarPin()\"\n >\n <i class=\"pi pi-bars\"></i>\n </button>\n <a class=\"topbar-logo\" [routerLink]=\"['/']\">\n <img [src]=\"desktopLogo()\" [attr.alt]=\"mobileLogoConfig.alt\" />\n </a>\n <span class=\"topbar-logo-separator\"></span>\n <div app-breadcrumb></div>\n @if (searchActive()) {\n <div class=\"flex items-center gap-2 ml-auto\">\n <p-iconfield class=\"w-48 sm:w-80\">\n <p-inputicon styleClass=\"pi pi-search\" />\n <input #searchInput type=\"text\" pInputText placeholder=\"Search...\" aria-label=\"Search\" class=\"w-full !py-2 !text-sm\" (keydown.escape)=\"closeSearch()\" />\n </p-iconfield>\n <button type=\"button\" class=\"flex items-center justify-center w-8 h-8 rounded-md cursor-pointer hover:bg-emphasis transition-colors\" aria-label=\"Close search\" (click)=\"closeSearch()\">\n <i class=\"pi pi-times text-sm\"></i>\n </button>\n </div>\n }\n </div>\n\n <a class=\"mobile-logo\" [routerLink]=\"['/landing']\">\n <img [src]=\"mobileLogo()\" [attr.alt]=\"mobileLogoConfig.alt\" />\n </a>\n\n <div class=\"topbar-right\">\n <ul class=\"topbar-menu\">\n <li class=\"right-sidebar-item\" [class.hidden]=\"searchActive()\">\n <a class=\"right-sidebar-button\" aria-label=\"Open search\" (click)=\"openSearch()\">\n <i class=\"pi pi-search\"></i>\n </a>\n </li>\n <li class=\"right-sidebar-item\" [class.hidden]=\"searchActive()\">\n <a\n class=\"right-sidebar-button\"\n [attr.aria-label]=\"isDarkTheme() ? 'Switch to light mode' : 'Switch to dark mode'\"\n (click)=\"toggleDarkMode()\"\n >\n <i [class]=\"isDarkTheme() ? 'pi pi-sun' : 'pi pi-moon'\"></i>\n </a>\n </li>\n <li class=\"right-sidebar-item static sm:relative z-50\">\n <a class=\"right-sidebar-button\" aria-label=\"Notifications\" pStyleClass=\"@next\" enterFromClass=\"hidden\" enterActiveClass=\"animate-scalein\" leaveActiveClass=\"animate-fadeout\" leaveToClass=\"hidden\" [hideOnOutsideClick]=\"true\">\n <span class=\"w-2 h-2 rounded-full bg-red-500 absolute top-2 right-2.5\"></span>\n <i class=\"pi pi-bell\"></i>\n </a>\n <div\n class=\"list-none m-0 rounded-2xl border border-surface fixed sm:absolute bg-surface-0 dark:bg-surface-900 overflow-hidden hidden origin-top w-[calc(100vw-2rem)] sm:w-88 mt-2 z-50 top-auto left-4 sm:left-auto sm:right-0 shadow-[0px_56px_16px_0px_rgba(0,0,0,0.00),0px_36px_14px_0px_rgba(0,0,0,0.01),0px_20px_12px_0px_rgba(0,0,0,0.02),0px_9px_9px_0px_rgba(0,0,0,0.03),0px_2px_5px_0px_rgba(0,0,0,0.04)]\"\n >\n <div class=\"p-4 flex items-center justify-between border-b border-surface\">\n <span class=\"label-small text-surface-950 dark:text-surface-0\">Notifications</span>\n <button pRipple class=\"py-1 px-2 text-surface-950 dark:text-surface-0 label-x-small hover:bg-emphasis border border-surface rounded-lg shadow-[0px_1px_2px_0px_rgba(18,18,23,0.05)] transition-all\">Mark all as read</button>\n </div>\n <div class=\"flex items-center border-b border-surface\">\n @for (item of notificationsBars(); track item.id; let i = $index) {\n <button\n [ngClass]=\"{ 'border-surface-950 dark:border-surface-0': selectedNotificationBar() === item.id, 'border-transparent': selectedNotificationBar() !== item.id }\"\n class=\"px-3.5 py-2 inline-flex items-center border-b gap-2\"\n (click)=\"selectedNotificationBar.set(item.id)\"\n >\n <span [ngClass]=\"{ 'text-surface-950 dark:text-surface-0': selectedNotificationBar() === item.id }\" class=\"label-small\">{{ item.label }}</span>\n <p-badge *ngIf=\"item?.badge\" [value]=\"item.badge\" severity=\"success\" size=\"small\" class=\"rounded-md!\" />\n </button>\n }\n </div>\n <ul class=\"flex flex-col divide-y divide-(--surface-border) max-h-80 overflow-auto\">\n @for (item of selectedNotificationsBarData(); track item.name; let i = $index) {\n <li>\n <div class=\"flex items-center gap-3 px-4 sm:px-6 py-3.5 cursor-pointer hover:bg-emphasis transition-all\">\n <p-overlay-badge value=\"\" severity=\"danger\" class=\"inline-flex\">\n <p-avatar size=\"large\">\n <img [src]=\"item.image\" [alt]=\"item.name\" class=\"rounded-lg\" />\n </p-avatar>\n </p-overlay-badge>\n <div class=\"flex items-center gap-3\">\n <div class=\"flex flex-col\">\n <span class=\"label-small text-left text-surface-950 dark:text-surface-0\">{{ item.name }}</span>\n <span class=\"label-xsmall text-left line-clamp-1\">{{ item.description }}</span>\n <span class=\"label-xsmall text-left\">{{ item.time }}</span>\n </div>\n <p-badge *ngIf=\"item.new\" value=\"\" severity=\"success\" />\n </div>\n </div>\n <span *ngIf=\"i !== notifications().length - 1\"></span>\n </li>\n }\n </ul>\n </div>\n </li>\n <li class=\"right-sidebar-item static sm:relative\">\n <a class=\"right-sidebar-button relative z-50\" aria-label=\"Change language\" pStyleClass=\"@next\" enterFromClass=\"hidden\" enterActiveClass=\"animate-scalein\" leaveActiveClass=\"animate-fadeout\" leaveToClass=\"hidden\" [hideOnOutsideClick]=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"m5 8 6 6\"/>\n <path d=\"m4 14 6-6 2-3\"/>\n <path d=\"M2 5h12\"/>\n <path d=\"M7 2h1\"/>\n <path d=\"m22 22-5-10-5 10\"/>\n <path d=\"M14 18h6\"/>\n </svg>\n </a>\n <div\n class=\"list-none p-2 m-0 rounded-2xl border border-surface overflow-hidden fixed sm:absolute bg-surface-0 dark:bg-surface-900 hidden origin-top w-44 mt-2 right-4 sm:right-0 z-999 top-auto shadow-[0px_56px_16px_0px_rgba(0,0,0,0.00),0px_36px_14px_0px_rgba(0,0,0,0.01),0px_20px_12px_0px_rgba(0,0,0,0.02),0px_9px_9px_0px_rgba(0,0,0,0.03),0px_2px_5px_0px_rgba(0,0,0,0.04)]\"\n >\n <ul class=\"flex flex-col gap-1\">\n @for (lang of languages(); track lang.code) {\n <li>\n <a\n class=\"label-small dark:text-surface-400 flex gap-2.5 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\"\n [class.text-surface-950]=\"selectedLanguage() === lang.code\"\n [class.dark:text-surface-0]=\"selectedLanguage() === lang.code\"\n [class.font-semibold]=\"selectedLanguage() === lang.code\"\n (click)=\"selectLanguage(lang.code)\"\n >\n <span class=\"text-lg\">{{ lang.flag }}</span>\n <span>{{ lang.label }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n </li>\n <li class=\"profile-item static sm:relative\" #profileItem>\n <a class=\"right-sidebar-button relative z-50\" aria-label=\"User profile menu\" (click)=\"toggleProfileMenu($event)\">\n <p-avatar icon=\"pi pi-user\" styleClass=\"w-10! h-10!\" />\n </a>\n <div\n #profilePanel\n class=\"list-none p-2 m-0 rounded-2xl border border-surface overflow-hidden fixed sm:absolute bg-surface-0 dark:bg-surface-900 origin-top w-52 mt-2 right-4 sm:right-0 z-999 top-auto shadow-[0px_56px_16px_0px_rgba(0,0,0,0.00),0px_36px_14px_0px_rgba(0,0,0,0.01),0px_20px_12px_0px_rgba(0,0,0,0.02),0px_9px_9px_0px_rgba(0,0,0,0.03),0px_2px_5px_0px_rgba(0,0,0,0.04)]\"\n [class.hidden]=\"!profileMenuOpen()\"\n [class.animate-scalein]=\"profileMenuOpen()\"\n >\n <ul class=\"flex flex-col gap-1\">\n <div class=\"mobile-profile-actions\">\n <li>\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\" (click)=\"profileMenuOpen.set(false); openSearch()\">\n <i class=\"pi pi-search\"></i>\n <span>Search</span>\n </a>\n </li>\n <li>\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\" (click)=\"profileMenuOpen.set(false); toggleDarkMode()\">\n <i [class]=\"isDarkTheme() ? 'pi pi-sun' : 'pi pi-moon'\"></i>\n <span>{{ isDarkTheme() ? 'Light Mode' : 'Dark Mode' }}</span>\n </a>\n </li>\n <li>\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer relative\" (click)=\"profileMenuOpen.set(false)\">\n <i class=\"pi pi-bell\"></i>\n <span>Notifications</span>\n <span class=\"w-2 h-2 rounded-full bg-red-500 ml-auto\"></span>\n </a>\n </li>\n <li class=\"border-b border-surface pb-1 mb-1\">\n <span class=\"label-xsmall px-2.5 py-1 text-surface-400\">Language</span>\n @for (lang of languages(); track lang.code) {\n <a\n class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\"\n [class.text-surface-950]=\"selectedLanguage() === lang.code\"\n [class.dark:text-surface-0]=\"selectedLanguage() === lang.code\"\n [class.font-semibold]=\"selectedLanguage() === lang.code\"\n (click)=\"profileMenuOpen.set(false); selectLanguage(lang.code)\"\n >\n <span class=\"text-lg\">{{ lang.flag }}</span>\n <span>{{ lang.label }}</span>\n @if (selectedLanguage() === lang.code) {\n <i class=\"pi pi-check ml-auto text-xs\"></i>\n }\n </a>\n }\n </li>\n </div>\n <li>\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\" (click)=\"profileMenuOpen.set(false)\">\n <i class=\"pi pi-user\"></i>\n <span>Profile</span>\n </a>\n </li>\n <li>\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\" (click)=\"profileMenuOpen.set(false)\">\n <i class=\"pi pi-cog\"></i>\n <span>Settings</span>\n </a>\n </li>\n <li>\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\" (click)=\"profileMenuOpen.set(false)\">\n <i class=\"pi pi-calendar\"></i>\n <span>Calendar</span>\n </a>\n </li>\n <li>\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\" (click)=\"profileMenuOpen.set(false)\">\n <i class=\"pi pi-inbox\"></i>\n <span>Inbox</span>\n </a>\n </li>\n <li class=\"border-t border-surface mt-1 pt-1\">\n <a class=\"label-small dark:text-surface-400 flex gap-2 py-2 px-2.5 rounded-lg items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\" (click)=\"profileMenuOpen.set(false)\">\n <i class=\"pi pi-power-off\"></i>\n <span>Log out</span>\n </a>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n </div>`\n})\nexport class AppTopbar implements AfterViewChecked {\n layoutService = inject(LayoutService);\n\n readonly mobileLogoConfig = inject(TOPBAR_MOBILE_LOGO);\n\n mobileLogo = computed(() =>\n this.layoutService.isDarkTheme() ? this.mobileLogoConfig.dark : this.mobileLogoConfig.light\n );\n\n desktopLogo = computed(() =>\n this.layoutService.isDarkTheme() ? this.mobileLogoConfig.dark : this.mobileLogoConfig.light\n );\n\n isDarkTheme = computed(() => this.layoutService.isDarkTheme());\n\n isSidebarPinned = computed(() => this.layoutService.isSidebarPinned());\n\n searchActive = signal(false);\n profileMenuOpen = signal(false);\n private shouldFocusSearch = false;\n\n @ViewChild('menubutton') menuButton!: ElementRef;\n @ViewChild('searchInput') searchInput?: ElementRef<HTMLInputElement>;\n @ViewChild('profileItem') profileItem!: ElementRef;\n @ViewChild('profilePanel') profilePanel!: ElementRef;\n\n notificationsBars = signal<NotificationsBars[]>([\n {\n id: 'inbox',\n label: 'Inbox',\n badge: '2'\n },\n {\n id: 'general',\n label: 'General'\n },\n {\n id: 'archived',\n label: 'Archived'\n }\n ]);\n\n notifications = signal<any[]>([\n {\n id: 'inbox',\n data: [\n {\n image: 'demo/images/avatar/avatar-square-m-2.jpg',\n name: 'Michael Lee',\n description: 'You have a new message from the support team regarding your recent inquiry.',\n time: '1 hour ago',\n new: true\n },\n {\n image: 'demo/images/avatar/avatar-square-f-1.jpg',\n name: 'Alice Johnson',\n description: 'Your report has been successfully submitted and is under review.',\n time: '10 minutes ago',\n new: true\n },\n {\n image: 'demo/images/avatar/avatar-square-f-2.jpg',\n name: 'Emily Davis',\n description: 'The project deadline has been updated to September 30th. Please check the details.',\n time: 'Yesterday at 4:35 PM',\n new: false\n }\n ]\n },\n {\n id: 'general',\n data: [\n {\n image: 'demo/images/avatar/avatar-square-f-1.jpg',\n name: 'Alice Johnson',\n description: 'Reminder: Your subscription is about to expire in 3 days. Renew now to avoid interruption.',\n time: '30 minutes ago',\n new: true\n },\n {\n image: 'demo/images/avatar/avatar-square-m-2.jpg',\n name: 'Michael Lee',\n description: 'The server maintenance has been completed successfully. No further downtime is expected.',\n time: 'Yesterday at 2:15 PM',\n new: false\n }\n ]\n },\n {\n id: 'archived',\n data: [\n {\n image: 'demo/images/avatar/avatar-square-m-1.jpg',\n name: 'Lucas Brown',\n description: 'Your appointment with Dr. Anderson has been confirmed for October 12th at 10:00 AM.',\n time: '1 week ago',\n new: true\n },\n {\n image: 'demo/images/avatar/avatar-square-f-2.jpg',\n name: 'Emily Davis',\n description: 'The document you uploaded has been successfully archived for future reference.',\n time: '2 weeks ago',\n new: false\n }\n ]\n }\n ]);\n\n languages = signal([\n { code: 'en', label: 'English', flag: '🇬🇧' },\n { code: 'fr', label: 'French', flag: '🇫🇷' },\n { code: 'es', label: 'Spanish', flag: '🇪🇸' }\n ]);\n\n selectedLanguage = signal('en');\n\n selectedNotificationBar = model(this.notificationsBars()[0].id ?? 'inbox');\n\n selectedNotificationsBarData = computed(() => this.notifications().find((f) => f.id === this.selectedNotificationBar()).data);\n\n onMenuButtonClick() {\n this.layoutService.toggleMenu();\n }\n\n toggleSidebarPin() {\n this.layoutService.toggleSidebarPin();\n }\n\n toggleDarkMode() {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n darkTheme: !state.darkTheme\n }));\n }\n\n showRightMenu() {\n this.layoutService.toggleRightMenu();\n }\n\n onConfigButtonClick() {\n this.layoutService.toggleConfigSidebar();\n }\n\n selectLanguage(code: string) {\n this.selectedLanguage.set(code);\n }\n\n toggleProfileMenu(event: Event) {\n event.stopPropagation();\n this.profileMenuOpen.update((open) => !open);\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (!this.profileMenuOpen()) return;\n\n const target = event.target as Node;\n const insideProfile = this.profileItem?.nativeElement?.contains(target);\n if (!insideProfile) {\n this.profileMenuOpen.set(false);\n }\n }\n\n openSearch() {\n this.searchActive.set(true);\n this.shouldFocusSearch = true;\n }\n\n closeSearch() {\n this.searchActive.set(false);\n }\n\n ngAfterViewChecked() {\n if (this.shouldFocusSearch && this.searchInput) {\n this.searchInput.nativeElement.focus();\n this.shouldFocusSearch = false;\n }\n }\n\n toggleSearchBar() {\n this.layoutService.toggleSearchBar();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, ElementRef, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { filter, Subject, takeUntil } from 'rxjs';\nimport { LayoutService } from '../layout.service';\nimport { AppMenu } from './app.menu';\nimport { AppTopbar } from './app.topbar';\n\nconst BREAKPOINT = 992;\n\n@Component({\n selector: '[app-sidebar]',\n imports: [CommonModule, AppMenu, RouterModule, AppTopbar],\n template: `<nav class=\"layout-sidebar\" aria-label=\"Main navigation\" (mouseleave)=\"onMouseLeave()\">\n <div #menuContainer class=\"layout-menu-container\" (scroll)=\"onMenuScroll()\">\n <div app-menu></div>\n </div>\n <div app-topbar *ngIf=\"isHorizontal()\"></div>\n </nav>`\n})\nexport class AppSidebar implements OnInit, OnDestroy {\n layoutService = inject(LayoutService);\n\n router = inject(Router);\n\n el = inject(ElementRef);\n\n @ViewChild('menuContainer') menuContainer!: ElementRef;\n\n @ViewChild('sidebarRef') sidebarRef!: ElementRef;\n\n private timeout: ReturnType<typeof setTimeout> | null = null;\n\n private observer: IntersectionObserver | null = null;\n\n private outsideClickListener: ((event: MouseEvent) => void) | null = null;\n\n private mediaQuery = window.matchMedia(`(min-width: ${BREAKPOINT}px)`);\n\n private destroy$ = new Subject<void>();\n\n isHorizontal = computed(() => this.layoutService.isHorizontal());\n\n constructor() {\n effect(() => {\n const hasOpenOverlay = this.layoutService.hasOpenOverlay();\n const mobileMenuActive = this.layoutService.layoutState().mobileMenuActive;\n\n if (this.layoutService.isDesktop()) {\n if (hasOpenOverlay) {\n this.bindOutsideClickListener();\n } else {\n this.unbindOutsideClickListener();\n }\n } else {\n if (mobileMenuActive) {\n this.bindOutsideClickListener();\n } else {\n this.unbindOutsideClickListener();\n }\n }\n });\n\n effect(() => {\n const hasOpenOverlaySubmenu = this.layoutService.hasOpenOverlaySubmenu();\n if (this.layoutService.isDesktop()) {\n if (hasOpenOverlaySubmenu) {\n setTimeout(() => this.setupIntersectionObserver());\n } else {\n this.unbindObserver();\n }\n }\n });\n }\n\n ngOnInit() {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroy$)\n )\n .subscribe((event) => {\n const navEvent = event as NavigationEnd;\n this.onRouteChange(navEvent.urlAfterRedirects);\n });\n\n this.onRouteChange(this.router.url);\n\n this.mediaQuery.addEventListener('change', this.screenChangeListener);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.unbindOutsideClickListener();\n this.unbindObserver();\n this.mediaQuery.removeEventListener('change', this.screenChangeListener);\n }\n\n private onRouteChange(path: string) {\n this.layoutService.currentUrl.set(path);\n\n let newActivePath: string | null;\n\n if (this.layoutService.hasOverlaySubmenu() && this.layoutService.isDesktop()) {\n newActivePath = null;\n } else {\n newActivePath = path;\n }\n\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: newActivePath,\n overlayMenuActive: false,\n staticMenuMobileActive: false,\n menuHoverActive: false\n }));\n }\n\n private screenChangeListener = () => {\n if (this.layoutService.hasOverlaySubmenu()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: this.layoutService.isDesktop() ? null : this.router.url,\n menuHoverActive: false\n }));\n this.unbindOutsideClickListener();\n this.unbindObserver();\n }\n };\n\n private bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event: MouseEvent) => {\n if (this.isOutsideClicked(event)) {\n if (this.layoutService.isDesktop()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n overlayMenuActive: false\n }));\n\n if (this.layoutService.hasOverlaySubmenu()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: null,\n menuHoverActive: false\n }));\n }\n } else {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n mobileMenuActive: false\n }));\n }\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n }\n\n private unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n private isOutsideClicked(event: MouseEvent): boolean {\n const topbarButtonEl = document.querySelector('.mobile-menu-button');\n const sidebarEl = this.el.nativeElement;\n\n return !(\n sidebarEl?.isSameNode(event.target as Node) ||\n sidebarEl?.contains(event.target as Node) ||\n topbarButtonEl?.isSameNode(event.target as Node) ||\n topbarButtonEl?.contains(event.target as Node)\n );\n }\n\n onMouseEnter() {}\n\n onMouseLeave() {\n if (!this.layoutService.isDesktop() || !this.layoutService.isRail()) return;\n if (this.layoutService.layoutState().sidebarPinned) return;\n\n if (this.timeout) clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n sidebarExpanded: false\n }));\n }, 300);\n }\n\n onAnchorToggle() {\n this.layoutService.layoutState.update((state) => ({\n ...state,\n anchored: !state.anchored\n }));\n }\n\n onMenuScroll() {\n if (this.menuContainer?.nativeElement) {\n if (this.layoutService.isHorizontal()) {\n const scrollLeft = this.menuContainer.nativeElement.scrollLeft;\n this.menuContainer.nativeElement.style.setProperty('--menu-scroll-x', `-${scrollLeft}px`);\n } else {\n const scrollTop = this.menuContainer.nativeElement.scrollTop;\n this.menuContainer.nativeElement.style.setProperty('--menu-scroll-y', `-${scrollTop}px`);\n }\n }\n\n if (this.layoutService.hasOverlaySubmenu() && this.layoutService.isDesktop()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: null,\n menuHoverActive: false\n }));\n }\n }\n\n private setupIntersectionObserver() {\n if (!this.menuContainer?.nativeElement) return;\n\n if (this.observer) {\n this.observer.disconnect();\n }\n\n const activeMenuItem = this.menuContainer.nativeElement.querySelector('.layout-root-menuitem.active-menuitem');\n if (!activeMenuItem) return;\n\n this.observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (\n this.layoutService.isDesktop() &&\n !entry.isIntersecting &&\n this.layoutService.hasOverlaySubmenu() &&\n this.layoutService.layoutState().activePath\n ) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n activePath: null\n }));\n }\n });\n },\n {\n root: this.menuContainer.nativeElement,\n threshold: 0\n }\n );\n\n this.observer.observe(activeMenuItem);\n }\n\n private unbindObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, inject } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { LayoutService } from '../layout.service';\nimport { AppBreadcrumb } from './app.breadcrumb';\nimport { AppConfigurator } from './app.configurator';\nimport { AppFooter } from './app.footer';\nimport { AppRightMenu } from './app.rightmenu';\nimport { AppSearch } from './app.search';\nimport { AppSidebar } from './app.sidebar';\nimport { AppTopbar } from './app.topbar';\n\n@Component({\n selector: 'app-layout',\n imports: [CommonModule, AppTopbar, AppSidebar, RouterModule, AppConfigurator, AppBreadcrumb, AppFooter, AppSearch, AppRightMenu],\n template: `<div class=\"layout-wrapper\" [ngClass]=\"containerClass()\">\n <div app-topbar></div>\n <div class=\"layout-body\">\n <div app-sidebar></div>\n <div class=\"layout-content-wrapper\">\n <div class=\"layout-content-wrapper-inside\">\n <main class=\"layout-content\">\n <div app-breadcrumb></div>\n <router-outlet></router-outlet>\n </main>\n <div app-footer></div>\n </div>\n </div>\n </div>\n <app-configurator />\n <div app-search></div>\n <div app-rightmenu></div>\n <div class=\"layout-mask\"></div>\n </div> `\n})\nexport class AppLayout {\n layoutService = inject(LayoutService);\n\n constructor() {\n effect(() => {\n const state = this.layoutService.layoutState();\n if (state.mobileMenuActive) {\n document.body.classList.add('blocked-scroll');\n } else {\n document.body.classList.remove('blocked-scroll');\n }\n });\n }\n\n containerClass = computed(() => {\n const layoutConfig = this.layoutService.layoutConfig();\n const layoutState = this.layoutService.layoutState();\n return {\n 'layout-overlay': layoutConfig.menuMode === 'overlay',\n 'layout-static': layoutConfig.menuMode === 'static',\n 'layout-slim': layoutConfig.menuMode === 'slim',\n 'layout-horizontal': layoutConfig.menuMode === 'horizontal',\n 'layout-compact': layoutConfig.menuMode === 'compact',\n 'layout-reveal': layoutConfig.menuMode === 'reveal',\n 'layout-drawer': layoutConfig.menuMode === 'drawer',\n 'layout-overlay-active': layoutState.overlayMenuActive,\n 'layout-mobile-active': layoutState.mobileMenuActive,\n 'layout-sidebar-expanded': layoutState.sidebarExpanded,\n 'layout-sidebar-rail': !layoutState.sidebarPinned && layoutConfig.menuMode === 'static',\n 'layout-sidebar-anchored': layoutState.anchored,\n [`layout-card-${layoutConfig.cardStyle}`]: true,\n [`layout-sidebar-${layoutConfig.menuTheme}`]: true\n };\n });\n}\n","import { LayoutService } from '../layout.service';\nimport { Component, inject } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AppConfigurator } from './app.configurator';\n\n@Component({\n selector: 'auth-layout',\n imports: [RouterModule, AppConfigurator],\n template: `\n <main>\n <router-outlet></router-outlet>\n </main>\n <button class=\"layout-config-button config-link\" (click)=\"layoutService.toggleConfigSidebar()\">\n <i class=\"pi pi-cog\"></i>\n </button>\n <app-configurator location=\"landing\" />\n `\n})\nexport class AuthLayout {\n layoutService: LayoutService = inject(LayoutService);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nlet aiCardBgFilterId = 0;\n\n/**\n * Animated brand-tinted background for AI insight cards: shifting host background\n * plus soft blurred SVG blobs with staggered fill animation.\n *\n * Project card content with `<ng-content />` so it stacks above the SVG layer.\n */\n@Component({\n selector: 'ux-ai-card-bg',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ux-ai-card-bg block box-border',\n '[attr.data-ai-bg]': 'true'\n },\n styles: `\n :host {\n --ux-ai-bg-from: #cce5ff;\n --ux-ai-bg-to:rgb(255, 236, 254);\n --ux-ai-fg-from:rgb(188, 214, 255);\n --ux-ai-fg-to:rgb(246, 216, 255);\n position: relative;\n overflow: hidden;\n isolation: isolate;\n contain: paint;\n animation: ux-ai-bg-move 5s ease-in-out infinite;\n will-change: background-color;\n }\n\n :host-context([class*='app-dark']) {\n --ux-ai-bg-from:rgb(0, 32, 69);\n --ux-ai-bg-to:rgb(47, 18, 116);\n --ux-ai-fg-from:rgb(0, 20, 47);\n --ux-ai-fg-to:rgb(76, 1, 71);\n }\n\n :host > :not(svg) {\n position: relative;\n z-index: 1;\n }\n\n :host svg.ux-ai-card-bg__svg {\n position: absolute;\n inset: 0;\n z-index: 0;\n height: 100%;\n width: 100%;\n max-height: 100%;\n overflow: hidden;\n pointer-events: none;\n }\n\n .ux-ai-fg {\n will-change: fill;\n animation: ux-ai-fg-move 6s ease-in-out infinite;\n }\n\n .ux-ai-fg--1 {\n animation-delay: 0s;\n }\n\n .ux-ai-fg--2 {\n animation-delay: 2s;\n }\n\n .ux-ai-fg--3 {\n animation-delay: 4s;\n }\n\n @keyframes ux-ai-bg-move {\n 0%,\n 100% {\n background-color: var(--ux-ai-bg-from);\n }\n 50% {\n background-color: var(--ux-ai-bg-to);\n }\n }\n\n @keyframes ux-ai-fg-move {\n 0%,\n 100% {\n fill: var(--ux-ai-fg-from);\n }\n 50% {\n fill: var(--ux-ai-fg-to);\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n :host {\n animation: none;\n background-color: var(--ux-ai-bg-from);\n }\n\n .ux-ai-fg {\n animation: none;\n fill: var(--ux-ai-fg-from);\n }\n }\n `,\n template: `\n <svg\n class=\"ux-ai-card-bg__svg\"\n viewBox=\"0 0 400 300\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <defs>\n <filter [attr.id]=\"blurFilterId\" x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\">\n <feGaussianBlur stdDeviation=\"30\" />\n </filter>\n </defs>\n <ellipse\n class=\"ux-ai-fg ux-ai-fg--1\"\n cx=\"60\"\n cy=\"50\"\n rx=\"120\"\n ry=\"100\"\n opacity=\"0.35\"\n [attr.filter]=\"blurFilterUrl\"\n />\n <ellipse\n class=\"ux-ai-fg ux-ai-fg--2\"\n cx=\"320\"\n cy=\"80\"\n rx=\"100\"\n ry=\"80\"\n opacity=\"0.3\"\n [attr.filter]=\"blurFilterUrl\"\n />\n <ellipse\n class=\"ux-ai-fg ux-ai-fg--3\"\n cx=\"200\"\n cy=\"240\"\n rx=\"140\"\n ry=\"90\"\n opacity=\"0.25\"\n [attr.filter]=\"blurFilterUrl\"\n />\n </svg>\n <ng-content />\n `\n})\nexport class AiCardBgComponent {\n readonly blurFilterId = `uxAiBlur_${++aiCardBgFilterId}`;\n\n get blurFilterUrl(): string {\n return `url(#${this.blurFilterId})`;\n }\n}\n","/*\n * Public API Surface of @unopsitg/ux\n */\nexport * from './lib/theme';\nexport * from './lib/layout';\nexport * from './lib/components';\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","brandPresetMap","i1","i5","i4","i3","i6"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;;;;;;AAOG;AAEI,MAAM,eAAe,GAAG;IAC3B,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IAC1L,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACvL,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACtL,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACzL,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACzL,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACxL,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACvL,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IAC5L,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACxL,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@unopsitg/ux",
|
|
3
|
+
"version": "21.0.2",
|
|
4
|
+
"description": "UNOPS Angular 21 layout shell, brand theme (PrimeNG / PrimeUIX), and shared types",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"angular",
|
|
7
|
+
"unops",
|
|
8
|
+
"primeng",
|
|
9
|
+
"layout"
|
|
10
|
+
],
|
|
11
|
+
"license": "UNLICENSED",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/opp_plus/unops-ng21_ux.git"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"registry": "https://registry.npmjs.org/",
|
|
18
|
+
"access": "public"
|
|
19
|
+
},
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"@angular/common": "^21",
|
|
22
|
+
"@angular/core": "^21",
|
|
23
|
+
"@angular/forms": "^21",
|
|
24
|
+
"@angular/router": "^21",
|
|
25
|
+
"@primeuix/themes": "^2.0.0",
|
|
26
|
+
"primeng": "^21.0.4",
|
|
27
|
+
"primeicons": "^7.0.0",
|
|
28
|
+
"rxjs": "~7.8.0"
|
|
29
|
+
},
|
|
30
|
+
"module": "fesm2022/unopsitg-ux.mjs",
|
|
31
|
+
"typings": "types/unopsitg-ux.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
"./package.json": {
|
|
34
|
+
"default": "./package.json"
|
|
35
|
+
},
|
|
36
|
+
".": {
|
|
37
|
+
"types": "./types/unopsitg-ux.d.ts",
|
|
38
|
+
"default": "./fesm2022/unopsitg-ux.mjs"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"sideEffects": false,
|
|
42
|
+
"type": "module",
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"tslib": "^2.3.0"
|
|
45
|
+
}
|
|
46
|
+
}
|