{"version":3,"file":"ngx-com-components-collapsible.mjs","sources":["../../../projects/com/components/collapsible/collapsible.variants.ts","../../../projects/com/components/collapsible/collapsible-trigger.variants.ts","../../../projects/com/components/collapsible/directives/collapsible-trigger-tpl.directive.ts","../../../projects/com/components/collapsible/directives/collapsible-content-tpl.directive.ts","../../../projects/com/components/collapsible/directives/collapsible-icon-tpl.directive.ts","../../../projects/com/components/collapsible/directives/collapsible-lazy.directive.ts","../../../projects/com/components/collapsible/collapsible.utils.ts","../../../projects/com/components/collapsible/collapsible.directive.ts","../../../projects/com/components/collapsible/collapsible-trigger.component.ts","../../../projects/com/components/collapsible/collapsible-content.component.ts","../../../projects/com/components/collapsible/index.ts","../../../projects/com/components/collapsible/ngx-com-components-collapsible.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\n/**\n * Shell variant type for the collapsible container.\n */\nexport type CollapsibleVariant = 'card' | 'bordered' | 'flush' | 'ghost' | 'unstyled';\n\n/**\n * CVA variants for the collapsible shell (root directive).\n *\n * @tokens `--color-border`, `--color-background`, `--color-foreground`, `--shadow-xs`, `--radius-collapsible`\n */\nexport const collapsibleVariants: (props?: {\n  variant?: CollapsibleVariant;\n}) => string = cva(\n  // Base — structural only\n  'com-collapsible block',\n  {\n    variants: {\n      variant: {\n        card: 'rounded-collapsible border border-border bg-background text-foreground shadow-xs',\n        bordered: 'rounded-collapsible border border-border',\n        flush: 'border-b border-border',\n        ghost: '',\n        unstyled: '',\n      },\n    },\n    defaultVariants: {\n      variant: 'ghost',\n    },\n  }\n);\n\nexport type CollapsibleVariants = VariantProps<typeof collapsibleVariants>;\n","import { cva, type VariantProps } from 'class-variance-authority';\n\n/**\n * Trigger variant type for the collapsible trigger.\n */\nexport type CollapsibleTriggerVariant = 'ghost' | 'filled' | 'header' | 'unstyled';\n\n/**\n * Trigger size type.\n */\nexport type CollapsibleTriggerSize = 'sm' | 'default' | 'lg';\n\n/**\n * CVA variants for the collapsible trigger directive.\n *\n * @tokens `--color-foreground`, `--color-muted`, `--color-muted-foreground`, `--color-muted-hover`,\n *         `--color-ring`, `--color-disabled-foreground`, `--radius-collapsible`\n */\nexport const collapsibleTriggerVariants: (props?: {\n  variant?: CollapsibleTriggerVariant;\n  size?: CollapsibleTriggerSize;\n}) => string = cva(\n  [\n    'com-collapsible-trigger',\n    'flex w-full items-center justify-between',\n    'cursor-pointer select-none',\n    'text-sm font-medium',\n    'transition-colors',\n    'focus-visible:outline-[1px] focus-visible:outline-offset-2 focus-visible:outline-ring',\n    'disabled:pointer-events-none disabled:text-disabled-foreground',\n    '[&>svg]:transition-transform [&>svg]:duration-slow',\n    '[&>svg.com-collapsible-icon]:data-[state=open]:rotate-180',\n  ].join(' '),\n  {\n    variants: {\n      variant: {\n        ghost: 'rounded-collapsible text-foreground hover:bg-muted hover:text-muted-foreground',\n        filled: 'rounded-collapsible bg-muted text-muted-foreground hover:bg-muted-hover',\n        header: 'text-foreground hover:text-muted-foreground',\n        unstyled: '',\n      },\n      size: {\n        sm: 'px-2 py-1 text-xs gap-1',\n        default: 'px-3 py-2 text-sm gap-2',\n        lg: 'px-4 py-3 text-base gap-3',\n      },\n    },\n    defaultVariants: {\n      variant: 'ghost',\n      size: 'default',\n    },\n  }\n);\n\nexport type CollapsibleTriggerVariants = VariantProps<typeof collapsibleTriggerVariants>;\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport type { ComCollapsibleTriggerContext } from '../collapsible.models';\n\n/**\n * Directive to mark a template as the custom trigger layout template.\n * Replaces the inner content of the trigger while preserving ARIA and keyboard handling.\n *\n * @tokens none\n *\n * @example\n * ```html\n * <button comCollapsibleTrigger>\n *   <ng-template comCollapsibleTriggerTpl let-open let-toggle=\"toggle\" let-disabled=\"disabled\">\n *     <div class=\"flex items-center gap-3 w-full\">\n *       <span class=\"h-2 w-2 rounded-full\" [class]=\"open ? 'bg-success' : 'bg-muted'\"></span>\n *       <span class=\"font-medium\">Notifications</span>\n *       <svg class=\"com-collapsible-icon h-4 w-4\" [attr.data-state]=\"open ? 'open' : 'closed'\">\n *         <!-- chevron icon -->\n *       </svg>\n *     </div>\n *   </ng-template>\n * </button>\n * ```\n */\n@Directive({\n  selector: 'ng-template[comCollapsibleTriggerTpl]',\n})\nexport class ComCollapsibleTriggerTpl {\n  /** Reference to the template. */\n  readonly templateRef: TemplateRef<ComCollapsibleTriggerContext> =\n    inject<TemplateRef<ComCollapsibleTriggerContext>>(TemplateRef);\n\n  /**\n   * Static type guard for template type checking.\n   * Enables type-safe access to context properties in templates.\n   */\n  static ngTemplateContextGuard(\n    _dir: ComCollapsibleTriggerTpl,\n    ctx: unknown\n  ): ctx is ComCollapsibleTriggerContext {\n    return true;\n  }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport type { ComCollapsibleContentContext } from '../collapsible.models';\n\n/**\n * Directive to mark a template as the custom content chrome template.\n * Wraps the content with custom chrome (headers, footers, padding).\n * The grid animation still applies on the host.\n *\n * @tokens none\n *\n * @example\n * ```html\n * <com-collapsible-content>\n *   <ng-template comCollapsibleContentTpl let-open=\"open\">\n *     <div class=\"border-t border-border\">\n *       <div class=\"p-4 space-y-3\">\n *         <!-- Content here -->\n *       </div>\n *       <div class=\"flex justify-end gap-2 px-4 py-3 border-t border-border-subtle bg-muted\">\n *         <button>Reset</button>\n *         <button>Apply</button>\n *       </div>\n *     </div>\n *   </ng-template>\n * </com-collapsible-content>\n * ```\n */\n@Directive({\n  selector: 'ng-template[comCollapsibleContentTpl]',\n})\nexport class ComCollapsibleContentTpl {\n  /** Reference to the template. */\n  readonly templateRef: TemplateRef<ComCollapsibleContentContext> =\n    inject<TemplateRef<ComCollapsibleContentContext>>(TemplateRef);\n\n  /**\n   * Static type guard for template type checking.\n   * Enables type-safe access to context properties in templates.\n   */\n  static ngTemplateContextGuard(\n    _dir: ComCollapsibleContentTpl,\n    ctx: unknown\n  ): ctx is ComCollapsibleContentContext {\n    return true;\n  }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport type { ComCollapsibleIconContext } from '../collapsible.models';\n\n/**\n * Directive to mark a template as the custom icon template.\n * Replaces only the chevron icon inside the default trigger layout.\n *\n * @tokens none\n *\n * @example\n * ```html\n * <button comCollapsibleTrigger>\n *   Settings\n *   <ng-template comCollapsibleIcon let-open=\"open\">\n *     <span class=\"text-muted-foreground text-xs\">{{ open ? '▲' : '▼' }}</span>\n *   </ng-template>\n * </button>\n * ```\n */\n@Directive({\n  selector: 'ng-template[comCollapsibleIcon]',\n})\nexport class ComCollapsibleIconTpl {\n  /** Reference to the template. */\n  readonly templateRef: TemplateRef<ComCollapsibleIconContext> =\n    inject<TemplateRef<ComCollapsibleIconContext>>(TemplateRef);\n\n  /**\n   * Static type guard for template type checking.\n   * Enables type-safe access to context properties in templates.\n   */\n  static ngTemplateContextGuard(\n    _dir: ComCollapsibleIconTpl,\n    ctx: unknown\n  ): ctx is ComCollapsibleIconContext {\n    return true;\n  }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n/**\n * Structural directive for lazy content rendering.\n * Content is only instantiated on first expand, preserving state on subsequent toggles.\n *\n * @tokens none\n *\n * @example\n * ```html\n * <com-collapsible-content>\n *   <ng-template comCollapsibleLazy>\n *     <app-heavy-chart [data]=\"chartData()\" />\n *   </ng-template>\n * </com-collapsible-content>\n * ```\n */\n@Directive({\n  selector: 'ng-template[comCollapsibleLazy]',\n})\nexport class ComCollapsibleLazy {\n  /** Reference to the template. */\n  readonly templateRef: TemplateRef<void> = inject<TemplateRef<void>>(TemplateRef);\n}\n","export { mergeClasses } from 'ngx-com/utils';\n\nlet collapsibleIdCounter = 0;\n\n/**\n * Generates a unique ID for collapsible components.\n * @returns A unique string ID\n */\nexport function generateCollapsibleId(): string {\n  return `com-collapsible-${++collapsibleIdCounter}`;\n}\n","import {\n  booleanAttribute,\n  computed,\n  Directive,\n  input,\n  model,\n} from '@angular/core';\nimport type { InputSignal, InputSignalWithTransform, ModelSignal, Signal } from '@angular/core';\nimport { mergeClasses, generateCollapsibleId } from './collapsible.utils';\nimport { collapsibleVariants } from './collapsible.variants';\nimport type { CollapsibleVariant } from './collapsible.variants';\n\n/**\n * Root collapsible directive — manages state and provides shell styling.\n *\n * Works as a DI anchor for child directives (trigger, content).\n * Exposes programmatic control via template reference.\n *\n * @tokens `--color-border`, `--color-background`, `--color-foreground`, `--shadow-xs`\n *\n * @example Basic usage\n * ```html\n * <div comCollapsible variant=\"card\">\n *   <button comCollapsibleTrigger>Section Title</button>\n *   <com-collapsible-content>\n *     <div class=\"p-4\">Content here.</div>\n *   </com-collapsible-content>\n * </div>\n * ```\n *\n * @example Two-way binding with external control\n * ```html\n * <div comCollapsible [(open)]=\"sectionOpen\" #section=\"comCollapsible\">\n *   <button comCollapsibleTrigger>Advanced</button>\n *   <com-collapsible-content>...</com-collapsible-content>\n * </div>\n * <button (click)=\"section.toggle()\">Toggle externally</button>\n * ```\n */\n@Directive({\n  selector: '[comCollapsible]',\n  exportAs: 'comCollapsible',\n  host: {\n    '[class]': 'computedClass()',\n    '[attr.data-state]': 'isOpen() ? \"open\" : \"closed\"',\n  },\n})\nexport class ComCollapsible {\n  /** Unique ID for the collapsible instance. */\n  private readonly id: string = generateCollapsibleId();\n\n  /** ID for the trigger element (used for aria-labelledby). */\n  readonly triggerId: string = `${this.id}-trigger`;\n\n  /** ID for the content panel (used for aria-controls). */\n  readonly contentId: string = `${this.id}-content`;\n\n  // ============ INPUTS ============\n\n  /** Two-way bound open state. */\n  readonly open: ModelSignal<boolean> = model<boolean>(false);\n\n  /** Disables the collapsible, preventing state changes. */\n  readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n    transform: booleanAttribute,\n  });\n\n  /** Shell preset variant. */\n  readonly variant: InputSignal<CollapsibleVariant> = input<CollapsibleVariant>('ghost');\n\n  /** Consumer CSS classes — merged with variant classes. */\n  readonly userClass: InputSignal<string> = input<string>('', { alias: 'class' });\n\n  // ============ COMPUTED STATE ============\n\n  /** @internal Computed host class from CVA + consumer overrides. */\n  protected readonly computedClass: Signal<string> = computed(() =>\n    mergeClasses(\n      collapsibleVariants({ variant: this.variant() }),\n      this.userClass()\n    )\n  );\n\n  // ============ PUBLIC API ============\n\n  /** Returns the current open state. */\n  isOpen(): boolean {\n    return this.open();\n  }\n\n  /** Returns the current disabled state. */\n  isDisabled(): boolean {\n    return this.disabled();\n  }\n\n  /** Toggles the open state (if not disabled). */\n  toggle(): void {\n    if (this.disabled()) return;\n    this.open.update((v) => !v);\n  }\n\n  /** Expands the collapsible (if not disabled). */\n  expand(): void {\n    if (this.disabled()) return;\n    this.open.set(true);\n  }\n\n  /** Collapses the collapsible (if not disabled). */\n  collapse(): void {\n    if (this.disabled()) return;\n    this.open.set(false);\n  }\n}\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChild,\n  inject,\n  input,\n} from '@angular/core';\nimport type { InputSignal, InputSignalWithTransform, Signal } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ComCollapsible } from './collapsible.directive';\nimport { ComCollapsibleTriggerTpl } from './directives/collapsible-trigger-tpl.directive';\nimport { ComCollapsibleIconTpl } from './directives/collapsible-icon-tpl.directive';\nimport { mergeClasses } from './collapsible.utils';\nimport { collapsibleTriggerVariants } from './collapsible-trigger.variants';\nimport type { CollapsibleTriggerVariant, CollapsibleTriggerSize } from './collapsible-trigger.variants';\nimport type { ComCollapsibleTriggerContext, ComCollapsibleIconContext } from './collapsible.models';\n\n/**\n * Collapsible trigger component — handles toggle interaction, ARIA, keyboard, and template rendering.\n *\n * Uses attribute selector so it can be applied to `<button>` or any focusable element.\n * Injects the parent `ComCollapsible` directive to access state.\n * Supports custom trigger layout via `comCollapsibleTriggerTpl` and custom icon via `comCollapsibleIcon`.\n *\n * @tokens `--color-foreground`, `--color-muted`, `--color-muted-foreground`, `--color-muted-hover`,\n *         `--color-ring`, `--color-disabled-foreground`\n *\n * @example Default trigger with auto icon\n * ```html\n * <button comCollapsibleTrigger>Section Title</button>\n * ```\n *\n * @example Without icon\n * ```html\n * <button comCollapsibleTrigger [showIcon]=\"false\">Section Title</button>\n * ```\n *\n * @example With custom icon\n * ```html\n * <button comCollapsibleTrigger>\n *   Settings\n *   <ng-template comCollapsibleIcon let-open=\"open\">\n *     <span class=\"text-xs text-muted-foreground\">{{ open ? '▲' : '▼' }}</span>\n *   </ng-template>\n * </button>\n * ```\n *\n * @example Full trigger layout override\n * ```html\n * <button comCollapsibleTrigger>\n *   <ng-template comCollapsibleTriggerTpl let-open let-toggle=\"toggle\">\n *     <div class=\"flex items-center gap-3 w-full\">\n *       <span class=\"h-2 w-2 rounded-full\" [class]=\"open ? 'bg-success' : 'bg-muted'\"></span>\n *       <span class=\"font-medium\">Notifications</span>\n *       <svg class=\"com-collapsible-icon h-4 w-4\" [attr.data-state]=\"open ? 'open' : 'closed'\">\n *         <!-- chevron -->\n *       </svg>\n *     </div>\n *   </ng-template>\n * </button>\n * ```\n */\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector -- intentional attribute selector for host element flexibility\n  selector: '[comCollapsibleTrigger]',\n  template: `\n    @if (triggerTpl()) {\n      <ng-container\n        [ngTemplateOutlet]=\"triggerTpl()!.templateRef\"\n        [ngTemplateOutletContext]=\"triggerContext()\"\n      />\n    } @else {\n      <span class=\"flex-1 truncate text-left\">\n        <ng-content />\n      </span>\n      @if (showIcon()) {\n        @if (iconTpl()) {\n          <ng-container\n            [ngTemplateOutlet]=\"iconTpl()!.templateRef\"\n            [ngTemplateOutletContext]=\"iconContext()\"\n          />\n        } @else {\n          <svg\n            class=\"com-collapsible-icon h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-slow\"\n            [attr.data-state]=\"collapsible.isOpen() ? 'open' : 'closed'\"\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            stroke-width=\"2\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n          >\n            <polyline points=\"6 9 12 15 18 9\" />\n          </svg>\n        }\n      }\n    }\n  `,\n  styles: `\n    :host {\n      display: flex;\n    }\n  `,\n  imports: [NgTemplateOutlet],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class]': 'computedClass()',\n    '[attr.id]': 'collapsible.triggerId',\n    '[attr.type]': '\"button\"',\n    '[attr.aria-expanded]': 'collapsible.isOpen()',\n    '[attr.aria-controls]': 'collapsible.contentId',\n    '[attr.aria-disabled]': 'collapsible.isDisabled() || null',\n    '[attr.data-state]': 'collapsible.isOpen() ? \"open\" : \"closed\"',\n    '[attr.disabled]': 'collapsible.isDisabled() || null',\n    '[tabindex]': 'collapsible.isDisabled() ? -1 : 0',\n    '(click)': 'onClick($event)',\n    '(keydown.enter)': 'onKeydown($event)',\n    '(keydown.space)': 'onKeydown($event)',\n  },\n})\nexport class ComCollapsibleTrigger {\n  /** Parent collapsible directive (provides state). */\n  protected readonly collapsible: ComCollapsible = inject(ComCollapsible);\n\n  /** Custom trigger layout template (replaces inner content). */\n  protected readonly triggerTpl: Signal<ComCollapsibleTriggerTpl | undefined> =\n    contentChild<ComCollapsibleTriggerTpl>(ComCollapsibleTriggerTpl);\n\n  /** Custom icon template (replaces default chevron). */\n  protected readonly iconTpl: Signal<ComCollapsibleIconTpl | undefined> =\n    contentChild<ComCollapsibleIconTpl>(ComCollapsibleIconTpl);\n\n  // ============ INPUTS ============\n\n  /** Trigger preset variant. */\n  readonly variant: InputSignal<CollapsibleTriggerVariant> =\n    input<CollapsibleTriggerVariant>('ghost');\n\n  /** Trigger size. */\n  readonly size: InputSignal<CollapsibleTriggerSize> =\n    input<CollapsibleTriggerSize>('default');\n\n  /** Show/hide the toggle icon. */\n  readonly showIcon: InputSignalWithTransform<boolean, unknown> = input(true, {\n    transform: booleanAttribute,\n  });\n\n  /** Consumer CSS classes — merged with variant classes. */\n  readonly userClass: InputSignal<string> = input<string>('', { alias: 'class' });\n\n  // ============ COMPUTED STATE ============\n\n  /** @internal Computed host class from CVA + consumer overrides. */\n  protected readonly computedClass: Signal<string> = computed(() =>\n    mergeClasses(\n      collapsibleTriggerVariants({\n        variant: this.variant(),\n        size: this.size(),\n      }),\n      this.userClass()\n    )\n  );\n\n  /** Context for trigger template. */\n  readonly triggerContext: Signal<ComCollapsibleTriggerContext> = computed(() => ({\n    $implicit: this.collapsible.isOpen(),\n    open: this.collapsible.isOpen(),\n    disabled: this.collapsible.isDisabled(),\n    toggle: () => this.collapsible.toggle(),\n  }));\n\n  /** Context for icon template. */\n  readonly iconContext: Signal<ComCollapsibleIconContext> = computed(() => ({\n    $implicit: this.collapsible.isOpen(),\n    open: this.collapsible.isOpen(),\n  }));\n\n  // ============ EVENT HANDLERS ============\n\n  /** @internal */\n  protected onClick(event: Event): void {\n    event.preventDefault();\n    this.collapsible.toggle();\n  }\n\n  /** @internal */\n  protected onKeydown(event: Event): void {\n    event.preventDefault();\n    this.collapsible.toggle();\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChild,\n  inject,\n  input,\n  linkedSignal,\n} from '@angular/core';\nimport type { InputSignal, Signal } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ComCollapsible } from './collapsible.directive';\nimport { ComCollapsibleContentTpl } from './directives/collapsible-content-tpl.directive';\nimport { ComCollapsibleLazy } from './directives/collapsible-lazy.directive';\nimport { mergeClasses } from './collapsible.utils';\nimport type { ComCollapsibleContentContext } from './collapsible.models';\n\n/**\n * Collapsible content component — animated panel with region role.\n *\n * Uses CSS grid technique for smooth height animation without JS measurement.\n * Supports lazy rendering via `comCollapsibleLazy` directive.\n *\n * @tokens None (structural only — styling is applied via templates or consumer classes)\n *\n * @example Basic usage\n * ```html\n * <com-collapsible-content>\n *   <div class=\"p-4\">Content here.</div>\n * </com-collapsible-content>\n * ```\n *\n * @example With custom duration\n * ```html\n * <com-collapsible-content [duration]=\"300\">\n *   <div class=\"p-4\">Slower animation.</div>\n * </com-collapsible-content>\n * ```\n *\n * @example With content chrome template\n * ```html\n * <com-collapsible-content>\n *   <ng-template comCollapsibleContentTpl let-open=\"open\">\n *     <div class=\"border-t border-border p-4\">\n *       <!-- Content with custom chrome -->\n *     </div>\n *   </ng-template>\n * </com-collapsible-content>\n * ```\n *\n * @example Lazy content\n * ```html\n * <com-collapsible-content>\n *   <ng-template comCollapsibleLazy>\n *     <app-heavy-component />\n *   </ng-template>\n * </com-collapsible-content>\n * ```\n */\n@Component({\n  selector: 'com-collapsible-content',\n  template: `\n    @if (contentTpl()) {\n      <div class=\"com-collapsible-content-inner\" [class]=\"innerClass()\">\n        <ng-container\n          [ngTemplateOutlet]=\"contentTpl()!.templateRef\"\n          [ngTemplateOutletContext]=\"templateContext()\"\n        />\n      </div>\n    } @else if (lazyTpl()) {\n      @if (hasBeenOpened()) {\n        <div class=\"com-collapsible-content-inner\" [class]=\"innerClass()\">\n          <ng-container [ngTemplateOutlet]=\"lazyTpl()!.templateRef\" />\n        </div>\n      }\n    } @else {\n      <div class=\"com-collapsible-content-inner\" [class]=\"innerClass()\">\n        <ng-content />\n      </div>\n    }\n  `,\n  styles: `\n    :host {\n      display: grid;\n      grid-template-rows: 0fr;\n      transition: grid-template-rows var(--duration, 200ms) ease;\n    }\n    :host([data-state='open']) {\n      grid-template-rows: 1fr;\n    }\n    .com-collapsible-content-inner {\n      overflow: hidden;\n    }\n  `,\n  imports: [NgTemplateOutlet],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'com-collapsible-content',\n    '[style.--duration.ms]': 'duration()',\n    '[attr.id]': 'collapsible.contentId',\n    '[attr.role]': '\"region\"',\n    '[attr.aria-labelledby]': 'collapsible.triggerId',\n    '[attr.data-state]': 'collapsible.isOpen() ? \"open\" : \"closed\"',\n    '[attr.inert]': '!collapsible.isOpen() || null',\n  },\n})\nexport class ComCollapsibleContent {\n  /** Parent collapsible directive (provides state). */\n  protected readonly collapsible: ComCollapsible = inject(ComCollapsible);\n\n  /** Custom content chrome template. */\n  protected readonly contentTpl: Signal<ComCollapsibleContentTpl | undefined> =\n    contentChild<ComCollapsibleContentTpl>(ComCollapsibleContentTpl);\n\n  /** Lazy content template. */\n  protected readonly lazyTpl: Signal<ComCollapsibleLazy | undefined> =\n    contentChild<ComCollapsibleLazy>(ComCollapsibleLazy);\n\n  /** Track if collapsible has ever been opened (for lazy rendering). */\n  protected readonly hasBeenOpened: Signal<boolean> = linkedSignal({\n    source: () => this.collapsible.isOpen(),\n    computation: (isOpen: boolean, previous: { value: boolean } | undefined) => isOpen || (previous?.value ?? false),\n  });\n\n  // ============ INPUTS ============\n\n  /** Transition duration in milliseconds. */\n  readonly duration: InputSignal<number> = input<number>(200);\n\n  /** Consumer CSS classes for the inner wrapper. */\n  readonly userClass: InputSignal<string> = input<string>('', { alias: 'class' });\n\n  // ============ COMPUTED STATE ============\n\n  /** @internal Computed inner wrapper class. */\n  protected readonly innerClass: Signal<string> = computed(() =>\n    mergeClasses('com-collapsible-content-inner', this.userClass())\n  );\n\n  /** Context for content template. */\n  readonly templateContext: Signal<ComCollapsibleContentContext> = computed(() => ({\n    $implicit: this.collapsible.isOpen(),\n    open: this.collapsible.isOpen(),\n  }));\n\n  constructor() {}\n}\n","// Public API for the collapsible component\n\n// Types\nexport type {\n  ComCollapsibleTriggerContext,\n  ComCollapsibleContentContext,\n  ComCollapsibleIconContext,\n} from './collapsible.models';\n\n// Variants\nexport { collapsibleVariants } from './collapsible.variants';\nexport type { CollapsibleVariant, CollapsibleVariants } from './collapsible.variants';\n\nexport { collapsibleTriggerVariants } from './collapsible-trigger.variants';\nexport type {\n  CollapsibleTriggerVariant,\n  CollapsibleTriggerSize,\n  CollapsibleTriggerVariants,\n} from './collapsible-trigger.variants';\n\n// Template directives\nexport { ComCollapsibleTriggerTpl } from './directives/collapsible-trigger-tpl.directive';\nexport { ComCollapsibleContentTpl } from './directives/collapsible-content-tpl.directive';\nexport { ComCollapsibleIconTpl } from './directives/collapsible-icon-tpl.directive';\nexport { ComCollapsibleLazy } from './directives/collapsible-lazy.directive';\n\n// Main components\nexport { ComCollapsible } from './collapsible.directive';\nexport { ComCollapsibleTrigger } from './collapsible-trigger.component';\nexport { ComCollapsibleContent } from './collapsible-content.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}