@edsis/ui 0.0.2 → 0.0.3
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/empty/README.md +1 -1
- package/fesm2022/edsis-ui-accordion.mjs +15 -15
- package/fesm2022/edsis-ui-alert-dialog.mjs +27 -27
- package/fesm2022/edsis-ui-alert.mjs +12 -12
- package/fesm2022/edsis-ui-aspect-ratio.mjs +3 -3
- package/fesm2022/edsis-ui-avatar.mjs +18 -18
- package/fesm2022/edsis-ui-badge.mjs +3 -3
- package/fesm2022/edsis-ui-breadcrumb.mjs +21 -21
- package/fesm2022/edsis-ui-button-group.mjs +9 -9
- package/fesm2022/edsis-ui-button.mjs +3 -3
- package/fesm2022/edsis-ui-calendar.mjs +3 -3
- package/fesm2022/edsis-ui-card.mjs +21 -21
- package/fesm2022/edsis-ui-carousel.mjs +18 -18
- package/fesm2022/edsis-ui-chart.mjs +80 -78
- package/fesm2022/edsis-ui-chart.mjs.map +1 -1
- package/fesm2022/edsis-ui-checkbox.mjs +3 -3
- package/fesm2022/edsis-ui-collapsible.mjs +12 -12
- package/fesm2022/edsis-ui-combobox.mjs +3 -3
- package/fesm2022/edsis-ui-command.mjs +41 -35
- package/fesm2022/edsis-ui-command.mjs.map +1 -1
- package/fesm2022/edsis-ui-composer.mjs +21 -21
- package/fesm2022/edsis-ui-context-menu.mjs +13 -7
- package/fesm2022/edsis-ui-context-menu.mjs.map +1 -1
- package/fesm2022/edsis-ui-date-picker.mjs +3 -3
- package/fesm2022/edsis-ui-dialog.mjs +27 -23
- package/fesm2022/edsis-ui-dialog.mjs.map +1 -1
- package/fesm2022/edsis-ui-dropdown-menu.mjs +58 -46
- package/fesm2022/edsis-ui-dropdown-menu.mjs.map +1 -1
- package/fesm2022/edsis-ui-editor.mjs +22 -20
- package/fesm2022/edsis-ui-editor.mjs.map +1 -1
- package/fesm2022/edsis-ui-empty.mjs +18 -18
- package/fesm2022/edsis-ui-form.mjs +38 -38
- package/fesm2022/edsis-ui-form.mjs.map +1 -1
- package/fesm2022/edsis-ui-hover-card.mjs +34 -13
- package/fesm2022/edsis-ui-hover-card.mjs.map +1 -1
- package/fesm2022/edsis-ui-input-group.mjs +18 -18
- package/fesm2022/edsis-ui-input-otp.mjs +15 -15
- package/fesm2022/edsis-ui-input.mjs +3 -3
- package/fesm2022/edsis-ui-item.mjs +30 -30
- package/fesm2022/edsis-ui-kanban.mjs +27 -27
- package/fesm2022/edsis-ui-kbd.mjs +6 -6
- package/fesm2022/edsis-ui-label.mjs +3 -3
- package/fesm2022/edsis-ui-layout-services.mjs +6 -0
- package/fesm2022/edsis-ui-layout-services.mjs.map +1 -0
- package/fesm2022/edsis-ui-layout-types.mjs +6 -0
- package/fesm2022/edsis-ui-layout-types.mjs.map +1 -0
- package/fesm2022/edsis-ui-layout.mjs +572 -0
- package/fesm2022/edsis-ui-layout.mjs.map +1 -0
- package/fesm2022/edsis-ui-menubar.mjs +22 -16
- package/fesm2022/edsis-ui-menubar.mjs.map +1 -1
- package/fesm2022/edsis-ui-native-select.mjs +9 -9
- package/fesm2022/edsis-ui-nav-service.mjs +343 -0
- package/fesm2022/edsis-ui-nav-service.mjs.map +1 -0
- package/fesm2022/edsis-ui-nav.mjs +2340 -0
- package/fesm2022/edsis-ui-nav.mjs.map +1 -0
- package/fesm2022/edsis-ui-navigation-menu.mjs +30 -24
- package/fesm2022/edsis-ui-navigation-menu.mjs.map +1 -1
- package/fesm2022/edsis-ui-page.mjs +397 -0
- package/fesm2022/edsis-ui-page.mjs.map +1 -0
- package/fesm2022/edsis-ui-pagination.mjs +3 -3
- package/fesm2022/edsis-ui-pillbox.mjs +16 -16
- package/fesm2022/edsis-ui-pillbox.mjs.map +1 -1
- package/fesm2022/edsis-ui-popover.mjs +16 -10
- package/fesm2022/edsis-ui-popover.mjs.map +1 -1
- package/fesm2022/edsis-ui-progress.mjs +3 -3
- package/fesm2022/edsis-ui-radio.mjs +6 -6
- package/fesm2022/edsis-ui-resizable.mjs +12 -12
- package/fesm2022/edsis-ui-scroll-area.mjs +3 -3
- package/fesm2022/edsis-ui-select.mjs +6 -6
- package/fesm2022/edsis-ui-separator.mjs +3 -3
- package/fesm2022/edsis-ui-sheet.mjs +27 -23
- package/fesm2022/edsis-ui-sheet.mjs.map +1 -1
- package/fesm2022/edsis-ui-skeleton.mjs +3 -3
- package/fesm2022/edsis-ui-slider.mjs +6 -6
- package/fesm2022/edsis-ui-spinner.mjs +3 -3
- package/fesm2022/edsis-ui-switch.mjs +3 -3
- package/fesm2022/edsis-ui-table.mjs +24 -24
- package/fesm2022/edsis-ui-tabs.mjs +18 -18
- package/fesm2022/edsis-ui-textarea.mjs +3 -3
- package/fesm2022/edsis-ui-theme.mjs +209 -0
- package/fesm2022/edsis-ui-theme.mjs.map +1 -0
- package/fesm2022/edsis-ui-timeline.mjs +18 -18
- package/fesm2022/edsis-ui-toast.mjs +3 -3
- package/fesm2022/edsis-ui-toggle-group.mjs +9 -9
- package/fesm2022/edsis-ui-toggle.mjs +3 -3
- package/fesm2022/edsis-ui-tooltip.mjs +12 -12
- package/layout/README.md +454 -0
- package/nav/README.md +96 -0
- package/package.json +31 -2
- package/page/README.md +46 -0
- package/types/edsis-ui-command.d.ts +4 -1
- package/types/edsis-ui-context-menu.d.ts +2 -1
- package/types/edsis-ui-dropdown-menu.d.ts +5 -2
- package/types/edsis-ui-editor.d.ts +1 -0
- package/types/edsis-ui-hover-card.d.ts +3 -1
- package/types/edsis-ui-layout-services.d.ts +1 -0
- package/types/edsis-ui-layout-types.d.ts +1 -0
- package/types/edsis-ui-layout.d.ts +153 -0
- package/types/edsis-ui-menubar.d.ts +2 -0
- package/types/edsis-ui-nav-service.d.ts +138 -0
- package/types/edsis-ui-nav.d.ts +205 -0
- package/types/edsis-ui-navigation-menu.d.ts +2 -0
- package/types/edsis-ui-page.d.ts +137 -0
- package/types/edsis-ui-popover.d.ts +2 -1
- package/types/edsis-ui-theme.d.ts +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edsis-ui-nav.mjs","sources":["../../../library/ui/nav/icon/nav-icon.directive.ts","../../../library/ui/nav/service/nav.service.ts","../../../library/ui/nav/types/nav.types.ts","../../../library/ui/nav/internal/nav.controller.ts","../../../library/ui/nav/item/nav-item-content.component.ts","../../../library/ui/nav/item/nav-item.component.ts","../../../library/ui/nav/orientation/horizontal/nav-horizontal.component.ts","../../../library/ui/nav/orientation/horizontal/flyout/nav-flyout.component.ts","../../../library/ui/nav/orientation/horizontal/navbar/nav-navbar.component.ts","../../../library/ui/nav/orientation/vertical/sidebar/nav-sidebar.component.ts","../../../library/ui/nav/orientation/vertical/dockbar/nav-dockbar.component.ts","../../../library/ui/nav/internal/nav-outlet.component.ts","../../../library/ui/nav/shell/shared/nav-shell.token.ts","../../../library/ui/nav/shell/footer/nav-footer.component.ts","../../../library/ui/nav/shell/header/nav-header.component.ts","../../../library/ui/nav/shell/main/nav-main.component.ts","../../../library/ui/nav/nav.component.ts","../../../library/ui/nav/shell/collapse/nav-collapse.directive.ts","../../../library/ui/nav/edsis-ui-nav.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\nimport type { UiNavIconContext } from '../types/nav.types';\n\n@Directive({\n selector: 'ng-template[uiNavIcon]',\n})\nexport class NavIconDirective {\n readonly template = inject<TemplateRef<UiNavIconContext>>(TemplateRef);\n\n static ngTemplateContextGuard(_directive: NavIconDirective, context: unknown): context is UiNavIconContext {\n return true;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, computed, inject, signal, type Signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, type IsActiveMatchOptions } from '@angular/router';\nimport type {\n UiNavAppearance,\n UiNavDockbarMode,\n UiNavIconContext,\n UiNavNormalizedItem,\n UiNavOrientation,\n UiNavPosition,\n UiNavRegisterInput,\n UiNavState,\n} from './nav.service.types';\n\nconst DEFAULT_NAV_ID = 'default';\nconst DEFAULT_VERTICAL_APPEARANCE: UiNavAppearance = 'sidebar';\nconst DEFAULT_HORIZONTAL_APPEARANCE: UiNavAppearance = 'navbar';\nconst DEFAULT_POSITION: UiNavPosition = 'left';\nconst DEFAULT_DOCKBAR_MODE: UiNavDockbarMode = 'sticky';\nconst VERTICAL_APPEARANCE_STORAGE_KEY = 'nav-vertical-appearance';\nconst HORIZONTAL_APPEARANCE_STORAGE_KEY = 'nav-horizontal-appearance';\n\n@Injectable({ providedIn: 'root' })\nexport class NavService {\n private readonly documentRef = inject(DOCUMENT, { optional: true });\n private readonly router = inject(Router, { optional: true });\n private readonly routerUrl = signal(this.router?.url ?? '/');\n private readonly states = signal<Record<string, UiNavState>>({});\n private readonly openPanelKeys = signal<Record<string, string | null>>({});\n private readonly drawerOpenState = signal<Record<string, boolean>>({});\n\n readonly openPanelKey = computed(() => this.openPanelKeys()[DEFAULT_NAV_ID] ?? null);\n\n readonly exactMatchOptions: IsActiveMatchOptions = {\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'exact',\n matrixParams: 'exact',\n };\n\n readonly subsetMatchOptions: IsActiveMatchOptions = {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored',\n };\n\n constructor() {\n this.ensureAppearanceDefaults();\n\n this.router?.events.pipe(takeUntilDestroyed()).subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.routerUrl.set(event.urlAfterRedirects);\n }\n });\n }\n\n register(input: UiNavRegisterInput): UiNavState {\n this.ensureAppearanceDefaults();\n\n const state = this.resolveState(input);\n this.states.update((states) => ({ ...states, [state.id]: state }));\n this.persistState(state);\n\n return state;\n }\n\n unregister(id: string): void {\n const navId = this.normalizeId(id);\n this.states.update((states) => this.withoutKey(states, navId));\n this.openPanelKeys.update((state) => this.withoutKey(state, navId));\n this.drawerOpenState.update((state) => this.withoutKey(state, navId));\n }\n\n state(id: string): Signal<UiNavState | null> {\n const navId = this.normalizeId(id);\n return computed(() => this.states()[navId] ?? null);\n }\n\n currentState(id: string): UiNavState | null {\n return this.states()[this.normalizeId(id)] ?? null;\n }\n\n currentPanelKey(id: string): string | null {\n return this.openPanelKeys()[this.normalizeId(id)] ?? null;\n }\n\n update(id: string, patch: Partial<UiNavRegisterInput>): UiNavState {\n const navId = this.normalizeId(id);\n const current =\n this.states()[navId] ?? this.resolveState({ id: navId, orientation: patch.orientation ?? 'vertical' });\n\n return this.register({\n id: navId,\n orientation: patch.orientation ?? current.orientation,\n appearance: patch.appearance ?? current.appearance,\n position: patch.position ?? current.position,\n collapsed: patch.collapsed ?? current.collapsed,\n dockbarMode: patch.dockbarMode ?? current.dockbarMode,\n });\n }\n\n setAppearance(id: string, appearance: UiNavAppearance): UiNavState {\n return this.update(id, { appearance });\n }\n\n setPosition(id: string, position: UiNavPosition): UiNavState {\n return this.update(id, { position });\n }\n\n setCollapsed(id: string, collapsed: boolean): UiNavState {\n return this.update(id, { collapsed });\n }\n\n toggleCollapsed(id: string): UiNavState {\n const navId = this.normalizeId(id);\n const current = this.states()[navId] ?? this.resolveState({ id: navId, orientation: 'vertical' });\n\n return this.setCollapsed(navId, !current.collapsed);\n }\n\n setDockbarMode(id: string, mode: UiNavDockbarMode): UiNavState {\n return this.update(id, { dockbarMode: mode });\n }\n\n isRouterItem(item: UiNavNormalizedItem): boolean {\n return !!item.link && !item.externalLink;\n }\n\n hrefFor(item: UiNavNormalizedItem): string | null {\n if (item.href) {\n return item.href;\n }\n\n if (item.externalLink && typeof item.link === 'string') {\n return item.link;\n }\n\n return null;\n }\n\n relFor(item: UiNavNormalizedItem): string | null {\n if (item.rel) {\n return item.rel;\n }\n\n return item.target === '_blank' || item.externalLink ? 'noopener noreferrer' : null;\n }\n\n routerLinkActiveOptions(item: UiNavNormalizedItem): IsActiveMatchOptions {\n return item.isActiveMatchOptions ?? (item.exactMatch ? this.exactMatchOptions : this.subsetMatchOptions);\n }\n\n itemRole(orientation: UiNavOrientation, level: number): 'menuitem' | null {\n return orientation === 'horizontal' || level > 0 ? 'menuitem' : null;\n }\n\n compactLabel(item: UiNavNormalizedItem, compact: boolean): string | null {\n return compact ? (item.tooltip ?? item.title ?? null) : null;\n }\n\n titleFor(item: UiNavNormalizedItem, compact: boolean): string | null {\n return item.tooltip ?? (compact ? (item.title ?? null) : null);\n }\n\n compactFallback(item: UiNavNormalizedItem): string {\n return (item.title ?? item.id ?? '?').trim().slice(0, 2);\n }\n\n iconContext(\n item: UiNavNormalizedItem,\n active: boolean,\n level: number,\n orientation: UiNavOrientation,\n ): UiNavIconContext {\n return {\n $implicit: item.icon ?? '',\n icon: item.icon ?? '',\n item: item.source,\n active,\n orientation,\n level,\n };\n }\n\n isItemActive(item: UiNavNormalizedItem, activeIds: ReadonlySet<string>, explicitActiveUrl: string | null): boolean {\n if (item.active || activeIds.has(item.stateId) || activeIds.has(item.key)) {\n return true;\n }\n\n if (this.matchesActiveUrl(item, explicitActiveUrl)) {\n return true;\n }\n\n return item.children.some((child) => this.isItemActive(child, activeIds, explicitActiveUrl));\n }\n\n isPanelOpen(navIdOrItem: string | UiNavNormalizedItem, item?: UiNavNormalizedItem): boolean {\n const { navId, navItem } = this.resolvePanelArgs(navIdOrItem, item);\n\n return this.openPanelKeys()[navId] === navItem.key;\n }\n\n openPanel(navIdOrItem: string | UiNavNormalizedItem, item?: UiNavNormalizedItem): void {\n const { navId, navItem } = this.resolvePanelArgs(navIdOrItem, item);\n\n if (navItem.disabled) {\n return;\n }\n\n this.openPanelKeys.update((state) => ({ ...state, [navId]: navItem.key }));\n }\n\n togglePanel(navIdOrItem: string | UiNavNormalizedItem, item?: UiNavNormalizedItem): void {\n const { navId, navItem } = this.resolvePanelArgs(navIdOrItem, item);\n\n if (navItem.disabled) {\n return;\n }\n\n this.openPanelKeys.update((state) => ({\n ...state,\n [navId]: state[navId] === navItem.key ? null : navItem.key,\n }));\n }\n\n closePanel(id = DEFAULT_NAV_ID): void {\n const navId = this.normalizeId(id);\n this.openPanelKeys.update((state) => ({ ...state, [navId]: null }));\n }\n\n isDrawerOpen(id: string): boolean {\n return this.drawerOpenState()[this.normalizeId(id)] ?? false;\n }\n\n openDrawer(id: string): void {\n const navId = this.normalizeId(id);\n this.drawerOpenState.update((state) => ({ ...state, [navId]: true }));\n }\n\n toggleDrawer(id: string): void {\n const navId = this.normalizeId(id);\n this.drawerOpenState.update((state) => ({ ...state, [navId]: !(state[navId] ?? false) }));\n }\n\n closeDrawer(id: string): void {\n const navId = this.normalizeId(id);\n this.drawerOpenState.update((state) => ({ ...state, [navId]: false }));\n }\n\n private matchesActiveUrl(item: UiNavNormalizedItem, explicitActiveUrl: string | null): boolean {\n if (!item.link || item.externalLink || typeof item.link !== 'string') {\n return false;\n }\n\n const activeUrl = explicitActiveUrl ?? this.routerUrl();\n const link = item.link;\n\n if (link === '/') {\n return activeUrl === '/';\n }\n\n if (item.exactMatch || item.isActiveMatchOptions?.paths === 'exact') {\n return activeUrl === link;\n }\n\n return activeUrl === link || activeUrl.startsWith(`${link}/`) || activeUrl.startsWith(`${link}?`);\n }\n\n private resolveState(input: UiNavRegisterInput): UiNavState {\n const id = this.normalizeId(input.id);\n const orientation = input.orientation;\n\n return {\n id,\n orientation,\n appearance: this.resolveAppearance(id, orientation, input.appearance),\n position: this.resolvePosition(id, input.position),\n collapsed: this.resolveCollapsed(id, input.collapsed),\n dockbarMode: this.resolveDockbarMode(id, input.dockbarMode),\n };\n }\n\n private resolveAppearance(\n id: string,\n orientation: UiNavOrientation,\n appearance: UiNavAppearance | null | undefined,\n ): UiNavAppearance {\n if (this.isAppearanceForOrientation(appearance, orientation)) {\n return appearance;\n }\n\n const stored = this.readStorage(this.instanceStorageKey(id, 'appearance'));\n if (this.isAppearanceForOrientation(stored, orientation)) {\n return stored;\n }\n\n return this.readOrientationAppearance(orientation);\n }\n\n private resolvePosition(id: string, position: UiNavPosition | null | undefined): UiNavPosition {\n if (this.isPosition(position)) {\n return position;\n }\n\n const stored = this.readStorage(this.instanceStorageKey(id, 'position'));\n\n return this.isPosition(stored) ? stored : DEFAULT_POSITION;\n }\n\n private resolveCollapsed(id: string, collapsed: boolean | null | undefined): boolean {\n if (typeof collapsed === 'boolean') {\n return collapsed;\n }\n\n const stored = this.readStorage(this.instanceStorageKey(id, 'collapsed'));\n\n if (stored === 'true') {\n return true;\n }\n\n if (stored === 'false') {\n return false;\n }\n\n return false;\n }\n\n private resolveDockbarMode(id: string, mode: UiNavDockbarMode | null | undefined): UiNavDockbarMode {\n if (this.isDockbarMode(mode)) {\n return mode;\n }\n\n const stored = this.readStorage(this.instanceStorageKey(id, 'dockbar-mode'));\n\n return this.isDockbarMode(stored) ? stored : DEFAULT_DOCKBAR_MODE;\n }\n\n private persistState(state: UiNavState): void {\n this.writeStorage(this.instanceStorageKey(state.id, 'orientation'), state.orientation);\n this.writeStorage(this.instanceStorageKey(state.id, 'appearance'), state.appearance);\n this.writeStorage(this.instanceStorageKey(state.id, 'position'), state.position);\n this.writeStorage(this.instanceStorageKey(state.id, 'collapsed'), String(state.collapsed));\n this.writeStorage(this.instanceStorageKey(state.id, 'dockbar-mode'), state.dockbarMode);\n }\n\n private readOrientationAppearance(orientation: UiNavOrientation): UiNavAppearance {\n const key = orientation === 'vertical' ? VERTICAL_APPEARANCE_STORAGE_KEY : HORIZONTAL_APPEARANCE_STORAGE_KEY;\n const fallback = orientation === 'vertical' ? DEFAULT_VERTICAL_APPEARANCE : DEFAULT_HORIZONTAL_APPEARANCE;\n const stored = this.readStorage(key);\n\n if (this.isAppearanceForOrientation(stored, orientation)) {\n return stored;\n }\n\n this.writeStorage(key, fallback);\n\n return fallback;\n }\n\n private ensureAppearanceDefaults(): void {\n if (!this.isVerticalAppearance(this.readStorage(VERTICAL_APPEARANCE_STORAGE_KEY))) {\n this.writeStorage(VERTICAL_APPEARANCE_STORAGE_KEY, DEFAULT_VERTICAL_APPEARANCE);\n }\n\n if (!this.isHorizontalAppearance(this.readStorage(HORIZONTAL_APPEARANCE_STORAGE_KEY))) {\n this.writeStorage(HORIZONTAL_APPEARANCE_STORAGE_KEY, DEFAULT_HORIZONTAL_APPEARANCE);\n }\n }\n\n private storage(): Storage | null {\n try {\n return this.documentRef?.defaultView?.localStorage ?? null;\n } catch {\n return null;\n }\n }\n\n private readStorage(key: string): string | null {\n try {\n return this.storage()?.getItem(key) ?? null;\n } catch {\n return null;\n }\n }\n\n private writeStorage(key: string, value: string): void {\n try {\n this.storage()?.setItem(key, value);\n } catch {\n return;\n }\n }\n\n private instanceStorageKey(id: string, property: string): string {\n return `nav:${id}:${property}`;\n }\n\n private normalizeId(id: string): string {\n return id.trim() || DEFAULT_NAV_ID;\n }\n\n private withoutKey<T>(record: Record<string, T>, key: string): Record<string, T> {\n const next = { ...record };\n delete next[key];\n\n return next;\n }\n\n private resolvePanelArgs(\n navIdOrItem: string | UiNavNormalizedItem,\n item: UiNavNormalizedItem | undefined,\n ): { navId: string; navItem: UiNavNormalizedItem } {\n if (typeof navIdOrItem === 'string') {\n return { navId: this.normalizeId(navIdOrItem), navItem: item as UiNavNormalizedItem };\n }\n\n return { navId: DEFAULT_NAV_ID, navItem: navIdOrItem };\n }\n\n private isAppearanceForOrientation(\n value: string | null | undefined,\n orientation: UiNavOrientation,\n ): value is UiNavAppearance {\n return orientation === 'vertical' ? this.isVerticalAppearance(value) : this.isHorizontalAppearance(value);\n }\n\n private isVerticalAppearance(value: string | null | undefined): value is 'sidebar' | 'dockbar' {\n return value === 'sidebar' || value === 'dockbar';\n }\n\n private isHorizontalAppearance(value: string | null | undefined): value is 'navbar' | 'flyout' {\n return value === 'navbar' || value === 'flyout';\n }\n\n private isPosition(value: string | null | undefined): value is UiNavPosition {\n return value === 'left' || value === 'right';\n }\n\n private isDockbarMode(value: string | null | undefined): value is UiNavDockbarMode {\n return value === 'drawer' || value === 'sticky';\n }\n}\n","import type { IsActiveMatchOptions, Params, QueryParamsHandling, UrlTree } from '@angular/router';\n\nexport type UiNavOrientation = 'vertical' | 'horizontal';\n\nexport type UiNavVerticalAppearance = 'sidebar' | 'dockbar';\nexport type UiNavHorizontalAppearance = 'navbar' | 'flyout';\nexport type UiNavAppearance = UiNavVerticalAppearance | UiNavHorizontalAppearance;\nexport type UiNavCollapseTree = 'stairs' | 'straight';\nexport type UiNavPosition = 'left' | 'right';\nexport type UiNavDockbarMode = 'drawer' | 'sticky';\n\nexport interface UiNavRegisterInput {\n readonly id: string;\n readonly orientation: UiNavOrientation;\n readonly appearance?: UiNavAppearance | null;\n readonly position?: UiNavPosition | null;\n readonly collapsed?: boolean | null;\n readonly dockbarMode?: UiNavDockbarMode | null;\n}\n\nexport interface UiNavState {\n readonly id: string;\n readonly orientation: UiNavOrientation;\n readonly appearance: UiNavAppearance;\n readonly position: UiNavPosition;\n readonly collapsed: boolean;\n readonly dockbarMode: UiNavDockbarMode;\n}\n\nexport type UiNavItemType =\n | 'item'\n | 'basic'\n | 'aside'\n | 'group'\n | 'collapsible'\n | 'collapsable'\n | 'mega'\n | 'divider'\n | 'spacer';\n\nexport type UiNavNormalizedItemType = 'item' | 'group' | 'collapsible' | 'mega' | 'divider' | 'spacer';\n\nexport type UiNavLink = string | readonly unknown[] | UrlTree;\n\nexport interface UiNavItemClasses {\n readonly title?: string;\n readonly subtitle?: string;\n readonly icon?: string;\n readonly wrapper?: string;\n}\n\nexport interface UiNavItemBadge {\n readonly title?: string;\n readonly classes?: string;\n}\n\nexport type UiNavVisibilityHandler = (item: UiNavItem) => boolean;\nexport type UiNavActionHandler = (item: UiNavItem) => void;\n\nexport interface UiNavItem {\n readonly id?: string;\n readonly type?: UiNavItemType;\n readonly title?: string;\n readonly subtitle?: string;\n readonly active?: boolean;\n readonly disabled?: boolean;\n readonly tooltip?: string;\n readonly classes?: UiNavItemClasses;\n readonly icon?: string;\n readonly badge?: UiNavItemBadge;\n readonly meta?: Record<string, unknown>;\n readonly isHidden?: UiNavVisibilityHandler;\n readonly link?: UiNavLink;\n readonly href?: string;\n readonly fragment?: string;\n readonly preserveFragment?: boolean;\n readonly queryParams?: Params | null;\n readonly queryParamsHandling?: QueryParamsHandling | null;\n readonly externalLink?: boolean;\n readonly target?: '_blank' | '_self' | '_parent' | '_top' | string;\n readonly rel?: string;\n readonly exactMatch?: boolean;\n readonly isActiveMatchOptions?: IsActiveMatchOptions;\n readonly action?: UiNavActionHandler;\n readonly columns?: number;\n readonly children?: readonly UiNavItem[];\n}\n\nexport interface UiNavNormalizedItem extends Omit<UiNavItem, 'children' | 'type'> {\n readonly key: string;\n readonly stateId: string;\n readonly panelId: string;\n readonly type: UiNavNormalizedItemType;\n readonly source: UiNavItem;\n readonly children: readonly UiNavNormalizedItem[];\n}\n\nexport interface UiNavSelection {\n readonly item: UiNavItem;\n readonly key: string;\n readonly type: UiNavNormalizedItemType;\n readonly link?: UiNavLink;\n readonly external: boolean;\n}\n\nexport interface UiNavIconContext {\n readonly $implicit: string;\n readonly icon: string;\n readonly item: UiNavItem;\n readonly active: boolean;\n readonly orientation: UiNavOrientation;\n readonly level: number;\n}\n\nfunction normalizeType(type: UiNavItemType | undefined, hasChildren: boolean): UiNavNormalizedItemType {\n if (type === 'divider' || type === 'spacer' || type === 'group' || type === 'mega') {\n return type;\n }\n\n if (type === 'collapsible' || type === 'collapsable') {\n return 'collapsible';\n }\n\n if (type === 'aside' && hasChildren) {\n return 'collapsible';\n }\n\n if (!type && hasChildren) {\n return 'collapsible';\n }\n\n return 'item';\n}\n\nfunction toKeyPart(value: string): string {\n return value\n .toLowerCase()\n .replace(/[^a-z0-9_-]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n\nfunction itemFallbackKey(item: UiNavItem, index: number): string {\n return toKeyPart(item.title ?? item.link?.toString() ?? item.href ?? `item-${index}`) || `item-${index}`;\n}\n\nfunction normalizeItem(item: UiNavItem, index: number, path: string): UiNavNormalizedItem | null {\n if (item.isHidden?.(item)) {\n return null;\n }\n\n const children = (item.children ?? [])\n .map((child, childIndex) => normalizeItem(child, childIndex, `${path}-${childIndex}`))\n .filter((child): child is UiNavNormalizedItem => child !== null);\n\n const hasChildren = children.length > 0;\n const key = item.id ?? `${path}-${itemFallbackKey(item, index)}`;\n\n return {\n ...item,\n key,\n stateId: item.id ?? key,\n panelId: `ui-nav-panel-${toKeyPart(key) || index}`,\n type: normalizeType(item.type, hasChildren),\n source: item,\n children,\n };\n}\n\nexport function normalizeUiNavItems(items: readonly UiNavItem[]): readonly UiNavNormalizedItem[] {\n return items\n .map((item, index) => normalizeItem(item, index, `ui-nav-${index}`))\n .filter((item): item is UiNavNormalizedItem => item !== null);\n}\n","import { DestroyRef, computed, effect, inject, signal, type Signal } from '@angular/core';\nimport { NavService } from '../service/nav.service';\nimport {\n normalizeUiNavItems,\n type UiNavAppearance,\n type UiNavDockbarMode,\n type UiNavItem,\n type UiNavNormalizedItem,\n type UiNavOrientation,\n type UiNavPosition,\n type UiNavState,\n} from '../types/nav.types';\n\ninterface UiNavControllerInputs {\n readonly navId: Signal<string>;\n readonly data: Signal<readonly UiNavItem[]>;\n readonly items: Signal<readonly UiNavItem[]>;\n readonly orientation: Signal<UiNavOrientation>;\n readonly appearance: Signal<UiNavAppearance | null>;\n readonly position: Signal<UiNavPosition | null>;\n readonly collapsed: Signal<boolean | null>;\n readonly dockbarMode: Signal<UiNavDockbarMode | null>;\n readonly compact: Signal<boolean>;\n readonly activeIds: Signal<ReadonlySet<string> | readonly string[] | null>;\n}\n\nexport interface UiNavController {\n readonly normalizedNavId: Signal<string>;\n readonly normalizedItems: Signal<readonly UiNavNormalizedItem[]>;\n readonly resolvedState: Signal<UiNavState>;\n readonly activeIdSet: Signal<ReadonlySet<string>>;\n toggleCollapsed(): void;\n}\n\nexport function injectUiNavController(inputs: UiNavControllerInputs): UiNavController {\n const nav = inject(NavService);\n const destroyRef = inject(DestroyRef);\n const registeredState = signal<UiNavState | null>(null);\n let previousRegisteredId: string | null = null;\n\n const normalizedNavId = computed(() => normalizeId(inputs.navId()));\n const collapsedPreference = computed(() => inputs.collapsed() ?? (inputs.compact() ? true : null));\n const normalizedItems = computed(() => {\n const data = inputs.data();\n return normalizeUiNavItems(data.length > 0 ? data : inputs.items());\n });\n const fallbackState = computed<UiNavState>(() => ({\n id: normalizedNavId(),\n orientation: inputs.orientation(),\n appearance: fallbackAppearance(inputs.orientation(), inputs.appearance()),\n position: inputs.position() ?? 'left',\n collapsed: collapsedPreference() ?? false,\n dockbarMode: inputs.dockbarMode() ?? 'sticky',\n }));\n const resolvedState = computed(() => nav.currentState(normalizedNavId()) ?? registeredState() ?? fallbackState());\n const activeIdSet = computed(() => {\n const ids = inputs.activeIds();\n if (!ids) {\n return new Set<string>();\n }\n\n return ids instanceof Set ? new Set(ids) : new Set(ids);\n });\n\n effect(() => {\n const nextState = nav.register({\n id: normalizedNavId(),\n orientation: inputs.orientation(),\n appearance: inputs.appearance(),\n position: inputs.position(),\n collapsed: collapsedPreference(),\n dockbarMode: inputs.dockbarMode(),\n });\n\n if (previousRegisteredId && previousRegisteredId !== nextState.id) {\n nav.unregister(previousRegisteredId);\n }\n\n previousRegisteredId = nextState.id;\n registeredState.set(nextState);\n });\n\n destroyRef.onDestroy(() => {\n if (previousRegisteredId) {\n nav.unregister(previousRegisteredId);\n }\n });\n\n return {\n normalizedNavId,\n normalizedItems,\n resolvedState,\n activeIdSet,\n toggleCollapsed: () => nav.toggleCollapsed(normalizedNavId()),\n };\n}\n\nfunction normalizeId(value: string): string {\n return value.trim() || 'default';\n}\n\nfunction fallbackAppearance(orientation: UiNavOrientation, appearance: UiNavAppearance | null): UiNavAppearance {\n if (orientation === 'vertical' && (appearance === 'sidebar' || appearance === 'dockbar')) {\n return appearance;\n }\n\n if (orientation === 'horizontal' && (appearance === 'navbar' || appearance === 'flyout')) {\n return appearance;\n }\n\n return orientation === 'horizontal' ? 'navbar' : 'sidebar';\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { NavIconDirective } from '../icon/nav-icon.directive';\nimport { NavService } from '../service/nav.service';\nimport type { UiNavCollapseTree, UiNavNormalizedItem, UiNavOrientation } from '../types/nav.types';\n\n@Component({\n selector: 'ui-nav-item-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet],\n host: {\n class: 'contents',\n },\n template: `\n @if (item().icon) {\n <span data-ui-nav-icon-slot=\"true\" [class]=\"iconSlotClasses()\">\n @if (iconTemplate(); as customIcon) {\n <ng-container [ngTemplateOutlet]=\"customIcon.template\" [ngTemplateOutletContext]=\"iconContext()\" />\n } @else {\n <span aria-hidden=\"true\" [class]=\"defaultIconClasses()\" [attr.data-icon]=\"item().icon\"></span>\n }\n </span>\n }\n\n @if (!compact()) {\n <span class=\"min-w-0 flex-1\">\n <span [class]=\"titleClasses()\">{{ item().title }}</span>\n @if (showSubtitle()) {\n <span [class]=\"subtitleClasses()\">{{ item().subtitle }}</span>\n }\n </span>\n\n @if (item().badge; as badge) {\n <span [class]=\"badge.classes ?? defaultBadgeClasses()\">{{ badge.title }}</span>\n }\n }\n\n @if (compact() && !item().icon) {\n <span aria-hidden=\"true\" [class]=\"compactFallbackClasses()\">{{ compactFallback() }}</span>\n }\n `,\n})\nexport class NavItemContentComponent {\n private readonly nav = inject(NavService);\n\n readonly item = input.required<UiNavNormalizedItem>();\n readonly active = input<boolean>(false);\n readonly compact = input<boolean>(false);\n readonly orientation = input<UiNavOrientation>('vertical');\n readonly level = input<number>(0);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n\n protected readonly iconSlotClasses = computed(() =>\n cn(\n 'relative z-10 inline-flex shrink-0 items-center justify-center transition-[border-color,background-color,color,box-shadow] duration-200',\n this.orientation() === 'vertical'\n ? this.compact()\n ? 'h-8 w-8 rounded-full border'\n : 'h-7 w-7 rounded-full border'\n : 'h-5 w-5 rounded-full border border-transparent',\n this.usesStraightVerticalSurface() && 'overflow-hidden bg-background/85 backdrop-blur-sm border-transparent',\n this.active() && !this.usesStraightVerticalSurface() ? 'border-primary text-current' : 'border-transparent',\n this.active() && this.usesStraightVerticalSurface() && 'text-current',\n this.compact() && 'mx-auto',\n ),\n );\n protected readonly titleClasses = computed(() =>\n cn('block truncate', this.active() && 'font-semibold text-foreground', this.item().classes?.title),\n );\n protected readonly showSubtitle = computed(\n () => !!this.item().subtitle && !(this.orientation() === 'horizontal' && this.level() === 0),\n );\n protected readonly subtitleClasses = computed(() =>\n cn('block truncate text-xs font-normal text-muted-foreground', this.item().classes?.subtitle),\n );\n protected readonly compactFallbackClasses = computed(() =>\n cn('inline-flex h-5 min-w-5 items-center justify-center text-xs font-semibold uppercase'),\n );\n\n protected readonly defaultBadgeClasses = computed(() =>\n cn(\n 'ml-auto inline-flex h-5 shrink-0 items-center rounded-full px-2 text-xs font-medium',\n this.active() ? 'bg-background text-foreground' : 'bg-muted text-muted-foreground',\n ),\n );\n\n protected readonly defaultIconClasses = computed(() =>\n cn(\n 'inline-flex h-4 w-4 shrink-0 rounded-full border',\n this.usesStraightVerticalSurface()\n ? 'border-transparent bg-transparent'\n : this.active()\n ? 'border-primary'\n : 'border-border bg-muted',\n this.item().classes?.icon,\n ),\n );\n\n protected readonly iconContext = computed(() =>\n this.nav.iconContext(this.item(), this.active(), this.level(), this.orientation()),\n );\n\n protected compactFallback(): string {\n return this.nav.compactFallback(this.item());\n }\n\n private usesStraightVerticalSurface(): boolean {\n return this.orientation() === 'vertical' && !this.compact() && this.collapseTree() === 'straight';\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { cn } from '@edsis/ui/utils';\nimport { NavIconDirective } from '../icon/nav-icon.directive';\nimport { NavService } from '../service/nav.service';\nimport { NavItemContentComponent } from './nav-item-content.component';\nimport type { UiNavCollapseTree, UiNavNormalizedItem, UiNavOrientation, UiNavSelection } from '../types/nav.types';\n\n@Component({\n selector: 'li[ui-nav-item]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink, RouterLinkActive, NavItemContentComponent],\n host: {\n '[class]': 'hostClasses()',\n '[attr.role]': 'hostRole()',\n '[attr.data-ui-nav-item-key]': 'item().key',\n '[attr.aria-hidden]': 'item().type === \"spacer\" ? \"true\" : null',\n },\n template: `\n @switch (item().type) {\n @case ('divider') {\n <span class=\"block h-px w-full bg-border\"></span>\n }\n\n @case ('spacer') {}\n\n @case ('group') {\n @if (!compact() && item().title) {\n <div [id]=\"headingId()\" [class]=\"groupHeadingClasses()\">{{ item().title }}</div>\n }\n\n <ul [class]=\"childListClasses()\" role=\"group\" [attr.aria-labelledby]=\"item().title ? headingId() : null\">\n @for (child of item().children; track child.key; let isFirst = $first; let isLast = $last) {\n <li\n ui-nav-item\n [navId]=\"navId()\"\n [item]=\"child\"\n [level]=\"level() + 1\"\n [orientation]=\"orientation()\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [straightRail]=\"showStraightRailForChildren()\"\n [straightRailActive]=\"isActive()\"\n [firstInBranch]=\"isFirst\"\n [lastInBranch]=\"isLast\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"></li>\n }\n </ul>\n }\n\n @case ('collapsible') {\n <button\n type=\"button\"\n [class]=\"triggerClasses(isActive())\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"item().panelId\"\n [attr.aria-label]=\"compactLabel()\"\n [attr.title]=\"titleFor()\"\n [disabled]=\"item().disabled || null\"\n (click)=\"toggleOpen()\">\n <ui-nav-item-content\n [item]=\"item()\"\n [active]=\"isActive()\"\n [compact]=\"compact()\"\n [orientation]=\"orientation()\"\n [level]=\"level()\"\n [collapseTree]=\"collapseTree()\"\n [iconTemplate]=\"iconTemplate()\" />\n\n @if (!compact()) {\n <span aria-hidden=\"true\" [class]=\"chevronClasses()\">›</span>\n }\n </button>\n\n @if (showChildren()) {\n <ul [id]=\"item().panelId\" [class]=\"childListClasses()\" role=\"group\">\n @for (child of item().children; track child.key; let isFirst = $first; let isLast = $last) {\n <li\n ui-nav-item\n [navId]=\"navId()\"\n [item]=\"child\"\n [level]=\"level() + 1\"\n [orientation]=\"orientation()\"\n [compact]=\"false\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [straightRail]=\"showStraightRailForChildren()\"\n [straightRailActive]=\"isActive()\"\n [firstInBranch]=\"isFirst\"\n [lastInBranch]=\"isLast\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"></li>\n }\n </ul>\n }\n }\n\n @case ('mega') {\n @if (!compact() && item().title) {\n <div [id]=\"headingId()\" [class]=\"groupHeadingClasses()\">{{ item().title }}</div>\n }\n\n <ul [class]=\"childListClasses()\" role=\"group\" [attr.aria-labelledby]=\"item().title ? headingId() : null\">\n @for (child of item().children; track child.key; let isFirst = $first; let isLast = $last) {\n <li\n ui-nav-item\n [navId]=\"navId()\"\n [item]=\"child\"\n [level]=\"level() + 1\"\n [orientation]=\"orientation()\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [straightRail]=\"showStraightRailForChildren()\"\n [straightRailActive]=\"isActive()\"\n [firstInBranch]=\"isFirst\"\n [lastInBranch]=\"isLast\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"></li>\n }\n </ul>\n }\n\n @default {\n @if (isRouterItem()) {\n <a\n [class]=\"leafClasses(routerActive.isActive || isActive())\"\n [routerLink]=\"item().link ?? null\"\n [queryParams]=\"item().queryParams ?? null\"\n [queryParamsHandling]=\"item().queryParamsHandling ?? null\"\n [fragment]=\"item().fragment ?? undefined\"\n [preserveFragment]=\"item().preserveFragment ?? false\"\n [target]=\"item().target ?? undefined\"\n routerLinkActive\n #routerActive=\"routerLinkActive\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n [attr.aria-current]=\"routerActive.isActive || isActive() ? 'page' : null\"\n [attr.aria-disabled]=\"item().disabled || null\"\n [attr.aria-label]=\"compactLabel()\"\n [attr.title]=\"titleFor()\"\n [attr.role]=\"itemRole()\"\n [attr.data-ui-nav-root-item]=\"isHorizontalRoot() ? 'true' : null\"\n (click)=\"selectItem($event)\">\n <ui-nav-item-content\n [item]=\"item()\"\n [active]=\"routerActive.isActive || isActive()\"\n [compact]=\"compact()\"\n [orientation]=\"orientation()\"\n [level]=\"level()\"\n [collapseTree]=\"collapseTree()\"\n [iconTemplate]=\"iconTemplate()\" />\n </a>\n } @else if (hrefFor()) {\n <a\n [class]=\"leafClasses(isActive())\"\n [attr.href]=\"hrefFor()\"\n [attr.target]=\"item().target ?? (item().externalLink ? '_blank' : null)\"\n [attr.rel]=\"relFor()\"\n [attr.aria-current]=\"isActive() ? 'page' : null\"\n [attr.aria-disabled]=\"item().disabled || null\"\n [attr.aria-label]=\"compactLabel()\"\n [attr.title]=\"titleFor()\"\n [attr.role]=\"itemRole()\"\n [attr.data-ui-nav-root-item]=\"isHorizontalRoot() ? 'true' : null\"\n (click)=\"selectItem($event)\">\n <ui-nav-item-content\n [item]=\"item()\"\n [active]=\"isActive()\"\n [compact]=\"compact()\"\n [orientation]=\"orientation()\"\n [level]=\"level()\"\n [collapseTree]=\"collapseTree()\"\n [iconTemplate]=\"iconTemplate()\" />\n </a>\n } @else {\n <button\n type=\"button\"\n [class]=\"leafClasses(isActive())\"\n [disabled]=\"item().disabled || null\"\n [attr.aria-current]=\"isActive() ? 'page' : null\"\n [attr.aria-label]=\"compactLabel()\"\n [attr.title]=\"titleFor()\"\n [attr.role]=\"itemRole()\"\n [attr.data-ui-nav-root-item]=\"isHorizontalRoot() ? 'true' : null\"\n (click)=\"selectItem($event)\">\n <ui-nav-item-content\n [item]=\"item()\"\n [active]=\"isActive()\"\n [compact]=\"compact()\"\n [orientation]=\"orientation()\"\n [level]=\"level()\"\n [collapseTree]=\"collapseTree()\"\n [iconTemplate]=\"iconTemplate()\" />\n </button>\n }\n }\n }\n `,\n})\nexport class NavItemComponent {\n private readonly nav = inject(NavService);\n\n readonly navId = input<string>('default');\n readonly item = input.required<UiNavNormalizedItem>();\n readonly level = input<number>(0);\n readonly orientation = input<UiNavOrientation>('vertical');\n readonly compact = input<boolean>(false);\n readonly itemClass = input<string>('');\n readonly activeIds = input<ReadonlySet<string>>(new Set<string>());\n readonly activeUrl = input<string | null>(null);\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly straightRail = input<boolean>(false);\n readonly straightRailActive = input<boolean>(false);\n readonly firstInBranch = input<boolean>(false);\n readonly lastInBranch = input<boolean>(false);\n readonly openedIds = input<readonly string[]>([]);\n readonly openedIdsChange = output<readonly string[]>();\n readonly itemSelected = output<UiNavSelection>();\n\n private readonly openedIdSet = computed(() => new Set(this.openedIds()));\n\n protected readonly isHorizontalRoot = computed(() => this.orientation() === 'horizontal' && this.level() === 0);\n protected readonly isActive = computed(() => this.nav.isItemActive(this.item(), this.activeIds(), this.activeUrl()));\n protected readonly showChildren = computed(() => !this.compact() && this.isOpen());\n\n protected readonly hostClasses = computed(() => {\n if (this.item().type === 'divider') {\n return this.dividerClasses();\n }\n\n if (this.item().type === 'spacer') {\n return 'flex-1';\n }\n\n if (this.item().type === 'group' || this.item().type === 'mega') {\n return this.groupContainerClasses();\n }\n\n return this.itemContainerClasses();\n });\n\n protected readonly hostRole = computed(() => {\n if (this.item().type === 'divider') {\n return 'separator';\n }\n\n return this.orientation() === 'horizontal' ? 'none' : null;\n });\n\n protected readonly headingId = computed(() => `${this.item().panelId}-heading`);\n\n protected isRouterItem(): boolean {\n return this.nav.isRouterItem(this.item());\n }\n\n protected hrefFor(): string | null {\n return this.nav.hrefFor(this.item());\n }\n\n protected relFor(): string | null {\n return this.nav.relFor(this.item());\n }\n\n protected routerLinkActiveOptions() {\n return this.nav.routerLinkActiveOptions(this.item());\n }\n\n protected itemRole(): 'menuitem' | null {\n return this.nav.itemRole(this.orientation(), this.level());\n }\n\n protected compactLabel(): string | null {\n return this.nav.compactLabel(this.item(), this.compact());\n }\n\n protected titleFor(): string | null {\n return this.nav.titleFor(this.item(), this.compact());\n }\n\n protected isOpen(): boolean {\n return this.openedIdSet().has(this.item().stateId) || this.openedIdSet().has(this.item().key) || this.isActive();\n }\n\n protected toggleOpen(): void {\n if (this.item().disabled) {\n return;\n }\n\n const next = new Set(this.openedIds());\n if (next.has(this.item().stateId)) {\n next.delete(this.item().stateId);\n } else {\n next.add(this.item().stateId);\n }\n\n this.openedIdsChange.emit([...next]);\n }\n\n protected selectItem(event: MouseEvent): void {\n if (this.item().disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.item().action?.(this.item().source);\n this.itemSelected.emit({\n item: this.item().source,\n key: this.item().key,\n type: this.item().type,\n link: this.item().link,\n external: !!this.hrefFor(),\n });\n this.nav.closePanel(this.navId());\n this.nav.closeDrawer(this.navId());\n }\n\n protected leafClasses(active: boolean): string {\n return cn(\n 'ui-nav-item group/nav inline-flex min-w-0 items-center rounded-md text-sm font-medium transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n this.orientation() === 'horizontal' && this.level() === 0 ? 'h-9 px-3 py-2' : 'w-full px-3 py-1.5 text-left',\n this.orientation() === 'horizontal' && this.level() === 0 ? 'gap-3' : 'gap-1.5',\n this.compact() && 'h-10 w-10 justify-center gap-0 px-0 text-center',\n this.interactiveStateClasses(active),\n this.item().disabled && 'pointer-events-none opacity-50',\n this.item().classes?.wrapper,\n this.itemClass(),\n );\n }\n\n protected triggerClasses(active: boolean): string {\n return cn(\n 'ui-nav-trigger group/nav inline-flex min-w-0 items-center rounded-md text-sm font-medium transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n this.orientation() === 'horizontal' && this.level() === 0 ? 'h-9 px-3 py-2' : 'w-full px-3 py-1.5 text-left',\n this.orientation() === 'horizontal' && this.level() === 0 ? 'gap-3' : 'gap-1.5',\n this.compact() && 'h-10 w-10 justify-center gap-0 px-0 text-center',\n this.interactiveStateClasses(active),\n this.item().classes?.wrapper,\n this.itemClass(),\n );\n }\n\n private interactiveStateClasses(active: boolean): string {\n const showsNestedActiveConnector =\n active &&\n this.orientation() === 'vertical' &&\n !this.compact() &&\n this.level() > 1 &&\n this.collapseTree() === 'stairs';\n\n if (this.orientation() === 'vertical' && !this.compact()) {\n return cn(\n 'relative isolate',\n \"before:pointer-events-none before:absolute before:inset-y-0 before:left-2 before:right-2 before:-z-10 before:rounded-md before:border before:border-transparent before:bg-transparent before:transition-colors before:duration-200 before:content-['']\",\n showsNestedActiveConnector &&\n \"after:pointer-events-none after:absolute after:-left-2 after:top-1/2 after:-z-10 after:h-px after:w-5 after:-translate-y-1/2 after:rounded-full after:bg-current/25 after:content-['']\",\n active\n ? 'font-semibold text-foreground hover:before:border-primary'\n : 'text-foreground/80 hover:text-accent-foreground hover:before:border-primary hover:before:bg-accent',\n );\n }\n\n return active ? 'font-semibold text-foreground' : 'text-foreground/80 hover:bg-accent hover:text-accent-foreground';\n }\n\n protected chevronClasses(): string {\n return cn('ml-auto shrink-0 text-base leading-none transition-transform', this.isOpen() && 'rotate-90');\n }\n\n protected itemContainerClasses(): string {\n return cn(\n this.orientation() === 'horizontal' && this.level() === 0 ? 'relative' : 'w-full',\n this.compact() && 'flex justify-center',\n this.straightRailClasses(),\n );\n }\n\n protected groupContainerClasses(): string {\n return cn('w-full', this.level() > 0 && 'pt-2');\n }\n\n protected dividerClasses(): string {\n return cn(this.orientation() === 'horizontal' && this.level() === 0 ? 'mx-1 h-5 w-px' : 'my-2 w-full px-2');\n }\n\n protected groupHeadingClasses(): string {\n return cn(\n 'px-3 py-2 text-xs font-medium uppercase tracking-wide text-muted-foreground',\n this.item().classes?.title,\n );\n }\n\n protected childListClasses(): string {\n const isGroupedBranch = this.item().type === 'group' || this.item().type === 'mega';\n const usesStairsTree = this.collapseTree() === 'stairs';\n\n return cn(\n 'flex list-none flex-col gap-0.5 p-0',\n !this.compact() && 'mt-0.5',\n this.level() >= 0 &&\n !this.compact() &&\n !isGroupedBranch &&\n usesStairsTree &&\n cn(\n \"relative ml-[1.625rem] pl-2 before:absolute before:-top-2 before:bottom-0 before:left-0 before:w-px before:-translate-x-1/2 before:rounded-full before:content-['']\",\n this.isActive() ? 'before:bg-current/25' : 'before:bg-border',\n ),\n );\n }\n\n protected showStraightRailForChildren(): boolean {\n return (\n !this.compact() &&\n this.collapseTree() === 'straight' &&\n this.item().type !== 'group' &&\n this.item().type !== 'mega'\n );\n }\n\n private straightRailClasses(): string {\n if (!this.straightRail() || this.orientation() !== 'vertical' || this.compact()) {\n return '';\n }\n\n return cn(\n 'relative',\n \"before:pointer-events-none before:absolute before:left-[1.625rem] before:w-0 before:-z-10 before:border-l before:border-dotted before:content-['']\",\n this.straightRailActive() ? 'before:border-primary/50' : 'before:border-border/50',\n this.firstInBranch() ? 'before:-top-9' : 'before:-top-0.5',\n this.lastInBranch() ? 'before:bottom-[calc(100%-1.25rem)]' : 'before:-bottom-0.5',\n );\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, computed, inject, input, output } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { NavIconDirective } from '../../icon/nav-icon.directive';\nimport { NavItemComponent } from '../../item/nav-item.component';\nimport { NavItemContentComponent } from '../../item/nav-item-content.component';\nimport { NavService } from '../../service/nav.service';\nimport type {\n UiNavCollapseTree,\n UiNavHorizontalAppearance,\n UiNavNormalizedItem,\n UiNavSelection,\n} from '../../types/nav.types';\n\n@Component({\n selector: 'ui-nav-horizontal',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, NavItemComponent, NavItemContentComponent],\n host: {\n class: 'block w-full',\n },\n template: `\n <ul [class]=\"listClasses()\" role=\"menubar\" (keydown)=\"onKeydown($event)\">\n @for (item of items(); track item.key) {\n @switch (item.type) {\n @case ('group') {\n <ng-container [ngTemplateOutlet]=\"branchTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n }\n @case ('collapsible') {\n <ng-container [ngTemplateOutlet]=\"branchTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n }\n @case ('mega') {\n <ng-container [ngTemplateOutlet]=\"branchTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n }\n @default {\n <li\n ui-nav-item\n [navId]=\"navId()\"\n [item]=\"item\"\n [level]=\"0\"\n [orientation]=\"'horizontal'\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"></li>\n }\n }\n }\n </ul>\n\n <ng-template #branchTemplate let-item>\n <li role=\"none\" class=\"relative\" [attr.data-ui-nav-item-key]=\"item.key\">\n <button\n type=\"button\"\n role=\"menuitem\"\n data-ui-nav-root-item=\"true\"\n [class]=\"triggerClasses(item)\"\n [attr.aria-expanded]=\"isPanelOpen(item)\"\n [attr.aria-controls]=\"item.panelId\"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-label]=\"compactLabel(item)\"\n [attr.title]=\"titleFor(item)\"\n [disabled]=\"item.disabled || null\"\n (click)=\"togglePanel(item)\"\n (mouseenter)=\"openPanel(item)\">\n <ui-nav-item-content\n [item]=\"item\"\n [active]=\"isItemActive(item)\"\n [compact]=\"compact()\"\n [orientation]=\"'horizontal'\"\n [level]=\"0\"\n [iconTemplate]=\"iconTemplate()\" />\n <span aria-hidden=\"true\" [class]=\"chevronClasses(item)\">⌄</span>\n </button>\n\n @if (isPanelOpen(item)) {\n <div\n [id]=\"item.panelId\"\n role=\"menu\"\n [class]=\"panelClasses(item)\"\n [attr.data-ui-nav-panel]=\"item.key\"\n (keydown)=\"onPanelKeydown($event)\">\n <ul [class]=\"panelListClasses(item)\" role=\"none\">\n @for (child of item.children; track child.key) {\n <li\n ui-nav-item\n [navId]=\"navId()\"\n [item]=\"child\"\n [level]=\"1\"\n [orientation]=\"'horizontal'\"\n [compact]=\"false\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"></li>\n }\n </ul>\n </div>\n }\n </li>\n </ng-template>\n `,\n})\nexport class NavHorizontalComponent {\n private readonly nav = inject(NavService);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly navId = input<string>('default');\n readonly appearance = input<UiNavHorizontalAppearance>('navbar');\n readonly items = input<readonly UiNavNormalizedItem[]>([]);\n readonly compact = input<boolean>(false);\n readonly itemClass = input<string>('');\n readonly activeIds = input<ReadonlySet<string>>(new Set<string>());\n readonly activeUrl = input<string | null>(null);\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly openedIds = input<readonly string[]>([]);\n readonly openedIdsChange = output<readonly string[]>();\n readonly itemSelected = output<UiNavSelection>();\n\n protected readonly listClasses = computed(() =>\n cn(\n 'flex min-w-0 list-none p-0',\n this.appearance() === 'flyout'\n ? 'items-center gap-2'\n : this.compact()\n ? 'justify-center gap-1'\n : 'items-center justify-center gap-1',\n ),\n );\n\n protected isItemActive(item: UiNavNormalizedItem): boolean {\n return this.nav.isItemActive(item, this.activeIds(), this.activeUrl());\n }\n\n protected isPanelOpen(item: UiNavNormalizedItem): boolean {\n return this.nav.isPanelOpen(this.navId(), item);\n }\n\n protected openPanel(item: UiNavNormalizedItem): void {\n this.nav.openPanel(this.navId(), item);\n }\n\n protected togglePanel(item: UiNavNormalizedItem): void {\n this.nav.togglePanel(this.navId(), item);\n }\n\n protected compactLabel(item: UiNavNormalizedItem): string | null {\n return this.nav.compactLabel(item, this.compact());\n }\n\n protected titleFor(item: UiNavNormalizedItem): string | null {\n return this.nav.titleFor(item, this.compact());\n }\n\n protected triggerClasses(item: UiNavNormalizedItem): string {\n return cn(\n 'ui-nav-trigger group/nav inline-flex min-w-0 items-center gap-3 rounded-md text-sm font-medium transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n this.appearance() === 'flyout'\n ? 'h-10 rounded-full border border-border/60 px-4 py-2 shadow-sm'\n : 'h-9 px-3 py-2',\n this.compact() && 'w-10 justify-center px-0',\n this.isItemActive(item)\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground/80 hover:bg-accent hover:text-accent-foreground',\n item.classes?.wrapper,\n this.itemClass(),\n );\n }\n\n protected chevronClasses(item: UiNavNormalizedItem): string {\n return cn('ml-auto shrink-0 text-base leading-none transition-transform', this.isPanelOpen(item) && 'rotate-180');\n }\n\n protected panelClasses(item: UiNavNormalizedItem): string {\n return cn(\n this.appearance() === 'flyout'\n ? 'absolute left-0 top-[calc(100%+0.75rem)] z-50 rounded-2xl border border-border/70 bg-background/95 p-3 text-foreground shadow-2xl backdrop-blur'\n : 'absolute left-0 top-full z-50 mt-2 rounded-xl border border-border bg-popover p-2 text-popover-foreground shadow-lg',\n item.type === 'mega' ? 'w-[min(92vw,44rem)]' : 'min-w-56',\n );\n }\n\n protected panelListClasses(item: UiNavNormalizedItem): string {\n const columns = Math.min(Math.max(item.columns ?? (item.type === 'mega' ? 2 : 1), 1), 4);\n\n return cn(\n 'grid list-none gap-1 p-0',\n columns === 2 && 'md:grid-cols-2',\n columns === 3 && 'md:grid-cols-3',\n columns === 4 && 'md:grid-cols-4',\n );\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n const panelKey = this.nav.currentPanelKey(this.navId());\n this.nav.closePanel(this.navId());\n this.focusOpenPanelTrigger(panelKey);\n return;\n }\n\n const rootItems = this.rootFocusItems();\n if (rootItems.length === 0) {\n return;\n }\n\n const currentIndex = rootItems.indexOf(document.activeElement as HTMLElement);\n if (currentIndex === -1) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n const currentItem = rootItems[currentIndex];\n if (currentItem.getAttribute('aria-haspopup') === 'menu') {\n event.preventDefault();\n currentItem.click();\n queueMicrotask(() => this.focusFirstPanelItem(this.nav.currentPanelKey(this.navId())));\n }\n return;\n }\n\n if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {\n event.preventDefault();\n const direction = event.key === 'ArrowRight' ? 1 : -1;\n const nextIndex = (currentIndex + direction + rootItems.length) % rootItems.length;\n rootItems[nextIndex]?.focus();\n }\n }\n\n protected onPanelKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Escape') {\n return;\n }\n\n event.preventDefault();\n const panelKey = this.nav.currentPanelKey(this.navId());\n this.nav.closePanel(this.navId());\n this.focusOpenPanelTrigger(panelKey);\n }\n\n private rootFocusItems(): HTMLElement[] {\n return Array.from(this.host.nativeElement.querySelectorAll<HTMLElement>('[data-ui-nav-root-item=\"true\"]'));\n }\n\n private focusOpenPanelTrigger(panelKey: string | null): void {\n if (!panelKey) {\n return;\n }\n\n const trigger = this.host.nativeElement.querySelector<HTMLElement>(\n `[data-ui-nav-item-key=\"${panelKey}\"] [data-ui-nav-root-item=\"true\"]`,\n );\n trigger?.focus();\n }\n\n private focusFirstPanelItem(panelKey: string | null): void {\n if (!panelKey) {\n return;\n }\n\n const panel = this.host.nativeElement.querySelector<HTMLElement>(`[data-ui-nav-panel=\"${panelKey}\"]`);\n const item = panel?.querySelector<HTMLElement>('a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])');\n item?.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { NavIconDirective } from '../../../icon/nav-icon.directive';\nimport type { UiNavCollapseTree, UiNavNormalizedItem, UiNavSelection } from '../../../types/nav.types';\nimport { NavHorizontalComponent } from '../nav-horizontal.component';\n\n@Component({\n selector: 'ui-nav-flyout',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NavHorizontalComponent],\n host: {\n class: 'block w-full',\n },\n template: `\n <ui-nav-horizontal\n [navId]=\"navId()\"\n [appearance]=\"'flyout'\"\n [items]=\"items()\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n `,\n})\nexport class NavFlyoutComponent {\n readonly navId = input<string>('default');\n readonly items = input<readonly UiNavNormalizedItem[]>([]);\n readonly compact = input<boolean>(false);\n readonly itemClass = input<string>('');\n readonly activeIds = input<ReadonlySet<string>>(new Set<string>());\n readonly activeUrl = input<string | null>(null);\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly openedIds = input<readonly string[]>([]);\n readonly openedIdsChange = output<readonly string[]>();\n readonly itemSelected = output<UiNavSelection>();\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { NavIconDirective } from '../../../icon/nav-icon.directive';\nimport type { UiNavCollapseTree, UiNavNormalizedItem, UiNavSelection } from '../../../types/nav.types';\nimport { NavHorizontalComponent } from '../nav-horizontal.component';\n\n@Component({\n selector: 'ui-nav-navbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NavHorizontalComponent],\n host: {\n class: 'block w-full',\n },\n template: `\n <ui-nav-horizontal\n [navId]=\"navId()\"\n [appearance]=\"'navbar'\"\n [items]=\"items()\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n `,\n})\nexport class NavNavbarComponent {\n readonly navId = input<string>('default');\n readonly items = input<readonly UiNavNormalizedItem[]>([]);\n readonly compact = input<boolean>(false);\n readonly itemClass = input<string>('');\n readonly activeIds = input<ReadonlySet<string>>(new Set<string>());\n readonly activeUrl = input<string | null>(null);\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly openedIds = input<readonly string[]>([]);\n readonly openedIdsChange = output<readonly string[]>();\n readonly itemSelected = output<UiNavSelection>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { NavIconDirective } from '../../../icon/nav-icon.directive';\nimport { NavItemComponent } from '../../../item/nav-item.component';\nimport type { UiNavCollapseTree, UiNavNormalizedItem, UiNavPosition, UiNavSelection } from '../../../types/nav.types';\n\n@Component({\n selector: 'ui-nav-sidebar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NavItemComponent],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-position]': 'position()',\n },\n template: `\n <ul [class]=\"listClasses()\" role=\"list\">\n @for (item of items(); track item.key) {\n <li\n ui-nav-item\n [navId]=\"navId()\"\n [item]=\"item\"\n [level]=\"0\"\n [orientation]=\"'vertical'\"\n [compact]=\"isCollapsed()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\"></li>\n }\n </ul>\n `,\n})\nexport class NavSidebarComponent {\n readonly navId = input<string>('default');\n readonly items = input<readonly UiNavNormalizedItem[]>([]);\n readonly collapsed = input<boolean>(false);\n readonly compact = input<boolean>(false);\n readonly position = input<UiNavPosition>('left');\n readonly itemClass = input<string>('');\n readonly activeIds = input<ReadonlySet<string>>(new Set<string>());\n readonly activeUrl = input<string | null>(null);\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly openedIds = input<readonly string[]>([]);\n readonly openedIdsChange = output<readonly string[]>();\n readonly itemSelected = output<UiNavSelection>();\n\n protected readonly isCollapsed = computed(() => this.collapsed() || this.compact());\n\n protected readonly hostClasses = computed(() => cn('block', this.position() === 'right' && 'items-end text-right'));\n\n protected readonly listClasses = computed(() =>\n this.isCollapsed()\n ? cn('flex list-none flex-col items-center gap-0.5 p-0')\n : cn('flex list-none flex-col gap-0.5 p-0', this.position() === 'right' && 'items-end'),\n );\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, computed, inject, input, output } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { NavIconDirective } from '../../../icon/nav-icon.directive';\nimport { NavService } from '../../../service/nav.service';\nimport type {\n UiNavCollapseTree,\n UiNavDockbarMode,\n UiNavNormalizedItem,\n UiNavPosition,\n UiNavSelection,\n} from '../../../types/nav.types';\nimport { NavSidebarComponent } from '../sidebar/nav-sidebar.component';\n\n@Component({\n selector: 'ui-nav-dockbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NavSidebarComponent],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-mode]': 'mode()',\n '[attr.data-position]': 'position()',\n },\n template: `\n @if (isDrawerMode()) {\n <div class=\"relative\">\n <button\n type=\"button\"\n data-ui-nav-dockbar-trigger=\"true\"\n [class]=\"triggerClasses()\"\n [attr.aria-expanded]=\"isDrawerOpen()\"\n [attr.aria-controls]=\"panelId()\"\n aria-haspopup=\"dialog\"\n aria-label=\"Open navigation drawer\"\n (click)=\"toggleDrawer()\">\n <span aria-hidden=\"true\" class=\"text-lg leading-none\">☰</span>\n </button>\n\n @if (isDrawerOpen()) {\n <div class=\"fixed inset-0 z-40 bg-black/40\" aria-hidden=\"true\" (click)=\"closeDrawer()\"></div>\n\n <aside\n [id]=\"panelId()\"\n [class]=\"drawerClasses()\"\n role=\"dialog\"\n aria-modal=\"true\"\n (keydown)=\"onDrawerKeydown($event)\">\n <div class=\"mb-3 flex items-center justify-between gap-3 px-1\">\n <span class=\"text-sm font-semibold text-foreground\">Navigation</span>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center rounded-md px-3 text-sm font-medium text-foreground/80 transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n (click)=\"closeDrawer()\">\n Close\n </button>\n </div>\n\n <ui-nav-sidebar\n [navId]=\"navId()\"\n [items]=\"items()\"\n [collapsed]=\"false\"\n [position]=\"position()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n </aside>\n }\n </div>\n } @else {\n <div [class]=\"railClasses()\">\n <ui-nav-sidebar\n [navId]=\"navId()\"\n [items]=\"items()\"\n [collapsed]=\"true\"\n [position]=\"position()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n </div>\n }\n `,\n})\nexport class NavDockbarComponent {\n private readonly nav = inject(NavService);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly navId = input<string>('default');\n readonly items = input<readonly UiNavNormalizedItem[]>([]);\n readonly mode = input<UiNavDockbarMode>('sticky');\n readonly position = input<UiNavPosition>('left');\n readonly itemClass = input<string>('');\n readonly activeIds = input<ReadonlySet<string>>(new Set<string>());\n readonly activeUrl = input<string | null>(null);\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly openedIds = input<readonly string[]>([]);\n readonly openedIdsChange = output<readonly string[]>();\n readonly itemSelected = output<UiNavSelection>();\n\n protected readonly isDrawerMode = computed(() => this.mode() === 'drawer');\n protected readonly isDrawerOpen = computed(() => this.nav.isDrawerOpen(this.navId()));\n protected readonly panelId = computed(() => `ui-nav-dockbar-${this.safeId(this.navId())}`);\n\n protected readonly hostClasses = computed(() =>\n cn('block', this.isDrawerMode() ? 'w-auto' : 'w-16', this.position() === 'right' && 'justify-self-end'),\n );\n\n protected readonly railClasses = computed(() =>\n cn(\n 'flex min-h-full w-16 justify-center rounded-2xl border border-border/60 bg-background/70 px-2 py-3 backdrop-blur',\n this.position() === 'right' && 'ml-auto',\n ),\n );\n\n protected triggerClasses(): string {\n return cn(\n 'inline-flex h-11 w-11 items-center justify-center rounded-2xl border border-border/60 bg-background/80 text-foreground shadow-sm transition-colors',\n 'hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n );\n }\n\n protected drawerClasses(): string {\n return cn(\n 'fixed bottom-4 top-4 z-50 w-72 overflow-y-auto rounded-2xl border border-border bg-background p-4 shadow-2xl',\n this.position() === 'right' ? 'right-4' : 'left-4',\n );\n }\n\n protected toggleDrawer(): void {\n const wasOpen = this.isDrawerOpen();\n this.nav.toggleDrawer(this.navId());\n\n if (wasOpen) {\n queueMicrotask(() => this.focusTrigger());\n return;\n }\n\n queueMicrotask(() => this.focusFirstDrawerItem());\n }\n\n protected closeDrawer(): void {\n if (!this.isDrawerOpen()) {\n return;\n }\n\n this.nav.closeDrawer(this.navId());\n queueMicrotask(() => this.focusTrigger());\n }\n\n protected onDrawerKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Escape') {\n return;\n }\n\n event.preventDefault();\n this.closeDrawer();\n }\n\n private focusFirstDrawerItem(): void {\n const panel = this.host.nativeElement.querySelector<HTMLElement>(`#${this.panelId()}`);\n const focusable = panel?.querySelector<HTMLElement>(\n 'a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n );\n focusable?.focus();\n }\n\n private focusTrigger(): void {\n const trigger = this.host.nativeElement.querySelector<HTMLElement>('[data-ui-nav-dockbar-trigger=\"true\"]');\n trigger?.focus();\n }\n\n private safeId(value: string): string {\n const normalized = value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9_-]+/g, '-');\n return normalized || 'default';\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { NavIconDirective } from '../icon/nav-icon.directive';\nimport { NavFlyoutComponent } from '../orientation/horizontal/flyout/nav-flyout.component';\nimport { NavNavbarComponent } from '../orientation/horizontal/navbar/nav-navbar.component';\nimport { NavDockbarComponent } from '../orientation/vertical/dockbar/nav-dockbar.component';\nimport { NavSidebarComponent } from '../orientation/vertical/sidebar/nav-sidebar.component';\nimport type { UiNavCollapseTree, UiNavNormalizedItem, UiNavSelection, UiNavState } from '../types/nav.types';\n\n@Component({\n selector: 'ui-nav-outlet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NavDockbarComponent, NavFlyoutComponent, NavNavbarComponent, NavSidebarComponent],\n template: `\n @let navState = state();\n\n @if (navState.orientation === 'horizontal' && navState.appearance === 'flyout') {\n <ui-nav-flyout\n [navId]=\"navState.id\"\n [items]=\"items()\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n } @else if (navState.orientation === 'horizontal') {\n <ui-nav-navbar\n [navId]=\"navState.id\"\n [items]=\"items()\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n } @else if (navState.appearance === 'dockbar') {\n <ui-nav-dockbar\n [navId]=\"navState.id\"\n [items]=\"items()\"\n [mode]=\"navState.dockbarMode\"\n [position]=\"navState.position\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n } @else {\n <ui-nav-sidebar\n [navId]=\"navState.id\"\n [items]=\"items()\"\n [collapsed]=\"navState.collapsed\"\n [position]=\"navState.position\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIds()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTemplate()\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIdsChange.emit($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n }\n `,\n})\nexport class UiNavOutletComponent {\n readonly state = input.required<UiNavState>();\n readonly items = input<readonly UiNavNormalizedItem[]>([]);\n readonly compact = input(false);\n readonly itemClass = input('');\n readonly activeIds = input<ReadonlySet<string>>(new Set<string>());\n readonly activeUrl = input<string | null>(null);\n readonly iconTemplate = input<NavIconDirective | undefined>(undefined);\n readonly collapseTree = input<UiNavCollapseTree>('stairs');\n readonly openedIds = input<readonly string[]>([]);\n readonly openedIdsChange = output<readonly string[]>();\n readonly itemSelected = output<UiNavSelection>();\n}\n","import { InjectionToken, type Signal } from '@angular/core';\nimport type { UiNavState } from '../../types/nav.types';\n\nexport interface UiNavShellContext {\n readonly state: Signal<UiNavState>;\n readonly displayState: Signal<UiNavState>;\n readonly collapseEnabled: Signal<boolean>;\n toggleCollapsed(): void;\n}\n\nexport const UI_NAV_SHELL = new InjectionToken<UiNavShellContext>('UI_NAV_SHELL');\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UI_NAV_SHELL } from '../shared/nav-shell.token';\n\n@Component({\n selector: 'ui-nav-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClasses()',\n },\n template: `\n <div class=\"flex h-full items-center\">\n <ng-content />\n </div>\n `,\n})\nexport class UiNavFooterComponent {\n private readonly shell = inject(UI_NAV_SHELL, { optional: true });\n\n readonly class = input('', { alias: 'class' });\n\n protected readonly isHorizontal = computed(() => this.shell?.displayState().orientation === 'horizontal');\n\n protected readonly hostClasses = computed(() =>\n cn(\n this.isHorizontal()\n ? 'relative z-10 block h-full w-auto shrink-0'\n : 'sticky bottom-0 z-10 block h-12 shrink-0 border-t border-border/70',\n this.class(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UI_NAV_SHELL } from '../shared/nav-shell.token';\n\n@Component({\n selector: 'ui-nav-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-collapsed]': 'displayCollapsed()',\n },\n template: `\n <div class=\"flex h-full items-center gap-3 px-3\">\n <div [class]=\"contentClasses()\">\n <ng-content />\n </div>\n\n @if (showToggle()) {\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 shrink-0 items-center justify-center bg-transparent text-foreground/80 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n [attr.aria-label]=\"toggleAriaLabel()\"\n [attr.title]=\"toggleAriaLabel()\"\n data-ui-nav-header-toggle=\"true\"\n (click)=\"toggleCollapsed()\">\n <span\n aria-hidden=\"true\"\n data-ui-nav-header-toggle-icon=\"true\"\n class=\"material-symbols-outlined leading-none\"\n style=\"font-size: 18px; line-height: 18px;\">\n {{ toggleIconName() }}\n </span>\n </button>\n }\n </div>\n `,\n})\nexport class UiNavHeaderComponent {\n private readonly shell = inject(UI_NAV_SHELL);\n\n readonly toggle = input(false);\n readonly class = input('', { alias: 'class' });\n\n protected readonly collapsed = computed(() => this.shell.state().collapsed);\n protected readonly displayCollapsed = computed(() => this.shell.displayState().collapsed);\n protected readonly isHorizontal = computed(() => this.shell.displayState().orientation === 'horizontal');\n protected readonly showToggle = computed(() => {\n if (this.isHorizontal()) {\n return false;\n }\n\n return this.toggle() || (this.shell.collapseEnabled() && !this.displayCollapsed());\n });\n protected readonly toggleAriaLabel = computed(() => (this.collapsed() ? 'Expand navigation' : 'Collapse navigation'));\n protected readonly toggleIconName = computed(() => (this.collapsed() ? 'left_panel_open' : 'left_panel_close'));\n protected readonly contentClasses = computed(() => (this.isHorizontal() ? 'min-w-0' : 'min-w-0 flex-1'));\n protected readonly hostClasses = computed(() =>\n cn(\n this.isHorizontal()\n ? 'relative z-10 block h-full w-auto shrink-0'\n : 'sticky top-0 z-10 block h-12 shrink-0 border-b border-border/70',\n this.class(),\n ),\n );\n\n protected toggleCollapsed(): void {\n this.shell.toggleCollapsed();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport type { UiNavOrientation } from '../../types/nav.types';\n\n@Component({\n selector: 'ui-nav-main',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClasses()',\n },\n template: ` <ng-content /> `,\n})\nexport class UiNavMainComponent {\n readonly class = input('', { alias: 'class' });\n readonly orientation = input<UiNavOrientation>('vertical');\n\n protected readonly hostClasses = computed(() =>\n cn(\n 'min-h-0 flex-1',\n this.orientation() === 'horizontal'\n ? 'flex h-full min-w-0 items-stretch justify-center overflow-visible'\n : 'block overflow-y-auto overflow-x-hidden scrollbar-thin scrollbar-thumb-primary scrollbar-track-primary/10',\n this.class(),\n ),\n );\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n forwardRef,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { NavIconDirective } from './icon/nav-icon.directive';\nimport { injectUiNavController } from './internal/nav.controller';\nimport { UiNavOutletComponent } from './internal/nav-outlet.component';\nimport { UiNavFooterComponent } from './shell/footer/nav-footer.component';\nimport { UiNavHeaderComponent } from './shell/header/nav-header.component';\nimport { UiNavMainComponent } from './shell/main/nav-main.component';\nimport { UI_NAV_SHELL, type UiNavShellContext } from './shell/shared/nav-shell.token';\nimport {\n type UiNavAppearance,\n type UiNavCollapseTree,\n type UiNavDockbarMode,\n type UiNavItem,\n type UiNavOrientation,\n type UiNavPosition,\n type UiNavSelection,\n} from './types/nav.types';\n\n@Component({\n selector: 'ui-nav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [UiNavMainComponent, UiNavOutletComponent],\n providers: [{ provide: UI_NAV_SHELL, useExisting: forwardRef(() => UiNavComponent) }],\n host: {\n '[class]': 'hostClasses()',\n role: 'navigation',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.data-nav-id]': 'resolvedState().id',\n '[attr.data-orientation]': 'resolvedState().orientation',\n '[attr.data-appearance]': 'resolvedState().appearance',\n '[attr.data-position]': 'resolvedState().orientation === \"vertical\" ? resolvedState().position : null',\n '[attr.data-collapse-tree]': 'collapseTree()',\n '[attr.data-preview-expanded]': 'previewRailExpanded() ? \"true\" : null',\n '(mouseenter)': 'setHoverPreview(true)',\n '(mouseleave)': 'setHoverPreview(false)',\n },\n template: `\n @let iconTpl = iconTemplate();\n @let navState = displayState();\n\n <div [class]=\"shellClasses()\">\n @if (headerSlot()) {\n <ng-content select=\"ui-nav-header\" />\n }\n\n <ui-nav-main [orientation]=\"navState.orientation\">\n <ui-nav-outlet\n [state]=\"navState\"\n [items]=\"normalizedItems()\"\n [compact]=\"compact()\"\n [itemClass]=\"itemClass()\"\n [activeIds]=\"activeIdSet()\"\n [activeUrl]=\"activeUrl()\"\n [iconTemplate]=\"iconTpl\"\n [collapseTree]=\"collapseTree()\"\n [openedIds]=\"openedIds()\"\n (openedIdsChange)=\"openedIds.set($event)\"\n (itemSelected)=\"itemSelected.emit($event)\" />\n </ui-nav-main>\n\n @if (footerSlot()) {\n <ng-content select=\"ui-nav-footer\" />\n }\n </div>\n `,\n})\nexport class UiNavComponent implements UiNavShellContext {\n readonly navId = input<string>('default', { alias: 'id' });\n readonly data = input<readonly UiNavItem[]>([]);\n readonly items = input<readonly UiNavItem[]>([]);\n readonly orientation = input<UiNavOrientation>('vertical');\n readonly appearance = input<UiNavAppearance | null>(null);\n readonly position = input<UiNavPosition | null>(null);\n readonly collapsed = input<boolean | null>(null);\n readonly dockbarMode = input<UiNavDockbarMode | null>(null);\n readonly ariaLabel = input<string>('Primary navigation');\n readonly compact = input<boolean>(false);\n readonly previewExpanded = input<boolean>(false);\n readonly sidebarCollapse = input(false, { alias: 'nav-sidebar-collapse', transform: booleanAttribute });\n readonly collapseTree = input<UiNavCollapseTree>('stairs', { alias: 'collapse-tree' });\n readonly class = input<string>('');\n readonly itemClass = input<string>('');\n readonly activeIds = input<ReadonlySet<string> | readonly string[] | null>(null);\n readonly activeUrl = input<string | null>(null);\n readonly openedIds = model<readonly string[]>([]);\n readonly itemSelected = output<UiNavSelection>();\n\n private readonly hoverPreviewExpanded = signal(false);\n private readonly controller = injectUiNavController({\n navId: this.navId,\n data: this.data,\n items: this.items,\n orientation: this.orientation,\n appearance: this.appearance,\n position: this.position,\n collapsed: this.collapsed,\n dockbarMode: this.dockbarMode,\n compact: this.compact,\n activeIds: this.activeIds,\n });\n\n protected readonly headerSlot = contentChild(UiNavHeaderComponent);\n protected readonly footerSlot = contentChild(UiNavFooterComponent);\n protected readonly iconTemplate = contentChild(NavIconDirective);\n protected readonly normalizedItems = this.controller.normalizedItems;\n protected readonly resolvedState = this.controller.resolvedState;\n protected readonly activeIdSet = this.controller.activeIdSet;\n readonly previewRailExpanded = computed(() => {\n const state = this.resolvedState();\n\n if (state.orientation !== 'vertical' || state.appearance !== 'sidebar' || !state.collapsed) {\n return false;\n }\n\n return this.previewExpanded() || (this.sidebarCollapse() && this.hoverPreviewExpanded());\n });\n readonly previewRailOffset = computed(() => (this.previewRailExpanded() ? '15rem' : '0px'));\n readonly displayState = computed(() => {\n const state = this.resolvedState();\n return this.previewRailExpanded() ? { ...state, collapsed: false } : state;\n });\n readonly collapseEnabled = computed(() => {\n const state = this.resolvedState();\n return this.sidebarCollapse() && state.orientation === 'vertical' && state.appearance === 'sidebar';\n });\n protected readonly shellClasses = computed(() =>\n cn(\n 'flex h-full min-h-0 transition-[width,box-shadow,transform] duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none',\n this.resolvedState().orientation === 'horizontal'\n ? 'flex-row items-stretch overflow-visible'\n : 'flex-col overflow-hidden',\n this.resolvedState().position === 'right' ? 'origin-right' : 'origin-left',\n this.previewRailExpanded() && [\n 'absolute inset-y-0 z-20 w-76 overflow-hidden bg-background shadow-xl',\n this.resolvedState().position === 'right'\n ? 'right-0 border-l border-border/70'\n : 'left-0 border-r border-border/70',\n ],\n ),\n );\n readonly state = this.resolvedState;\n\n protected readonly hostClasses = computed(() =>\n cn(\n 'relative block min-h-0 text-foreground transition-[width] duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none',\n this.resolvedState().orientation === 'horizontal'\n ? 'w-full'\n : this.resolvedState().appearance === 'dockbar'\n ? 'w-auto'\n : this.resolvedState().collapsed\n ? 'w-16'\n : 'w-76',\n this.resolvedState().orientation === 'horizontal' || this.previewRailExpanded()\n ? 'overflow-visible'\n : 'overflow-hidden',\n this.class(),\n ),\n );\n\n toggleCollapsed(): void {\n this.controller.toggleCollapsed();\n }\n\n protected setHoverPreview(value: boolean): void {\n this.hoverPreviewExpanded.set(this.sidebarCollapse() ? value : false);\n }\n}\n","import { computed, Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { UI_NAV_SHELL } from '../shared/nav-shell.token';\n\n@Directive({\n selector: '[uiNavCollapseRoot]',\n host: {\n '[class.w-full]': 'collapseEnabled()',\n '[class.justify-center]': 'displayCollapsed()',\n },\n})\nexport class UiNavCollapseRootDirective {\n private readonly shell = inject(UI_NAV_SHELL);\n\n protected readonly collapseEnabled = computed(\n () => this.shell.collapseEnabled() && this.shell.displayState().orientation === 'vertical',\n );\n protected readonly displayCollapsed = computed(() => this.collapseEnabled() && this.shell.displayState().collapsed);\n}\n\n@Directive({\n selector: '[uiNavCollapseExpanded]',\n})\nexport class UiNavCollapseExpandedDirective {\n private readonly shell = inject(UI_NAV_SHELL);\n private readonly templateRef = inject(TemplateRef<unknown>);\n private readonly viewContainer = inject(ViewContainerRef);\n\n private hasView = false;\n private readonly shouldRender = computed(\n () =>\n !this.shell.collapseEnabled() ||\n this.shell.displayState().orientation !== 'vertical' ||\n !this.shell.displayState().collapsed,\n );\n\n constructor() {\n effect(() => {\n if (this.shouldRender()) {\n if (!this.hasView) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView = true;\n }\n return;\n }\n\n if (this.hasView) {\n this.viewContainer.clear();\n this.hasView = false;\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,10 @@ class NavigationMenuRootItem {
|
|
|
38
38
|
containsTarget(target) {
|
|
39
39
|
return target instanceof Node && this.elementRef.nativeElement.contains(target);
|
|
40
40
|
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
42
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuRootItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
42
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.15", type: NavigationMenuRootItem, isStandalone: true, inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuRootItem, decorators: [{
|
|
45
45
|
type: Directive
|
|
46
46
|
}], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
47
47
|
class NavigationMenuComponent {
|
|
@@ -158,10 +158,10 @@ class NavigationMenuComponent {
|
|
|
158
158
|
horizontalStep() {
|
|
159
159
|
return getComputedStyle(this.host.nativeElement).direction === 'rtl' ? -1 : 1;
|
|
160
160
|
}
|
|
161
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
162
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
161
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: NavigationMenuComponent, isStandalone: true, selector: "ui-navigation-menu", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($any($event))" }, properties: { "class": "classes()", "attr.role": "\"navigation\"", "attr.aria-label": "ariaLabel() || null" } }, queries: [{ propertyName: "items", predicate: i0.forwardRef(() => NavigationMenuRootItem), descendants: true }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
163
163
|
}
|
|
164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
166
166
|
args: [{
|
|
167
167
|
selector: 'ui-navigation-menu',
|
|
@@ -181,10 +181,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
181
181
|
class NavigationMenuListComponent {
|
|
182
182
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
183
183
|
classes = computed(() => cn('group flex flex-1 list-none items-center justify-center gap-1', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
184
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
185
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
184
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
185
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: NavigationMenuListComponent, isStandalone: true, selector: "ui-navigation-menu-list", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"menubar\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
186
186
|
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuListComponent, decorators: [{
|
|
188
188
|
type: Component,
|
|
189
189
|
args: [{
|
|
190
190
|
selector: 'ui-navigation-menu-list',
|
|
@@ -199,10 +199,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
199
199
|
class NavigationMenuItemComponent {
|
|
200
200
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
201
201
|
classes = computed(() => cn('relative', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
202
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
203
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
202
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
203
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: NavigationMenuItemComponent, isStandalone: true, selector: "ui-navigation-menu-item", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
204
204
|
}
|
|
205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuItemComponent, decorators: [{
|
|
206
206
|
type: Component,
|
|
207
207
|
args: [{
|
|
208
208
|
selector: 'ui-navigation-menu-item',
|
|
@@ -215,10 +215,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
215
215
|
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
216
216
|
class NavigationMenuContentDirective {
|
|
217
217
|
template = inject(TemplateRef);
|
|
218
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
219
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
218
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
219
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: NavigationMenuContentDirective, isStandalone: true, selector: "ng-template[uiNavigationMenuContent]", exportAs: ["uiNavigationMenuContent"], ngImport: i0 });
|
|
220
220
|
}
|
|
221
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuContentDirective, decorators: [{
|
|
222
222
|
type: Directive,
|
|
223
223
|
args: [{
|
|
224
224
|
selector: 'ng-template[uiNavigationMenuContent]',
|
|
@@ -236,6 +236,10 @@ class NavigationMenuTriggerDirective extends NavigationMenuRootItem {
|
|
|
236
236
|
navigationMenu = inject(NavigationMenuComponent, { optional: true });
|
|
237
237
|
destroyRef = inject(DestroyRef);
|
|
238
238
|
overlayRef = null;
|
|
239
|
+
constructor() {
|
|
240
|
+
super();
|
|
241
|
+
this.destroyRef.onDestroy(() => this.close({ restoreFocus: false, emitOpenedChange: false }));
|
|
242
|
+
}
|
|
239
243
|
classes = computed(() => cn('group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors', 'after:mb-0.5 after:ml-2 after:inline-block after:h-2 after:w-2 after:shrink-0 after:rotate-45 after:border-b after:border-r after:border-current after:transition-transform after:content-[""]', 'hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:after:-rotate-135', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
240
244
|
toggle() {
|
|
241
245
|
if (this.disabled()) {
|
|
@@ -274,14 +278,16 @@ class NavigationMenuTriggerDirective extends NavigationMenuRootItem {
|
|
|
274
278
|
}
|
|
275
279
|
}
|
|
276
280
|
close(options = {}) {
|
|
277
|
-
const { restoreFocus = true } = options;
|
|
281
|
+
const { restoreFocus = true, emitOpenedChange = true } = options;
|
|
278
282
|
if (!this.isOpen()) {
|
|
279
283
|
return;
|
|
280
284
|
}
|
|
281
285
|
const overlayRef = this.overlayRef;
|
|
282
286
|
this.overlayRef = null;
|
|
283
287
|
this.isOpen.set(false);
|
|
284
|
-
|
|
288
|
+
if (emitOpenedChange) {
|
|
289
|
+
this.openedChange.emit(false);
|
|
290
|
+
}
|
|
285
291
|
this.navigationMenu?.notifyClosed(this);
|
|
286
292
|
overlayRef?.dispose();
|
|
287
293
|
if (restoreFocus) {
|
|
@@ -315,10 +321,10 @@ class NavigationMenuTriggerDirective extends NavigationMenuRootItem {
|
|
|
315
321
|
const firstItem = overlayElement.querySelector('a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])');
|
|
316
322
|
firstItem?.focus();
|
|
317
323
|
}
|
|
318
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
319
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
324
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
325
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.15", type: NavigationMenuTriggerDirective, isStandalone: true, selector: "[uiNavigationMenuTrigger]", inputs: { uiNavigationMenuTrigger: { classPropertyName: "uiNavigationMenuTrigger", publicName: "uiNavigationMenuTrigger", isSignal: true, isRequired: true, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange" }, host: { listeners: { "click": "toggle()", "keydown.enter": "openFromKeyboard($any($event), false)", "keydown.space": "openFromKeyboard($any($event), false)", "keydown.arrowDown": "openFromKeyboard($any($event), true)", "focus": "syncActiveState()", "mouseenter": "openFromHover()" }, properties: { "class": "classes()", "attr.role": "\"menuitem\"", "attr.aria-haspopup": "\"menu\"", "attr.aria-expanded": "isOpen()", "attr.data-state": "isOpen() ? \"open\" : \"closed\"", "attr.tabindex": "tabIndex()", "attr.disabled": "disabled() ? \"\" : null" } }, providers: [{ provide: NavigationMenuRootItem, useExisting: forwardRef(() => NavigationMenuTriggerDirective) }], exportAs: ["uiNavigationMenuTrigger"], usesInheritance: true, ngImport: i0 });
|
|
320
326
|
}
|
|
321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
327
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuTriggerDirective, decorators: [{
|
|
322
328
|
type: Directive,
|
|
323
329
|
args: [{
|
|
324
330
|
selector: '[uiNavigationMenuTrigger]',
|
|
@@ -340,7 +346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
340
346
|
'(mouseenter)': 'openFromHover()',
|
|
341
347
|
},
|
|
342
348
|
}]
|
|
343
|
-
}], propDecorators: { uiNavigationMenuTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "uiNavigationMenuTrigger", required: true }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }] } });
|
|
349
|
+
}], ctorParameters: () => [], propDecorators: { uiNavigationMenuTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "uiNavigationMenuTrigger", required: true }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }] } });
|
|
344
350
|
class NavigationMenuLinkDirective extends NavigationMenuRootItem {
|
|
345
351
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
346
352
|
variant = input('content', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
@@ -370,10 +376,10 @@ class NavigationMenuLinkDirective extends NavigationMenuRootItem {
|
|
|
370
376
|
event.preventDefault();
|
|
371
377
|
}
|
|
372
378
|
}
|
|
373
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
374
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
379
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
380
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.15", type: NavigationMenuLinkDirective, isStandalone: true, selector: "a[uiNavigationMenuLink], button[uiNavigationMenuLink]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focus": "syncActiveState()", "click": "preventDisabled($any($event))" }, properties: { "class": "classes()", "attr.role": "\"menuitem\"", "attr.tabindex": "tabIndex()", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.data-variant": "variant()" } }, providers: [{ provide: NavigationMenuRootItem, useExisting: forwardRef(() => NavigationMenuLinkDirective) }], exportAs: ["uiNavigationMenuLink"], usesInheritance: true, ngImport: i0 });
|
|
375
381
|
}
|
|
376
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: NavigationMenuLinkDirective, decorators: [{
|
|
377
383
|
type: Directive,
|
|
378
384
|
args: [{
|
|
379
385
|
selector: 'a[uiNavigationMenuLink], button[uiNavigationMenuLink]',
|