{"version":3,"file":"edsis-component-sheet.mjs","sources":["../../../library/component/sheet/sheet.component.ts","../../../library/component/sheet/sheet-close.directive.ts","../../../library/component/sheet/sheet-parts.component.ts","../../../library/component/sheet/edsis-component-sheet.ts"],"sourcesContent":["import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  Component,\n  DestroyRef,\n  ElementRef,\n  TemplateRef,\n  ViewContainerRef,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\nimport { ButtonComponent } from '@edsis/component/button';\nimport { cn } from '@edsis/component/class';\n\nexport type SheetSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst SIDE_BASE: Record<SheetSide, string> = {\n  top: 'inset-x-0 top-0 border-b border-border',\n  bottom: 'inset-x-0 bottom-0 border-t border-border',\n  left: 'inset-y-0 left-0 h-full w-3/4 border-r border-border sm:max-w-sm',\n  right: 'inset-y-0 right-0 h-full w-3/4 border-l border-border sm:max-w-sm',\n};\n\nconst DRAWER_SIDE_CLASSES: Record<SheetSide, string> = {\n  top: 'max-h-[85vh] rounded-b-lg',\n  bottom: 'max-h-[85vh] rounded-t-lg',\n  left: 'rounded-r-lg',\n  right: 'rounded-l-lg',\n};\n\nconst SIDE_ENTER_FROM: Record<SheetSide, string> = {\n  top: 'translateY(-100%)',\n  bottom: 'translateY(100%)',\n  left: 'translateX(-100%)',\n  right: 'translateX(100%)',\n};\n\n@Component({\n  selector: 'Sheet, Drawer',\n  imports: [ButtonComponent],\n  template: `\n    <ng-template #tpl>\n      <div\n        class=\"sheet-surface fixed z-50 bg-background shadow-lg transition ease-in-out\"\n        role=\"dialog\"\n        aria-modal=\"true\"\n        [attr.aria-labelledby]=\"resolvedLabelledBy()\"\n        [attr.aria-describedby]=\"resolvedDescribedBy()\"\n        [class]=\"surfaceClasses()\"\n        [style.--sheet-from]=\"enterFrom()\"\n      >\n        @if (showCloseButton()) {\n          <button\n            type=\"button\"\n            Button\n            variant=\"ghost\"\n            size=\"icon-sm\"\n            class=\"sheet-close-button absolute right-4 top-4 h-8 w-8 rounded-md p-0 text-muted-foreground opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-2 focus-visible:ring-ring\"\n            [attr.aria-label]=\"closeButtonLabel()\"\n            (click)=\"close()\"\n          >\n            <span aria-hidden=\"true\" class=\"desktop-close-glyph\">X</span>\n            <span class=\"sr-only\">{{ closeButtonLabel() }}</span>\n          </button>\n        }\n        <ng-content />\n      </div>\n    </ng-template>\n  `,\n  styles: [\n    `\n      .sheet-surface {\n        animation: sheet-in 300ms cubic-bezier(0.2, 0, 0, 1);\n      }\n      @keyframes sheet-in {\n        from {\n          transform: var(--sheet-from);\n        }\n        to {\n          transform: translate(0, 0);\n        }\n      }\n      @media (prefers-reduced-motion: reduce) {\n        .sheet-surface {\n          animation-duration: 0ms;\n        }\n      }\n    `,\n  ],\n})\nexport class SheetComponent {\n  private readonly overlay = inject(Overlay);\n  private readonly vcr = inject(ViewContainerRef);\n  private readonly trapFactory = inject(FocusTrapFactory);\n  private readonly doc = inject(DOCUMENT);\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly host = inject(ElementRef<HTMLElement>);\n\n  readonly open = model<boolean>(false);\n  readonly side = input<SheetSide | undefined>(undefined);\n  /** Paksa perilaku 'sheet' atau 'drawer' tanpa bergantung pada nama tag host. */\n  readonly variant = input<'sheet' | 'drawer' | null>(null);\n  readonly closeOnEscape = input<boolean>(true);\n  readonly closeOnBackdropClick = input<boolean>(true);\n  readonly showCloseButton = input<boolean>(true);\n  readonly restoreFocus = input<boolean>(true);\n  readonly closeButtonLabel = input<string>('Close');\n  readonly labelledBy = input<string | null>(null, { alias: 'aria-labelledby' });\n  readonly describedBy = input<string | null>(null, { alias: 'aria-describedby' });\n  readonly class = input<string>('');\n\n  readonly openedChange = output<boolean>();\n  private readonly registeredLabelledBy = signal<string | null>(null);\n  private readonly registeredDescribedBy = signal<string | null>(null);\n\n  private readonly tpl = viewChild.required<TemplateRef<unknown>>('tpl');\n  private overlayRef: OverlayRef | null = null;\n  private focusTrap: FocusTrap | null = null;\n  private previousFocus: HTMLElement | null = null;\n\n  private readonly resolvedSide = computed<SheetSide>(\n    () => this.side() ?? (this.isDrawerHost() ? 'bottom' : 'right'),\n  );\n\n  protected readonly surfaceClasses = computed(() =>\n    cn(\n      'gap-4 p-6 flex flex-col',\n      SIDE_BASE[this.resolvedSide()],\n      this.isDrawerHost() ? DRAWER_SIDE_CLASSES[this.resolvedSide()] : '',\n      this.class(),\n    ),\n  );\n\n  protected readonly enterFrom = computed(() => SIDE_ENTER_FROM[this.resolvedSide()]);\n  protected readonly resolvedLabelledBy = computed(\n    () => this.labelledBy() ?? this.registeredLabelledBy(),\n  );\n  protected readonly resolvedDescribedBy = computed(\n    () => this.describedBy() ?? this.registeredDescribedBy(),\n  );\n\n  constructor() {\n    this.destroyRef.onDestroy(() => this.detach(false));\n\n    effect(() => {\n      this.open() ? this.attach() : this.detach();\n    });\n  }\n\n  private attach(): void {\n    if (this.overlayRef) return;\n    this.previousFocus = this.doc.activeElement as HTMLElement | null;\n\n    this.overlayRef = this.overlay.create({\n      hasBackdrop: true,\n      backdropClass: 'dialog-backdrop',\n      panelClass: 'sheet-panel',\n      scrollStrategy: this.overlay.scrollStrategies.block(),\n      positionStrategy: this.overlay.position().global(),\n    });\n\n    const portal = new TemplatePortal(this.tpl(), this.vcr);\n    this.overlayRef.attach(portal);\n\n    this.focusTrap = this.trapFactory.create(this.overlayRef.hostElement);\n    this.focusTrap.focusInitialElementWhenReady();\n\n    if (this.closeOnBackdropClick()) {\n      this.overlayRef\n        .backdropClick()\n        .pipe(takeUntilDestroyed(this.destroyRef))\n        .subscribe(() => this.open.set(false));\n    }\n\n    this.overlayRef\n      .keydownEvents()\n      .pipe(\n        takeUntilDestroyed(this.destroyRef),\n        filter((e) => e.key === 'Escape' && this.closeOnEscape()),\n      )\n      .subscribe((e) => {\n        e.preventDefault();\n        this.open.set(false);\n      });\n\n    this.openedChange.emit(true);\n  }\n\n  private detach(emitOpenedChange = true): void {\n    if (!this.overlayRef) return;\n    this.focusTrap?.destroy();\n    this.focusTrap = null;\n    this.overlayRef.dispose();\n    this.overlayRef = null;\n    if (this.restoreFocus()) {\n      this.previousFocus?.focus?.();\n    }\n    this.previousFocus = null;\n    if (emitOpenedChange) {\n      this.openedChange.emit(false);\n    }\n  }\n\n  close(): void {\n    this.open.set(false);\n  }\n\n  registerLabelledBy(id: string): void {\n    this.registeredLabelledBy.set(id);\n  }\n\n  unregisterLabelledBy(id: string): void {\n    if (this.registeredLabelledBy() === id) {\n      this.registeredLabelledBy.set(null);\n    }\n  }\n\n  registerDescribedBy(id: string): void {\n    this.registeredDescribedBy.set(id);\n  }\n\n  unregisterDescribedBy(id: string): void {\n    if (this.registeredDescribedBy() === id) {\n      this.registeredDescribedBy.set(null);\n    }\n  }\n\n  private isDrawerHost(): boolean {\n    const variant = this.variant();\n\n    if (variant) {\n      return variant === 'drawer';\n    }\n\n    // Fallback: infer dari tag host (selector komponen ini: 'Sheet, Drawer').\n    // localName DOM selalu lowercase, meski tag template ditulis '<Drawer>'.\n    return this.host.nativeElement.localName === 'drawer';\n  }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { SheetComponent } from './sheet.component';\n\n@Directive({\n  selector: 'button[SheetClose], a[SheetClose], button[DrawerClose], a[DrawerClose]',\n  host: {\n    '(click)': 'closeSheet()',\n  },\n})\nexport class SheetCloseDirective {\n  private readonly sheet = inject(SheetComponent);\n\n  closeSheet(): void {\n    this.sheet.close();\n  }\n}\n","import { Component, HostAttributeToken, computed, effect, inject, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\nimport { uniqueId } from '@edsis/component/id';\nimport { SheetComponent } from './sheet.component';\n\n@Component({\n  selector: 'SheetHeader, DrawerHeader',\n  host: { '[class]': 'classes()' },\n  template: `<ng-content />`,\n})\nexport class SheetHeaderComponent {\n  readonly class = input<string>('');\n  protected readonly classes = computed(() =>\n    cn('flex flex-col gap-2 text-center sm:text-left', this.class()),\n  );\n}\n\n@Component({\n  selector: 'SheetTitle, DrawerTitle, h2[SheetTitle], h2[DrawerTitle]',\n  host: {\n    '[attr.id]': 'resolvedId()',\n    '[class]': 'classes()',\n  },\n  template: `<ng-content />`,\n})\nexport class SheetTitleComponent {\n  private readonly sheet = inject(SheetComponent, { optional: true });\n  private readonly staticId = inject(new HostAttributeToken('id'), { optional: true });\n  private readonly generatedId = uniqueId('SheetTitle');\n\n  readonly id = input<string | null>(null);\n  readonly class = input<string>('');\n  protected readonly resolvedId = computed(() => this.id() ?? this.staticId ?? this.generatedId);\n  protected readonly classes = computed(() =>\n    cn('text-lg font-semibold text-foreground', this.class()),\n  );\n\n  constructor() {\n    effect((onCleanup) => {\n      const id = this.resolvedId();\n      this.sheet?.registerLabelledBy(id);\n      onCleanup(() => this.sheet?.unregisterLabelledBy(id));\n    });\n  }\n}\n\n@Component({\n  selector: 'SheetDescription, DrawerDescription, p[SheetDescription], p[DrawerDescription]',\n  host: {\n    '[attr.id]': 'resolvedId()',\n    '[class]': 'classes()',\n  },\n  template: `<ng-content />`,\n})\nexport class SheetDescriptionComponent {\n  private readonly sheet = inject(SheetComponent, { optional: true });\n  private readonly staticId = inject(new HostAttributeToken('id'), { optional: true });\n  private readonly generatedId = uniqueId('SheetDescription');\n\n  readonly id = input<string | null>(null);\n  readonly class = input<string>('');\n  protected readonly resolvedId = computed(() => this.id() ?? this.staticId ?? this.generatedId);\n  protected readonly classes = computed(() => cn('text-sm text-muted-foreground', this.class()));\n\n  constructor() {\n    effect((onCleanup) => {\n      const id = this.resolvedId();\n      this.sheet?.registerDescribedBy(id);\n      onCleanup(() => this.sheet?.unregisterDescribedBy(id));\n    });\n  }\n}\n\n@Component({\n  selector: 'SheetContent, DrawerContent',\n  host: { '[class]': 'classes()' },\n  template: `<ng-content />`,\n})\nexport class SheetContentComponent {\n  readonly class = input<string>('');\n  protected readonly classes = computed(() => cn('flex-1 overflow-auto', this.class()));\n}\n\n@Component({\n  selector: 'SheetFooter, DrawerFooter',\n  host: { '[class]': 'classes()' },\n  template: `<ng-content />`,\n})\nexport class SheetFooterComponent {\n  readonly class = input<string>('');\n  protected readonly classes = computed(() =>\n    cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', this.class()),\n  );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}