{"version":3,"file":"atelier-ui-angular.mjs","sources":["../../../../libs/angular/src/lib/button/atl-button.ts","../../../../libs/angular/src/lib/card/atl-card.ts","../../../../libs/angular/src/lib/badge/atl-badge.ts","../../../../libs/angular/src/lib/icon/atl-icon.ts","../../../../libs/angular/src/lib/input/atl-input.ts","../../../../libs/angular/src/lib/textarea/atl-textarea.ts","../../../../libs/angular/src/lib/checkbox/atl-checkbox.ts","../../../../libs/angular/src/lib/radio-group/atl-radio-group.token.ts","../../../../libs/angular/src/lib/radio/atl-radio.ts","../../../../libs/angular/src/lib/radio-group/atl-radio-group.ts","../../../../libs/angular/src/lib/toggle/atl-toggle.ts","../../../../libs/angular/src/lib/alert/atl-alert.ts","../../../../libs/angular/src/lib/select/atl-select.token.ts","../../../../libs/angular/src/lib/select/atl-select.ts","../../../../libs/angular/src/lib/select/atl-option.ts","../../../../libs/angular/src/lib/combobox/atl-combobox.ts","../../../../libs/angular/src/lib/dialog/atl-dialog.token.ts","../../../../libs/angular/src/lib/dialog/atl-dialog.ts","../../../../libs/angular/src/lib/tabs/atl-tabs.token.ts","../../../../libs/angular/src/lib/tabs/atl-tabs.ts","../../../../libs/angular/src/lib/accordion/atl-accordion.token.ts","../../../../libs/angular/src/lib/accordion/atl-accordion.ts","../../../../libs/angular/src/lib/menu/atl-menu.ts","../../../../libs/angular/src/lib/tooltip/atl-tooltip.ts","../../../../libs/angular/src/lib/skeleton/atl-skeleton.ts","../../../../libs/angular/src/lib/toast/atl-toast.ts","../../../../libs/angular/src/lib/avatar/atl-avatar.ts","../../../../libs/angular/src/lib/progress/atl-progress.ts","../../../../libs/angular/src/lib/breadcrumbs/atl-breadcrumbs.token.ts","../../../../libs/angular/src/lib/breadcrumbs/atl-breadcrumbs.ts","../../../../libs/angular/src/lib/pagination/atl-pagination.ts","../../../../libs/angular/src/lib/drawer/atl-drawer.token.ts","../../../../libs/angular/src/lib/drawer/atl-drawer.ts","../../../../libs/angular/src/lib/table/atl-table.ts","../../../../libs/angular/src/lib/stepper/atl-stepper.token.ts","../../../../libs/angular/src/lib/stepper/atl-stepper.ts","../../../../libs/angular/src/lib/code-block/atl-code-block.ts","../../../../libs/angular/src/lib/chat/atl-chat.token.ts","../../../../libs/angular/src/lib/chat/atl-chat.ts","../../../../libs/angular/src/index.ts","../../../../libs/angular/src/atelier-ui-angular.ts"],"sourcesContent":["import {\n  afterNextRender,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  DestroyRef,\n  ElementRef,\n  inject,\n  input,\n} from '@angular/core';\nimport type { AtlButtonVariant, AtlButtonSize } from '../spec';\n\n/**\n * Accessible button component with visual variants and sizes.\n *\n * Usage:\n * ```html\n * <atl-button variant=\"primary\" size=\"md\" (click)=\"save()\">Save</atl-button>\n * <atl-button variant=\"outline\" [disabled]=\"true\">Cancel</atl-button>\n * <atl-button [loading]=\"isSaving\">Saving…</atl-button>\n * ```\n */\n@Component({\n  selector: 'atl-button',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    @if (loading()) {\n      <span class=\"spinner\" aria-hidden=\"true\"></span>\n    }\n    <ng-content />\n  `,\n  styleUrl: './atl-button.css',\n  host: {\n    role: 'button',\n    '[class]': 'hostClasses()',\n    '[attr.aria-disabled]': 'isDisabled()',\n    '[attr.disabled]': 'isDisabled() ? true : null',\n  },\n})\nexport class AtlButton {\n  /** Visual style of the button. */\n  readonly variant = input<AtlButtonVariant>('primary');\n\n  /** Size of the button. */\n  readonly size = input<AtlButtonSize>('md');\n\n  /** Disables the button, preventing interaction. */\n  readonly disabled = input(false);\n\n  /** Shows a loading spinner and disables interaction. */\n  readonly loading = input(false);\n\n  protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n\n  protected readonly hostClasses = computed(\n    () =>\n      `variant-${this.variant()} size-${this.size()}${this.isDisabled() ? ' is-disabled' : ''}${this.loading() ? ' is-loading' : ''}`\n  );\n\n  /** @internal — host element ref for the dev-mode a11y check. */\n  private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  private readonly destroyRef = inject(DestroyRef);\n\n  constructor() {\n    // Suppress clicks while disabled/loading. The host is a custom element, so\n    // — unlike a native `<button disabled>` — neither the `disabled` attribute\n    // nor `pointer-events: none` reliably blocks click dispatch (the latter only\n    // affects pointer-driven clicks, not programmatic/keyboard ones). A real\n    // click lands on projected content (a descendant), so a capture-phase\n    // listener on the host intercepts it before any consumer `(click)` handler\n    // bound on the host (which fires in the bubble phase), matching the\n    // React/Vue native-disabled behavior.\n    const host = this.el.nativeElement;\n    const guard = (event: Event): void => {\n      if (this.isDisabled()) {\n        event.stopImmediatePropagation();\n        event.preventDefault();\n      }\n    };\n    host.addEventListener('click', guard, true);\n    this.destroyRef.onDestroy(() => host.removeEventListener('click', guard, true));\n\n    // Dev-mode warning when a button has no accessible name. Angular's\n    // <ng-content> projection means we can't enforce this at the type\n    // level (unlike the React adapter), so we check after first render.\n    if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n      afterNextRender(() => {\n        const host = this.el.nativeElement;\n        const hasText = host.textContent.trim().length > 0;\n        const hasAriaLabel = host.hasAttribute('aria-label')\n          || host.hasAttribute('aria-labelledby');\n        if (!hasText && !hasAriaLabel) {\n          console.warn(\n            '[AtlButton] icon-only button is missing an accessible name — '\n              + 'add an aria-label attribute so screen readers announce its purpose.',\n            host,\n          );\n        }\n      });\n    }\n  }\n}\n\n// Angular's compiler injects this global; declare so TS doesn't complain.\ndeclare const ngDevMode: unknown;\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n} from '@angular/core';\n\n/**\n * Card container component supporting elevated, outlined, and flat visual variants.\n * Compose with `atl-card-header`, `atl-card-content`, and `atl-card-footer` sub-components.\n *\n * Usage:\n * ```html\n * <atl-card variant=\"elevated\" padding=\"md\">\n *   <atl-card-header>Card Title</atl-card-header>\n *   <atl-card-content>Main content goes here.</atl-card-content>\n *   <atl-card-footer>\n *     <atl-button variant=\"primary\">Save</atl-button>\n *   </atl-card-footer>\n * </atl-card>\n * ```\n */\n@Component({\n  selector: 'atl-card',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-card.css',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.role]': 'role() || null',\n  },\n})\nexport class AtlCard {\n  /** Visual style of the card. */\n  readonly variant = input<'elevated' | 'outlined' | 'flat'>('elevated');\n\n  /** Internal padding of the card. */\n  readonly padding = input<'none' | 'sm' | 'md' | 'lg'>('md');\n\n  /**\n   * Opt-in landmark role. Default is no role.\n   *\n   * - `'article'` — self-contained content (blog post, comment).\n   * - `'region'`  — perceivable area that needs a screen-reader stop;\n   *                 pair with `aria-label`.\n   * - `'section'` — mirrors an HTML `<section>`.\n   *\n   * Most cards group content visually and shouldn't add a landmark.\n   * Leave unset by default.\n   */\n  readonly role = input<'article' | 'region' | 'section' | undefined>(undefined);\n\n  protected readonly hostClasses = computed(\n    () => `atl-card variant-${this.variant()} padding-${this.padding()}`\n  );\n}\n\n/**\n * Header slot for `atl-card`. Renders above the main content with a bottom separator.\n *\n * Usage:\n * ```html\n * <atl-card-header>Card Title</atl-card-header>\n * ```\n */\n@Component({\n  selector: 'atl-card-header',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-card.css',\n  host: { class: 'atl-card-header' },\n})\nexport class AtlCardHeader {}\n\n/**\n * Content slot for `atl-card`. Primary content area of the card.\n *\n * Usage:\n * ```html\n * <atl-card-content>Body text here.</atl-card-content>\n * ```\n */\n@Component({\n  selector: 'atl-card-content',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-card.css',\n  host: { class: 'atl-card-content' },\n})\nexport class AtlCardContent {}\n\n/**\n * Footer slot for `atl-card`. Renders below the main content, typically holds actions.\n *\n * Usage:\n * ```html\n * <atl-card-footer>\n *   <atl-button variant=\"primary\">Save</atl-button>\n * </atl-card-footer>\n * ```\n */\n@Component({\n  selector: 'atl-card-footer',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-card.css',\n  host: { class: 'atl-card-footer' },\n})\nexport class AtlCardFooter {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n} from '@angular/core';\n\n/**\n * Inline status badge for labeling items with semantic color variants.\n *\n * Usage:\n * ```html\n * <atl-badge variant=\"success\">Active</atl-badge>\n * <atl-badge variant=\"danger\" size=\"sm\">Error</atl-badge>\n * <atl-badge variant=\"warning\">Pending</atl-badge>\n * ```\n */\nconst VARIANT_ICONS: Record<'default' | 'success' | 'warning' | 'danger' | 'info', string | null> = {\n  default: null,\n  success: '✓',\n  warning: '⚠',\n  danger: '✕',\n  info: 'ℹ',\n};\n\n@Component({\n  selector: 'atl-badge',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    @if (variantIcon(); as icon) {\n      <span class=\"variant-icon\" aria-hidden=\"true\">{{ icon }}</span>\n    }\n    <ng-content />\n  `,\n  styleUrl: './atl-badge.css',\n  host: {\n    '[class]': 'hostClasses()',\n    role: 'status',\n  },\n})\nexport class AtlBadge {\n  /** Semantic color variant of the badge. */\n  readonly variant = input<'default' | 'success' | 'warning' | 'danger' | 'info'>('default');\n\n  /** Size of the badge. */\n  readonly size = input<'sm' | 'md'>('md');\n\n  protected readonly hostClasses = computed(\n    () => `variant-${this.variant()} size-${this.size()}`\n  );\n\n  protected readonly variantIcon = computed(() => VARIANT_ICONS[this.variant()]);\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n} from '@angular/core';\nimport type { AtlIconName, AtlIconSize } from '../spec';\n\nconst ICON_GLYPHS: Record<AtlIconName, string> = {\n  success: '✓',\n  warning: '⚠',\n  danger: '✕',\n  info: 'ℹ',\n  error: '!',\n  'chevron-up': '▲',\n  'chevron-down': '▼',\n  'chevron-left': '‹',\n  'chevron-right': '›',\n  'sort-asc': '↑',\n  'sort-desc': '↓',\n  'arrow-right': '→',\n  'arrow-left': '←',\n  copy: '⎘',\n  paste: '⎗',\n  add: '⊕',\n  edit: '✏',\n  delete: '🗑',\n  close: '×',\n  more: '…',\n  'default-toast': '💬',\n};\n\n/**\n * Pictogram glyph icon. 21 named variants matching the Figma `AtlIcon`\n * component set. Decorative by default; pass `label` to announce a meaning\n * to assistive tech.\n *\n * Usage:\n * ```html\n * <atl-icon name=\"success\" />\n * <atl-icon name=\"warning\" size=\"lg\" label=\"Warning\" />\n * ```\n */\n@Component({\n  selector: 'atl-icon',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `{{ glyph() }}`,\n  styleUrl: './atl-icon.css',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.role]': 'label() ? \"img\" : null',\n    '[attr.aria-label]': 'label() || null',\n    '[attr.aria-hidden]': 'label() ? null : \"true\"',\n  },\n})\nexport class AtlIcon {\n  readonly name = input.required<AtlIconName>();\n  readonly size = input<AtlIconSize>('md');\n  readonly label = input<string | undefined>();\n\n  protected readonly glyph = computed(() => ICON_GLYPHS[this.name()]);\n  protected readonly hostClasses = computed(() => `size-${this.size()}`);\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  model,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible text input component for use with Angular Signal Forms.\n *\n * Usage:\n * ```html\n * <atl-input type=\"email\" placeholder=\"you@example.com\" [(value)]=\"email\" />\n * <atl-input [formField]=\"loginForm.email\" placeholder=\"Email\" />\n * ```\n */\n@Component({\n  selector: 'atl-input',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"input-field\">\n      <input\n        [type]=\"type()\"\n        [value]=\"value()\"\n        (input)=\"onInput($event)\"\n        (blur)=\"touched.set(true)\"\n        [disabled]=\"disabled()\"\n        [readOnly]=\"readonly()\"\n        [placeholder]=\"placeholder()\"\n        [attr.name]=\"name() || null\"\n        [attr.aria-invalid]=\"invalid() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n      />\n    </div>\n    @if (showErrors()) {\n      <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n        @for (error of errors(); track error.kind) {\n          <p class=\"error-message\">{{ error.message }}</p>\n        }\n      </div>\n    }\n  `,\n  styleUrl: './atl-input.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlInput implements FormValueControl<string> {\n  /** The current input value. Bound by [formField] directive. Supports [(value)] two-way binding. */\n  readonly value = model('');\n\n  /** The type of input field. */\n  readonly type = input<'text' | 'email' | 'password' | 'number' | 'tel' | 'url'>('text');\n\n  /** Placeholder text shown when the input is empty. */\n  readonly placeholder = input('');\n\n  /** Whether the input is disabled. Bound by [formField] directive. */\n  readonly disabled = input(false);\n\n  /** Whether the input is read-only. Bound by [formField] directive. */\n  readonly readonly = input(false);\n\n  /** Whether the input has validation errors. Bound by [formField] directive. */\n  readonly invalid = input(false);\n\n  /** Validation errors from the form system. Bound by [formField] directive. */\n  readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n  /** Whether the user has interacted with the input. Bound by [formField] directive. */\n  readonly touched = model(false);\n\n  /** Whether the input is required. Bound by [formField] directive. */\n  readonly required = input(false);\n\n  /** The input's name attribute. Bound by [formField] directive. */\n  readonly name = input('');\n\n  /** @internal */\n  protected readonly errorId = `atl-input-errors-${nextId++}`;\n\n  /** @internal */\n  protected readonly showErrors = computed(\n    () => this.touched() && this.invalid() && this.errors().length > 0\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.disabled()) classes.push('is-disabled');\n    if (this.invalid()) classes.push('is-invalid');\n    if (this.readonly()) classes.push('is-readonly');\n    if (this.touched()) classes.push('is-touched');\n    return classes.join(' ');\n  });\n\n  /** @internal */\n  protected onInput(event: Event): void {\n    const target = event.target as HTMLInputElement;\n    this.value.set(target.value);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  model,\n} from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible multiline text input component for use with Angular Signal Forms.\n *\n * Usage:\n * ```html\n * <atl-textarea placeholder=\"Enter a description\" [(value)]=\"description\" />\n * <atl-textarea [formField]=\"form.bio\" [rows]=\"4\" />\n * ```\n */\n@Component({\n  selector: 'atl-textarea',\n  standalone: true,\n  imports: [TextFieldModule],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"textarea-field\">\n      <textarea\n        [value]=\"value()\"\n        (input)=\"onInput($event)\"\n        (blur)=\"touched.set(true)\"\n        [disabled]=\"disabled()\"\n        [readOnly]=\"readonly()\"\n        [placeholder]=\"placeholder()\"\n        [rows]=\"rows()\"\n        [attr.name]=\"name() || null\"\n        [attr.aria-invalid]=\"invalid() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n        [cdkTextareaAutosize]=\"autoResize()\"\n        [cdkAutosizeMinRows]=\"rows()\"\n      ></textarea>\n    </div>\n    @if (showErrors()) {\n      <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n        @for (error of errors(); track error.kind) {\n          <p class=\"error-message\">{{ error.message }}</p>\n        }\n      </div>\n    }\n  `,\n  styleUrl: './atl-textarea.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlTextarea implements FormValueControl<string> {\n  /** The current textarea value. Supports [(value)] two-way binding. */\n  readonly value = model('');\n\n  /** Number of visible text rows. */\n  readonly rows = input(3);\n\n  /** Placeholder text shown when the textarea is empty. */\n  readonly placeholder = input('');\n\n  /** Whether the textarea is disabled. Bound by [formField] directive. */\n  readonly disabled = input(false);\n\n  /** Whether the textarea is read-only. Bound by [formField] directive. */\n  readonly readonly = input(false);\n\n  /** Whether the textarea has validation errors. Bound by [formField] directive. */\n  readonly invalid = input(false);\n\n  /** Validation errors from the form system. Bound by [formField] directive. */\n  readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n  /** Whether the user has interacted with the textarea. Bound by [formField] directive. */\n  readonly touched = model(false);\n\n  /** Whether the textarea is required. Bound by [formField] directive. */\n  readonly required = input(false);\n\n  /** The textarea's name attribute. Bound by [formField] directive. */\n  readonly name = input('');\n\n  /** Whether to auto-resize the textarea height to fit its content. */\n  readonly autoResize = input(false);\n\n  /** @internal */\n  protected readonly errorId = `atl-textarea-errors-${nextId++}`;\n\n  /** @internal */\n  protected readonly showErrors = computed(\n    () => this.touched() && this.invalid() && this.errors().length > 0\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.disabled()) classes.push('is-disabled');\n    if (this.invalid()) classes.push('is-invalid');\n    if (this.readonly()) classes.push('is-readonly');\n    if (this.touched()) classes.push('is-touched');\n    if (this.autoResize()) classes.push('is-auto-resize');\n    return classes.join(' ');\n  });\n\n  /** @internal */\n  protected onInput(event: Event): void {\n    const target = event.target as HTMLTextAreaElement;\n    this.value.set(target.value);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  effect,\n  ElementRef,\n  input,\n  model,\n  viewChild,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible checkbox component for use with Angular Signal Forms.\n *\n * Usage:\n * ```html\n * <atl-checkbox [(checked)]=\"accepted\">I agree to the terms</atl-checkbox>\n * <atl-checkbox [formField]=\"form.accepted\">Accept</atl-checkbox>\n * ```\n */\n@Component({\n  selector: 'atl-checkbox',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <label [attr.for]=\"inputId\">\n      <input\n        #nativeInput\n        type=\"checkbox\"\n        [id]=\"inputId\"\n        [checked]=\"checked()\"\n        (change)=\"onChange($event)\"\n        (blur)=\"touched.set(true)\"\n        [disabled]=\"disabled()\"\n        [attr.name]=\"name() || null\"\n        [attr.aria-invalid]=\"invalid() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n      />\n      <ng-content />\n    </label>\n    @if (showErrors()) {\n      <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n        @for (error of errors(); track error.kind) {\n          <p class=\"error-message\">{{ error.message }}</p>\n        }\n      </div>\n    }\n  `,\n  styleUrl: './atl-checkbox.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlCheckbox implements FormCheckboxControl {\n  /** The checked state. Bound by [formField] directive. Supports [(checked)] two-way binding. */\n  readonly checked = model(false);\n\n  /** Whether the user has interacted with the input. Bound by [formField] directive. */\n  readonly touched = model(false);\n\n  /** Tri-state indeterminate mode (e.g. \"select all\"). Set via DOM property. */\n  readonly indeterminate = input(false);\n\n  /** Whether the checkbox is disabled. Bound by [formField] directive. */\n  readonly disabled = input(false);\n\n  /** Whether the checkbox has validation errors. Bound by [formField] directive. */\n  readonly invalid = input(false);\n\n  /** Whether the checkbox is required. Bound by [formField] directive. */\n  readonly required = input(false);\n\n  /** The input's name attribute. Bound by [formField] directive. */\n  readonly name = input('');\n\n  /** Validation errors from the form system. Bound by [formField] directive. */\n  readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n  /** @internal */\n  protected readonly inputId = `atl-checkbox-${nextId++}`;\n\n  /** @internal */\n  protected readonly errorId = `atl-checkbox-errors-${nextId++}`;\n\n  /** @internal */\n  private readonly nativeInput = viewChild<ElementRef<HTMLInputElement>>('nativeInput');\n\n  /** @internal */\n  protected readonly showErrors = computed(\n    () => this.touched() && this.invalid() && this.errors().length > 0\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.checked()) classes.push('is-checked');\n    if (this.disabled()) classes.push('is-disabled');\n    if (this.invalid()) classes.push('is-invalid');\n    if (this.touched()) classes.push('is-touched');\n    return classes.join(' ');\n  });\n\n  constructor() {\n    effect(() => {\n      const el = this.nativeInput()?.nativeElement;\n      if (el) {\n        el.indeterminate = this.indeterminate();\n      }\n    });\n  }\n\n  /** @internal */\n  protected onChange(event: Event): void {\n    const target = event.target as HTMLInputElement;\n    this.checked.set(target.checked);\n  }\n}\n","import { InjectionToken } from '@angular/core';\nimport type { Signal, WritableSignal } from '@angular/core';\nimport type { FocusableOption } from '@angular/cdk/a11y';\n\n/** @internal — shape required by AtlRadioGroup's FocusKeyManager */\nexport interface RadioItem extends FocusableOption {\n  focus(): void; // matches FocusableOption\n  disabled?: boolean; // matches FocusableOption\n  readonly radioValue: Signal<string>;\n}\n\nexport interface AtlRadioGroupContext {\n  readonly value: WritableSignal<string>;\n  readonly name: Signal<string>;\n  readonly disabled: Signal<boolean>;\n  select(v: string): void;\n  markTouched(): void;\n  registerItem(item: RadioItem): void;\n  unregisterItem(item: RadioItem): void;\n}\n\nexport const ATL_RADIO_GROUP = new InjectionToken<AtlRadioGroupContext>('ATL_RADIO_GROUP');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  ElementRef,\n  inject,\n  input,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { ATL_RADIO_GROUP, type RadioItem } from '../radio-group/atl-radio-group.token';\n\nlet nextId = 0;\n\n/**\n * Individual radio button. Must be placed inside an `atl-radio-group`.\n *\n * Usage:\n * ```html\n * <atl-radio-group [(value)]=\"selected\" name=\"plan\">\n *   <atl-radio radioValue=\"free\">Free</atl-radio>\n *   <atl-radio radioValue=\"pro\">Pro</atl-radio>\n * </atl-radio-group>\n * ```\n */\n@Component({\n  selector: 'atl-radio',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <label [attr.for]=\"inputId\">\n      <input\n        type=\"radio\"\n        [id]=\"inputId\"\n        [value]=\"radioValue()\"\n        [checked]=\"isChecked()\"\n        [disabled]=\"isDisabled()\"\n        [attr.name]=\"effectiveName() || null\"\n        (change)=\"onChange()\"\n        (blur)=\"onBlur()\"\n      />\n      <ng-content />\n    </label>\n  `,\n  styleUrl: './atl-radio.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlRadio implements RadioItem, OnInit, OnDestroy {\n  /** The value this radio option represents within the group. */\n  readonly radioValue = input.required<string>();\n\n  /** Whether this specific radio is individually disabled (stacked with group disabled). */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  readonly disabledInput = input(false, { alias: 'disabled' });\n\n  /** @internal */\n  private readonly group = inject(ATL_RADIO_GROUP, { optional: true });\n\n  /** @internal */\n  private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  /** @internal */\n  protected readonly inputId = `atl-radio-${nextId++}`;\n\n  /** @internal */\n  protected readonly isChecked = computed(() => this.group?.value() === this.radioValue());\n\n  /** @internal */\n  readonly isDisabled = computed(() => this.disabledInput() || (this.group?.disabled() ?? false));\n\n  /** @internal */\n  protected readonly effectiveName = computed(() => this.group?.name() ?? '');\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.isChecked()) classes.push('is-checked');\n    if (this.isDisabled()) classes.push('is-disabled');\n    return classes.join(' ');\n  });\n\n  /** @internal — for FocusKeyManager */\n  get disabled(): boolean {\n    return this.isDisabled();\n  }\n\n  /** @internal — for FocusKeyManager */\n  focus(): void {\n    this.el.nativeElement.querySelector<HTMLInputElement>('input')?.focus();\n  }\n\n  ngOnInit(): void {\n    this.group?.registerItem(this);\n  }\n\n  ngOnDestroy(): void {\n    this.group?.unregisterItem(this);\n  }\n\n  /** @internal */\n  protected onChange(): void {\n    this.group?.select(this.radioValue());\n  }\n\n  /** @internal */\n  protected onBlur(): void {\n    this.group?.markTouched();\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  model,\n  signal,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\nimport { ATL_RADIO_GROUP, type AtlRadioGroupContext, type RadioItem } from './atl-radio-group.token';\n\nlet nextId = 0;\n\n/**\n * Container for a group of radio buttons. Manages keyboard navigation, shared name,\n * and Signal Forms integration.\n *\n * Usage:\n * ```html\n * <atl-radio-group [(value)]=\"size\" name=\"size\">\n *   <atl-radio radioValue=\"sm\">Small</atl-radio>\n *   <atl-radio radioValue=\"md\">Medium</atl-radio>\n *   <atl-radio radioValue=\"lg\">Large</atl-radio>\n * </atl-radio-group>\n *\n * <!-- With Signal Forms -->\n * <atl-radio-group [formField]=\"form.size\">\n *   <atl-radio radioValue=\"sm\">Small</atl-radio>\n * </atl-radio-group>\n * ```\n */\n@Component({\n  selector: 'atl-radio-group',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-content />\n    @if (showErrors()) {\n      <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n        @for (error of errors(); track error.kind) {\n          <p class=\"error-message\">{{ error.message }}</p>\n        }\n      </div>\n    }\n  `,\n  styleUrl: './atl-radio-group.css',\n  host: {\n    role: 'radiogroup',\n    '[class]': 'hostClasses()',\n    '[attr.aria-invalid]': 'invalid() || null',\n    '[attr.aria-required]': 'required() || null',\n    '[attr.aria-describedby]': 'showErrors() ? errorId : null',\n    '(keydown)': 'onKeydown($event)',\n  },\n  providers: [{ provide: ATL_RADIO_GROUP, useExisting: AtlRadioGroup }],\n})\nexport class AtlRadioGroup implements FormValueControl<string>, AtlRadioGroupContext {\n  /** The selected value. Bound by [formField] directive. Supports [(value)] two-way binding. */\n  readonly value = model('');\n\n  /** Whether the user has interacted. Bound by [formField] directive. */\n  readonly touched = model(false);\n\n  /** Whether the group is disabled. Bound by [formField] directive. */\n  readonly disabled = input(false);\n\n  /** Whether the group has validation errors. Bound by [formField] directive. */\n  readonly invalid = input(false);\n\n  /** Whether the group is required. Bound by [formField] directive. */\n  readonly required = input(false);\n\n  /** Shared name attribute propagated to all child radio inputs. Bound by [formField] directive. */\n  readonly name = input('');\n\n  /** Validation errors from the form system. Bound by [formField] directive. */\n  readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n  /** @internal */\n  protected readonly errorId = `atl-radio-group-errors-${nextId++}`;\n\n  /** @internal */\n  private readonly items = signal<RadioItem[]>([]);\n\n  /** @internal */\n  private keyManager: FocusKeyManager<RadioItem> | null = null;\n\n  /** @internal */\n  protected readonly showErrors = computed(\n    () => this.touched() && this.invalid() && this.errors().length > 0\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.disabled()) classes.push('is-disabled');\n    if (this.invalid()) classes.push('is-invalid');\n    if (this.touched()) classes.push('is-touched');\n    return classes.join(' ');\n  });\n\n  /** @internal — called by AtlRadio on change */\n  select(v: string): void {\n    if (!this.disabled()) {\n      this.value.set(v);\n    }\n  }\n\n  /** @internal — called by AtlRadio on blur */\n  markTouched(): void {\n    this.touched.set(true);\n  }\n\n  /** @internal — called by AtlRadio on init */\n  registerItem(item: RadioItem): void {\n    this.items.update((list) => [...list, item]);\n  }\n\n  /** @internal — called by AtlRadio on destroy */\n  unregisterItem(item: RadioItem): void {\n    this.items.update((list) => list.filter((i) => i !== item));\n  }\n\n  /** @internal */\n  protected onKeydown(event: KeyboardEvent): void {\n    if (this.disabled()) return;\n\n    if (!this.keyManager) {\n      this.keyManager = new FocusKeyManager(this.items())\n        .withHorizontalOrientation('ltr')\n        .withVerticalOrientation()\n        .withWrap();\n    }\n\n    const currentIdx = this.items().findIndex((i) => i.radioValue() === this.value());\n    this.keyManager.setActiveItem(currentIdx);\n    this.keyManager.onKeydown(event);\n\n    const activeIdx = this.keyManager.activeItemIndex;\n    if (activeIdx !== null && activeIdx !== -1 && activeIdx !== currentIdx) {\n      const target = this.items()[activeIdx];\n      this.value.set(target.radioValue());\n      this.touched.set(true);\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  model,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible toggle (switch) component for use with Angular Signal Forms.\n * Presents as a pill-shaped on/off slider instead of a checkbox box,\n * but has identical boolean semantics and implements FormCheckboxControl.\n *\n * Usage:\n * ```html\n * <atl-toggle [(checked)]=\"enabled\">Enable notifications</atl-toggle>\n * <atl-toggle [formField]=\"form.enabled\">Enable</atl-toggle>\n * ```\n */\n@Component({\n  selector: 'atl-toggle',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <label [attr.for]=\"inputId\">\n      <input\n        type=\"checkbox\"\n        role=\"switch\"\n        [id]=\"inputId\"\n        [checked]=\"checked()\"\n        (change)=\"onChange($event)\"\n        (blur)=\"touched.set(true)\"\n        [disabled]=\"disabled()\"\n        [attr.name]=\"name() || null\"\n        [attr.aria-checked]=\"checked()\"\n        [attr.aria-invalid]=\"invalid() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n      />\n      <span class=\"track\" aria-hidden=\"true\">\n        <span class=\"thumb\"></span>\n      </span>\n      <ng-content />\n    </label>\n    @if (showErrors()) {\n      <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n        @for (error of errors(); track error.kind) {\n          <p class=\"error-message\">{{ error.message }}</p>\n        }\n      </div>\n    }\n  `,\n  styleUrl: './atl-toggle.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlToggle implements FormCheckboxControl {\n  /** The checked state. Bound by [formField] directive. Supports [(checked)] two-way binding. */\n  readonly checked = model(false);\n\n  /** Whether the user has interacted with the input. Bound by [formField] directive. */\n  readonly touched = model(false);\n\n  /** Whether the toggle is disabled. Bound by [formField] directive. */\n  readonly disabled = input(false);\n\n  /** Whether the toggle has validation errors. Bound by [formField] directive. */\n  readonly invalid = input(false);\n\n  /** Whether the toggle is required. Bound by [formField] directive. */\n  readonly required = input(false);\n\n  /** The input's name attribute. Bound by [formField] directive. */\n  readonly name = input('');\n\n  /** Validation errors from the form system. Bound by [formField] directive. */\n  readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n  /** @internal */\n  protected readonly inputId = `atl-toggle-${nextId++}`;\n\n  /** @internal */\n  protected readonly errorId = `atl-toggle-errors-${nextId++}`;\n\n  /** @internal */\n  protected readonly showErrors = computed(\n    () => this.touched() && this.invalid() && this.errors().length > 0\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.checked()) classes.push('is-checked');\n    if (this.disabled()) classes.push('is-disabled');\n    if (this.invalid()) classes.push('is-invalid');\n    if (this.touched()) classes.push('is-touched');\n    return classes.join(' ');\n  });\n\n  /** @internal */\n  protected onChange(event: Event): void {\n    const target = event.target as HTMLInputElement;\n    this.checked.set(target.checked);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  output,\n} from '@angular/core';\n\n/**\n * Inline notification banner with semantic color variants and optional dismiss button.\n *\n * Usage:\n * ```html\n * <atl-alert variant=\"success\">Your changes were saved.</atl-alert>\n * <atl-alert variant=\"warning\" [dismissible]=\"true\" (dismissed)=\"onDismiss()\">\n *   Your session expires soon.\n * </atl-alert>\n * ```\n */\nconst VARIANT_ICONS: Record<'info' | 'success' | 'warning' | 'danger', string> = {\n  info: 'ℹ',\n  success: '✓',\n  warning: '⚠',\n  danger: '✕',\n};\n\n@Component({\n  selector: 'atl-alert',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <span class=\"content\">\n      <span class=\"variant-icon\" aria-hidden=\"true\">{{ variantIcon() }}</span>\n      <ng-content />\n    </span>\n    @if (isDismissible) {\n      <button class=\"dismiss\" type=\"button\" aria-label=\"Dismiss\" (click)=\"dismiss()\">\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n          <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n          <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n        </svg>\n      </button>\n    }\n  `,\n  styleUrl: './atl-alert.css',\n  host: {\n    '[class]': 'hostClassesValue',\n    role: 'alert',\n    '[attr.aria-live]': 'ariaLive',\n  },\n})\nexport class AtlAlert {\n  /** Semantic color variant of the alert. */\n  readonly variant = input<'info' | 'success' | 'warning' | 'danger'>('info');\n\n  /** Whether to show a dismiss button. */\n  readonly dismissible = input(false);\n\n  /** Emitted when the dismiss button is clicked. */\n  readonly dismissed = output<void>();\n\n  protected readonly hostClasses = computed(() => `variant-${this.variant()}`);\n\n  protected readonly variantIcon = computed(() => VARIANT_ICONS[this.variant()]);\n\n  /** @internal */\n  get isDismissible(): boolean {\n    return this.dismissible();\n  }\n\n  /** @internal */\n  get hostClassesValue(): string {\n    return this.hostClasses();\n  }\n\n  /** @internal */\n  get ariaLive(): string {\n    return this.variant() === 'danger' ? 'assertive' : 'polite';\n  }\n\n  protected dismiss(): void {\n    this.dismissed.emit();\n  }\n}\n","import { InjectionToken } from '@angular/core';\nimport type { Signal, WritableSignal } from '@angular/core';\n\nexport interface AtlSelectContext {\n  readonly value: WritableSignal<string>;\n  readonly disabled: Signal<boolean>;\n  readonly activeOptionId: WritableSignal<string | null>;\n  select(v: string): void;\n  markTouched(): void;\n  registerOption(id: string, value: string, labelText: string, disabled: boolean): void;\n  unregisterOption(id: string): void;\n}\n\nexport const ATL_SELECT = new InjectionToken<AtlSelectContext>('ATL_SELECT');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Injector,\n  OnDestroy,\n  computed,\n  inject,\n  input,\n  model,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\nimport {\n  createFlexibleConnectedPositionStrategy,\n  createOverlayRef,\n  createRepositionScrollStrategy,\n  type OverlayRef,\n} from '@angular/cdk/overlay';\nimport { DomPortal } from '@angular/cdk/portal';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\nimport { ATL_SELECT, type AtlSelectContext } from './atl-select.token';\n\n/** @internal — Wrapper item for ActiveDescendantKeyManager integration. */\nclass SelectOptionItem implements Highlightable {\n  disabled: boolean;\n\n  constructor(\n    readonly id: string,\n    readonly value: string,\n    readonly labelText: string,\n    disabled: boolean,\n    private readonly activeOptionId: import('@angular/core').WritableSignal<string | null>,\n  ) {\n    this.disabled = disabled;\n  }\n\n  getLabel(): string {\n    return this.labelText;\n  }\n\n  setActiveStyles(): void {\n    this.activeOptionId.set(this.id);\n  }\n\n  setInactiveStyles(): void {\n    // Handled by key manager — no-op here\n  }\n}\n\nlet nextId = 0;\n\n/**\n * Accessible dropdown select component for use with Angular Signal Forms.\n * Uses the CDK Overlay for viewport-aware panel positioning.\n *\n * Usage:\n * ```html\n * <atl-select [(value)]=\"country\" placeholder=\"Select a country\">\n *   <atl-option optionValue=\"us\">United States</atl-option>\n *   <atl-option optionValue=\"ca\">Canada</atl-option>\n * </atl-select>\n *\n * <!-- With Signal Forms -->\n * <atl-select [formField]=\"form.country\" placeholder=\"Select a country\">\n *   <atl-option optionValue=\"us\">United States</atl-option>\n * </atl-select>\n * ```\n */\n@Component({\n  selector: 'atl-select',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <button\n      type=\"button\"\n      class=\"trigger\"\n      [id]=\"triggerId\"\n      [attr.aria-expanded]=\"isOpen()\"\n      aria-haspopup=\"listbox\"\n      [attr.aria-controls]=\"panelId\"\n      [attr.aria-activedescendant]=\"activeOptionId()\"\n      [attr.aria-invalid]=\"invalid() || null\"\n      [attr.disabled]=\"disabled() || null\"\n      (click)=\"onTriggerClick()\"\n      (blur)=\"onTriggerBlur()\"\n    >\n      <span class=\"trigger-text\">{{ selectedLabel() || placeholder() }}</span>\n      <span class=\"trigger-icon\" aria-hidden=\"true\">▾</span>\n    </button>\n\n    <div\n      #panel\n      [id]=\"panelId\"\n      role=\"listbox\"\n      class=\"panel\"\n      [attr.aria-labelledby]=\"triggerId\"\n    >\n      <ng-content />\n    </div>\n\n    @if (showErrors()) {\n      <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n        @for (error of errors(); track error.kind) {\n          <p class=\"error-message\">{{ error.message }}</p>\n        }\n      </div>\n    }\n  `,\n  styleUrl: './atl-select.css',\n  host: {\n    role: 'combobox',\n    '[class]': 'hostClasses()',\n    '(keydown)': 'onKeydown($event)',\n  },\n  providers: [{ provide: ATL_SELECT, useExisting: AtlSelect }],\n})\nexport class AtlSelect implements FormValueControl<string>, AtlSelectContext, OnDestroy {\n  /** The selected value. Bound by [formField] directive. Supports [(value)] two-way binding. */\n  readonly value = model('');\n\n  /** Whether the user has interacted. Bound by [formField] directive. */\n  readonly touched = model(false);\n\n  /** Placeholder text shown when no option is selected. */\n  readonly placeholder = input('');\n\n  /** Whether the select is disabled. Bound by [formField] directive. */\n  readonly disabled = input(false);\n\n  /** Whether the select has validation errors. Bound by [formField] directive. */\n  readonly invalid = input(false);\n\n  /** Whether the select is required. Bound by [formField] directive. */\n  readonly required = input(false);\n\n  /** The input's name attribute. Bound by [formField] directive. */\n  readonly name = input('');\n\n  /** Validation errors from the form system. Bound by [formField] directive. */\n  readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n  /** @internal */\n  readonly activeOptionId = signal<string | null>(null);\n\n  /** @internal */\n  protected readonly isOpen = signal(false);\n\n  /** @internal */\n  protected readonly optionsList = signal<\n    { id: string; value: string; labelText: string; disabled: boolean }[]\n  >([]);\n\n  /** @internal */\n  protected readonly panelRef = viewChild<ElementRef<HTMLElement>>('panel');\n\n  /** @internal */\n  protected readonly triggerId = `atl-select-trigger-${nextId}`;\n\n  /** @internal */\n  protected readonly panelId = `atl-select-panel-${nextId}`;\n\n  /** @internal */\n  protected readonly errorId = `atl-select-errors-${nextId++}`;\n\n  /** @internal */\n  protected readonly selectedLabel = computed(\n    () => this.optionsList().find((o) => o.value === this.value())?.labelText ?? ''\n  );\n\n  /** @internal */\n  protected readonly showErrors = computed(\n    () => this.touched() && this.invalid() && this.errors().length > 0\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.isOpen()) classes.push('is-open');\n    if (this.disabled()) classes.push('is-disabled');\n    if (this.invalid()) classes.push('is-invalid');\n    if (this.touched()) classes.push('is-touched');\n    return classes.join(' ');\n  });\n\n  /** @internal */\n  private keyManager: ActiveDescendantKeyManager<SelectOptionItem> | null = null;\n\n  private overlayRef: OverlayRef | null = null;\n  private outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n  private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  private readonly injector = inject(Injector);\n\n  /** @internal — called by AtlOption on init */\n  registerOption(id: string, value: string, labelText: string, disabled: boolean): void {\n    this.optionsList.update((list) => [...list, { id, value, labelText, disabled }]);\n  }\n\n  /** @internal — called by AtlOption on destroy */\n  unregisterOption(id: string): void {\n    this.optionsList.update((list) => list.filter((o) => o.id !== id));\n  }\n\n  /** @internal — called by AtlOption on select */\n  select(v: string): void {\n    if (!this.disabled()) {\n      this.value.set(v);\n      this.close();\n    }\n  }\n\n  /** @internal — called by AtlOption on interaction */\n  markTouched(): void {\n    this.touched.set(true);\n  }\n\n  /** @internal */\n  protected onTriggerClick(): void {\n    if (this.disabled()) return;\n    if (this.isOpen()) { this.close(); } else { this.open(); }\n  }\n\n  /** @internal */\n  protected onTriggerBlur(): void {\n    if (!this.isOpen()) {\n      this.touched.set(true);\n    }\n  }\n\n  /** @internal */\n  protected onKeydown(event: KeyboardEvent): void {\n    if (this.disabled()) return;\n\n    switch (event.key) {\n      case 'Enter':\n      case ' ': {\n        event.preventDefault();\n        if (!this.isOpen()) {\n          this.open();\n        } else {\n          const activeItem = this.keyManager?.activeItem;\n          if (activeItem) {\n            this.select(activeItem.value);\n          }\n        }\n        break;\n      }\n      case 'Escape': {\n        event.preventDefault();\n        this.close();\n        break;\n      }\n      default: {\n        const isNav = ['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key);\n        const isTypeahead = event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;\n        if ((isNav || isTypeahead) && !this.isOpen()) {\n          this.open();\n          if (isNav) return; // open() already sets active item\n        }\n        this.keyManager?.onKeydown(event);\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.overlayRef?.dispose();\n    this.overlayRef = null;\n    if (this.outsideClickHandler) {\n      document.removeEventListener('click', this.outsideClickHandler);\n      this.outsideClickHandler = null;\n    }\n  }\n\n  private open(): void {\n    const panel = this.panelRef();\n    if (!panel) return;\n\n    if (!this.overlayRef) {\n      this.overlayRef = this.createOverlay();\n    }\n\n    this.overlayRef.attach(new DomPortal(panel.nativeElement));\n    panel.nativeElement.classList.add('is-open');\n    this.overlayRef.updatePosition();\n    this.isOpen.set(true);\n\n    // (Re)create key manager with current options\n    const items = this.optionsList().map(\n      (o) => new SelectOptionItem(o.id, o.value, o.labelText, o.disabled, this.activeOptionId),\n    );\n    this.keyManager = new ActiveDescendantKeyManager(items)\n      .withWrap()\n      .withTypeAhead(500)\n      .withHomeAndEnd()\n      .withVerticalOrientation();\n\n    // Set active option to currently selected or first enabled\n    const selectedIdx = items.findIndex((i) => i.value === this.value() && !i.disabled);\n    const firstEnabledIdx = items.findIndex((i) => !i.disabled);\n    const activeIdx = selectedIdx >= 0 ? selectedIdx : firstEnabledIdx;\n    if (activeIdx >= 0) {\n      this.keyManager.setActiveItem(activeIdx);\n    }\n\n    // Outside click — check host AND panel (panel is in overlay container, outside host)\n    this.outsideClickHandler = (e: MouseEvent) => {\n      const target = e.target as Node;\n      if (\n        !this.elementRef.nativeElement.contains(target) &&\n        !panel.nativeElement.contains(target)\n      ) {\n        this.close();\n      }\n    };\n    document.addEventListener('click', this.outsideClickHandler);\n  }\n\n  private close(): void {\n    const panel = this.panelRef();\n    if (panel) {\n      panel.nativeElement.classList.remove('is-open');\n    }\n    this.overlayRef?.detach();\n    this.isOpen.set(false);\n    this.activeOptionId.set(null);\n    this.keyManager = null;\n\n    if (this.outsideClickHandler) {\n      document.removeEventListener('click', this.outsideClickHandler);\n      this.outsideClickHandler = null;\n    }\n  }\n\n  private createOverlay(): OverlayRef {\n    const triggerEl = this.elementRef.nativeElement.querySelector<HTMLElement>('.trigger');\n    if (!triggerEl) throw new Error('AtlSelect: trigger element not found');\n\n    const positionStrategy = createFlexibleConnectedPositionStrategy(\n      this.injector,\n      triggerEl,\n    )\n      .withPositions([\n        { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n        { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n      ])\n      .withFlexibleDimensions(false)\n      .withPush(true);\n\n    const scrollStrategy = createRepositionScrollStrategy(this.injector);\n\n    return createOverlayRef(this.injector, {\n      positionStrategy,\n      scrollStrategy,\n      minWidth: triggerEl.offsetWidth,\n    });\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  OnDestroy,\n  OnInit,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\nimport { ATL_SELECT } from './atl-select.token';\n\nlet nextOptionId = 0;\n\n/**\n * Option item for use inside `<atl-select>`.\n *\n * Usage:\n * ```html\n * <atl-option optionValue=\"us\">United States</atl-option>\n * ```\n */\n@Component({\n  selector: 'atl-option',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n    <div\n      role=\"option\"\n      [attr.id]=\"optionId\"\n      [attr.aria-selected]=\"isSelected()\"\n      [attr.aria-disabled]=\"disabled() || null\"\n      [class.is-selected]=\"isSelected()\"\n      [class.is-active]=\"isActive()\"\n      [class.is-disabled]=\"disabled()\"\n      (click)=\"onClick()\"\n      (mouseenter)=\"onMouseEnter()\"\n    >\n      <ng-content />\n    </div>\n  `,\n})\nexport class AtlOption implements OnInit, OnDestroy {\n  /** The value this option represents. Required. */\n  readonly optionValue = input.required<string>();\n\n  /** Whether this option is disabled. */\n  readonly disabled = input(false);\n\n  /** @internal */\n  protected readonly optionId = `atl-option-${nextOptionId++}`;\n\n  /** @internal */\n  private readonly context = inject(ATL_SELECT);\n\n  /** @internal */\n  private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  /** @internal */\n  protected readonly isSelected = computed(() => this.context.value() === this.optionValue());\n\n  /** @internal */\n  protected readonly isActive = computed(() => this.context.activeOptionId() === this.optionId);\n\n  ngOnInit(): void {\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    const labelText = (this.elementRef.nativeElement.textContent ?? '').trim();\n    this.context.registerOption(this.optionId, this.optionValue(), labelText, this.disabled());\n  }\n\n  ngOnDestroy(): void {\n    this.context.unregisterOption(this.optionId);\n  }\n\n  /** @internal */\n  protected onClick(): void {\n    if (this.disabled()) return;\n    this.context.select(this.optionValue());\n    this.context.markTouched();\n  }\n\n  /** @internal */\n  protected onMouseEnter(): void {\n    if (!this.disabled()) {\n      this.context.activeOptionId.set(this.optionId);\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  computed,\n  inject,\n  input,\n  model,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\nimport type { AtlComboboxOption } from '../spec';\n\nlet nextId = 0;\n\n/**\n * Filterable autocomplete combobox. Accepts an `options` array and emits the\n * selected option's `value`. The user types to narrow the list; selecting an\n * option commits the value and displays its label.\n *\n * Usage:\n * ```html\n * <atl-combobox\n *   [(value)]=\"country\"\n *   [options]=\"countryOptions\"\n *   placeholder=\"Search country…\"\n * />\n *\n * <!-- With Signal Forms -->\n * <atl-combobox [formField]=\"form.country\" [options]=\"countryOptions\" />\n * ```\n */\n@Component({\n  selector: 'atl-combobox',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"combobox-wrapper\">\n      <input\n        #inputEl\n        class=\"combobox-input\"\n        type=\"text\"\n        autocomplete=\"off\"\n        role=\"combobox\"\n        [id]=\"inputId\"\n        [attr.aria-expanded]=\"isOpen()\"\n        [attr.aria-controls]=\"panelId\"\n        aria-autocomplete=\"list\"\n        [attr.aria-activedescendant]=\"activeOptionId()\"\n        [attr.aria-invalid]=\"invalid() || null\"\n        [attr.disabled]=\"disabled() || null\"\n        [attr.required]=\"required() || null\"\n        [attr.name]=\"name() || null\"\n        [placeholder]=\"placeholder()\"\n        [value]=\"query()\"\n        (input)=\"onInput($event)\"\n        (focus)=\"onFocus()\"\n        (blur)=\"onBlur()\"\n        (keydown)=\"onKeydown($event)\"\n      />\n      <span class=\"combobox-icon\" aria-hidden=\"true\">\n        <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n          <path d=\"M2 4l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n        </svg>\n      </span>\n    </div>\n\n    <ul\n      #panel\n      [id]=\"panelId\"\n      popover=\"manual\"\n      role=\"listbox\"\n      class=\"panel\"\n      [attr.aria-labelledby]=\"inputId\"\n    >\n      @for (option of filteredOptions(); track option.value; let i = $index) {\n        <li\n          [id]=\"optionId(i)\"\n          role=\"option\"\n          class=\"option\"\n          [class.is-active]=\"activeIndex() === i\"\n          [class.is-selected]=\"option.value === value()\"\n          [class.is-disabled]=\"option.disabled\"\n          [attr.aria-selected]=\"option.value === value()\"\n          [attr.aria-disabled]=\"option.disabled || null\"\n          (mousedown)=\"onOptionSelect(option)\"\n          (mouseenter)=\"activeIndex.set(i)\"\n        >\n          <span>{{ option.label }}</span>\n          @if (option.value === value()) {\n            <svg class=\"option-check\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n              <path d=\"M2 7l4 4 6-7\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n            </svg>\n          }\n        </li>\n      }\n      @if (filteredOptions().length === 0) {\n        <li class=\"no-results\" role=\"option\" aria-selected=\"false\" aria-disabled=\"true\">No results found.</li>\n      }\n    </ul>\n\n    @if (showErrors()) {\n      <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n        @for (error of errors(); track error.kind) {\n          <p class=\"error-message\">{{ error.message }}</p>\n        }\n      </div>\n    }\n  `,\n  styleUrl: './atl-combobox.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlCombobox implements FormValueControl<string> {\n  /** The selected value. Supports [(value)] two-way binding and [formField] directive. */\n  readonly value = model('');\n\n  /** Whether the user has interacted. Bound by [formField] directive. */\n  readonly touched = model(false);\n\n  /** Options to display and filter. */\n  readonly options = input<AtlComboboxOption[]>([]);\n\n  /** Placeholder text for the input. */\n  readonly placeholder = input('');\n\n  /** Whether the combobox is disabled. */\n  readonly disabled = input(false);\n\n  /** Whether the combobox has validation errors. */\n  readonly invalid = input(false);\n\n  /** Whether the combobox is required. */\n  readonly required = input(false);\n\n  /** The input's name attribute. */\n  readonly name = input('');\n\n  /** Validation errors from the form system. */\n  readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n  /** @internal */\n  protected readonly query = signal('');\n\n  /** @internal */\n  protected readonly isOpen = signal(false);\n\n  /** @internal */\n  protected readonly activeIndex = signal(-1);\n\n  /** @internal */\n  protected readonly panelRef = viewChild<ElementRef<HTMLElement>>('panel');\n\n  /** @internal */\n  protected readonly inputEl = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n\n  /** @internal */\n  protected readonly inputId = `atl-combobox-input-${nextId}`;\n\n  /** @internal */\n  protected readonly panelId = `atl-combobox-panel-${nextId}`;\n\n  /** @internal */\n  protected readonly errorId = `atl-combobox-errors-${nextId++}`;\n\n  /** @internal */\n  protected readonly filteredOptions = computed(() => {\n    const q = this.query().toLowerCase();\n    if (!q) return this.options();\n    return this.options().filter((o) => o.label.toLowerCase().includes(q));\n  });\n\n  /** @internal */\n  protected readonly activeOptionId = computed(() => {\n    const idx = this.activeIndex();\n    return idx >= 0 ? this.optionId(idx) : null;\n  });\n\n  /** @internal */\n  protected readonly showErrors = computed(\n    () => this.touched() && this.invalid() && this.errors().length > 0,\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes: string[] = [];\n    if (this.isOpen()) classes.push('is-open');\n    if (this.disabled()) classes.push('is-disabled');\n    if (this.invalid()) classes.push('is-invalid');\n    if (this.touched()) classes.push('is-touched');\n    return classes.join(' ');\n  });\n\n  private outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n  private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  /** @internal */\n  protected optionId(index: number): string {\n    return `${this.panelId}-option-${index}`;\n  }\n\n  /** @internal */\n  protected onInput(event: Event): void {\n    const q = (event.target as HTMLInputElement).value;\n    this.query.set(q);\n    this.activeIndex.set(-1);\n    if (q === '') {\n      this.value.set('');\n    }\n    if (!this.isOpen()) this.open();\n  }\n\n  /** @internal */\n  protected onFocus(): void {\n    if (!this.disabled()) this.open();\n  }\n\n  /** @internal */\n  protected onBlur(): void {\n    const selectedOption = this.options().find((o) => o.value === this.value());\n    this.query.set(selectedOption?.label ?? '');\n    this.touched.set(true);\n  }\n\n  /** @internal */\n  protected onOptionSelect(option: AtlComboboxOption): void {\n    if (option.disabled || this.disabled()) return;\n    this.value.set(option.value);\n    this.query.set(option.label);\n    this.touched.set(true);\n    this.close();\n    this.inputEl()?.nativeElement.focus();\n  }\n\n  /** @internal */\n  protected onKeydown(event: KeyboardEvent): void {\n    if (this.disabled()) return;\n\n    switch (event.key) {\n      case 'Enter': {\n        const activeIdx = this.activeIndex();\n        if (this.isOpen() && activeIdx >= 0) {\n          event.preventDefault();\n          const option = this.filteredOptions()[activeIdx];\n          this.onOptionSelect(option);\n        }\n        break;\n      }\n      case 'Escape': {\n        event.preventDefault();\n        const selectedOption = this.options().find((o) => o.value === this.value());\n        this.query.set(selectedOption?.label ?? '');\n        this.close();\n        break;\n      }\n      case 'Tab': {\n        this.close();\n        break;\n      }\n      case 'ArrowDown':\n      case 'ArrowUp': {\n        if (!this.isOpen()) {\n          this.open();\n          break;\n        }\n        event.preventDefault();\n        const opts = this.filteredOptions();\n        const enabledIndices = opts.map((_, i) => i).filter((i) => !opts[i].disabled);\n        if (enabledIndices.length === 0) break;\n        const currentPos = enabledIndices.indexOf(this.activeIndex());\n        const len = enabledIndices.length;\n        const nextPos =\n          event.key === 'ArrowDown'\n            ? (currentPos + 1) % len\n            : (currentPos - 1 + len) % len;\n        this.activeIndex.set(enabledIndices[nextPos]);\n        break;\n      }\n    }\n  }\n\n  private open(): void {\n    const panel = this.panelRef();\n    if (!panel || this.isOpen()) return;\n    (panel.nativeElement as HTMLElement & { showPopover(): void }).showPopover();\n    this.isOpen.set(true);\n    this.activeIndex.set(-1);\n\n    this.outsideClickHandler = (e: MouseEvent) => {\n      if (!this.elementRef.nativeElement.contains(e.target as Node)) {\n        this.close();\n      }\n    };\n    document.addEventListener('click', this.outsideClickHandler);\n  }\n\n  private close(): void {\n    const panel = this.panelRef();\n    if (!panel || !this.isOpen()) return;\n    try {\n      (panel.nativeElement as HTMLElement & { hidePopover(): void }).hidePopover();\n    } catch {\n      // Panel may already be hidden\n    }\n    this.isOpen.set(false);\n    this.activeIndex.set(-1);\n\n    if (this.outsideClickHandler) {\n      document.removeEventListener('click', this.outsideClickHandler);\n      this.outsideClickHandler = null;\n    }\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AtlDialogContext {\n  headerId: string;\n  close: () => void;\n}\n\nexport const ATL_DIALOG = new InjectionToken<AtlDialogContext>('ATL_DIALOG');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ATL_DIALOG } from './atl-dialog.token';\n\nlet nextId = 0;\n\n/**\n * Accessible modal dialog using the native `<dialog>` element.\n * Includes focus trap, Escape to close, backdrop click to close, and animation.\n * Compose with `atl-dialog-header`, `atl-dialog-content`, and `atl-dialog-footer`.\n *\n * Usage:\n * ```html\n * <atl-dialog [(open)]=\"isOpen\">\n *   <atl-dialog-header>Dialog Title</atl-dialog-header>\n *   <atl-dialog-content>Dialog body content.</atl-dialog-content>\n *   <atl-dialog-footer>\n *     <atl-button variant=\"primary\" (click)=\"isOpen = false\">Confirm</atl-button>\n *   </atl-dialog-footer>\n * </atl-dialog>\n * ```\n */\n@Component({\n  selector: 'atl-dialog',\n  standalone: true,\n  imports: [A11yModule],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ATL_DIALOG,\n      useFactory: (dialog: AtlDialog) => ({\n      headerId: dialog.headerId,\n      close: () => dialog.open.set(false),\n    }),\n      deps: [AtlDialog],\n    },\n  ],\n  template: `\n    <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n    <dialog\n      #dialogEl\n      class=\"atl-dialog\"\n      [attr.aria-label]=\"ariaLabel() || null\"\n      [attr.aria-labelledby]=\"ariaLabel() ? null : (ariaLabelledby() || headerId)\"\n      aria-modal=\"true\"\n      [cdkTrapFocus]=\"open()\"\n      (cancel)=\"onCancel($event)\"\n      (click)=\"onBackdropClick($event)\"\n    >\n      <div [class]=\"panelClass()\">\n        <ng-content />\n      </div>\n    </dialog>\n  `,\n  styleUrl: './atl-dialog.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlDialog {\n  /** Whether the dialog is open. Supports two-way binding: [(open)]=\"isOpen\". */\n  readonly open = model(false);\n\n  /** Whether clicking the backdrop closes the dialog. */\n  readonly closeOnBackdrop = input(true);\n\n  /** Size of the dialog panel. */\n  readonly size = input<'sm' | 'md' | 'lg' | 'xl' | 'full'>('md');\n\n  /** Accessible label for the dialog (use instead of aria-labelledby when no header is present). */\n  readonly ariaLabel = input('', { alias: 'aria-label' });\n\n  /** ID of the element that labels the dialog (defaults to the atl-dialog-header id). */\n  readonly ariaLabelledby = input('', { alias: 'aria-labelledby' });\n\n  /** @internal — referenced by AtlDialogHeader via ATL_DIALOG token */\n  readonly headerId = `atl-dialog-header-${nextId}`;\n\n  protected readonly dialogId = `atl-dialog-${nextId++}`;\n  protected readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dialogEl');\n  private readonly triggerEl = signal<HTMLElement | null>(null);\n\n  protected readonly panelClass = computed(() => `panel size-${this.size()}`);\n  protected readonly hostClasses = computed(() => (this.open() ? 'is-open' : ''));\n\n  constructor() {\n    effect(() => {\n      const dialog = this.dialogRef()?.nativeElement;\n      if (!dialog) return;\n      if (this.open()) {\n        this.triggerEl.set(document.activeElement as HTMLElement);\n        dialog.showModal();\n      } else {\n        if (dialog.open) dialog.close();\n        this.triggerEl()?.focus();\n        this.triggerEl.set(null);\n      }\n    });\n  }\n\n  protected onCancel(event: Event): void {\n    event.preventDefault();\n    this.open.set(false);\n  }\n\n  protected onBackdropClick(event: MouseEvent): void {\n    if (this.closeOnBackdrop() && event.target === this.dialogRef()?.nativeElement) {\n      this.open.set(false);\n    }\n  }\n\n}\n\n/**\n * Header slot for `atl-dialog`. Renders above content with a bottom separator.\n * Automatically receives the correct `id` for `aria-labelledby` association.\n */\n@Component({\n  selector: 'atl-dialog-header',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-content />\n    <button\n      class=\"close-btn\"\n      type=\"button\"\n      aria-label=\"Close dialog\"\n      (click)=\"context.close()\"\n    >\n      <svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width=\"14\"\n        height=\"14\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        stroke=\"currentColor\"\n        stroke-width=\"2.5\"\n        stroke-linecap=\"round\"\n        stroke-linejoin=\"round\"\n        aria-hidden=\"true\"\n        focusable=\"false\"\n      >\n        <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n        <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n      </svg>\n    </button>\n  `,\n  styleUrl: './atl-dialog.css',\n  host: {\n    class: 'atl-dialog-header',\n    '[attr.id]': 'context.headerId',\n  },\n})\nexport class AtlDialogHeader {\n  protected readonly context = inject(ATL_DIALOG);\n}\n\n/**\n * Content slot for `atl-dialog`. Scrollable primary content area.\n */\n@Component({\n  selector: 'atl-dialog-content',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-dialog.css',\n  host: { class: 'atl-dialog-content' },\n})\nexport class AtlDialogContent {}\n\n/**\n * Footer slot for `atl-dialog`. Renders below content, typically holds action buttons.\n */\n@Component({\n  selector: 'atl-dialog-footer',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-dialog.css',\n  host: { class: 'atl-dialog-footer' },\n})\nexport class AtlDialogFooter {}\n","import { InjectionToken } from '@angular/core';\nimport type { Signal, WritableSignal } from '@angular/core';\n\nexport interface TabInfo {\n  id: string;\n  label: string;\n  disabled: boolean;\n  panelId: string;\n  tabId: string;\n}\n\nexport interface AtlTabGroupContext {\n  readonly selectedIndex: WritableSignal<number>;\n  readonly tabs: Signal<TabInfo[]>;\n  registerTab(info: TabInfo): void;\n  unregisterTab(id: string): void;\n}\n\nexport const ATL_TAB_GROUP = new InjectionToken<AtlTabGroupContext>('ATL_TAB_GROUP');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  ElementRef,\n  inject,\n  input,\n  model,\n  OnDestroy,\n  OnInit,\n  signal,\n  viewChildren,\n} from '@angular/core';\nimport { ATL_TAB_GROUP, type AtlTabGroupContext, type TabInfo } from './atl-tabs.token';\n\nlet nextId = 0;\n\n/**\n * Accessible tabbed interface container. Renders a tab list and manages\n * keyboard navigation with roving tabindex.\n *\n * Usage:\n * ```html\n * <atl-tab-group [(selectedIndex)]=\"activeTab\">\n *   <atl-tab label=\"Account\">Account settings here.</atl-tab>\n *   <atl-tab label=\"Notifications\">Notification prefs here.</atl-tab>\n *   <atl-tab label=\"Billing\" [disabled]=\"true\">Billing info here.</atl-tab>\n * </atl-tab-group>\n * ```\n */\n@Component({\n  selector: 'atl-tab-group',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"tablist\" role=\"tablist\">\n      @for (tab of tabs(); track tab.id; let i = $index) {\n        <button\n          #tabBtn\n          type=\"button\"\n          role=\"tab\"\n          [id]=\"tab.tabId\"\n          [attr.aria-selected]=\"selectedIndex() === i\"\n          [attr.aria-controls]=\"tab.panelId\"\n          [attr.aria-disabled]=\"tab.disabled || null\"\n          [attr.tabindex]=\"selectedIndex() === i ? 0 : -1\"\n          [class.is-active]=\"selectedIndex() === i\"\n          [class.is-disabled]=\"tab.disabled\"\n          (click)=\"selectTab(i)\"\n          (keydown)=\"onTabKeydown($event)\"\n        >\n          {{ tab.label }}\n        </button>\n      }\n    </div>\n    <ng-content />\n  `,\n  styleUrl: './atl-tabs.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n  providers: [{ provide: ATL_TAB_GROUP, useExisting: AtlTabGroup }],\n})\nexport class AtlTabGroup implements AtlTabGroupContext {\n  /** Index of the currently active tab. Supports two-way binding. */\n  readonly selectedIndex = model(0);\n\n  /** Visual variant. */\n  readonly variant = input<'default' | 'pills'>('default');\n\n  /** @internal */\n  readonly tabs = signal<TabInfo[]>([]);\n\n  /** @internal */\n  protected readonly tabBtns = viewChildren<ElementRef<HTMLButtonElement>>('tabBtn');\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => `atl-tab-group variant-${this.variant()}`);\n\n  /** @internal — called by AtlTab on init */\n  registerTab(info: TabInfo): void {\n    this.tabs.update((list) => [...list, info]);\n  }\n\n  /** @internal — called by AtlTab on destroy */\n  unregisterTab(id: string): void {\n    this.tabs.update((list) => list.filter((t) => t.id !== id));\n  }\n\n  /** @internal */\n  protected selectTab(index: number): void {\n    const tab = this.tabs()[index];\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\n    if (tab && !tab.disabled) {\n      this.selectedIndex.set(index);\n    }\n  }\n\n  /** @internal */\n  protected onTabKeydown(event: KeyboardEvent): void {\n    const allTabs = this.tabs();\n    const enabledIndices = allTabs.map((_, i) => i).filter((i) => !allTabs[i].disabled);\n    const len = enabledIndices.length;\n    if (len === 0) return;\n\n    const currentPosInEnabled = enabledIndices.indexOf(this.selectedIndex());\n\n    let targetIdx: number | null = null;\n\n    switch (event.key) {\n      case 'ArrowRight':\n        targetIdx = enabledIndices[(currentPosInEnabled + 1) % len];\n        break;\n      case 'ArrowLeft':\n        targetIdx = enabledIndices[(currentPosInEnabled - 1 + len) % len];\n        break;\n      case 'Home':\n        targetIdx = enabledIndices[0];\n        break;\n      case 'End':\n        targetIdx = enabledIndices[len - 1];\n        break;\n      default:\n        return;\n    }\n\n    event.preventDefault();\n    this.selectTab(targetIdx);\n    this.tabBtns()[targetIdx]?.nativeElement.focus();\n  }\n}\n\n/**\n * Individual tab definition. Place inside `<atl-tab-group>`.\n *\n * Usage:\n * ```html\n * <atl-tab label=\"Settings\">Settings content here.</atl-tab>\n * ```\n */\n@Component({\n  selector: 'atl-tab',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    @if (isActive()) {\n      <div\n        role=\"tabpanel\"\n        [id]=\"panelId\"\n        [attr.aria-labelledby]=\"tabId\"\n        [tabindex]=\"0\"\n      >\n        <ng-content />\n      </div>\n    }\n  `,\n  styles: `\n    :host {\n      display: contents;\n    }\n\n    [role='tabpanel'] {\n      padding: var(--ui-spacing-5) 0;\n    }\n\n    [role='tabpanel']:focus-visible {\n      outline: none;\n      box-shadow: var(--ui-focus-ring);\n      border-radius: var(--ui-radius-md);\n    }\n  `,\n})\nexport class AtlTab implements OnInit, OnDestroy {\n  /** Text displayed on the tab button. Required. */\n  readonly label = input.required<string>();\n\n  /** Whether this tab is disabled. */\n  readonly disabled = input(false);\n\n  /** @internal */\n  readonly tabId = `atl-tab-${nextId}`;\n\n  /** @internal */\n  readonly panelId = `atl-tab-panel-${nextId}`;\n\n  /** @internal */\n  private readonly id = `atl-tab-instance-${nextId++}`;\n\n  /** @internal */\n  private readonly context = inject(ATL_TAB_GROUP);\n\n  /** @internal */\n  protected readonly isActive = computed(() => {\n    const index = this.context.tabs().findIndex((t) => t.id === this.id);\n    return this.context.selectedIndex() === index;\n  });\n\n  ngOnInit(): void {\n    this.context.registerTab({\n      id: this.id,\n      label: this.label(),\n      disabled: this.disabled(),\n      panelId: this.panelId,\n      tabId: this.tabId,\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.context.unregisterTab(this.id);\n  }\n}\n","import { InjectionToken } from '@angular/core';\nimport type { FocusableOption } from '@angular/cdk/a11y';\n\n/** @internal — shape required by AtlAccordionGroup's FocusKeyManager */\nexport interface AccordionItem extends FocusableOption {\n  readonly id: string;\n  focus(): void; // matches FocusableOption\n  disabled?: boolean; // matches FocusableOption\n}\n\nexport interface AtlAccordionGroupContext {\n  register(item: AccordionItem): void;\n  unregister(item: AccordionItem): void;\n  handleKeydown(event: KeyboardEvent, item: AccordionItem): void;\n}\n\nexport const ATL_ACCORDION_GROUP = new InjectionToken<AtlAccordionGroupContext>('ATL_ACCORDION_GROUP');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  model,\n  OnDestroy,\n  OnInit,\n  signal,\n} from '@angular/core';\nimport { CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion';\nimport { ATL_ACCORDION_GROUP, type AccordionItem, type AtlAccordionGroupContext } from './atl-accordion.token';\n\nlet nextId = 0;\n\n/**\n * Container that manages accordion items. Controls single vs multi expansion\n * and provides keyboard navigation across items.\n *\n * Usage:\n * ```html\n * <atl-accordion-group [multi]=\"true\" variant=\"separated\">\n *   <atl-accordion-item [(expanded)]=\"open\">\n *     <span atlAccordionHeader>Title</span>\n *     Body content here.\n *   </atl-accordion-item>\n * </atl-accordion-group>\n * ```\n */\n@Component({\n  selector: 'atl-accordion-group',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-accordion.css',\n  hostDirectives: [{ directive: CdkAccordion, inputs: ['multi'] }],\n  host: {\n    '[class]': 'hostClassesValue',\n    role: 'presentation',\n  },\n  providers: [{ provide: ATL_ACCORDION_GROUP, useExisting: AtlAccordionGroup }],\n})\nexport class AtlAccordionGroup implements AtlAccordionGroupContext {\n  /** Allow multiple items to be expanded simultaneously. */\n  readonly multi = input(false);\n\n  /** Visual variant. */\n  readonly variant = input<'default' | 'bordered' | 'separated'>('default');\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => `atl-accordion-group variant-${this.variant()}`);\n\n  /** @internal */\n  get hostClassesValue(): string {\n    return this.hostClasses();\n  }\n\n  /** @internal */\n  private readonly items = signal<AccordionItem[]>([]);\n\n  register(item: AccordionItem): void {\n    this.items.update((list) => [...list, item]);\n  }\n\n  unregister(item: AccordionItem): void {\n    this.items.update((list) => list.filter((i) => i !== item));\n  }\n\n  handleKeydown(event: KeyboardEvent, item: AccordionItem): void {\n    const enabledItems = this.items().filter((i) => !i.disabled);\n    const len = enabledItems.length;\n    if (len === 0) return;\n\n    const currentIdx = enabledItems.indexOf(item);\n\n    let targetItem: AccordionItem | null = null;\n\n    switch (event.key) {\n      case 'ArrowDown':\n        targetItem = enabledItems[(currentIdx + 1) % len];\n        break;\n      case 'ArrowUp':\n        targetItem = enabledItems[(currentIdx - 1 + len) % len];\n        break;\n      case 'Home':\n        targetItem = enabledItems[0];\n        break;\n      case 'End':\n        targetItem = enabledItems[len - 1];\n        break;\n      default:\n        return;\n    }\n\n    event.preventDefault();\n    targetItem.focus();\n  }\n}\n\n/**\n * Directive to mark the accordion header content.\n */\n@Directive({\n  selector: '[atlAccordionHeader]',\n  standalone: true,\n})\nexport class AtlAccordionHeader {}\n\n/**\n * Individual collapsible accordion item. Place inside `<atl-accordion-group>`.\n *\n * Usage:\n * ```html\n * <atl-accordion-item [(expanded)]=\"isOpen\">\n *   <span atlAccordionHeader>Section Title</span>\n *   Section content goes here.\n * </atl-accordion-item>\n * ```\n */\n@Component({\n  selector: 'atl-accordion-item',\n  standalone: true,\n  imports: [],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  hostDirectives: [CdkAccordionItem],\n  template: `\n    <div role=\"heading\" [attr.aria-level]=\"headingLevel()\" class=\"accordion-heading\">\n      <button\n        type=\"button\"\n        class=\"accordion-trigger\"\n        [id]=\"triggerId\"\n        [attr.aria-expanded]=\"isExpandedValue\"\n        [attr.aria-controls]=\"panelId\"\n        [attr.aria-disabled]=\"ariaDisabled\"\n        [class.is-disabled]=\"isDisabled\"\n        (click)=\"onToggle()\"\n        (keydown)=\"onKeydown($event)\"\n      >\n        <ng-content select=\"[atlAccordionHeader]\" />\n        <svg\n          class=\"chevron\"\n          [class.is-expanded]=\"isExpandedValue\"\n          width=\"16\"\n          height=\"16\"\n          viewBox=\"0 0 16 16\"\n          fill=\"none\"\n          aria-hidden=\"true\"\n        >\n          <path\n            d=\"M4 6L8 10L12 6\"\n            stroke=\"currentColor\"\n            stroke-width=\"1.5\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n          />\n        </svg>\n      </button>\n    </div>\n    <div\n      class=\"accordion-panel-wrapper\"\n      [class.is-expanded]=\"isExpandedValue\"\n    >\n      <div\n        role=\"region\"\n        [id]=\"panelId\"\n        [attr.aria-labelledby]=\"triggerId\"\n        class=\"accordion-panel\"\n      >\n        <ng-content />\n      </div>\n    </div>\n  `,\n  styleUrl: './atl-accordion.css',\n  host: {\n    class: 'atl-accordion-item',\n    '[attr.data-accordion-id]': 'id',\n  },\n})\nexport class AtlAccordionItem implements AccordionItem, OnInit, OnDestroy {\n  /** Whether this item is expanded. Supports two-way binding. */\n  readonly expanded = model(false);\n\n  /** Whether this item is disabled. */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  readonly disabledInput = input(false, { alias: 'disabled' });\n\n  /**\n   * HTML heading level wrapping the trigger button. Default `3`.\n   * Match your page's heading outline so heading order stays valid.\n   * Rendered as `<div role=\"heading\" aria-level=\"N\">` so screen\n   * readers treat it as a real heading at that level.\n   */\n  readonly headingLevel = input<1 | 2 | 3 | 4 | 5 | 6>(3);\n\n  /** @internal — satisfies AccordionItem / FocusableOption interface */\n  get disabled(): boolean {\n    return this.disabledInput();\n  }\n\n  /** @internal */\n  readonly id = `atl-accordion-item-${nextId++}`;\n\n  /** @internal */\n  readonly triggerId = `${this.id}-trigger`;\n\n  /** @internal */\n  readonly panelId = `${this.id}-panel`;\n\n  /** @internal */\n  private readonly group = inject(AtlAccordionGroup);\n\n  /** @internal */\n  private readonly cdkItem = inject(CdkAccordionItem);\n\n  /** @internal */\n  private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  /** @internal */\n  protected readonly isExpanded = signal(false);\n\n  /** @internal */\n  get isExpandedValue(): boolean {\n    return this.isExpanded();\n  }\n\n  /** @internal */\n  get isDisabled(): boolean {\n    return this.disabledInput();\n  }\n\n  /** @internal */\n  get ariaDisabled(): boolean | null {\n    return this.disabledInput() || null;\n  }\n\n  constructor() {\n    this.cdkItem.expandedChange.subscribe((expanded: boolean) => {\n      this.isExpanded.set(expanded);\n      this.expanded.set(expanded);\n    });\n  }\n\n  ngOnInit(): void {\n    this.group.register(this);\n    // Sync initial expanded model\n    if (this.expanded()) {\n      this.cdkItem.open();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.group.unregister(this);\n  }\n\n  /** @internal — for FocusKeyManager */\n  focus(): void {\n    this.el.nativeElement.querySelector<HTMLButtonElement>('.accordion-trigger')?.focus();\n  }\n\n  /** @internal */\n  protected onToggle(): void {\n    if (this.disabledInput()) return;\n    this.cdkItem.toggle();\n  }\n\n  /** @internal */\n  protected onKeydown(event: KeyboardEvent): void {\n    this.group.handleKeydown(event, this);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  Directive,\n  inject,\n  input,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\n\n/**\n * Trigger directive that opens an `<atl-menu>` dropdown.\n * Apply to any element (typically `<atl-button>`) to wire up click + keyboard open/close.\n *\n * Usage:\n * ```html\n * <atl-button [atlMenuTriggerFor]=\"myMenu\">Open</atl-button>\n * <ng-template #myMenu>\n *   <atl-menu>\n *     <atl-menu-item (triggered)=\"action()\">Action</atl-menu-item>\n *   </atl-menu>\n * </ng-template>\n * ```\n */\n@Directive({\n  selector: '[atlMenuTriggerFor]',\n  standalone: true,\n  hostDirectives: [\n    {\n      directive: CdkMenuTrigger,\n      inputs: ['cdkMenuTriggerFor: atlMenuTriggerFor'],\n    },\n  ],\n})\nexport class AtlMenuTrigger {}\n\n/**\n * Accessible dropdown menu panel.\n * Uses `@angular/cdk/menu` for keyboard navigation, focus management, and ARIA.\n *\n * Usage:\n * ```html\n * <atl-button [atlMenuTriggerFor]=\"actions\">Actions</atl-button>\n * <ng-template #actions>\n *   <atl-menu>\n *     <atl-menu-item (triggered)=\"onCopy()\">Copy</atl-menu-item>\n *     <atl-menu-separator />\n *     <atl-menu-item [disabled]=\"true\">Paste</atl-menu-item>\n *   </atl-menu>\n * </ng-template>\n * ```\n */\n@Component({\n  selector: 'atl-menu',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n  encapsulation: ViewEncapsulation.None,\n  hostDirectives: [CdkMenu],\n  template: `<ng-content />`,\n  styleUrl: './atl-menu.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlMenu {\n  /** Visual variant. `compact` reduces font size and padding. */\n  readonly variant = input<'default' | 'compact'>('default');\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => `atl-menu variant-${this.variant()}`);\n}\n\n/**\n * A single item inside an `<atl-menu>`.\n * Supports keyboard navigation, disabled state, and nested submenus via `[atlMenuTriggerFor]`.\n *\n * Usage:\n * ```html\n * <atl-menu-item (triggered)=\"doSomething()\">Label</atl-menu-item>\n * <atl-menu-item [disabled]=\"true\">Disabled</atl-menu-item>\n * ```\n */\n@Component({\n  selector: 'atl-menu-item',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  hostDirectives: [\n    {\n      directive: CdkMenuItem,\n      inputs: ['cdkMenuItemDisabled: disabled'],\n      outputs: ['cdkMenuItemTriggered: triggered'],\n    },\n  ],\n  template: `\n    <ng-content />\n    @if (hasSubmenu()) {\n      <span class=\"atl-menu-item-chevron\" aria-hidden=\"true\">&#x203A;</span>\n    }\n  `,\n  host: {\n    class: 'atl-menu-item',\n    '[class.is-disabled]': 'disabled()',\n  },\n})\nexport class AtlMenuItem {\n  /** Whether this menu item is disabled. */\n  readonly disabled = input(false);\n\n  /** @internal — detect if this item also triggers a submenu */\n  private readonly menuTrigger = inject(CdkMenuTrigger, { optional: true, self: true });\n\n  /** @internal */\n  protected readonly hasSubmenu = computed(() => !!this.menuTrigger);\n}\n\n/**\n * Visual separator between groups of menu items.\n *\n * Usage:\n * ```html\n * <atl-menu-item>Copy</atl-menu-item>\n * <atl-menu-separator />\n * <atl-menu-item>Delete</atl-menu-item>\n * ```\n */\n@Component({\n  selector: 'atl-menu-separator',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: ``,\n  host: {\n    class: 'atl-menu-separator',\n    role: 'separator',\n  },\n})\nexport class AtlMenuSeparator {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Directive,\n  ElementRef,\n  Injector,\n  input,\n  OnDestroy,\n  signal,\n  ViewEncapsulation,\n  inject,\n} from '@angular/core';\nimport {\n  createFlexibleConnectedPositionStrategy,\n  createOverlayRef,\n  createRepositionScrollStrategy,\n  type ConnectedPosition,\n  type OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nlet nextTooltipId = 0;\n\n/** @internal — Rendered inside the CDK overlay when the tooltip is visible. */\n@Component({\n  selector: 'atl-tooltip-content',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n  encapsulation: ViewEncapsulation.None,\n  template: `{{ text() }}`,\n  styleUrl: './atl-tooltip.css',\n  host: {\n    class: 'atl-tooltip',\n    role: 'tooltip',\n    '[id]': 'tooltipId()',\n  },\n})\nexport class AtlTooltipContent {\n  /** @internal */\n  readonly text = input('');\n  /** @internal */\n  readonly tooltipId = input('');\n}\n\nconst POSITIONS: Record<string, ConnectedPosition[]> = {\n  above: [\n    { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -8 },\n    { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 8 },\n  ],\n  below: [\n    { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 8 },\n    { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -8 },\n  ],\n  left: [\n    { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -8 },\n    { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: 8 },\n  ],\n  right: [\n    { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: 8 },\n    { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -8 },\n  ],\n};\n\n/**\n * Attribute directive that displays a text tooltip on hover or focus.\n * Uses `@angular/cdk/overlay` for viewport-aware positioning.\n *\n * Usage:\n * ```html\n * <atl-button atlTooltip=\"Save your changes\">Save</atl-button>\n * <atl-button atlTooltip=\"Copy to clipboard\" atlTooltipPosition=\"right\">Copy</atl-button>\n * ```\n */\n@Directive({\n  selector: '[atlTooltip]',\n  standalone: true,\n  host: {\n    '(mouseenter)': 'show()',\n    '(mouseleave)': 'hide()',\n    '(focusin)': 'show()',\n    '(focusout)': 'hide()',\n    '(keydown.escape)': 'hide()',\n    '[attr.aria-describedby]': 'activeTooltipId()',\n  },\n})\nexport class AtlTooltip implements OnDestroy {\n  /** The tooltip text. */\n  readonly atlTooltip = input.required<string>();\n\n  /** Preferred tooltip placement. Falls back to the opposite side if clipped. */\n  readonly atlTooltipPosition = input<'above' | 'below' | 'left' | 'right'>('above');\n\n  /** Disable the tooltip without removing the directive. */\n  readonly atlTooltipDisabled = input(false);\n\n  /** Delay in ms before the tooltip appears. */\n  readonly atlTooltipShowDelay = input(300);\n\n  /** Delay in ms before the tooltip hides. */\n  readonly atlTooltipHideDelay = input(0);\n\n  private readonly injector = inject(Injector);\n  private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  private overlayRef: OverlayRef | null = null;\n  private showTimer: ReturnType<typeof setTimeout> | null = null;\n  private hideTimer: ReturnType<typeof setTimeout> | null = null;\n\n  /** @internal — links host aria-describedby to the tooltip element */\n  protected readonly activeTooltipId = signal<string | null>(null);\n\n  /** @internal */\n  protected show(): void {\n    if (this.atlTooltipDisabled() || !this.atlTooltip()) return;\n    this.clearHideTimer();\n\n    if (this.overlayRef?.hasAttached()) return;\n\n    this.showTimer = setTimeout(() => {\n      this.showTimer = null;\n      this.attach();\n    }, this.atlTooltipShowDelay());\n  }\n\n  /** @internal */\n  protected hide(): void {\n    this.clearShowTimer();\n\n    if (!this.overlayRef?.hasAttached()) return;\n\n    this.hideTimer = setTimeout(() => {\n      this.hideTimer = null;\n      this.overlayRef?.detach();\n      this.activeTooltipId.set(null);\n    }, this.atlTooltipHideDelay());\n  }\n\n  ngOnDestroy(): void {\n    this.clearShowTimer();\n    this.clearHideTimer();\n    this.overlayRef?.dispose();\n    this.overlayRef = null;\n  }\n\n  private attach(): void {\n    if (!this.overlayRef) {\n      this.overlayRef = this.createOverlay();\n    }\n\n    if (this.overlayRef.hasAttached()) return;\n\n    const id = `atl-tooltip-${nextTooltipId++}`;\n    const portal = new ComponentPortal(AtlTooltipContent);\n    const ref = this.overlayRef.attach(portal);\n    ref.setInput('text', this.atlTooltip());\n    ref.setInput('tooltipId', id);\n    this.activeTooltipId.set(id);\n  }\n\n  private createOverlay(): OverlayRef {\n    const positions = POSITIONS[this.atlTooltipPosition()] ?? POSITIONS['above'];\n\n    const positionStrategy = createFlexibleConnectedPositionStrategy(\n      this.injector,\n      this.elementRef,\n    )\n      .withPositions(positions)\n      .withFlexibleDimensions(false)\n      .withPush(true);\n\n    const scrollStrategy = createRepositionScrollStrategy(this.injector);\n\n    return createOverlayRef(this.injector, {\n      positionStrategy,\n      scrollStrategy,\n      panelClass: 'atl-tooltip-panel',\n    });\n  }\n\n  private clearShowTimer(): void {\n    if (this.showTimer !== null) {\n      clearTimeout(this.showTimer);\n      this.showTimer = null;\n    }\n  }\n\n  private clearHideTimer(): void {\n    if (this.hideTimer !== null) {\n      clearTimeout(this.hideTimer);\n      this.hideTimer = null;\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n} from '@angular/core';\n\n/**\n * Loading placeholder that mimics the shape of content while it loads.\n *\n * Usage:\n * ```html\n * <atl-skeleton />\n * <atl-skeleton variant=\"circular\" width=\"40px\" />\n * <atl-skeleton variant=\"rectangular\" height=\"200px\" />\n * ```\n */\n@Component({\n  selector: 'atl-skeleton',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: ``,\n  styleUrl: './atl-skeleton.css',\n  host: {\n    '[class]': 'hostClasses()',\n    '[style.width]': 'width()',\n    '[style.height]': 'computedHeight()',\n    'aria-hidden': 'true',\n  },\n})\nexport class AtlSkeleton {\n  /** Shape variant of the skeleton placeholder. */\n  readonly variant = input<'text' | 'circular' | 'rectangular'>('text');\n\n  /** CSS width of the skeleton. */\n  readonly width = input('100%');\n\n  /** CSS height — when empty, a sensible default is chosen per variant. */\n  readonly height = input('');\n\n  /** Whether the shimmer animation is active. */\n  readonly animated = input(true);\n\n  protected readonly computedHeight = computed(() => {\n    if (this.height()) return this.height();\n    switch (this.variant()) {\n      case 'text':\n        return '1em';\n      case 'circular':\n        return this.width();\n      case 'rectangular':\n        return '100px';\n    }\n  });\n\n  protected readonly hostClasses = computed(() => {\n    const classes = [`variant-${this.variant()}`];\n    if (this.animated()) classes.push('is-animated');\n    return classes.join(' ');\n  });\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  Injectable,\n  computed,\n  inject,\n  input,\n  output,\n  signal,\n} from '@angular/core';\n\n/** Variant types for toast notifications. */\nexport type ToastVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';\n\n/** Options for creating a toast notification. */\nexport interface ToastOptions {\n  variant?: ToastVariant;\n  /** Duration in ms before auto-dismiss. 0 = no auto-dismiss. Default 5000. */\n  duration?: number;\n  /** Whether the toast shows a dismiss button. Default true. */\n  dismissible?: boolean;\n}\n\n/** Internal data for a toast instance. */\nexport interface ToastData {\n  id: string;\n  message: string;\n  variant: ToastVariant;\n  duration: number;\n  dismissible: boolean;\n}\n\nlet toastId = 0;\n\n/**\n * Service for showing transient toast notifications.\n *\n * Usage:\n * ```typescript\n * const toast = inject(AtlToastService);\n * toast.show('Saved successfully', { variant: 'success' });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AtlToastService {\n  readonly toasts = signal<ToastData[]>([]);\n\n  private readonly timers = new Map<string, ReturnType<typeof setTimeout>>();\n\n  /**\n   * Show a toast notification.\n   * @returns The unique id of the toast, which can be used with `dismiss()`.\n   */\n  show(message: string, options?: ToastOptions): string {\n    const id = `atl-toast-${toastId++}`;\n    const toast: ToastData = {\n      id,\n      message,\n      variant: options?.variant ?? 'default',\n      duration: options?.duration ?? 5000,\n      dismissible: options?.dismissible ?? true,\n    };\n\n    this.toasts.update((list) => [...list, toast]);\n\n    if (toast.duration > 0) {\n      const timer = setTimeout(() => this.dismiss(id), toast.duration);\n      this.timers.set(id, timer);\n    }\n\n    return id;\n  }\n\n  /** Dismiss a single toast by id. */\n  dismiss(id: string): void {\n    const timer = this.timers.get(id);\n    if (timer !== undefined) {\n      clearTimeout(timer);\n      this.timers.delete(id);\n    }\n    this.toasts.update((list) => list.filter((t) => t.id !== id));\n  }\n\n  /** Clear all active toasts. */\n  clear(): void {\n    for (const timer of this.timers.values()) {\n      clearTimeout(timer);\n    }\n    this.timers.clear();\n    this.toasts.set([]);\n  }\n}\n\n/**\n * Individual toast notification.\n *\n * Typically rendered by `atl-toast-container`, but can also be used standalone.\n */\n@Component({\n  selector: 'atl-toast',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <span class=\"message\">{{ message() }}</span>\n    @if (dismissible()) {\n      <button class=\"dismiss\" type=\"button\" aria-label=\"Dismiss\" (click)=\"onDismiss()\">\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\">\n          <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n          <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n        </svg>\n      </button>\n    }\n  `,\n  styleUrl: './atl-toast.css',\n  host: {\n    '[class]': 'hostClasses()',\n    role: 'status',\n  },\n})\nexport class AtlToast {\n  /** Semantic color variant. */\n  readonly variant = input<ToastVariant>('default');\n\n  /** Whether to show a dismiss button. */\n  readonly dismissible = input(true);\n\n  /** The message to display. */\n  readonly message = input('');\n\n  /** Unique identifier for this toast. */\n  readonly toastId = input('');\n\n  /** Emitted when the toast is dismissed by the user. */\n  readonly dismissed = output<string>();\n\n  protected readonly hostClasses = computed(() => `variant-${this.variant()}`);\n\n  protected onDismiss(): void {\n    this.dismissed.emit(this.toastId());\n  }\n}\n\n/**\n * Container that renders the toast stack at a fixed viewport position.\n * Place once in your app root or layout component.\n *\n * Usage:\n * ```html\n * <atl-toast-container position=\"bottom-right\" />\n * ```\n */\n@Component({\n  selector: 'atl-toast-container',\n  standalone: true,\n  imports: [AtlToast],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    @for (toast of toastService.toasts(); track toast.id) {\n      <atl-toast\n        [variant]=\"toast.variant\"\n        [dismissible]=\"toast.dismissible\"\n        [message]=\"toast.message\"\n        [toastId]=\"toast.id\"\n        (dismissed)=\"toastService.dismiss($event)\"\n      />\n    }\n  `,\n  styleUrl: './atl-toast-container.css',\n  host: {\n    '[class]': 'hostClasses()',\n    'aria-live': 'polite',\n    role: 'status',\n  },\n})\nexport class AtlToastContainer {\n  protected readonly toastService = inject(AtlToastService);\n  private readonly destroyRef = inject(DestroyRef);\n\n  /** Position of the toast stack on the viewport. */\n  readonly position = input<'top-right' | 'top-center' | 'bottom-right' | 'bottom-center'>('bottom-right');\n\n  protected readonly hostClasses = computed(() => `position-${this.position()}`);\n\n  constructor() {\n    this.destroyRef.onDestroy(() => this.toastService.clear());\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  computed,\n  contentChildren,\n  effect,\n  input,\n  signal,\n  untracked,\n} from '@angular/core';\n\n/**\n * Displays a user avatar with image, initials, or icon fallback.\n *\n * Fallback order: image → initials (from `name`) → generic icon.\n *\n * Usage:\n * ```html\n * <atl-avatar src=\"https://example.com/photo.jpg\" name=\"Jane Doe\" />\n * <atl-avatar name=\"John Smith\" size=\"lg\" status=\"online\" />\n * <atl-avatar size=\"sm\" shape=\"square\" />\n * ```\n */\n@Component({\n  selector: 'atl-avatar',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <!-- eslint-disable -->\n    @if (src() && showImage()) {\n      <img [src]=\"src()\" [alt]=\"alt()\" (error)=\"showImage.set(false)\" />\n    } @else if (initials()) {\n      <span class=\"initials\" aria-hidden=\"true\">{{ initials() }}</span>\n    } @else {\n      <svg class=\"icon\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n        <path d=\"M12 12c2.761 0 5-2.239 5-5s-2.239-5-5-5-5 2.239-5 5 2.239 5 5 5zm0 2c-3.314 0-10 1.343-10 4v2h20v-2c0-2.657-6.686-4-10-4z\" />\n      </svg>\n    }\n    @if (status()) {\n      <span [class]=\"'status-dot status-' + status()\" aria-hidden=\"true\"></span>\n    }\n  `,\n  styleUrl: './atl-avatar.css',\n  host: {\n    '[class]': 'hostClasses()',\n    role: 'img',\n    '[attr.aria-label]': 'ariaLabel()',\n  },\n})\nexport class AtlAvatar {\n  /** Image URL. Falls back to initials or icon if empty or fails to load. */\n  readonly src = input('');\n\n  /** Alt text for the image (also used as aria-label). */\n  readonly alt = input('');\n\n  /** Full name used to generate initials fallback and default aria-label. */\n  readonly name = input('');\n\n  /** Size of the avatar. */\n  readonly size = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md');\n\n  /** Shape of the avatar. */\n  readonly shape = input<'circle' | 'square'>('circle');\n\n  /** Presence status indicator dot. Empty string hides the dot. */\n  readonly status = input<'online' | 'offline' | 'away' | 'busy' | ''>('');\n\n  /** @internal — reset to true whenever src changes */\n  protected readonly showImage = signal(true);\n\n  /** @internal */\n  protected readonly initials = computed(() => {\n    const name = this.name();\n    if (!name) return '';\n    return name\n      .split(' ')\n      .filter(Boolean)\n      .slice(0, 2)\n      .map((w) => w[0].toUpperCase())\n      .join('');\n  });\n\n  /** @internal */\n  protected readonly ariaLabel = computed(\n    () => this.alt() || this.name() || 'Avatar'\n  );\n\n  /** @internal */\n  protected readonly hostClasses = computed(\n    () => `size-${this.size()} shape-${this.shape()}`\n  );\n\n  constructor() {\n    effect(() => {\n      this.src(); // track src changes\n      untracked(() => this.showImage.set(true));\n    });\n  }\n}\n\n/**\n * Groups multiple avatars with overlap and an overflow count badge.\n *\n * Usage:\n * ```html\n * <atl-avatar-group [max]=\"3\" size=\"md\">\n *   <atl-avatar name=\"Alice\" />\n *   <atl-avatar name=\"Bob\" />\n *   <atl-avatar name=\"Charlie\" />\n *   <atl-avatar name=\"Dave\" />\n * </atl-avatar-group>\n * ```\n */\n@Component({\n  selector: 'atl-avatar-group',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-content />\n    @if (overflowCount() > 0) {\n      <span [class]=\"'overflow-badge size-' + size()\">+{{ overflowCount() }}</span>\n    }\n  `,\n  styleUrl: './atl-avatar.css',\n  host: {\n    class: 'group',\n    '[class]': '\"group size-\" + size()',\n  },\n})\nexport class AtlAvatarGroup {\n  /** Maximum visible avatars before showing an overflow count. */\n  readonly max = input(5);\n\n  /** Size applied to the overflow badge (match the size used on child avatars). */\n  readonly size = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md');\n\n  private readonly avatarEls = contentChildren(AtlAvatar, { read: ElementRef });\n\n  protected readonly overflowCount = computed(() =>\n    Math.max(0, this.avatarEls().length - this.max())\n  );\n\n  constructor() {\n    effect(() => {\n      const max = this.max();\n      this.avatarEls().forEach((el, i) => {\n        (el.nativeElement as HTMLElement).style.display = i >= max ? 'none' : '';\n      });\n    });\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n} from '@angular/core';\n\n/**\n * Progress bar with determinate and indeterminate states.\n *\n * Usage:\n * ```html\n * <atl-progress [value]=\"75\" />\n * <atl-progress variant=\"success\" [value]=\"100\" />\n * <atl-progress [indeterminate]=\"true\" />\n * ```\n */\n@Component({\n  selector: 'atl-progress',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"track\">\n      <div class=\"fill\" [style.width]=\"fillWidth()\"></div>\n    </div>\n  `,\n  styleUrl: './atl-progress.css',\n  host: {\n    role: 'progressbar',\n    'aria-valuemin': '0',\n    '[attr.aria-valuenow]': 'indeterminate() ? null : clampedValue()',\n    '[attr.aria-valuemax]': 'indeterminate() ? null : max()',\n    '[attr.aria-label]': 'label() || null',\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlProgress {\n  /** Current value of the progress bar. */\n  readonly value = input<number>(0);\n\n  /** Maximum value. */\n  readonly max = input<number>(100);\n\n  /** Semantic color variant. */\n  readonly variant = input<'default' | 'success' | 'warning' | 'danger'>('default');\n\n  /** Height size of the track. */\n  readonly size = input<'sm' | 'md' | 'lg'>('md');\n\n  /** Shows an animated indeterminate state (loading). */\n  readonly indeterminate = input(false);\n\n  /**\n   * Accessible name — rendered as `aria-label` on the host.\n   * Required by ARIA when there is no visible label nearby.\n   */\n  readonly label = input<string | undefined>(undefined);\n\n  protected readonly clampedValue = computed(() =>\n    Math.min(Math.max(this.value(), 0), this.max())\n  );\n\n  protected readonly fillWidth = computed(() =>\n    this.indeterminate()\n      ? '100%'\n      : `${(this.clampedValue() / this.max()) * 100}%`\n  );\n\n  protected readonly hostClasses = computed(\n    () =>\n      `variant-${this.variant()} size-${this.size()}${this.indeterminate() ? ' is-indeterminate' : ''}`\n  );\n}\n","import { InjectionToken, Signal } from '@angular/core';\n\nexport interface AtlBreadcrumbsContext {\n  registerItem(): number;\n  unregisterItem(id: number): void;\n  readonly lastItemId: Signal<number>;\n}\n\nexport const ATL_BREADCRUMBS = new InjectionToken<AtlBreadcrumbsContext>('ATL_BREADCRUMBS');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  OnDestroy,\n  OnInit,\n  computed,\n  inject,\n  input,\n  signal,\n} from '@angular/core';\nimport type { AtlBreadcrumbsSpec } from '../spec';\nimport { ATL_BREADCRUMBS } from './atl-breadcrumbs.token';\n\n/**\n * Accessible breadcrumb navigation. Wrap `atl-breadcrumb-item` elements inside.\n * The last item is automatically marked as the current page.\n *\n * Usage:\n * ```html\n * <atl-breadcrumbs>\n *   <atl-breadcrumb-item href=\"/home\">Home</atl-breadcrumb-item>\n *   <atl-breadcrumb-item href=\"/products\">Products</atl-breadcrumb-item>\n *   <atl-breadcrumb-item>Widget X</atl-breadcrumb-item>\n * </atl-breadcrumbs>\n * ```\n */\n@Component({\n  selector: 'atl-breadcrumbs',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ATL_BREADCRUMBS,\n      useFactory: (bc: AtlBreadcrumbs) => ({\n        registerItem: () => bc.registerItem(),\n        unregisterItem: (id: number) => bc.unregisterItem(id),\n        lastItemId: bc.lastItemId,\n      }),\n      deps: [AtlBreadcrumbs],\n    },\n  ],\n  template: `\n    <nav aria-label=\"Breadcrumb\">\n      <ol role=\"list\" class=\"list\">\n        <ng-content />\n      </ol>\n    </nav>\n  `,\n  styleUrl: './atl-breadcrumbs.css',\n  host: {\n    class: 'atl-breadcrumbs',\n    '[style.--atl-separator]': 'separatorCssVar()',\n  },\n})\nexport class AtlBreadcrumbs {\n  readonly separator = input<AtlBreadcrumbsSpec['separator']>('/');\n\n  protected readonly separatorCssVar = computed(() => `'${this.separator()}'`);\n\n  private readonly _itemIds = signal<number[]>([]);\n  private _nextId = 0;\n\n  /** @internal — used by AtlBreadcrumbItem via ATL_BREADCRUMBS token */\n  readonly lastItemId = computed(() => {\n    const ids = this._itemIds();\n    return ids.length > 0 ? ids[ids.length - 1] : -1;\n  });\n\n  /** @internal */\n  registerItem(): number {\n    const id = this._nextId++;\n    this._itemIds.update((ids) => [...ids, id]);\n    return id;\n  }\n\n  /** @internal */\n  unregisterItem(id: number): void {\n    this._itemIds.update((ids) => ids.filter((i) => i !== id));\n  }\n}\n\n/**\n * A single breadcrumb step. The last item is automatically treated as\n * `aria-current=\"page\"` and rendered as plain text (no link).\n */\n@Component({\n  selector: 'atl-breadcrumb-item',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <li class=\"item\">\n      <a\n        [attr.href]=\"href() && !isCurrent() ? href() : null\"\n        [attr.aria-current]=\"isCurrent() ? 'page' : null\"\n      ><ng-content /></a>\n    </li>\n  `,\n  styleUrl: './atl-breadcrumbs.css',\n  host: {\n    class: 'atl-breadcrumb-item',\n    '[class.is-current]': 'isCurrent()',\n  },\n})\nexport class AtlBreadcrumbItem implements OnInit, OnDestroy {\n  /** Optional href for navigation. Ignored on the last (current) item. */\n  readonly href = input('');\n\n  private readonly context = inject(ATL_BREADCRUMBS);\n  private readonly myIndex = signal(-1);\n\n  protected readonly isCurrent = computed(\n    () => this.myIndex() >= 0 && this.myIndex() === this.context.lastItemId()\n  );\n\n  ngOnInit(): void {\n    this.myIndex.set(this.context.registerItem());\n  }\n\n  ngOnDestroy(): void {\n    if (this.myIndex() >= 0) {\n      this.context.unregisterItem(this.myIndex());\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  model,\n} from '@angular/core';\n\nexport type PageItem =\n  | { type: 'page'; page: number }\n  | { type: 'ellipsis'; key: string };\n\n/**\n * Pagination control for navigating multi-page content.\n *\n * Usage:\n * ```html\n * <atl-pagination [(page)]=\"currentPage\" [pageCount]=\"totalPages\" />\n * ```\n */\n@Component({\n  selector: 'atl-pagination',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <nav aria-label=\"Pagination\">\n      <ul role=\"list\" class=\"page-list\">\n        @if (showFirstLast()) {\n          <li>\n            <button\n              class=\"page-btn\"\n              [class.is-disabled]=\"page() <= 1\"\n              [disabled]=\"page() <= 1\"\n              aria-label=\"First page\"\n              (click)=\"goFirst()\"\n            >«</button>\n          </li>\n        }\n        <li>\n          <button\n            class=\"page-btn\"\n            [class.is-disabled]=\"page() <= 1\"\n            [disabled]=\"page() <= 1\"\n            aria-label=\"Previous page\"\n            (click)=\"goPrev()\"\n          >‹</button>\n        </li>\n\n        @for (item of pageItems(); track $index) {\n          @if (item.type === 'page') {\n            <li>\n              <button\n                class=\"page-btn\"\n                [class.is-active]=\"item.page === page()\"\n                [attr.aria-current]=\"item.page === page() ? 'page' : null\"\n                [attr.aria-label]=\"'Page ' + item.page\"\n                (click)=\"goTo(item.page)\"\n              >{{ item.page }}</button>\n            </li>\n          } @else {\n            <li>\n              <span class=\"ellipsis\" aria-hidden=\"true\">…</span>\n            </li>\n          }\n        }\n\n        <li>\n          <button\n            class=\"page-btn\"\n            [class.is-disabled]=\"page() >= pageCount()\"\n            [disabled]=\"page() >= pageCount()\"\n            aria-label=\"Next page\"\n            (click)=\"goNext()\"\n          >›</button>\n        </li>\n        @if (showFirstLast()) {\n          <li>\n            <button\n              class=\"page-btn\"\n              [class.is-disabled]=\"page() >= pageCount()\"\n              [disabled]=\"page() >= pageCount()\"\n              aria-label=\"Last page\"\n              (click)=\"goLast()\"\n            >»</button>\n          </li>\n        }\n      </ul>\n    </nav>\n  `,\n  styleUrl: './atl-pagination.css',\n})\nexport class AtlPagination {\n  /** Current page (1-based). Supports two-way binding: [(page)]=\"currentPage\". */\n  readonly page = model(1);\n\n  /** Total number of pages. */\n  readonly pageCount = input(1);\n\n  /** Number of page buttons to show on each side of the current page. */\n  readonly siblingCount = input(1);\n\n  /** Whether to show first/last page jump buttons. */\n  readonly showFirstLast = input(true);\n\n  protected readonly pageItems = computed((): PageItem[] => {\n    const total = this.pageCount();\n    const current = this.page();\n    const siblings = this.siblingCount();\n\n    if (total <= 1) return [{ type: 'page', page: 1 }];\n\n    const items: PageItem[] = [];\n\n    // Always include first page\n    items.push({ type: 'page', page: 1 });\n\n    const left = Math.max(2, current - siblings);\n    const right = Math.min(total - 1, current + siblings);\n\n    // Left ellipsis\n    if (left > 2) {\n      items.push({ type: 'ellipsis', key: 'ellipsis-start' });\n    }\n\n    // Middle pages\n    for (let p = left; p <= right; p++) {\n      items.push({ type: 'page', page: p });\n    }\n\n    // Right ellipsis\n    if (right < total - 1) {\n      items.push({ type: 'ellipsis', key: 'ellipsis-end' });\n    }\n\n    // Always include last page\n    items.push({ type: 'page', page: total });\n\n    return items;\n  });\n\n  protected goTo(p: number): void {\n    const clamped = Math.min(Math.max(p, 1), this.pageCount());\n    this.page.set(clamped);\n  }\n\n  protected goPrev(): void {\n    this.goTo(this.page() - 1);\n  }\n\n  protected goNext(): void {\n    this.goTo(this.page() + 1);\n  }\n\n  protected goFirst(): void {\n    this.goTo(1);\n  }\n\n  protected goLast(): void {\n    this.goTo(this.pageCount());\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AtlDrawerContext {\n  headerId: string;\n  close: () => void;\n}\n\nexport const ATL_DRAWER = new InjectionToken<AtlDrawerContext>('ATL_DRAWER');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ATL_DRAWER } from './atl-drawer.token';\n\nlet nextId = 0;\n\n/**\n * Slide-in drawer panel using the native `<dialog>` element.\n * Supports left, right, top, and bottom positions with focus trap,\n * Escape to close, and backdrop click to close.\n * Compose with `atl-drawer-header`, `atl-drawer-content`, and `atl-drawer-footer`.\n *\n * Usage:\n * ```html\n * <atl-button (click)=\"isOpen = true\">Open</atl-button>\n * <atl-drawer [(open)]=\"isOpen\" position=\"right\">\n *   <atl-drawer-header>Settings</atl-drawer-header>\n *   <atl-drawer-content>Content here.</atl-drawer-content>\n *   <atl-drawer-footer>\n *     <atl-button variant=\"primary\" (click)=\"isOpen = false\">Save</atl-button>\n *   </atl-drawer-footer>\n * </atl-drawer>\n * ```\n */\n@Component({\n  selector: 'atl-drawer',\n  standalone: true,\n  imports: [A11yModule],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ATL_DRAWER,\n      useFactory: (drawer: AtlDrawer) => ({\n        headerId: drawer.headerId,\n        close: () => drawer.open.set(false),\n      }),\n      deps: [AtlDrawer],\n    },\n  ],\n  template: `\n    <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n    <dialog\n      #dialogEl\n      [attr.aria-labelledby]=\"headerId\"\n      aria-modal=\"true\"\n      [cdkTrapFocus]=\"open()\"\n      (cancel)=\"onCancel($event)\"\n      (close)=\"open.set(false)\"\n      (click)=\"onBackdropClick($event)\"\n    >\n      <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n      <div class=\"panel\" (click)=\"$event.stopPropagation()\">\n        <ng-content />\n      </div>\n    </dialog>\n  `,\n  styleUrl: './atl-drawer.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlDrawer {\n  /** Whether the drawer is open. Supports two-way binding: [(open)]=\"isOpen\". */\n  readonly open = model(false);\n\n  /** Which edge the drawer slides in from. */\n  readonly position = input<'left' | 'right' | 'top' | 'bottom'>('right');\n\n  /** Width (for left/right) or height (for top/bottom) of the panel. */\n  readonly size = input<'sm' | 'md' | 'lg' | 'full'>('md');\n\n  /** Whether clicking the backdrop closes the drawer. */\n  readonly closeOnBackdrop = input(true);\n\n  /** @internal — referenced by AtlDrawerHeader via ATL_DRAWER token */\n  readonly headerId = `atl-drawer-header-${nextId}`;\n\n  protected readonly drawerId = `atl-drawer-${nextId++}`;\n  protected readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dialogEl');\n  private readonly triggerEl = signal<HTMLElement | null>(null);\n\n  protected readonly hostClasses = computed(\n    () =>\n      `atl-drawer position-${this.position()} size-${this.size()}${this.open() ? ' is-open' : ''}`\n  );\n\n  constructor() {\n    effect(() => {\n      const dialog = this.dialogRef()?.nativeElement;\n      if (!dialog) return;\n      if (this.open()) {\n        this.triggerEl.set(document.activeElement as HTMLElement);\n        dialog.showModal();\n      } else {\n        if (dialog.open) dialog.close();\n        this.triggerEl()?.focus();\n        this.triggerEl.set(null);\n      }\n    });\n  }\n\n  protected onCancel(event: Event): void {\n    event.preventDefault();\n    this.open.set(false);\n  }\n\n  protected onBackdropClick(event: MouseEvent): void {\n    if (this.closeOnBackdrop() && event.target === this.dialogRef()?.nativeElement) {\n      this.open.set(false);\n    }\n  }\n}\n\n/**\n * Header slot for `atl-drawer`. Contains the title and a close button.\n * Automatically receives the correct `id` for `aria-labelledby` association.\n */\n@Component({\n  selector: 'atl-drawer-header',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-content />\n    <button\n      class=\"close-btn\"\n      type=\"button\"\n      aria-label=\"Close drawer\"\n      (click)=\"context.close()\"\n    >\n      <svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width=\"14\"\n        height=\"14\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        stroke=\"currentColor\"\n        stroke-width=\"2.5\"\n        stroke-linecap=\"round\"\n        stroke-linejoin=\"round\"\n        aria-hidden=\"true\"\n        focusable=\"false\"\n      >\n        <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n        <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n      </svg>\n    </button>\n  `,\n  styleUrl: './atl-drawer.css',\n  host: {\n    class: 'atl-drawer-header',\n    '[attr.id]': 'context.headerId',\n  },\n})\nexport class AtlDrawerHeader {\n  protected readonly context = inject(ATL_DRAWER);\n}\n\n/**\n * Content slot for `atl-drawer`. Scrollable primary content area.\n */\n@Component({\n  selector: 'atl-drawer-content',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-drawer.css',\n  host: { class: 'atl-drawer-content' },\n})\nexport class AtlDrawerContent {}\n\n/**\n * Footer slot for `atl-drawer`. Renders at the bottom with action buttons.\n */\n@Component({\n  selector: 'atl-drawer-footer',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-drawer.css',\n  host: { class: 'atl-drawer-footer' },\n})\nexport class AtlDrawerFooter {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  InjectionToken,\n  Signal,\n  ViewEncapsulation,\n  computed,\n  input,\n  output,\n} from '@angular/core';\nimport { AtlCheckbox } from '../checkbox/atl-checkbox';\n\n// ---------------------------------------------------------------------------\n// Context token\n// ---------------------------------------------------------------------------\n\nexport interface AtlTableContext {\n  readonly size: Signal<'sm' | 'md' | 'lg'>;\n  readonly variant: Signal<'default' | 'striped' | 'bordered'>;\n}\n\nexport const ATL_TABLE = new InjectionToken<AtlTableContext>('ATL_TABLE');\n\n// ---------------------------------------------------------------------------\n// AtlTable\n// ---------------------------------------------------------------------------\n\n/**\n * Accessible data table with sorting, row selection, sticky header, and empty state.\n * Compose with `atl-thead`, `atl-tbody`, `atl-tr`, `atl-th`, and `atl-td`.\n *\n * Usage:\n * ```html\n * <atl-table variant=\"striped\" [stickyHeader]=\"true\">\n *   <atl-thead>\n *     <atl-tr>\n *       <atl-th sortable [sortDirection]=\"sort\" (sort)=\"sort = $event\">Name</atl-th>\n *       <atl-th>Status</atl-th>\n *     </atl-tr>\n *   </atl-thead>\n *   <atl-tbody [empty]=\"rows.length === 0\" [colSpan]=\"2\">\n *     @for (row of rows; track row.id) {\n *       <atl-tr selectable [selected]=\"selection.has(row.id)\" (selectedChange)=\"toggle(row.id, $event)\">\n *         <atl-td>{{ row.name }}</atl-td>\n *         <atl-td>{{ row.status }}</atl-td>\n *       </atl-tr>\n *     }\n *     <div atlTableEmpty>No results found.</div>\n *   </atl-tbody>\n * </atl-table>\n * ```\n */\n@Component({\n  selector: 'atl-table',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <!-- The wrapper is the scrollable region — tabindex=0 lets keyboard\n         users scroll horizontally through wide tables. role=region +\n         aria-label expose it as a labelled landmark for screen readers\n         (axe: scrollable-region-focusable). -->\n    <div\n      class=\"atl-table-wrapper\"\n      tabindex=\"0\"\n      role=\"region\"\n      [attr.aria-label]=\"ariaLabel() || 'Table'\"\n    >\n      <table>\n        <ng-content />\n      </table>\n    </div>\n  `,\n  styleUrl: './atl-table.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n  providers: [{ provide: ATL_TABLE, useExisting: AtlTable }],\n  // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n  encapsulation: ViewEncapsulation.None\n})\nexport class AtlTable implements AtlTableContext {\n  /** Visual style of the table rows. */\n  readonly variant = input<'default' | 'striped' | 'bordered'>('default');\n\n  /** Row density. */\n  readonly size = input<'sm' | 'md' | 'lg'>('md');\n\n  /** Whether the header row sticks to the top when the table scrolls. */\n  readonly stickyHeader = input(false);\n\n  /**\n   * Accessible name for the scrollable table region. Surfaces to\n   * screen readers as the region's label so keyboard users who\n   * scroll the wrapper know what they're scrolling. Defaults to\n   * `\"Table\"` if unset.\n   */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n  /** @internal */\n  protected readonly hostClasses = computed(() => {\n    const classes = ['atl-table', `variant-${this.variant()}`, `size-${this.size()}`];\n    if (this.stickyHeader()) classes.push('is-sticky-header');\n    return classes.join(' ');\n  });\n}\n\n// ---------------------------------------------------------------------------\n// AtlThead\n// ---------------------------------------------------------------------------\n\n/**\n * Table head section. Contains header rows with `atl-tr` and `atl-th`.\n *\n * Usage:\n * ```html\n * <atl-thead>\n *   <atl-tr>\n *     <atl-th sortable [sortDirection]=\"sort\" (sort)=\"sort = $event\">Name</atl-th>\n *   </atl-tr>\n * </atl-thead>\n * ```\n */\n@Component({\n  selector: 'atl-thead',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<thead><ng-content /></thead>`,\n  styleUrl: './atl-table.css',\n  host: { '[style.display]': '\"contents\"' },\n})\nexport class AtlThead {}\n\n// ---------------------------------------------------------------------------\n// AtlTbody\n// ---------------------------------------------------------------------------\n\n/**\n * Table body section. Shows rows or an empty state.\n *\n * Usage:\n * ```html\n * <atl-tbody [empty]=\"rows.length === 0\" [colSpan]=\"3\">\n *   @for (row of rows; track row.id) {\n *     <atl-tr><atl-td>{{ row.name }}</atl-td></atl-tr>\n *   }\n *   <div atlTableEmpty>No results found.</div>\n * </atl-tbody>\n * ```\n */\n@Component({\n  selector: 'atl-tbody',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <tbody>\n      @if (!empty()) {\n        <ng-content />\n      } @else {\n        <tr>\n          <td [attr.colspan]=\"colSpan()\" class=\"atl-tbody-empty-cell\">\n            <ng-content select=\"[atlTableEmpty]\" />\n          </td>\n        </tr>\n      }\n    </tbody>\n  `,\n  styleUrl: './atl-table.css',\n  host: { '[style.display]': '\"contents\"' },\n})\nexport class AtlTbody {\n  /** When true, hides rows and shows the `[atlTableEmpty]` slot content instead. */\n  readonly empty = input(false);\n\n  /** Number of columns to span in the empty-state row. Should match total column count. */\n  readonly colSpan = input(1);\n}\n\n// ---------------------------------------------------------------------------\n// AtlTr\n// ---------------------------------------------------------------------------\n\n/**\n * Table row. Use inside `atl-thead` or `atl-tbody`.\n * Set `selectable` to auto-add a checkbox column for row selection.\n *\n * Usage:\n * ```html\n * <atl-tr selectable [selected]=\"isSelected\" (selectedChange)=\"toggle($event)\">\n *   <atl-td>Cell content</atl-td>\n * </atl-tr>\n * ```\n */\n@Component({\n  selector: 'atl-tr',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [AtlCheckbox],\n  template: `\n    <tr\n      [attr.aria-selected]=\"selectable() ? selected() : null\"\n      [class]=\"innerClasses()\"\n    >\n      @if (selectable()) {\n        <td class=\"atl-tr-select-cell\">\n          <atl-checkbox [checked]=\"selected()\" (checkedChange)=\"selectedChange.emit($event)\" />\n        </td>\n      }\n      <ng-content />\n    </tr>\n  `,\n  styleUrl: './atl-table.css',\n  host: {\n    '[class]': 'hostClasses()',\n    '[style.display]': '\"contents\"',\n  },\n})\nexport class AtlTr {\n  /** Whether this row is currently selected. */\n  readonly selected = input(false);\n\n  /** Whether this row shows a selection checkbox. */\n  readonly selectable = input(false);\n\n  /** Optional identifier for this row. Useful for tracking selection. */\n  readonly rowId = input<string | undefined>(undefined);\n\n  /** Emits when the row's checkbox is toggled. */\n  readonly selectedChange = output<boolean>();\n\n  /** @internal */\n  protected readonly hostClasses = computed(() =>\n    this.selectable() ? 'is-selectable' : ''\n  );\n\n  /** @internal — applied to inner <tr> for CSS selection styling */\n  protected readonly innerClasses = computed(() =>\n    this.selected() ? 'is-selected' : ''\n  );\n}\n\n// ---------------------------------------------------------------------------\n// AtlTh\n// ---------------------------------------------------------------------------\n\n/** Sort direction for sortable column headers. */\nexport type AtlSortDirection = 'asc' | 'desc' | null;\n\n/**\n * Table header cell. Set `sortable` to enable sort cycling.\n * The consumer controls `sortDirection` (fully controlled — no internal state).\n *\n * Usage:\n * ```html\n * <atl-th sortable [sortDirection]=\"nameSortDir\" (sort)=\"nameSortDir = $event\">Name</atl-th>\n * ```\n */\n@Component({\n  selector: 'atl-th',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <th\n      [attr.aria-sort]=\"ariaSort()\"\n      [style.width]=\"width() ?? null\"\n      [class]=\"cellClasses()\"\n    >\n      @if (sortable()) {\n        <button type=\"button\" class=\"atl-th-sort-btn\" (click)=\"cycleSort()\">\n          <ng-content />\n          <svg\n            class=\"atl-th-sort-icon\"\n            aria-hidden=\"true\"\n            width=\"12\"\n            height=\"16\"\n            viewBox=\"0 0 12 16\"\n            fill=\"none\"\n          >\n            <path class=\"atl-th-sort-asc-arrow\" d=\"M6 2L11 8H1L6 2Z\" fill=\"currentColor\" />\n            <path class=\"atl-th-sort-desc-arrow\" d=\"M6 14L1 8H11L6 14Z\" fill=\"currentColor\" />\n          </svg>\n        </button>\n      } @else {\n        <ng-content />\n      }\n    </th>\n  `,\n  styleUrl: './atl-table.css',\n  host: { '[style.display]': '\"contents\"' },\n})\nexport class AtlTh {\n  /** Whether this column is sortable. Renders a sort button when true. */\n  readonly sortable = input(false);\n\n  /** Current sort direction. Fully controlled — the consumer owns this state. */\n  readonly sortDirection = input<AtlSortDirection>(null);\n\n  /** Text alignment of the header cell content. */\n  readonly align = input<'start' | 'center' | 'end'>('start');\n\n  /** Fixed column width (e.g. `'120px'`, `'10rem'`). */\n  readonly width = input<string | undefined>(undefined);\n\n  /**\n   * Emits when the header is clicked.\n   * Cycles: `null` → `'asc'` → `'desc'` → `null`.\n   */\n  readonly sort = output<AtlSortDirection>();\n\n  /** @internal */\n  protected readonly ariaSort = computed(() => {\n    if (!this.sortable()) return undefined;\n    const d = this.sortDirection();\n    if (d === 'asc') return 'ascending';\n    if (d === 'desc') return 'descending';\n    return 'none';\n  });\n\n  /** @internal */\n  protected readonly cellClasses = computed(() => {\n    const classes = [`align-${this.align()}`];\n    if (this.sortDirection()) classes.push('is-sorted');\n    if (this.sortDirection() === 'asc') classes.push('sort-asc');\n    if (this.sortDirection() === 'desc') classes.push('sort-desc');\n    return classes.join(' ');\n  });\n\n  /** @internal */\n  protected cycleSort(): void {\n    const current = this.sortDirection();\n    const next: AtlSortDirection =\n      current === null ? 'asc' : current === 'asc' ? 'desc' : null;\n    this.sort.emit(next);\n  }\n}\n\n// ---------------------------------------------------------------------------\n// AtlTd\n// ---------------------------------------------------------------------------\n\n/**\n * Table data cell. Use inside `atl-tr` inside `atl-tbody`.\n *\n * Usage:\n * ```html\n * <atl-td align=\"end\">{{ value }}</atl-td>\n * ```\n */\n@Component({\n  selector: 'atl-td',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <td [class]=\"'align-' + align()\">\n      <ng-content />\n    </td>\n  `,\n  styleUrl: './atl-table.css',\n  host: { '[style.display]': '\"contents\"' },\n})\nexport class AtlTd {\n  /** Text alignment of the cell content. */\n  readonly align = input<'start' | 'center' | 'end'>('start');\n}\n","import { InjectionToken } from '@angular/core';\nimport type { Signal, WritableSignal } from '@angular/core';\n\nexport interface StepInfo {\n  id: string;\n  label: string;\n  description?: string;\n  completed: boolean;\n  error: boolean;\n  optional: boolean;\n  disabled: boolean;\n}\n\nexport interface AtlStepperContext {\n  readonly activeStep: WritableSignal<number>;\n  readonly steps: Signal<StepInfo[]>;\n  readonly linear: Signal<boolean>;\n  registerStep(info: StepInfo): void;\n  unregisterStep(id: string): void;\n  updateStep(id: string, info: Partial<StepInfo>): void;\n  goTo(index: number): void;\n  next(): void;\n  prev(): void;\n}\n\nexport const ATL_STEPPER = new InjectionToken<AtlStepperContext>('ATL_STEPPER');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  OnDestroy,\n  OnInit,\n  signal,\n} from '@angular/core';\nimport { ATL_STEPPER, type AtlStepperContext, type StepInfo } from './atl-stepper.token';\n\nlet nextId = 0;\n\n/**\n * Multi-step wizard container.\n *\n * Usage:\n * ```html\n * <atl-stepper [(activeStep)]=\"step\">\n *   <atl-step label=\"Account\">Account form here.</atl-step>\n *   <atl-step label=\"Profile\">Profile form here.</atl-step>\n *   <atl-step label=\"Review\">Review and submit.</atl-step>\n * </atl-stepper>\n * ```\n */\n@Component({\n  selector: 'atl-stepper',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"stepper-header\" role=\"tablist\">\n      @for (step of steps(); track step.id; let i = $index; let last = $last) {\n        <div\n          class=\"step-item\"\n          [class.is-active]=\"activeStep() === i\"\n          [class.is-completed]=\"step.completed && activeStep() !== i\"\n          [class.is-error]=\"step.error\"\n          [class.is-disabled]=\"step.disabled\"\n        >\n          <button\n            type=\"button\"\n            role=\"tab\"\n            class=\"step-circle\"\n            [id]=\"'atl-step-' + i\"\n            [attr.aria-label]=\"step.label\"\n            [attr.aria-selected]=\"activeStep() === i\"\n            [attr.aria-controls]=\"'atl-step-panel-' + i\"\n            [attr.aria-disabled]=\"step.disabled || null\"\n            [attr.tabindex]=\"activeStep() === i ? 0 : -1\"\n            [disabled]=\"step.disabled || null\"\n            (click)=\"goTo(i)\"\n          >\n            @if (step.completed && !step.error) {\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M2 7L5.5 10.5L12 3.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n              </svg>\n            } @else if (step.error) {\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M3 3L11 11M11 3L3 11\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n              </svg>\n            } @else {\n              {{ i + 1 }}\n            }\n          </button>\n          <div class=\"step-text\">\n            <span class=\"step-label\">{{ step.label }}</span>\n            @if (step.description) {\n              <span class=\"step-description\">{{ step.description }}</span>\n            }\n            @if (step.optional && !step.completed) {\n              <span class=\"step-optional\">Optional</span>\n            }\n          </div>\n        </div>\n        @if (!last) {\n          <div\n            class=\"step-connector\"\n            [class.is-active]=\"activeStep() > i || step.completed\"\n          ></div>\n        }\n      }\n    </div>\n    <div class=\"stepper-content\">\n      <ng-content />\n    </div>\n  `,\n  styleUrl: './atl-stepper.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n  providers: [{ provide: ATL_STEPPER, useExisting: AtlStepper }],\n})\nexport class AtlStepper implements AtlStepperContext {\n  /** Index of the currently active step. Supports two-way binding. */\n  readonly activeStep = model(0);\n\n  /** Layout orientation. */\n  readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n  /**\n   * When true, users can only navigate to completed steps or the next pending step.\n   * Use `goTo()` / `next()` in your step content to advance programmatically.\n   */\n  readonly linear = input(false);\n\n  /** @internal */\n  readonly steps = signal<StepInfo[]>([]);\n\n  /** @internal */\n  protected readonly hostClasses = computed(\n    () => `orientation-${this.orientation()}`\n  );\n\n  /** @internal — called by AtlStep on init */\n  registerStep(info: StepInfo): void {\n    this.steps.update((list) => [...list, info]);\n  }\n\n  /** @internal — called by AtlStep on destroy */\n  unregisterStep(id: string): void {\n    this.steps.update((list) => list.filter((s) => s.id !== id));\n  }\n\n  /** @internal — called by AtlStep effect when inputs change */\n  updateStep(id: string, info: Partial<StepInfo>): void {\n    this.steps.update((list) =>\n      list.map((s) => (s.id === id ? { ...s, ...info } : s))\n    );\n  }\n\n  /** Navigate to a specific step index. Respects linear mode. */\n  goTo(index: number): void {\n    const steps = this.steps();\n    if (index < 0 || index >= steps.length) return;\n    if (steps[index].disabled) return;\n    if (this.linear()) {\n      // In linear mode, only allow going back or to the next uncompleted step\n      const canGoForward = steps.slice(0, index).every((s) => s.completed || s.optional);\n      if (index > this.activeStep() && !canGoForward) return;\n    }\n    this.activeStep.set(index);\n  }\n\n  /** Advance to the next step. */\n  next(): void {\n    this.goTo(this.activeStep() + 1);\n  }\n\n  /** Go back to the previous step. */\n  prev(): void {\n    const prev = this.activeStep() - 1;\n    if (prev < 0) return;\n    const steps = this.steps();\n    if (steps[prev]?.disabled) return;\n    this.activeStep.set(prev);\n  }\n}\n\n/**\n * Individual step. Place inside `<atl-stepper>`.\n *\n * Usage:\n * ```html\n * <atl-step label=\"Account\">Account form here.</atl-step>\n * ```\n */\n@Component({\n  selector: 'atl-step',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    @if (isActive()) {\n      <div\n        role=\"tabpanel\"\n        [id]=\"'atl-step-panel-' + myIndex()\"\n        [attr.aria-labelledby]=\"'atl-step-' + myIndex()\"\n        tabindex=\"0\"\n      >\n        <ng-content />\n      </div>\n    }\n  `,\n  styles: `\n    :host {\n      display: contents;\n    }\n  `,\n})\nexport class AtlStep implements OnInit, OnDestroy {\n  /** Text displayed on the step indicator. Required. */\n  readonly label = input.required<string>();\n\n  /** Optional subtitle shown below the label. */\n  readonly description = input<string | undefined>(undefined);\n\n  /** Mark this step as completed (shows a checkmark). */\n  readonly completed = input(false);\n\n  /** Mark this step as having an error (shows an X). */\n  readonly error = input(false);\n\n  /** Mark this step as optional. */\n  readonly optional = input(false);\n\n  /** Whether this step is disabled. */\n  readonly disabled = input(false);\n\n  /** @internal */\n  private readonly id = `atl-step-instance-${nextId++}`;\n\n  /** @internal */\n  private readonly context = inject(ATL_STEPPER);\n\n  /** @internal */\n  protected readonly myIndex = computed(() =>\n    this.context.steps().findIndex((s) => s.id === this.id)\n  );\n\n  /** @internal */\n  protected readonly isActive = computed(\n    () => this.context.activeStep() === this.myIndex()\n  );\n\n  constructor() {\n    // Keep step info in sync when inputs change\n    effect(() => {\n      if (this.myIndex() === -1) return;\n      this.context.updateStep(this.id, {\n        label: this.label(),\n        description: this.description(),\n        completed: this.completed(),\n        error: this.error(),\n        optional: this.optional(),\n        disabled: this.disabled(),\n      });\n    });\n  }\n\n  ngOnInit(): void {\n    this.context.registerStep({\n      id: this.id,\n      label: this.label(),\n      description: this.description(),\n      completed: this.completed(),\n      error: this.error(),\n      optional: this.optional(),\n      disabled: this.disabled(),\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.context.unregisterStep(this.id);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  signal,\n} from '@angular/core';\n\n/**\n * Displays a block of code with an optional header, language label, and copy button.\n * Designed for rendering LLM-generated code output, inline snippets, and API examples.\n *\n * Usage:\n * ```html\n * <atl-code-block code=\"const x = 1;\" language=\"typescript\" />\n * <atl-code-block [code]=\"generatedCode\" filename=\"app.component.ts\" [showLineNumbers]=\"true\" />\n * ```\n */\n@Component({\n  selector: 'atl-code-block',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"code-block-header\">\n      <span class=\"code-block-label\">{{ displayLabel() }}</span>\n      @if (copyable()) {\n        <button\n          class=\"code-block-copy\"\n          type=\"button\"\n          [attr.aria-label]=\"copied() ? 'Copied' : 'Copy code'\"\n          (click)=\"copy()\"\n        >\n          @if (copied()) {\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n              <polyline points=\"20 6 9 17 4 12\" />\n            </svg>\n            Copied\n          } @else {\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n              <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\" />\n              <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n            </svg>\n            Copy\n          }\n        </button>\n      }\n    </div>\n    <div class=\"code-block-body\">\n      <pre class=\"code-block-pre\"><code>@if (showLineNumbers()) {\n          @for (line of lines(); track $index) {\n            <span class=\"code-line\">\n              <span class=\"code-line-number\">{{ $index + 1 }}</span>\n              <span class=\"code-line-text\">{{ line }}</span>\n            </span>\n          }\n        } @else {\n          {{ code() }}\n        }</code></pre>\n    </div>\n  `,\n  styleUrl: './atl-code-block.css',\n  host: {\n    '[class]': '\"atl-code-block\"',\n  },\n})\nexport class AtlCodeBlock {\n  /** The code string to display. */\n  readonly code = input<string>('');\n\n  /** Language label shown in the header. Ignored if filename is set. */\n  readonly language = input<string>('text');\n\n  /** Optional filename shown in the header instead of the language label. */\n  readonly filename = input<string>('');\n\n  /** Whether to show a copy-to-clipboard button. */\n  readonly copyable = input<boolean>(true);\n\n  /** Whether to display line numbers alongside the code. */\n  readonly showLineNumbers = input<boolean>(false);\n\n  protected readonly copied = signal(false);\n\n  protected readonly displayLabel = computed(() => this.filename() || this.language());\n\n  protected readonly lines = computed(() => this.code().split('\\n'));\n\n  protected copy(): void {\n    void navigator.clipboard.writeText(this.code()).then(() => {\n      this.copied.set(true);\n      setTimeout(() => this.copied.set(false), 1800);\n    });\n  }\n}\n","import { InjectionToken, Signal } from '@angular/core';\nimport type { AtlChatStatus, AtlChatVariant } from '../spec';\n\n/**\n * Context token used by `atl-chat` sub-components (header, input) to\n * read parent state and dispatch close/toggle actions without a direct\n * component reference.\n */\nexport interface AtlChatContext {\n  readonly headerId: string;\n  readonly variant: Signal<AtlChatVariant>;\n  readonly status: Signal<AtlChatStatus>;\n  close(): void;\n  toggle(): void;\n}\n\nexport const ATL_CHAT = new InjectionToken<AtlChatContext>('ATL_CHAT');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  ElementRef,\n  afterNextRender,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type {\n  AtlChatMessageRole,\n  AtlChatStatus,\n  AtlChatVariant,\n} from '../spec';\nimport { ATL_CHAT } from './atl-chat.token';\n\nlet nextId = 0;\n\n/**\n * AI assistant surface. Three layout variants share the same content slots\n * and can be swapped without changing the children.\n *\n * Variants:\n * - `drawer`: Right-anchored slide-in panel, full viewport height.\n * - `popup`: Floating bubble (bottom-right) + compact chat window.\n * - `inline`: Embedded card, sits inline with page content.\n *\n * Compose with `atl-chat-header`, `atl-chat-messages`, `atl-chat-input`.\n *\n * Usage:\n * ```html\n * <atl-chat variant=\"drawer\" [(open)]=\"isOpen\" status=\"idle\">\n *   <atl-chat-header>AI Assistant</atl-chat-header>\n *   <atl-chat-messages>\n *     <atl-chat-message role=\"assistant\">Hi! How can I help?</atl-chat-message>\n *     <atl-chat-message role=\"user\">Show me a sorting function.</atl-chat-message>\n *   </atl-chat-messages>\n *   <atl-chat-input placeholder=\"Ask anything…\" (send)=\"onSend($event)\" />\n * </atl-chat>\n * ```\n */\n@Component({\n  selector: 'atl-chat',\n  standalone: true,\n  imports: [A11yModule, NgTemplateOutlet],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ATL_CHAT,\n      useFactory: (chat: AtlChat) => ({\n        headerId: chat.headerId,\n        variant: chat.variant,\n        status: chat.status,\n        close: () => chat.open.set(false),\n        toggle: () => chat.open.set(!chat.open()),\n      }),\n      deps: [AtlChat],\n    },\n  ],\n  template: `\n    <ng-template #content><ng-content /></ng-template>\n    @switch (variant()) {\n      @case ('drawer') {\n        <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n        <dialog\n          #dialogEl\n          [attr.aria-labelledby]=\"headerId\"\n          aria-modal=\"true\"\n          [cdkTrapFocus]=\"open()\"\n          (cancel)=\"onCancel($event)\"\n          (close)=\"open.set(false)\"\n          (click)=\"onBackdropClick($event)\"\n        >\n          <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n          <div class=\"surface drawer-surface\" (click)=\"$event.stopPropagation()\">\n            <ng-container [ngTemplateOutlet]=\"content\" />\n          </div>\n        </dialog>\n      }\n      @case ('popup') {\n        @if (open()) {\n          <div class=\"surface popup-surface\" [attr.aria-labelledby]=\"headerId\" role=\"dialog\">\n            <ng-container [ngTemplateOutlet]=\"content\" />\n          </div>\n        }\n        <button\n          type=\"button\"\n          class=\"fab-bubble\"\n          [attr.aria-label]=\"open() ? 'Close AI assistant' : 'Open AI assistant'\"\n          [attr.aria-expanded]=\"open()\"\n          (click)=\"open.set(!open())\"\n        >\n          <span aria-hidden=\"true\">AI</span>\n        </button>\n      }\n      @default {\n        <section class=\"surface inline-surface\" [attr.aria-labelledby]=\"headerId\">\n          <ng-container [ngTemplateOutlet]=\"content\" />\n        </section>\n      }\n    }\n  `,\n  styleUrl: './atl-chat.css',\n  host: {\n    '[class]': 'hostClasses()',\n  },\n})\nexport class AtlChat {\n  /** Layout variant. */\n  readonly variant = input<AtlChatVariant>('drawer');\n\n  /** Whether the chat is open. Used by drawer/popup; ignored by inline. Two-way bindable via [(open)]. */\n  readonly open = model(false);\n\n  /** Connection / response status. Drives badge color in header and disables input while streaming. */\n  readonly status = input<AtlChatStatus>('idle');\n\n  /** @internal — referenced by AtlChatHeader via ATL_CHAT token for aria-labelledby. */\n  readonly headerId = `atl-chat-header-${nextId++}`;\n\n  protected readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dialogEl');\n  private readonly host: ElementRef<HTMLElement> = inject(ElementRef);\n  private readonly triggerEl = signal<HTMLElement | null>(null);\n\n  protected readonly hostClasses = computed(\n    () =>\n      `variant-${this.variant()} status-${this.status()}${this.open() ? ' is-open' : ''}`\n  );\n\n  constructor() {\n    // Drawer variant uses native <dialog> open/close lifecycle.\n    effect(() => {\n      if (this.variant() !== 'drawer') return;\n      const dialog = this.dialogRef()?.nativeElement;\n      if (!dialog) return;\n      if (this.open()) {\n        this.triggerEl.set(document.activeElement as HTMLElement);\n        dialog.showModal();\n      } else {\n        if (dialog.open) dialog.close();\n        this.triggerEl()?.focus();\n        this.triggerEl.set(null);\n      }\n    });\n\n    // Auto-focus the input on open for drawer / popup. Inline variant keeps\n    // user focus where it was.\n    effect(() => {\n      if (!this.open()) return;\n      if (this.variant() === 'inline') return;\n      // Wait for the surface to be in the DOM (showModal / @if (open) render).\n      requestAnimationFrame(() => {\n        this.host.nativeElement.querySelector<HTMLTextAreaElement>('textarea')?.focus();\n      });\n    });\n  }\n\n  protected onCancel(event: Event): void {\n    event.preventDefault();\n    this.open.set(false);\n  }\n\n  protected onBackdropClick(event: MouseEvent): void {\n    if (event.target === this.dialogRef()?.nativeElement) {\n      this.open.set(false);\n    }\n  }\n}\n\n/**\n * Header slot for `atl-chat`. Holds the title, status indicator, and close button.\n * Children are projected into the title area; the close button is rendered automatically.\n */\n@Component({\n  selector: 'atl-chat-header',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"title-block\">\n      <ng-content />\n    </div>\n    @if (context.variant() !== 'inline') {\n      <button\n        type=\"button\"\n        class=\"close-btn\"\n        aria-label=\"Close chat\"\n        (click)=\"context.close()\"\n      >\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          width=\"14\"\n          height=\"14\"\n          viewBox=\"0 0 24 24\"\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-width=\"2.5\"\n          stroke-linecap=\"round\"\n          stroke-linejoin=\"round\"\n          aria-hidden=\"true\"\n          focusable=\"false\"\n        >\n          <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n          <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n        </svg>\n      </button>\n    }\n  `,\n  styleUrl: './atl-chat.css',\n  host: {\n    '[attr.id]': 'context.headerId',\n  },\n})\nexport class AtlChatHeader {\n  protected readonly context = inject(ATL_CHAT);\n}\n\n/**\n * Scrollable message list for `atl-chat`. Project `atl-chat-message`,\n * `atl-chat-typing`, or `atl-chat-suggestion` children inside. Auto-scrolls\n * to the bottom whenever children are added or content changes — important\n * for streaming responses where new tokens are appended live.\n */\n@Component({\n  selector: 'atl-chat-messages',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-chat.css',\n})\nexport class AtlChatMessages {\n  private readonly host: ElementRef<HTMLElement> = inject(ElementRef);\n  private readonly destroyRef = inject(DestroyRef);\n\n  constructor() {\n    afterNextRender(() => {\n      const el = this.host.nativeElement;\n      const stickToBottom = (): void => { el.scrollTop = el.scrollHeight; };\n      stickToBottom();\n      const observer = new MutationObserver(stickToBottom);\n      observer.observe(el, { childList: true, subtree: true, characterData: true });\n      this.destroyRef.onDestroy(() => observer.disconnect());\n    });\n  }\n}\n\n/**\n * A single chat message. Role drives bubble alignment and color.\n *\n * Usage:\n * ```html\n * <atl-chat-message role=\"assistant\">Sure, here you go.</atl-chat-message>\n * <atl-chat-message role=\"user\">Thanks!</atl-chat-message>\n * <atl-chat-message role=\"assistant\" [failed]=\"true\">Couldn't reach the assistant.</atl-chat-message>\n * ```\n */\n@Component({\n  selector: 'atl-chat-message',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-content />`,\n  styleUrl: './atl-chat.css',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.role]': '\"listitem\"',\n  },\n})\nexport class AtlChatMessage {\n  /** Sender of the message. Drives bubble alignment and color. */\n  readonly role = input<AtlChatMessageRole>('assistant');\n\n  /** Marks the message as failed (red dashed border, used in error state). */\n  readonly failed = input(false);\n\n  protected readonly hostClasses = computed(\n    () => `role-${this.role()}${this.failed() ? ' is-failed' : ''}`\n  );\n}\n\n/**\n * Typing indicator (three animated dots).\n *\n * Two display modes:\n * - **Standalone bubble** (default) — render as the last child of\n *   `AtlChatMessages` to show \"the assistant is starting to respond\"\n *   before any tokens arrive.\n * - **Inline cursor** (`inline`) — render as the LAST child INSIDE\n *   `AtlChatMessage role=\"assistant\"` to show the dots after the\n *   currently-streaming text. The bubble background is dropped so the\n *   dots read as a typing caret at the end of the partial response.\n */\n@Component({\n  selector: 'atl-chat-typing',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <span class=\"dot\"></span>\n    <span class=\"dot\"></span>\n    <span class=\"dot\"></span>\n    <span class=\"sr-only\">Assistant is typing</span>\n  `,\n  styleUrl: './atl-chat.css',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.role]': '\"status\"',\n    '[attr.aria-live]': '\"polite\"',\n  },\n})\nexport class AtlChatTyping {\n  /** When true, renders as an inline cursor without bubble chrome. */\n  readonly inline = input(false);\n\n  protected readonly hostClasses = computed(() =>\n    this.inline() ? 'is-inline' : ''\n  );\n}\n\n/**\n * Tappable suggestion chip used in the empty state to seed a conversation.\n *\n * Usage:\n * ```html\n * <atl-chat-suggestion label=\"Explain a code snippet\" hint=\"Tap to start →\" (selected)=\"prompt.set($event)\" />\n * ```\n */\n@Component({\n  selector: 'atl-chat-suggestion',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <button type=\"button\" class=\"chip\" (click)=\"selected.emit(label())\">\n      <span class=\"chip-label\">{{ label() }}</span>\n      @if (hint()) {\n        <span class=\"chip-hint\">{{ hint() }}</span>\n      }\n    </button>\n  `,\n  styleUrl: './atl-chat.css',\n})\nexport class AtlChatSuggestion {\n  /** Primary label of the suggestion. */\n  readonly label = input.required<string>();\n\n  /** Optional secondary hint text shown below the label. */\n  readonly hint = input<string>('');\n\n  /** Fires the label string when the chip is activated. */\n  readonly selected = output<string>();\n}\n\n/**\n * Composable input footer for `atl-chat`. Wraps a text field and emits\n * `send` (or `stop` while the assistant is streaming).\n *\n * The button automatically switches to a `danger` \"Stop\" button when the\n * parent chat's `status` is `'streaming'`.\n *\n * Usage:\n * ```html\n * <atl-chat-input placeholder=\"Ask anything…\" (send)=\"onSend($event)\" (stop)=\"onStop()\" />\n * ```\n */\n@Component({\n  selector: 'atl-chat-input',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <textarea\n      class=\"field\"\n      [value]=\"value()\"\n      [placeholder]=\"effectivePlaceholder()\"\n      [disabled]=\"isStreaming()\"\n      [attr.aria-label]=\"ariaLabel()\"\n      (input)=\"onInput($event)\"\n      (keydown.enter)=\"onEnter($event)\"\n      rows=\"1\"\n    ></textarea>\n    @if (isStreaming()) {\n      <button\n        type=\"button\"\n        class=\"action-btn variant-danger size-md\"\n        (click)=\"stop.emit()\"\n      >\n        Stop\n      </button>\n    } @else {\n      <button\n        type=\"button\"\n        class=\"action-btn variant-primary size-md\"\n        [disabled]=\"!value().trim()\"\n        (click)=\"emitSend()\"\n      >\n        Send\n      </button>\n    }\n  `,\n  styleUrl: './atl-chat.css',\n})\nexport class AtlChatInput {\n  /** Placeholder shown in the empty input. Defaults change per parent status. */\n  readonly placeholder = input<string>('');\n\n  /** Accessible label for the input field. */\n  readonly ariaLabel = input<string>('Message your AI assistant');\n\n  /** Two-way bindable text content. */\n  readonly value = model<string>('');\n\n  /** Fires when Enter is pressed (without Shift) or the Send button is clicked. */\n  readonly send = output<string>();\n\n  /** Fires when the Stop button is clicked while the parent chat is streaming. */\n  readonly stop = output<void>();\n\n  protected readonly context = inject(ATL_CHAT);\n\n  protected readonly isStreaming = computed(() => this.context.status() === 'streaming');\n\n  protected readonly effectivePlaceholder = computed(() => {\n    const explicit = this.placeholder();\n    if (explicit) return explicit;\n    switch (this.context.status()) {\n      case 'streaming':\n        return 'Waiting for response…';\n      case 'error':\n        return 'Try again…';\n      default:\n        return 'Message your AI assistant…';\n    }\n  });\n\n  protected onInput(event: Event): void {\n    const target = event.target as HTMLTextAreaElement;\n    this.value.set(target.value);\n  }\n\n  protected onEnter(event: Event): void {\n    const ke = event as KeyboardEvent;\n    if (ke.shiftKey) return;\n    ke.preventDefault();\n    this.emitSend();\n  }\n\n  protected emitSend(): void {\n    const text = this.value().trim();\n    if (!text || this.isStreaming()) return;\n    this.send.emit(text);\n    this.value.set('');\n  }\n}\n","// Design tokens stylesheet — consumers should import:\n// @import '@atelier-ui/angular/styles/tokens.css';\n\nexport { AtlButton } from './lib/button/atl-button';\nexport {\n  AtlCard,\n  AtlCardHeader,\n  AtlCardContent,\n  AtlCardFooter,\n} from './lib/card/atl-card';\nexport { AtlBadge } from './lib/badge/atl-badge';\nexport { AtlIcon } from './lib/icon/atl-icon';\nexport { AtlInput } from './lib/input/atl-input';\nexport { AtlTextarea } from './lib/textarea/atl-textarea';\nexport { AtlCheckbox } from './lib/checkbox/atl-checkbox';\nexport { AtlRadio } from './lib/radio/atl-radio';\nexport { AtlRadioGroup } from './lib/radio-group/atl-radio-group';\nexport { ATL_RADIO_GROUP } from './lib/radio-group/atl-radio-group.token';\nexport type { AtlRadioGroupContext } from './lib/radio-group/atl-radio-group.token';\nexport { AtlToggle } from './lib/toggle/atl-toggle';\nexport { AtlAlert } from './lib/alert/atl-alert';\nexport { AtlSelect } from './lib/select/atl-select';\nexport { AtlOption } from './lib/select/atl-option';\nexport { AtlCombobox } from './lib/combobox/atl-combobox';\nexport { ATL_SELECT } from './lib/select/atl-select.token';\nexport type { AtlSelectContext } from './lib/select/atl-select.token';\nexport {\n  AtlDialog,\n  AtlDialogHeader,\n  AtlDialogContent,\n  AtlDialogFooter,\n} from './lib/dialog/atl-dialog';\nexport { ATL_DIALOG } from './lib/dialog/atl-dialog.token';\nexport type { AtlDialogContext } from './lib/dialog/atl-dialog.token';\nexport { AtlTabGroup, AtlTab } from './lib/tabs/atl-tabs';\nexport { ATL_TAB_GROUP } from './lib/tabs/atl-tabs.token';\nexport type { AtlTabGroupContext, TabInfo } from './lib/tabs/atl-tabs.token';\nexport {\n  AtlAccordionGroup,\n  AtlAccordionItem,\n  AtlAccordionHeader,\n} from './lib/accordion/atl-accordion';\nexport { ATL_ACCORDION_GROUP } from './lib/accordion/atl-accordion.token';\nexport type { AtlAccordionGroupContext } from './lib/accordion/atl-accordion.token';\nexport {\n  AtlMenu,\n  AtlMenuItem,\n  AtlMenuSeparator,\n  AtlMenuTrigger,\n} from './lib/menu/atl-menu';\nexport { AtlTooltip } from './lib/tooltip/atl-tooltip';\nexport { AtlSkeleton } from './lib/skeleton/atl-skeleton';\nexport {\n  AtlToast,\n  AtlToastContainer,\n  AtlToastService,\n} from './lib/toast/atl-toast';\nexport type { ToastOptions, ToastData } from './lib/toast/atl-toast';\nexport { AtlAvatar, AtlAvatarGroup } from './lib/avatar/atl-avatar';\nexport { AtlProgress } from './lib/progress/atl-progress';\nexport {\n  AtlBreadcrumbs,\n  AtlBreadcrumbItem,\n} from './lib/breadcrumbs/atl-breadcrumbs';\nexport { ATL_BREADCRUMBS } from './lib/breadcrumbs/atl-breadcrumbs.token';\nexport type { AtlBreadcrumbsContext } from './lib/breadcrumbs/atl-breadcrumbs.token';\nexport { AtlPagination } from './lib/pagination/atl-pagination';\nexport type { PageItem } from './lib/pagination/atl-pagination';\nexport {\n  AtlDrawer,\n  AtlDrawerHeader,\n  AtlDrawerContent,\n  AtlDrawerFooter,\n} from './lib/drawer/atl-drawer';\nexport { ATL_DRAWER } from './lib/drawer/atl-drawer.token';\nexport type { AtlDrawerContext } from './lib/drawer/atl-drawer.token';\nexport {\n  AtlTable,\n  AtlThead,\n  AtlTbody,\n  AtlTr,\n  AtlTh,\n  AtlTd,\n  ATL_TABLE,\n} from './lib/table/atl-table';\nexport type { AtlTableContext, AtlSortDirection } from './lib/table/atl-table';\nexport { AtlStepper, AtlStep } from './lib/stepper/atl-stepper';\nexport { ATL_STEPPER } from './lib/stepper/atl-stepper.token';\nexport type {\n  AtlStepperContext,\n  StepInfo,\n} from './lib/stepper/atl-stepper.token';\nexport { AtlCodeBlock } from './lib/code-block/atl-code-block';\nexport {\n  AtlChat,\n  AtlChatHeader,\n  AtlChatMessages,\n  AtlChatMessage,\n  AtlChatTyping,\n  AtlChatSuggestion,\n  AtlChatInput,\n} from './lib/chat/atl-chat';\nexport { ATL_CHAT } from './lib/chat/atl-chat.token';\nexport type { AtlChatContext } from './lib/chat/atl-chat.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["VARIANT_ICONS","nextId","i1"],"mappings":"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"}