{"version":3,"file":"edsis-angular-block-shell.mjs","sources":["../../../library/angular/block/shell/navigation/avatar.component.ts","../../../library/angular/block/shell/navigation/meta.component.ts","../../../library/angular/block/shell/navigation/footer.component.ts","../../../library/angular/block/shell/logo/logo.component.ts","../../../library/angular/block/shell/navigation/header.component.ts","../../../library/angular/block/shell/navigation/sidebar-navigation.component.ts","../../../library/angular/block/shell/navigation/top-navigation.component.ts","../../../library/angular/block/shell/navigation-panel.directive.ts","../../../library/angular/block/shell/navigation-footer-action.directive.ts","../../../library/angular/block/shell/shell.component.ts","../../../library/angular/block/shell/navigation/ids.ts","../../../library/angular/block/shell/edsis-angular-block-shell.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\nimport {\n  AvatarBadgeComponent,\n  AvatarComponent,\n  AvatarFallbackComponent,\n  AvatarImageComponent,\n} from '@edsis/component/avatar';\nimport { ButtonComponent } from '@edsis/component/button';\nimport { cn } from '@edsis/component/class';\n\n@Component({\n  selector: 'block-shell-navigation-avatar',\n  host: {\n    class: 'contents',\n  },\n  template: `\n    <!-- size = tinggi logo header: kotak w-10 (2.5rem) dengan AspectRatio 3/2 -->\n    @if (asButton()) {\n      <button\n        Button\n        type=\"button\"\n        variant=\"ghost\"\n        size=\"icon-lg\"\n        [class]=\"avatarClasses()\"\n        [attr.aria-label]=\"buttonLabel()\"\n      >\n        <Avatar size=\"sm\" [class]=\"radiusClass()\">\n          <ng-container [ngTemplateOutlet]=\"avatarContent\" />\n        </Avatar>\n      </button>\n    } @else if (useAvatar() || showOnlineIndicator()) {\n      <Avatar size=\"sm\" [class]=\"radiusClass()\">\n        <ng-container [ngTemplateOutlet]=\"avatarContent\" />\n      </Avatar>\n    } @else {\n      <span [class]=\"avatarClasses()\">\n        <ng-container [ngTemplateOutlet]=\"avatarContent\" />\n      </span>\n    }\n\n    <ng-template #avatarContent>\n      @if (photoUrl(); as url) {\n        <AvatarImage [src]=\"url\" [alt]=\"photoAlt()\" />\n      }\n      <AvatarFallback>{{ initials() }}</AvatarFallback>\n      @if (showOnlineIndicator()) {\n        <AvatarBadge class=\"bg-success\" aria-hidden=\"true\" />\n      }\n    </ng-template>\n  `,\n  imports: [\n    NgTemplateOutlet,\n    AvatarBadgeComponent,\n    AvatarComponent,\n    AvatarFallbackComponent,\n    AvatarImageComponent,\n    ButtonComponent,\n  ],\n})\nexport class BlockShellNavigationAvatarComponent {\n  readonly initials = input.required<string>();\n  readonly photoUrl = input<string | undefined>(undefined);\n  readonly photoAlt = input('');\n  /** Radius mengikuti konteks shell; default mempertahankan avatar persegi. */\n  readonly radiusClass = input('rounded-none');\n  /** Avatar interaktif dipakai khusus untuk kontrol profil Desktop. */\n  readonly asButton = input(false);\n  readonly useAvatar = input(false);\n  readonly buttonLabel = input('User menu');\n  /** Menampilkan indikator online dengan primitive Avatar. */\n  readonly showOnlineIndicator = input(false);\n\n  protected readonly avatarClasses = computed(() =>\n    cn(\n      this.asButton()\n        ? 'size-11 shrink-0 text-sm font-semibold'\n        : 'inline-flex size-[calc(2.5rem*2/3)] shrink-0 items-center justify-center overflow-hidden bg-primary text-xs font-semibold text-primary-foreground',\n      this.radiusClass(),\n    ),\n  );\n}\n","import { Component, input } from '@angular/core';\n\n@Component({\n  selector: 'block-shell-navigation-meta',\n  host: {\n    class: 'contents',\n  },\n  template: `\n    <div [class]=\"containerClass()\">\n      <p class=\"truncate text-sm font-semibold tracking-tight text-foreground\">{{ name() }}</p>\n      @if (!hideSubtitle()) {\n        <p [class]=\"subtitleClass()\">{{ subtitle() }}</p>\n      }\n    </div>\n  `,\n})\nexport class BlockShellNavigationMetaComponent {\n  readonly name = input.required<string>();\n  readonly subtitle = input.required<string>();\n  readonly containerClass = input('min-w-0');\n  readonly subtitleClass = input('truncate text-xs text-muted-foreground');\n  readonly hideSubtitle = input(false);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, TemplateRef, computed, input } from '@angular/core';\nimport {\n  NavigationCollapseExpandedDirective,\n  NavigationCollapseRootDirective,\n} from '@edsis/navigation';\n\nimport { BlockShellNavigationAvatarComponent } from './avatar.component';\nimport { BlockShellNavigationMetaComponent } from './meta.component';\n\n@Component({\n  selector: 'block-shell-navigation-footer',\n  imports: [\n    NavigationCollapseRootDirective,\n    NavigationCollapseExpandedDirective,\n    BlockShellNavigationAvatarComponent,\n    BlockShellNavigationMetaComponent,\n    NgTemplateOutlet,\n  ],\n  host: {\n    class: 'contents',\n  },\n  template: `\n    @if (collapsible()) {\n      <div NavigationCollapseRoot class=\"flex w-full items-center gap-3\">\n        <block-shell-navigation-avatar\n          [initials]=\"resolvedInitials()\"\n          [photoUrl]=\"photoUrl()\"\n          [photoAlt]=\"name()\"\n          [radiusClass]=\"avatarRadiusClass()\"\n          [asButton]=\"avatarButton()\"\n          [buttonLabel]=\"avatarButtonLabel()\"\n          [useAvatar]=\"useAvatar()\"\n          [showOnlineIndicator]=\"avatarOnline()\"\n        />\n\n          @if (showMeta()) {\n          <div *NavigationCollapseExpanded class=\"min-w-0\">\n            <block-shell-navigation-meta\n              [name]=\"name()\"\n              [subtitle]=\"subtitle()\"\n                [hideSubtitle]=\"hideSubtitle()\"\n              [subtitleClass]=\"'-mt-1 truncate text-xs text-muted-foreground'\"\n            />\n          </div>\n        }\n\n        @if (actionTemplate()) {\n          <div\n            *NavigationCollapseExpanded\n            data-navigation-footer-actions\n            class=\"ml-auto flex shrink-0 items-center gap-1\"\n          >\n            <ng-container [ngTemplateOutlet]=\"actionTemplate()\" />\n          </div>\n        }\n      </div>\n    } @else {\n      <div class=\"flex items-center gap-3\">\n        <block-shell-navigation-avatar\n          [initials]=\"resolvedInitials()\"\n          [photoUrl]=\"photoUrl()\"\n          [photoAlt]=\"name()\"\n          [radiusClass]=\"avatarRadiusClass()\"\n          [asButton]=\"avatarButton()\"\n          [buttonLabel]=\"avatarButtonLabel()\"\n          [useAvatar]=\"useAvatar()\"\n          [showOnlineIndicator]=\"avatarOnline()\"\n        />\n        @if (showMeta()) {\n          <block-shell-navigation-meta\n            [name]=\"name()\"\n            [subtitle]=\"subtitle()\"\n            [hideSubtitle]=\"hideSubtitle()\"\n            [containerClass]=\"desktopOnly() ? 'hidden min-w-0 xl:block' : 'min-w-0'\"\n          />\n        }\n        @if (actionTemplate()) {\n          <div\n            data-navigation-footer-actions\n            class=\"ml-auto flex shrink-0 items-center gap-1\"\n          >\n            <ng-container [ngTemplateOutlet]=\"actionTemplate()\" />\n          </div>\n        }\n      </div>\n    }\n  `,\n})\nexport class BlockShellNavigationFooterComponent {\n  readonly name = input.required<string>();\n  readonly subtitle = input.required<string>();\n  readonly initials = input<string | undefined>(undefined);\n  readonly photoUrl = input<string | undefined>(undefined);\n  readonly collapsible = input(false);\n  readonly desktopOnly = input(false);\n  /** Kelas radius avatar; default mempertahankan avatar persegi pada shell lain. */\n  readonly avatarRadiusClass = input('rounded-none');\n  /** Sembunyikan seluruh metadata pengguna, termasuk dari DOM. */\n  readonly showMeta = input(true);\n  readonly hideSubtitle = input(false);\n  /** Gunakan elemen button tanpa mengubah tampilan avatar. */\n  readonly avatarButton = input(false);\n  readonly avatarButtonLabel = input('User menu');\n  readonly useAvatar = input(false);\n  /** Tampilkan presence badge pada avatar, dipakai khusus footer Desktop. */\n  readonly avatarOnline = input(false);\n  readonly actionTemplate = input<TemplateRef<unknown> | null>(null);\n\n  protected readonly resolvedInitials = computed(() => {\n    const explicitInitials = this.initials()?.trim();\n\n    if (explicitInitials) {\n      return explicitInitials;\n    }\n\n    const words = this.name()\n      .trim()\n      .split(/\\s+/)\n      .filter((word) => word.length > 0);\n\n    return ((words[0]?.[0] ?? '') + (words[1]?.[0] ?? words[0]?.[1] ?? '')).toUpperCase();\n  });\n}\n","import { Component, input } from '@angular/core';\nimport { AspectRatioComponent } from '@edsis/component/aspect-ratio';\n\n@Component({\n  selector: 'block-shell-logo',\n  imports: [AspectRatioComponent],\n  host: {\n    class: 'contents',\n  },\n  template: `\n    <div class=\"w-10 shrink-0\">\n      <AspectRatio [ratio]=\"3 / 2\" class=\"overflow-hidden rounded-none bg-primary\">\n        <div\n          class=\"flex h-full w-full items-center justify-center px-0.5 text-[0.72rem] font-black leading-none tracking-[-0.08em] text-primary-foreground\"\n          style=\"font-family: 'Arial Black', Arial, sans-serif;\"\n        >\n          {{ text() }}\n        </div>\n      </AspectRatio>\n    </div>\n  `,\n})\nexport class BlockShellLogoComponent {\n  readonly text = input('ETOS');\n  readonly homePath = input<`/${string}`>('/');\n  readonly ariaLabel = input('Buka aplikasi');\n}\n","import { Component, computed, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n  NavigationCollapseExpandedDirective,\n  NavigationCollapseRootDirective,\n} from '@edsis/navigation';\n\nimport { BlockShellLogoComponent } from '../logo/logo.component';\n\n@Component({\n  selector: 'block-shell-navigation-header',\n  imports: [\n    NavigationCollapseRootDirective,\n    NavigationCollapseExpandedDirective,\n    RouterLink,\n    BlockShellLogoComponent,\n  ],\n  host: {\n    class: 'contents',\n  },\n  template: `\n    @if (collapsible()) {\n      <div NavigationCollapseRoot class=\"flex items-center gap-3\">\n        <block-shell-logo [text]=\"logoText()\" />\n\n        <div *NavigationCollapseExpanded class=\"min-w-0 flex-1\">\n          <a\n            [routerLink]=\"homePath()\"\n            [attr.aria-label]=\"homeLinkAriaLabel()\"\n            data-block-shell-home-link\n            class=\"block min-w-0 rounded-md px-1 py-0.5 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n          >\n            <p class=\"truncate text-sm font-semibold tracking-tight text-foreground\">\n              {{ name() }}\n            </p>\n          </a>\n        </div>\n      </div>\n    } @else {\n      <div class=\"flex items-center gap-3\">\n        <block-shell-logo [text]=\"logoText()\" />\n\n        <a\n          [routerLink]=\"homePath()\"\n          [attr.aria-label]=\"homeLinkAriaLabel()\"\n          data-block-shell-home-link\n          class=\"block min-w-0 flex-1 rounded-md px-1 py-0.5 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n        >\n          <p class=\"truncate text-sm font-semibold tracking-tight text-foreground\">\n            {{ name() }}\n          </p>\n        </a>\n      </div>\n    }\n  `,\n})\nexport class BlockShellNavigationHeaderComponent {\n  readonly name = input.required<string>();\n  readonly logoText = input('ETOS');\n  readonly homePath = input<`/${string}`>('/');\n  readonly collapsible = input(false);\n\n  protected readonly homeLinkAriaLabel = computed(() => `Buka ${this.name()}`);\n}\n","import { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport { Component, DestroyRef, TemplateRef, computed, inject, input, signal } from '@angular/core';\nimport {\n  NavigationAsideFooterDirective,\n  NavigationContainerComponent,\n  NavigationDockbarComponent,\n  NavigationFooterComponent,\n  NavigationHeaderComponent,\n  NavigationSidebarComponent,\n  type NavigationDockbarMode,\n  type NavigationItem,\n  type NavigationVerticalType,\n} from '@edsis/navigation';\nimport { NavigationService } from '@edsis/navigation/service';\n\nimport { BlockShellNavigationFooterComponent } from './footer.component';\nimport { BlockShellNavigationHeaderComponent } from './header.component';\nimport { BlockShellNavigationMetaComponent } from './meta.component';\n\n@Component({\n  selector: 'block-shell-sidebar-navigation',\n  imports: [\n    NavigationContainerComponent,\n    NavigationSidebarComponent,\n    NavigationDockbarComponent,\n    NavigationHeaderComponent,\n    NavigationFooterComponent,\n    NavigationAsideFooterDirective,\n    BlockShellNavigationHeaderComponent,\n    BlockShellNavigationFooterComponent,\n    BlockShellNavigationMetaComponent,\n    NgTemplateOutlet,\n  ],\n  host: {\n    class: 'contents',\n  },\n  template: `\n    <Navigation\n      id=\"main\"\n      [data]=\"navigation()\"\n      [ariaLabel]=\"ariaLabel()\"\n      collapse-tree=\"stairs\"\n      class=\"h-full\"\n    >\n      @if (effectiveType() === 'dockbar') {\n        <NavigationDockbar [mode]=\"dockbarMode()\" [typeStyle]=\"navTypeStyle()\">\n          <NavigationHeader>\n            <block-shell-navigation-header\n              [name]=\"shellName()\"\n              [logoText]=\"logoText()\"\n              [homePath]=\"homePath()\"\n              [collapsible]=\"true\"\n            />\n          </NavigationHeader>\n\n          <NavigationFooter class=\"px-3\">\n            <block-shell-navigation-footer\n              [name]=\"userName()\"\n              [subtitle]=\"userPosition()\"\n              [photoUrl]=\"userPhotoUrl()\"\n              [collapsible]=\"true\"\n              avatarRadiusClass=\"rounded-full\"\n              [useAvatar]=\"true\"\n              [hideSubtitle]=\"true\"\n              [actionTemplate]=\"footerActionTemplate()\"\n            />\n          </NavigationFooter>\n\n          <ng-template NavigationAsideFooter>\n            <div class=\"flex w-full min-w-0 items-center gap-3\">\n              <block-shell-navigation-meta\n                [name]=\"userName()\"\n                [subtitle]=\"userPosition()\"\n                [hideSubtitle]=\"true\"\n                [containerClass]=\"'min-w-0 flex-1'\"\n                [subtitleClass]=\"'-mt-1 truncate text-xs text-muted-foreground'\"\n              />\n              @if (footerActionTemplate()) {\n                <div class=\"ml-auto shrink-0\">\n                  <ng-container [ngTemplateOutlet]=\"footerActionTemplate()\" />\n                </div>\n              }\n            </div>\n          </ng-template>\n        </NavigationDockbar>\n      } @else {\n        <NavigationSidebar [collapsed]=\"responsiveCollapsed()\" nav-sidebar-collapse>\n          <NavigationHeader>\n            <block-shell-navigation-header\n              [name]=\"shellName()\"\n              [logoText]=\"logoText()\"\n              [homePath]=\"homePath()\"\n              [collapsible]=\"true\"\n            />\n          </NavigationHeader>\n\n          <NavigationFooter class=\"px-3\">\n            <block-shell-navigation-footer\n              [name]=\"userName()\"\n              [subtitle]=\"userPosition()\"\n              [photoUrl]=\"userPhotoUrl()\"\n              [collapsible]=\"true\"\n              avatarRadiusClass=\"rounded-full\"\n              [useAvatar]=\"true\"\n              [hideSubtitle]=\"true\"\n              [actionTemplate]=\"footerActionTemplate()\"\n            />\n          </NavigationFooter>\n        </NavigationSidebar>\n      }\n    </Navigation>\n  `,\n})\nexport class BlockShellSidebarNavigationComponent {\n  private readonly documentRef = inject(DOCUMENT);\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly navigationService = inject(NavigationService);\n\n  readonly navigation = input.required<readonly NavigationItem[]>();\n  readonly shellName = input.required<string>();\n  readonly logoText = input('ETOS');\n  readonly homePath = input<`/${string}`>('/');\n  readonly userName = input.required<string>();\n  readonly userPosition = input.required<string>();\n  readonly userPhotoUrl = input<string | undefined>(undefined);\n  readonly ariaLabel = input('side navigation');\n  readonly footerActionTemplate = input<TemplateRef<unknown> | null>(null);\n  /** Fallback type ketika localStorage `nav-type` kosong atau tidak valid untuk orientasi vertikal. */\n  readonly type = input<NavigationVerticalType>('sidebar');\n\n  protected readonly responsiveCollapsed = signal(this.readResponsiveCollapsed());\n  private readonly navigationState = this.navigationService.state('main');\n\n  /** State NavigationService menang atas fallback input dan langsung reaktif saat pengaturan diubah. */\n  protected readonly effectiveType = computed<NavigationVerticalType>(() => {\n    const state = this.navigationState();\n\n    if (\n      state?.orientation === 'vertical' &&\n      (state.type === 'sidebar' || state.type === 'dockbar')\n    ) {\n      return state.type;\n    }\n\n    // Sebelum state 'main' terdaftar, hormati type persisted agar registrasi\n    // pertama saat refresh tidak menimpa pilihan user (mis. dockbar).\n    const persisted = this.navigationService.persistedTypeFor('vertical');\n\n    return persisted === 'sidebar' || persisted === 'dockbar' ? persisted : this.type();\n  });\n\n  /** Di viewport sempit aside sticky akan mendorong konten; paksa drawer agar overlay. */\n  protected readonly dockbarMode = computed<NavigationDockbarMode>(() => {\n    const state = this.navigationState();\n\n    return this.responsiveCollapsed()\n      ? 'drawer'\n      : state?.type === 'dockbar'\n        ? state.dockbarMode\n        : 'default';\n  });\n\n  protected readonly navTypeStyle = computed(() => 'default' as const);\n\n  constructor() {\n    const windowRef = this.documentRef.defaultView;\n\n    if (!windowRef) {\n      return;\n    }\n\n    const mediaQuery = windowRef.matchMedia('(max-width: 767.98px)');\n    const syncResponsiveCollapsed = (matches: boolean) => this.responsiveCollapsed.set(matches);\n    const handleChange = (event: MediaQueryListEvent) => syncResponsiveCollapsed(event.matches);\n\n    syncResponsiveCollapsed(mediaQuery.matches);\n    mediaQuery.addEventListener('change', handleChange);\n    this.destroyRef.onDestroy(() => mediaQuery.removeEventListener('change', handleChange));\n  }\n\n  private readResponsiveCollapsed(): boolean {\n    return this.documentRef.defaultView?.matchMedia('(max-width: 767.98px)').matches ?? false;\n  }\n}\n","import { Component, computed, inject, input, TemplateRef } from '@angular/core';\nimport {\n  NavigationContainerComponent,\n  NavigationContentComponent,\n  NavigationFlyoutComponent,\n  NavigationFooterComponent,\n  NavigationHeaderComponent,\n  NavigationNavbarComponent,\n  type NavigationHorizontalType,\n  type NavigationItem,\n} from '@edsis/navigation';\nimport { NavigationService } from '@edsis/navigation/service';\nimport { LayoutService } from '@edsis/theme/layout';\nimport { ThemeAppearanceService } from '@edsis/theme/styles';\n\nimport { BlockShellNavigationFooterComponent } from './footer.component';\nimport { BlockShellNavigationHeaderComponent } from './header.component';\n\nconst DESKTOP_NAV_CONTROL_SIZE = 'size-11';\nconst DESKTOP_FLYOUT_ICON_SIZE = 20;\n\n@Component({\n  selector: 'block-shell-top-navigation',\n  imports: [\n    NavigationContainerComponent,\n    NavigationContentComponent,\n    NavigationNavbarComponent,\n    NavigationFlyoutComponent,\n    NavigationHeaderComponent,\n    NavigationFooterComponent,\n    BlockShellNavigationHeaderComponent,\n    BlockShellNavigationFooterComponent,\n  ],\n  host: {\n    class: 'contents',\n  },\n  template: `\n    <Navigation\n      id=\"main\"\n      [data]=\"navigation()\"\n      [ariaLabel]=\"ariaLabel()\"\n      collapse-tree=\"straight\"\n      class=\"h-full\"\n    >\n      @if (effectiveType() === 'flyout') {\n        <NavigationFlyout\n          [label]=\"flyoutLabel()\"\n          [icon]=\"desktopFlyoutIcon()\"\n          [icon-only]=\"flyoutIconOnly()\"\n          [trigger-radius-class]=\"desktopFlyoutTriggerRadiusClass()\"\n          [trigger-size-class]=\"flyoutTriggerSizeClass()\"\n          [trigger-borderless]=\"isDesktopTheme()\"\n          [trigger-backgroundless]=\"isDesktopTheme()\"\n          [trigger-in-footer]=\"isFooterFlyoutTheme()\"\n          [icon-size]=\"desktopFlyoutIconSize()\"\n          [nav-type-style]=\"navTypeStyle()\"\n        >\n          <NavigationHeader>\n            <block-shell-navigation-header\n              [name]=\"shellName()\"\n              [logoText]=\"logoText()\"\n              [homePath]=\"homePath()\"\n            />\n          </NavigationHeader>\n\n          @if (isDesktopTheme()) {\n            <NavigationContent class=\"ml-auto flex-none items-center\" />\n          }\n\n          <NavigationFooter class=\"px-3\" [borderless]=\"isDesktopTheme()\">\n            <block-shell-navigation-footer\n              [name]=\"userName()\"\n              [subtitle]=\"userPosition()\"\n              [photoUrl]=\"userPhotoUrl()\"\n              [desktopOnly]=\"true\"\n              [avatarRadiusClass]=\"desktopAvatarRadiusClass()\"\n              [showMeta]=\"!isDesktopTheme()\"\n              [avatarButton]=\"isDesktopTheme()\"\n              [avatarButtonLabel]=\"desktopAvatarButtonLabel()\"\n              [useAvatar]=\"!isDesktopTheme()\"\n              [avatarOnline]=\"isDesktopTheme()\"\n              [actionTemplate]=\"footerActionTemplate()\"\n            />\n          </NavigationFooter>\n        </NavigationFlyout>\n      } @else {\n        <NavigationNavbar [nav-type-style]=\"navTypeStyle()\">\n          <NavigationHeader>\n            <block-shell-navigation-header\n              [name]=\"shellName()\"\n              [logoText]=\"logoText()\"\n              [homePath]=\"homePath()\"\n            />\n          </NavigationHeader>\n\n          <NavigationFooter class=\"px-3\" [borderless]=\"isDesktopTheme()\">\n            <block-shell-navigation-footer\n              [name]=\"userName()\"\n              [subtitle]=\"userPosition()\"\n              [photoUrl]=\"userPhotoUrl()\"\n              [desktopOnly]=\"true\"\n              [avatarRadiusClass]=\"desktopAvatarRadiusClass()\"\n              [useAvatar]=\"!isDesktopTheme()\"\n              [avatarOnline]=\"isDesktopTheme()\"\n              [actionTemplate]=\"footerActionTemplate()\"\n            />\n          </NavigationFooter>\n        </NavigationNavbar>\n      }\n    </Navigation>\n  `,\n})\nexport class BlockShellTopNavigationComponent {\n  private readonly layout = inject(LayoutService);\n  private readonly navigationService = inject(NavigationService);\n  private readonly themeAppearance = inject(ThemeAppearanceService);\n\n  readonly navigation = input.required<readonly NavigationItem[]>();\n  readonly shellName = input.required<string>();\n  readonly logoText = input('ETOS');\n  readonly homePath = input<`/${string}`>('/');\n  readonly userName = input.required<string>();\n  readonly userPosition = input.required<string>();\n  readonly userPhotoUrl = input<string | undefined>(undefined);\n  readonly footerActionTemplate = input<TemplateRef<unknown> | null>(null);\n  readonly ariaLabel = input('top navigation');\n  /** Fallback type ketika localStorage `nav-type` kosong atau tidak valid untuk orientasi horizontal. */\n  readonly type = input<NavigationHorizontalType>('navbar');\n  readonly flyoutLabel = input('Menu');\n\n  private readonly navigationState = this.navigationService.state('main');\n\n  /** State NavigationService menang atas fallback input dan langsung reaktif saat pengaturan diubah. */\n  protected readonly effectiveType = computed<NavigationHorizontalType>(() => {\n    const state = this.navigationState();\n\n    if (\n      state?.orientation === 'horizontal' &&\n      (state.type === 'navbar' || state.type === 'flyout')\n    ) {\n      return state.type;\n    }\n\n    // Sebelum state 'main' terdaftar, hormati type persisted agar registrasi\n    // pertama saat refresh tidak menimpa pilihan user (mis. flyout).\n    const persisted = this.navigationService.persistedTypeFor('horizontal');\n\n    return persisted === 'navbar' || persisted === 'flyout' ? persisted : this.type();\n  });\n\n  /** Desktop memakai surface nav khusus; rail mempertahankan style navigation border-rail. */\n  protected readonly navTypeStyle = computed(() =>\n    this.isDesktopTheme()\n      ? 'desktop'\n      : this.layout.appearance() === 'rail'\n        ? 'border-rail'\n        : 'default',\n  );\n\n  /** Tema desktop memakai trigger dashboard tanpa label visual; tema lain mempertahankan label. */\n  protected readonly isDesktopTheme = computed(\n    () => this.themeAppearance.appearance() === 'desktop',\n  );\n  protected readonly isBrowserTheme = computed(\n    () => this.themeAppearance.appearance() === 'browser',\n  );\n  protected readonly isRailTheme = computed(() => this.themeAppearance.appearance() === 'rail');\n  protected readonly isFooterFlyoutTheme = computed(\n    () => this.isBrowserTheme() || this.isRailTheme(),\n  );\n  protected readonly desktopFlyoutIcon = computed(() =>\n    this.isDesktopTheme() ? 'dashboard' : this.isFooterFlyoutTheme() ? 'menu' : null,\n  );\n  protected readonly flyoutIconOnly = computed(\n    () => this.isDesktopTheme() || this.isFooterFlyoutTheme(),\n  );\n  protected readonly desktopFlyoutTriggerRadiusClass = computed(() =>\n    this.isDesktopTheme() ? 'rounded-base' : '',\n  );\n  protected readonly flyoutTriggerSizeClass = computed(() =>\n    this.isDesktopTheme() ? DESKTOP_NAV_CONTROL_SIZE : this.isFooterFlyoutTheme() ? 'size-8' : '',\n  );\n  protected readonly desktopFlyoutIconSize = computed(() =>\n    this.isDesktopTheme() ? DESKTOP_FLYOUT_ICON_SIZE : 18,\n  );\n  protected readonly desktopAvatarRadiusClass = computed(() =>\n    this.isDesktopTheme() ? 'rounded-base' : 'rounded-full',\n  );\n  protected readonly desktopAvatarButtonLabel = computed(() => `User menu: ${this.userName()}`);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({ selector: 'ng-template[blockShellNavigationPanel]' })\nexport class BlockShellNavigationPanelDirective {\n  readonly templateRef = inject(TemplateRef<unknown>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({ selector: 'ng-template[blockShellNavigationFooterAction]' })\nexport class BlockShellNavigationFooterActionDirective {\n  readonly templateRef = inject(TemplateRef<unknown>);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, contentChild, inject, input, output } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport {\n  NativeHostService,\n  RuntimeContextService,\n  type EdsisWindowControlAction,\n} from '@edsis/angular/services/runtime';\nimport {\n  DesktopAppBarComponent,\n  LayoutService,\n  LayoutComponent,\n  LayoutContentComponent,\n  LayoutEmptyComponent,\n  LayoutHorizontalComponent,\n  LayoutNavigationComponent,\n  LayoutVerticalComponent,\n  type DesktopAppBarPlatform,\n} from '@edsis/theme/layout';\nimport { type NavigationItem } from '@edsis/navigation';\n\nimport { BlockShellSidebarNavigationComponent } from './navigation/sidebar-navigation.component';\nimport { BlockShellTopNavigationComponent } from './navigation/top-navigation.component';\nimport { BlockShellNavigationPanelDirective } from './navigation-panel.directive';\nimport { BlockShellNavigationFooterActionDirective } from './navigation-footer-action.directive';\n\n@Component({\n  selector: 'block-shell',\n  imports: [\n    LayoutComponent,\n    LayoutVerticalComponent,\n    LayoutHorizontalComponent,\n    LayoutEmptyComponent,\n    LayoutNavigationComponent,\n    LayoutContentComponent,\n    DesktopAppBarComponent,\n    BlockShellSidebarNavigationComponent,\n    BlockShellTopNavigationComponent,\n    NgTemplateOutlet,\n    RouterOutlet,\n  ],\n  host: {\n    class: 'contents',\n  },\n  template: `\n    @if (isDesktopAppearance()) {\n      <DesktopAppBar\n        [platform]=\"desktopAppBarPlatform()\"\n        [navigation]=\"navigation()\"\n        (windowControlRequested)=\"onDesktopWindowControlRequested($event)\"\n        (windowDragRequested)=\"onDesktopWindowDragRequested()\"\n      />\n    }\n\n    <Layout>\n      @switch (layout.type()) {\n        @case ('horizontal') {\n          <LayoutHorizontal>\n            @if (!isDesktopAppearance()) {\n              <LayoutNavigation [landmarkRole]=\"null\" [ariaLabel]=\"null\">\n                <block-shell-top-navigation\n                  [navigation]=\"navigation()\"\n                  [shellName]=\"shellName()\"\n                  [logoText]=\"logoText()\"\n                  [homePath]=\"homePath()\"\n                  [userName]=\"userName()\"\n                  [userPosition]=\"userPosition()\"\n                  [userPhotoUrl]=\"userPhotoUrl()\"\n                  [ariaLabel]=\"topAriaLabel()\"\n                  [footerActionTemplate]=\"footerAction()?.templateRef ?? null\"\n                />\n              </LayoutNavigation>\n            }\n\n            <LayoutContent\n              data-block-shell-content\n              tabindex=\"-1\"\n              [attr.aria-label]=\"contentAriaLabel()\"\n            >\n              <router-outlet />\n            </LayoutContent>\n\n            @if (navigationPanel()) {\n              <div hidden aria-hidden=\"true\" data-block-shell-overlay-panel>\n                <ng-container [ngTemplateOutlet]=\"navigationPanel()!.templateRef\" />\n              </div>\n            }\n          </LayoutHorizontal>\n        }\n\n        @case ('empty') {\n          <LayoutEmpty>\n            <LayoutContent\n              data-block-shell-content\n              tabindex=\"-1\"\n              [attr.aria-label]=\"contentAriaLabel()\"\n            >\n              <router-outlet />\n            </LayoutContent>\n          </LayoutEmpty>\n        }\n\n        @default {\n          <LayoutVertical>\n            @if (!isDesktopAppearance()) {\n              <LayoutNavigation [landmarkRole]=\"null\" [ariaLabel]=\"null\">\n                <div\n                  class=\"contents\"\n                  [hidden]=\"navigationPanelActive()\"\n                  [attr.inert]=\"navigationPanelActive() ? '' : null\"\n                  [attr.aria-hidden]=\"navigationPanelActive() ? 'true' : null\"\n                >\n                  <block-shell-sidebar-navigation\n                    [navigation]=\"navigation()\"\n                    [shellName]=\"shellName()\"\n                    [logoText]=\"logoText()\"\n                    [homePath]=\"homePath()\"\n                    [userName]=\"userName()\"\n                    [userPosition]=\"userPosition()\"\n                    [userPhotoUrl]=\"userPhotoUrl()\"\n                    [ariaLabel]=\"sideAriaLabel()\"\n                    [footerActionTemplate]=\"footerAction()?.templateRef ?? null\"\n                  />\n                </div>\n\n                @if (navigationPanelActive()) {\n                  <ng-container [ngTemplateOutlet]=\"navigationPanel()!.templateRef\" />\n                }\n              </LayoutNavigation>\n            }\n\n            <LayoutContent\n              data-block-shell-content\n              tabindex=\"-1\"\n              [attr.aria-label]=\"contentAriaLabel()\"\n            >\n              <router-outlet />\n            </LayoutContent>\n          </LayoutVertical>\n        }\n      }\n    </Layout>\n\n    @if (isDesktopAppearance() && navigationPanelOpen() && navigationPanel()) {\n      <ng-container [ngTemplateOutlet]=\"navigationPanel()!.templateRef\" />\n    }\n  `,\n})\nexport class BlockShellComponent {\n  readonly navigation = input.required<readonly NavigationItem[]>();\n  /**\n   * @deprecated Tidak lagi dipakai. Navigasi layout browser/rail memakai id `main`, sedangkan\n   * app bar desktop memakai `desktop-main` agar pergantian appearance tidak memiliki owner ganda.\n   * Input dipertahankan sementara demi kompatibilitas pemanggil.\n   */\n  readonly navbarId = input('main');\n  /** @deprecated Tidak lagi dipakai. Lihat kontrak ownership navigation pada `navbarId`. */\n  readonly sidebarNavId = input('main');\n  readonly shellName = input.required<string>();\n  readonly logoText = input('ETOS');\n  readonly homePath = input<`/${string}`>('/');\n  readonly userName = input.required<string>();\n  readonly userPosition = input.required<string>();\n  readonly userPhotoUrl = input<string | undefined>(undefined);\n  readonly topAriaLabel = input('top navigation');\n  readonly sideAriaLabel = input('side navigation');\n  readonly contentAriaLabel = input('layout content');\n  readonly navigationPanelOpen = input(false);\n\n  private readonly runtimeContext = inject(RuntimeContextService, { optional: true });\n  private readonly nativeHost = inject(NativeHostService, { optional: true });\n\n  protected readonly layout: LayoutService = inject(LayoutService);\n  protected readonly isDesktopAppearance = computed(() => this.layout.appearance() === 'desktop');\n  protected readonly desktopAppBarPlatform = computed<DesktopAppBarPlatform | null | undefined>(\n    () => {\n      const context = this.runtimeContext?.context();\n      if (!context || context.host === 'browser') {\n        return undefined;\n      }\n\n      return context.deviceType === 'macos' || context.deviceType === 'windows'\n        ? context.deviceType\n        : null;\n    },\n  );\n  protected readonly navigationPanel = contentChild(BlockShellNavigationPanelDirective);\n  protected readonly footerAction = contentChild(BlockShellNavigationFooterActionDirective);\n  protected readonly navigationPanelActive = computed(\n    () =>\n      this.layout.type() === 'vertical' && this.navigationPanelOpen() && !!this.navigationPanel(),\n  );\n\n  protected onDesktopWindowControlRequested(action: EdsisWindowControlAction): void {\n    const nativeHost = this.nativeHost;\n    if (!nativeHost?.supports('window-controls')) {\n      return;\n    }\n\n    void nativeHost.emitWindowControl(action).catch((error: unknown) => {\n      console.error(`Failed to run window control: ${action}`, error);\n    });\n  }\n\n  protected onDesktopWindowDragRequested(): void {\n    const nativeHost = this.nativeHost;\n    if (!nativeHost?.supports('window-controls')) {\n      return;\n    }\n\n    void nativeHost.startDragging().catch((error: unknown) => {\n      console.error('Failed to start window dragging', error);\n    });\n  }\n}\n","export const MAIN_SIDEBAR_NAV_ID = 'main';\n\nexport function workspaceNavbarId(workspace: string): `${string}-navbar` {\n  return `${workspace}-navbar` as `${string}-navbar`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}